PLAN WYKŁADU Operator krzyżowania Operator mutacji Operator inwersji Sukcesja Przykłady symulacji AG Kodowanie - rodzaje OPTYMALIZACJA GLOBALNA Wykład 3 dr inż. Agnieszka Bołtuć OPERATOR KRZYŻOWANIA Wymiana materiału genetycznego między dwoma osobnikami, Postaje dwóch nowych potomków, którzy zastępują rodziców, ETAPY KRZYŻOWANIA Wybór par chromosomów z puli rodzicielskiej w sposób losowy z prawdopodobieństwem krzyżowania p c (najczęściej z przedziału 0.5..), jeśli p c =0.5 to 50% osobników ulegnie krzyżowaniu, PRZED PO Losowanie punktu (lub punktów) krzyżowania jako liczby z przedziału..l-, gdzie L - to liczba genów, 00000 0000 00 000 Utworzenie potomków poprzez wymianę części genów,
ETAPY KRZYŻOWANIA - IMPLEMENTACJA Zakładamy p c, Dla każdego chromosomu losujemy liczbę r z przedziału <0,>, krzyżowaniu ulegają tylko te osobniki dla których r<p c, Jeśli zostaje nam nieparzysta liczba osobników, to jednego odrzucamy lub losowo dodajemy, Łączymy losowo w pary i wymieniamy geny względem losowo wybranego punktu krzyżowania. RODZAJE KRZYŻOWANIA Rodzice 0000000 0000 Jednopunktowe (3 gen) 00000 000000 Dwupunktowe (3,6 gen) 000000 00000 Wielopunktowe (3,6,9 gen) 000000 00000 RODZAJE KRZYŻOWANIA Równomierne gdy odbywa się zgodnie z wylosowanym wzorcem, wzorzec decyduje które geny potomek posiada od pierwszego z rodziców a które od drugiego, wzorzec 000000 0 z rodzica, z 2 rodzica, 0000 000000000 OPERATOR MUTACJI Mniej istotna rola w AG, wykazywano, że częstość mutacji potrzebna do uzyskania dobrych wyników to :000 kopiowanych bitów, Zapobiega odrzuceniu potencjalnie dobrego materiału (pozwala wyjść z minimów lokalnych), Dokonuje zmiany wartości genu na przeciwną (lub losowo wybraną) zgodnie z prawdopodobieństwem mutacji p m (z przedziału 0..0.), Implementacja: dla każdego genu losowana jest liczba r z przedziału <0,> i mutowane są te geny dla których r<p m. 2
OPERATOR INWERSJI Kolejna technika (obok krzyżowania i mutacji) mająca na celu wprowadzenie rozróżnień między rodzicami a następnym pokoleniem, Działa przeciwko wstrzymującemu przeszukiwanie brakowi różnorodności, Polega najczęściej na przecięciu chromosomu w dwóch losowo wybranych miejscach, odwrócenie kolejności genów pomiędzy wybranymi genami, ponowne połączenie ciągu bitowego, 000000 000000 SUKCESJA Tworzenie nowej populacji bazowej dla której powtarzany jest cały cykl algorytmu genetycznego, Najczęściej stosowaną i jednocześnie najbardziej trywialną metodą jest tzw. metoda klasyczna, w której nową populację bazową tworzą wyłącznie osobniki wchodzące w skład populacji uzyskanej w wyniku działania operatorów genetycznych. Nazywana jest sukcesją z całkowitym zastępowaniem. SUKCESJA - RODZAJE Inną metodą sukcesji jest tzw. metoda z częściową wymianą (zastępowaniem). W metodzie tej nową populację bazową tworzą osobniki z populacji potomnej, jak i ze starej populacji bazowej. Można założyć, że nowa populacja bazowa będzie się składać z rn osobników znajdujących się w populacji potomnej, gdzie r jest współczynnikiem wymiany i przyjmuje wartości 0 < r <. Część osobników starej populacji bazowej należy więc usunąć, aby zrobić miejsce dla potomstwa. SUKCESJA - RODZAJE Warianty mechanizmu usuwania osobników: usuwanie najgorzej przystosowanych osobników sukcesja elitarna, usuwanie osobników najbardziej podobnych" do potomnych - metoda ze ściskiem (miarą podobieństwa może być np. odległość chromosomów), aby populacja była różnorodna, usuwanie losowo wybranych osobników. 3
SUKCESJA - CECHY Sukcesja z częściowym zastępowaniem prowadzi do stabilniejszej pracy algorytmu ewolucyjnego, szybszej zbieżności, jednakże może nieco zwiększyć tendencję do osiadania w maksimach lokalnych funkcji przystosowania. Najczęściej stosowanym przypadkiem szczególnym jest sukcesja elitarna, nieco mniej popularna jest metoda ze ściskiem. Usuwanie losowo wybranych osobników jest bardzo rzadko stosowane, Wadą sukcesji klasycznej jest to, że nowa populacja bazowa może zawierać osobniki gorsze niż populacja bieżąca (której najlepsze osobniki mogą zostać wyeliminowane w wyniku działania operatorów genetycznych). SUKCESJA ELITARNA Zachowywane są najlepsze chromosomy, przynajmniej jeden najlepszy, Przechodzą one bez zmian do nowej populacji. Wady: popadanie w maksima lokalne, można zapobiec zwiększając zasięg mutacji, skala osiadania w minimach jest zależna od wielkości elity, Zalety: nie gubi się najcenniejszych osobników, poprawa zbieżności. PRZYKŁAD SYMULACJI NR WG. MICHALEWICZA f ( x) xsin( 0 x).0 Poszukujemy x z przedziału <-,2> maksymalizującego funkcję f(x). Reprezentacja dokładność rozwiązania 6 miejsc po przecinku dla przedziału zmiennośći<-,2> chromosom musi mieć 22 bity np. 0000000000 0.63797 x=.85 f(x)=2.85 Parametry rozmiar populacji =50 prawdopodobieństwo krzyżowania, p c =0.25 prawdopodobieństwo mutacji, p m =0.0 źródło: Z. Michalewicz 4
Wyniki obliczeń (50 pokolenie) Pokolenie Funkcja przystosowania.44942 6 2.250003 8 2.250283 9 2.250284 0 2.250363 2 2.328077 39 2.34425 40 2.345087 5 2.738930 99 2.849246 37 2.85027 45 2.850227 v max = 000000000000 x max =.850773 f(x max ) = 2.850227297 PRZYKŁAD SYMULACJI NR 2 WG. MICHALEWICZA Maksymalizujemy funkcję f ( x, y) 2.5 xsin( 4 x) y sin( 20 y) przy ograniczeniach 3 4. x y 2. 5.8 źródło: Z. Michalewicz Parametry rozmiar populacji =20 prawdopodobieństwo krzyżowania, p c =0.25 prawdopodobieństwo mutacji, p m =0.0 Reprezentacja dokładność rozwiązania 4 miejsca po przecinku dla przedziału zmiennośći<-3,2.> chromosom musi mieć 8 bitów dla przedziału zmiennośći<4.,5.8> chromosom musi mieć 5 bitów łącznie 33 bity Populacja początkowa przykładowe osobniki v=00000000000000 v2=00000000000000000 najgorszy v5=000000000000 najlepszy f(v)=f(6.084492,5.652242)=26.09600 f(v2)=f(0.348434,4.380264)=7.58005 f(v5)=f(.089025,5.05455)=30.060205 całkowite dopasowanie populacji= 387.776822 5
Populacja po selekcji v,v4,v7,v,v9,v4,v5,v5,v,v3,v5,v9,v6,v8,v20, v,v0,v3,v5,v6 Osobniki do krzyżowania v2,v, v3,v8 poz=9 poz=20 Mutacja 33*20=660 czyli średnio 6.6 bita ulegnie mutacji Mutacji uległo 5 bitów: 3 bit w 4 chromosomie, 9 bit w chromosomie, 22 i 33 bit w 3 chromosomie, 8 bit w 9 chromosomie Wyniki po iteracji całkowite dopasowanie populacji=447.049688 najlepszy osobnik v=000000000000000 f(v)=f(.08862,4.743434)=33.35874 Wyniki po 000 iteracji całkowite dopasowanie populacji=524.22254 najlepszy osobnik v=000000000000000000000 f(v)=f(9.623693,4.42788)=35.477938 RODZAJE KODOWANIA ROZWIĄZAŃ Binarne Kod Graya Logarytmiczne Rzeczywiste Całkowitoliczbowe KOD GRAY A Naturalny kod binarny Kod Gray a 000 000 00 00 00 0 0 00 00 0 0 0 0 00 Charakteryzuje się tym, że dwa kolejne słowa kodowe różnią się tylko stanem jednego bitu. 6
KOD GRAY A Rozszerzanie kodu Graya o bit przeprowadza się wg następującego algorytmu: dopisujemy te same słowa kodowe, ale w odwrotnej kolejności (odbicie lustrzane), do początkowych wyrazów dopisujemy bit o wartości zero, natomiast do odbitych lustrzanie bit o wartości. KOD GRAY A Przykład generacji kodu Gray a (dla dwóch bitów) kod -bitowy 0 odbicie lustrzane 0 0 dopisanie zer i jedynek 00 0 0 2 0 3 KOD GRAY A Przykład generacji kodu Gray a (dla trzech bitów) kod -bitowy 00 0 0 odbicie lustrzane 00 0 0 0 0 00 dopisanie zer i jedynek 000 0 00 0 2 00 3 0 4 5 0 6 00 7 PRZEKSZTAŁCENIE BIN -> GRAY Liczbę naturalną binarną przesuwamy o bit w prawo i uzupełniamy 0, Dokonujemy operacji XOR na wejściowym i przesuniętym ciągu, 0 0 0 0 0 0 XOR 7 3 0 00 0 00 0 7
PRZEKSZTAŁCENIE GRAY -> BIN przyjmujemy pierwszą (najbardziej znaczącą) cyfrę kodu naturalnego równą pierwszej cyfrze kodu Graya, każdą kolejną cyfrę oblicz jako różnicę symetryczną (XOR) odpowiedniej cyfry kodu Graya i poprzednio wyznaczonej cyfry kodu naturalnego. 7 3 00 0 0 KODOWANIE LOGARYTMICZNE Stosowane w celu zmniejszenia długości chromosomu, do problemów z wieloma parametrami, o dużych przestrzeniach poszukiwań, [ bin] ( ) e ( ) [ bin] 0 [bin] 0 - wartość dziesiętna zakodowanego ciągu KODOWANIE LOGARYTMICZNE ( [00]= ( ) e ( [000]= ( ) e 0 ) [0] 0 0 ) [00] 0 e e 2 6 0.002478 7.389 KODOWANIE RZECZYWISTE chromosom kodowany jest jako wektor o tej samej długości co wektor rozwiązań, geny są liczbami rzeczywistymi z danej dziedziny, Za pomocą 5 bitów można zakodować wartości od -e 7 do e 7 (~-096 do ~096) w wielowymiarowych zadaniach wymagających dużej dokładności długość chromosomu może być bardzo duża, co może powodować słabe działanie algorytmu genetycznego. 8
ZALETY KODOWANIE RZECZYWISTEGO kodowanie rzeczywiste jest bardziej naturalne w przypadku większości rozwiązywanych problemów, przy kodowaniu rzeczywistym można osiągnąć bardziej dokładne wyniki niż przy kodowaniu binarnym, zastosowanie kodowania rzeczywistego pozwala objąć duże i/lub nieznane dziedziny poszukiwań, przy kodowaniu rzeczywistym łatwiej jest uwzględnić nietrywialne ograniczenia niż przy kodowaniu binarnym. WYKŁAD PRZYGOTOWANO NA PODSTAWIE J. Arabas Wykłady z algorytmów ewolucyjnych, WNT, 200. Z. Michalewicz Algorytmy genetyczne + struktury danych = programy ewolucyjne, WNT, 992. D. E. Goldberg Algorytmy genetyczne i ich zastosowania, WNT, 998. 9