Algorytm genetyczny – rodzaj algorytmu przeszukującego

Transkrypt

Algorytm genetyczny – rodzaj algorytmu przeszukującego
Algorytm genetyczny – rodzaj algorytmu przeszukującego przestrzeń rozwiązań w celu wyszukania
rozwiązań najlepszych.
Problem definiuje środowisko, w którym istnieje pewna populacja osobników. Każdy z osobników ma
pewien zbiór informacji – genotyp, będący podstawą utworzenia fenotypu. Fenotyp to zbiór cech
ocenianych przez funkcję przystosowania. Genotyp opisuje proponowane rozwiązanie problemu, a
funkcja przystosowania ocenia jak dobre jest to rozwiązanie.
1. Wybierana jest populacja początkowa
2. Populacja poddawana jest ocenie (selekcji) przez funkcję przystosowania (minimalizująca lub
maksymalizująca).
3. Wyprowadza się najlepsze chromosomy i poddaje funkcjom selekcji – ruletki lub turniejowej.
a. Metoda ruletki
Budujemy wirtualne koło, którego wycinki odpowiadają poszczególnym osobnikom,
im lepszy osobnik, tym większy wycinek koła zajmuje. W takim układzie
prawdopodobieństwo, że lepszy osobnik zostanie wybrany jako rodzic jest większe.
Ewolucja przy tej metodzie spada, jeżeli osobniki są podobne to każdy dostaje równy
wycinek koła i presja na wybór najlepszego osobnika spada – algorytm słabiej
rozróżnia osobniki dobre od słabszych. Np.
Mamy osobników o następujących wartościach przystosowania: 5, 1, 2.
Odpowiadające im wartości ruletki są równe:
Pierwszy: 5/8 = 62,5%
Drugi: 1/8 = 12,5%
Trzeci: 2/8 = 25%
b. Metoda turniejowa
Tworzymy grupy turniejowe 5 osobników, losujemy do nich chromosomy i
wybieramy najlepszego z 5, który przechodzi do kolejnej populacji.
Metoda jest niewrażliwa na różnicę pomiędzy kolejnymi osobnikami w kolejce, może
się okazać, że w jednej grupie znajdą się same najlepsze osobniki – z czego 4 musimy
odrzucić, a w innej same najsłabsze – z czego 1 musimy wybrać.
4. Na podstawie selekcji wybieramy chromosomy
5. Zastosowanie funkcji genetycznych
a. Krzyżowanie
Polega na połączeniu wybranych genotypów w jeden. Kojarzenie ma sprawić, że
potomek otrzyma kombinację cech rodziców – może się zdarzyć, że tych najlepszych
cech.
W krzyżowaniu wybieramy losowy punkt krzyżowania, rozcinamy w tym punkcie
chromosomy i potomek powstaje poprzez sklejenie lewej i prawej części.
011|01111, 110|00010 -> 011|00010
b. Mutacja
Mutacja wprowadza do genotypu losowe zmiany, jej zadaniem jest wprowadzanie
różnorodności w populacji, czyli zapobieganie przedwczesnej zbieżności algorytmu.
Zachodzi z przyjetym prawdopodobieństwem – np. 1%, ponieważ zbyt silna mutacja
przynosi efekt odwrotny niszcząc rozwiązania.
c. Inwersja
Odwrócenie losowego zakresu chromosomu. Na losowym odcinku przeprowadzamy
celową reorganizację chromosomu, zwykle poprzed odwrócenie kolejności, np.:
kolejność 0101-1100 zamieniamy w drugim odcinku na 0101-0011.
Taka zmiana kolejności nie wpływa na rozwiązanie kodowane przez osobnika, bity
kodujące cechy są prawidłowo interpretowane. Wpływa natomiast na krzyżowanie
6. Utworzenie nowych populacji
Problem plecakowy - problem opisujący zagadnienie maksymalizacyjnego wyboru przedmiotów, tak
by ich sumaryczna wartośc była największa i jednocześnie mieściły się w plecaku. Przy podanym
zbiorze elementów o znanej wadze i wartości, należy wybrać taki podzbiór by suma wartości była jak
największa, a suma wag mniejsza od pojemności plecaka
Problem komiwojażera – komiwojażer musi odwiedzić wszystkie miasta danego regionu i wrócić do
miasta początkowego. Wszystkie miasta są ze sobą połączone. Mając do dyspozycji macierz
odległości między miastami należy znaleźć cykl przejścia grafu o najmniejszym koszcie, jedno miasto
można odwiedzić jeden raz.
Populacja początkowa składałaby się z pewnej liczby tras wygenerowanych losowo, a następnie
krzyżowania – pamiętając o tym, aby unikać powtarzania się miast.

Podobne dokumenty