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.