Algorytmy ewolucyjne (obliczenia ewolucyjne)
Transkrypt
Algorytmy ewolucyjne (obliczenia ewolucyjne)
Algorytmy ewolucyjne algorytmy genetyczne I. Karcz-Dulęba Algorytmy klasyczne a algorytmy ewolucyjne Przeszukiwanie przestrzeni przez jeden punkt bazowy Przeszukiwanie przestrzeni przez zbiór punktów bazowych Kolejne rozwiązania generowane w oparciu o wyliczanie pewnych charakterystyk funkcji celu np. gradientu Kolejne rozwiązania generowane w oparciu o wykorzystanie mechanizmów analogicznych do reprodukcji biologicznej Terminologia Osobnik – rozwiązanie, punkt bazowy Chromosom – łańcuch cech (genów) osobnika Gen - pojedynczy element chromosomu Allel – wartość genu (0,1) Locus – pozycja (miejsce) genu w chromosomie) Genotyp – zespół genów danego organizmu warunkujących dziedziczenie (w GA chromosom) Fenotyp – zbiór cech organizmu uwarunkowany przez genotyp i środowisko, służący do wyliczania przystosowania osobnika Przystosowanie – wartość liczbowa określająca jakość osobnika , wyliczana na podstawie nieujemnej funkcji przystosowania (celu) Populacja - zbiór punktów bazowych, osobników Selekcja (selection), krzyżowanie (crossover), mutacja (mutation) – operacje genetyczne Algorytm genetyczny (klasyczny - SGA) Osobniki opisywane przez binarnie kodowane chromosomy o stałej długości Geny przyjmują wartości 0 lub 1 Selekcja proporcjonalna Krzyżowanie jednopunktowe Mutacja bitowa Algorytm genetyczny 1. 2. 3. 4. 5. Populacja początkowa Ocena przystosowania Selekcja proporcjonalna Krzyżowanie jednopunktowe Mutacja procedure GA; { t = 0; initialize population P(t); evaluate P(t); until (done) { t = t + 1; parent_selection P(t); recombine P(t) mutate P(t); evaluate P(t); }} Dane początkowe Zadanie optymalizacyjne: znaleźć maksimum danej funkcji przystosowania np. f(x)=10x2-x, x Є[0,10] Parametry: rozmiar populacji m, długość łańcucha binarnego (chromosomu) l, Warunek zatrzymania algorytmu (np. liczba generacji lg) Prawdopodobieństwo krzyżowania pc Prawdopodobieństwo mutacji pm Algorytm genetyczny 1. 2. 3. 4. 5. Populacja początkowa Ocena przystosowania Selekcja proporcjonalna Krzyżowanie jednopunktowe Mutacja procedure GA; { t = 0; initialize population P(t); evaluate P(t); until (done) { t = t + 1; parent_selection P(t); recombine P(t) mutate P(t); evaluate P(t); }} Populacja początkowa Osobnik x zakodowany w postaci ciągu binarnego o długości l xi=0110011101 (l=10) Populacja m-elementowa P0={x01, x02, …, x0m} Losowa populacja początkowa (macierz [m, l], randint) 0110011101 1011010100 … 1100001001 Algorytm genetyczny 1. 2. 3. 4. 5. Populacja początkowa Ocena przystosowania Selekcja proporcjonalna Krzyżowanie jednopunktowe Mutacja procedure GA; { t = 0; initialize population P(t); evaluate P(t); until (done) { t = t + 1; parent_selection P(t); recombine P(t) mutate P(t); evaluate P(t); }} Ocena przystosowania Ocena osobników na podstawie fenotypów wymaga zdekodowania binarnego chromosomu do przestrzeni fenotypów Zadanie wstępne: znaleźć osobnika o największej liczbie jedynek w łańcuchu 0110011101 f(x)=6 1011010100 f(x)=5 … 1100001001 f(x)=4 Algorytm genetyczny 1. 2. 3. 4. 5. Populacja początkowa Ocena przystosowania Selekcja proporcjonalna Krzyżowanie jednopunktowe Mutacja procedure GA; { t = 0; initialize population P(t); evaluate P(t); until (done) { t = t + 1; parent_selection P(t); recombine P(t) mutate P(t); evaluate P(t); }} Selekcja proporcjonalna (ruletkowa) • Wybór rodzica zależny od jego jakości, zgodnie z prawdopodobieństwem: p ( xi ) f ( xi ) m f (x ) j 1 j • Wykonanie m losowań ruletką, na której kole przydzielono sektory proporcjonalne do wartości przystosowanie Koło ruletki 100000010010 011001100110 100001000000 000000100000 f(x1)=3 f(x2)=6 f(x3)=2 f(x4)=1 r=25% r=50% r=16.6% r=8.4% Metoda odwrotnej dystrybuanty p (x) { p( x1 ), p ( x2 ),..., p( xm )} • Budujemy funkcję odwrotnej dystrybuanty zliczając sumy cząstkowe z wektora i 1 p(x4) fp(x3) p(x3) fp(x2) fp ( xi ) p ( xk ), i 1,..., m • Znajdujemy numer osobnika, dla którego: fp(xi) >= rand rand – liczba losowa z przedziału [0,1] • p(x2) k 1 Wybrany osobnik zostawi potomka w kolejnej generacji rand fp(x1) p(x1) Algorytm genetyczny 1. 2. 3. 4. 5. Populacja początkowa Ocena przystosowania Selekcja proporcjonalna Krzyżowanie jednopunktowe Mutacja procedure GA; { t = 0; initialize population P(t); evaluate P(t); until (done) { t = t + 1; parent_selection P(t); recombine P(t) mutate P(t); evaluate P(t); }} Krzyżowanie jednopunktowe Losowe kojarzenie w pary osobników wybranych w procesie selekcji Krzyżowanie z wybranym prawdopodobieństwem pc Losowo wybierany punkt krzyżowania k Wymiana odpowiednich części łańcucha pomiędzy rodzicami k=4, 0110|011101 -> 0110010100 1011|010100 -> 1011011101 Algorytm genetyczny 1. 2. 3. 4. 5. Populacja początkowa Ocena przystosowania Selekcja proporcjonalna Krzyżowanie jednopunktowe Mutacja procedure GA; { t = 0; initialize population P(t); evaluate P(t); until (done) { t = t + 1; parent_selection P(t); recombine P(t) mutate P(t); evaluate P(t); }} Mutacja Losowa zmiana wartości genu (0 <>1) Mutacja z wybranym prawdopodobieństwem pm, które zwykle jest znacznie mniejsze niż prawdopodobieństwo krzyżowania pc k=5, 0110011101 -> 0110111101 Kryterium zatrzymania Osiągniecie optimum! Ograniczenia zasobów CPU: maksymalna liczba wyliczeń funkcji przystosowania Ograniczenie na cierpliwość użytkownika: po kilku (kilkunastu, kilkudziesięciu) generacjach bez poprawy Inne uwagi Wykorzystywać możliwości Matlaba, szczególnie do pracy z macierzami i wektorami Program główny + podprogramy Zwięzłość kodu inicjalizacja – 1 linijka mutacja – 1 linijka Algorytm genetyczny Literatura D. Goldberg, Algorytmy Genetyczne w zastosowaniach, WNT, W-wa,1995 Z. Michalewicz, Algorytmy genetyczne+ struktury danych =programy ewolucyjne, WNT, W-wa, 1996 J. Arabas, Wykłady z algorytmów ewolucyjnych, WNT, W-wa, 2001 Algorytm genetyczny - program Parametry: 1. 2. 3. 4. 5. rozmiar populacji - m długość łańcucha binarnego - l warunek zatrzymania algorytmu – lg Losowa populacja początkowa - macierz [m, l], randint Ocena przystosowania - znaleźć osobnika o największej liczbie jedynek w łańcuchu Selekcja proporcjonalna – metoda odwrotnej dystrybuanty Krzyżowanie jednopunktowe Mutacja jednobitowa procedure GA; { t = 0; initialize population P(t); evaluate P(t); until (done) { t = t + 1; parent_selection P(t); recombine P(t) mutate P(t); evaluate P(t); }}