Moduł AI::Genetic::OpCrossover
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowaSpis treści
⇑ Nazwa
AI::Genetic::OpCrossover - Klasa implementująca różne operatory crossover.⇑ Jak używać
Zobacz AI::Genetic.⇑ Opis
Ten pakiet implementuje kilka mechanizmów crossover, które mogą być użyte w strategiach zdefiniowanych przez użytkownika. Metody tej klasy powinny być wołane jak metody statyczne, a nie wywoływane przez obiekty, więc powinno wyglądać to tak:AI::Genetic::OpCrossover::NazwaMetody(argumenty)
⇑ Operatory crossover i ich metody
- Single Point
- W crossover typu :single point" wybieramy jeden punkt cięcia osobnika i geny od początku do tego punktu bierzemy od pierwszego rodzica (rodzic "a"), a geny od tego punktu do końca bierzemy od drugiego rodzica (rodzic "b"). Mając cztery kawałki genotypu (nazwijmy je "a1","a2" i "b1","b2") łączymy je i mamy dwa nowe osobniki: "a1b2" oraz "b1a2".
- vectorSinglePoint(Xprob, rodzic1, rodzic2)
- Pierwszy argument to wartość crossover. Drugi i trzeci argument to anonimowe listy przedstawiające geny dwojga rodziców. Nie są to obiekty AI::Genetic::Individual, ale wartości zwracane przez metodę genes() w kontekście skalarnym. Jeśli wszystko pójdzie dobrze, to zwrócone zostaną dwie listy genów obojga dzieci. W przeciwnym razie będzie to "0";
- Two Point
- W crossover typu "two point" wybieramy dwa punkty cięcia osobnika i geny od punktu1 do punktu2 (czyli środek odobnika) bierzemy od pierwszego rodzica (rodzic "a"), a resztę genów od drugiego rodzica (rodzic "b"). Mając sześć kawałki genotypu (nazwijmy je "a1","a2","a3" i "b1","b2","b3") łączymy je i mamy dwa nowe osobniki: "a1b2a3" oraz "b1a2b3".
- vectorTwoPoint(Xprob, rodzic1, rodzic2)
- Pierwszy argument to wartość crossover. Drugi i trzeci argument to anonimowe listy przedstawiające geny dwojga rodziców. Nie są to obiekty AI::Genetic::Individual, ale wartości zwracane przez metodę genes() w kontekście skalarnym. Jeśli wszystko pójdzie dobrze, to zwrócone zostaną dwie listy genów obojga dzieci. W przeciwnym razie będzie to "0";
- Uniform
- W crossover typu uniform losujemy dla każdego genu, czy ma iść od rodzica1, czy raczej od rodzica2
- vectorUniform(Xprob, rodzic1, rodzic2)
- Pierwszy argument to wartość crossover. Drugi i trzeci argument to anonimowe listy przedstawiające geny dwojga rodziców. Nie są to obiekty AI::Genetic::Individual, ale wartości zwracane przez metodę genes() w kontekście skalarnym. Jeśli wszystko pójdzie dobrze, to zwrócone zostaną dwie listy genów obojga dzieci. W przeciwnym razie będzie to "0";
⇑ Autor modułu
Ala Qumsieh (aqumsieh@cpan.org.)⇑ Autor opisu
Łukasz Łoza⇑ Prawa autorskie
(c) 2003-2005 Ala Qumsieh. All rights reserved.Ta biblioteka jest objęta prawami wolnego oprogramowania i może być udostępniana i modyfikowana pod takimi samymi warunakami jak sam Perl.