Bazy danych
Transkrypt
Bazy danych
2011-03-09 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 ETAPY KRZYŻOWANIA Wymiana materiału genetycznego między dwoma osobnikami, Postaje dwóch nowych potomków, którzy zastępują rodziców, Wybór par chromosomów z puli rodzicielskiej w sposób losowy z prawdopodobieństwem krzyżowania pc (najczęściej z przedziału 0.5..1), jeśli pc =0.5 to 50% osobników ulegnie krzyżowaniu, Losowanie punktu (lub punktów) krzyżowania jako liczby z przedziału 1..L-1, gdzie L - to liczba genów, Utworzenie potomków poprzez wymianę części genów, PRZED 0010010 1101110 PO 0010110 1101010 1 2011-03-09 ETAPY KRZYŻOWANIA - IMPLEMENTACJA Zakładamy pc, Dla każdego chromosomu losujemy liczbę r z przedziału <0,1>, krzyżowaniu ulegają tylko te osobniki dla których r<pc, 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 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 0101011101010 0 – z 1 rodzica, 1 – z 2 rodzica, 0111101101110 1000010010001 RODZAJE KRZYŻOWANIA Rodzice 0010100101110 1101101101110 Jednopunktowe (3 gen) 0011101101110 1100100101110 Dwupunktowe (3,6 gen) 0011100101110 1100101101110 Wielopunktowe (3,6,9 gen) 0011100101110 1100101101110 OPERATOR MUTACJI Mniej istotna rola w AG, wykazywano, że częstość mutacji potrzebna do uzyskania dobrych wyników to 1:1000 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 pm (z przedziału 0..0.1), Implementacja: dla każdego genu losowana jest liczba r z przedziału <0,1> i mutowane są te geny dla których r<pm. 2 2011-03-09 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, 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. 001100111010 001101110010 SUKCESJA - RODZAJE 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 < 1. Część osobników starej populacji bazowej należy więc usunąć, aby zrobić miejsce dla potomstwa. 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 2011-03-09 SUKCESJA - CECHY SUKCESJA ELITARNA 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). PRZYKŁAD SYMULACJI NR 1 – WG. MICHALEWICZA f ( x) 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. ETAPY ALGORYTMU PRZYKŁADOWEGO x sin( 10 x) 1.0 Reprezentacja dokładność rozwiązania – 6 miejsc po przecinku dla przedziału zmiennośći<-1,2> chromosom musi mieć 22 bity np. 1000101110110101000111 0.637197 Parametry rozmiar populacji =50 prawdopodobieństwo krzyżowania, pc=0.25 prawdopodobieństwo mutacji, pm =0.01 Poszukujemy x z przedziału <-1,2> maksymalizującego funkcję f(x). x=1.85 f(x)=2.85 źródło: Z. Michalewicz 4 2011-03-09 ETAPY ALGORYTMU PRZYKŁADOWEGO Wyniki obliczeń (150 pokolenie) Pokolenie Funkcja przystosowania 1 1.441942 6 2.250003 8 2.250283 9 2.250284 10 2.250363 12 2.328077 39 2.344251 40 2.345087 51 2.738930 99 2.849246 137 2.850217 145 2.850227 PRZYKŁAD SYMULACJI NR 2 – WG. MICHALEWICZA Maksymalizujemy funkcję f ( x, y ) 21.5 x sin( 4 x) y sin( 20 y ) przy ograniczeniach vmax = 1111001101000100000101 xmax = 1.850773 f(xmax) = 2.85022729171 3 x 12.1 4 .1 y 5 .8 źródło: Z. Michalewicz ETAPY ALGORYTMU PRZYKŁADOWEGO ETAPY ALGORYTMU PRZYKŁADOWEGO Parametry rozmiar populacji =20 prawdopodobieństwo krzyżowania, pc=0.25 prawdopodobieństwo mutacji, pm =0.01 Reprezentacja dokładność rozwiązania – 4 miejsca po przecinku dla przedziału zmiennośći<-3,12.1> chromosom musi mieć 18 bitów dla przedziału zmiennośći<4.1,5.8> chromosom musi mieć 15 bitów łącznie 33 bity Populacja początkowa przykładowe osobniki v1=100110100000001111111010011011111 v2=111000100100110111001010100011010 v15=111011101101110000100011111011110 najgorszy najlepszy f(v1)=f(6.084492,5.652242)=26.019600 f(v2)=f(10.348434,4.380264)=7.580015 f(v15)=f(11.089025,5.054515)=30.060205 całkowite dopasowanie populacji= 387.776822 5 2011-03-09 ETAPY ALGORYTMU PRZYKŁADOWEGO ETAPY ALGORYTMU PRZYKŁADOWEGO Populacja po selekcji v11,v4,v7,v11,v19,v4,v15,v5,v11,v3,v15,v9,v6,v8,v20, v1,v10,v13,v15,v16 Osobniki do krzyżowania v2,v11, v13,v18 poz=9 poz=20 Mutacja 33*20=660 czyli średnio 6.6 bita ulegnie mutacji Mutacji uległo 5 bitów: 13 bit w 4 chromosomie, 19 bit w 11 chromosomie, 22 i 33 bit w 13 chromosomie, 8 bit w 19 chromosomie RODZAJE KODOWANIA ROZWIĄZAŃ KOD GRAY’A Binarne Kod Graya Logarytmiczne Rzeczywiste Całkowitoliczbowe Wyniki po 1 iteracji całkowite dopasowanie populacji=447.049688 najlepszy osobnik v11=111011101101101001011000001110010 f(v11)=f(11.088621,4.743434)=33.351874 Wyniki po 1000 iteracji całkowite dopasowanie populacji=524.122254 najlepszy osobnik v11=110101100000010010001100010110000 f(v11)=f(9.623693,4.427881)=35.477938 Naturalny kod binarny Kod Gray’a 000 000 001 001 010 011 011 010 100 110 101 111 110 101 111 100 Charakteryzuje się tym, że dwa kolejne słowa kodowe różnią się tylko stanem jednego bitu. 6 2011-03-09 KOD GRAY’A KOD GRAY’A Przykład generacji kodu Gray’a (dla dwóch bitów) Rozszerzanie kodu Graya o 1 bit przeprowadza się wg następującego algorytmu: kod 1-bitowy 0 1 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 1. KOD GRAY’A 00 01 11 10 dopisanie zer i jedynek 0 1 1 0 00 01 11 10 0 1 2 3 PRZEKSZTAŁCENIE BIN -> GRAY Przykład generacji kodu Gray’a (dla trzech bitów) kod 1-bitowy odbicie lustrzane odbicie lustrzane dopisanie zer i jedynek 00 01 11 10 10 11 01 00 000 001 011 010 110 111 101 100 0 1 2 3 4 5 6 7 Liczbę naturalną binarną przesuwamy o 1 bit w prawo i uzupełniamy 0, Dokonujemy operacji XOR na wejściowym i przesuniętym ciągu, XOR 0 0 0 0 1 1 1 0 1 1 1 0 7 13 111 011 100 1101 0110 1011 7 2011-03-09 PRZEKSZTAŁCENIE GRAY -> BIN KODOWANIE LOGARYTMICZNE 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 100 111 [ bin] ( 1) e( 13 1011 1101 [10110]= ( 1) e [01010]= ( 1)1 e( 1)0 [ 010]10 e 6 e2 1) [bin]10 [bin ]10 - wartość dziesiętna zakodowanego ciągu KODOWANIE LOGARYTMICZNE 0 ( 1)1[110]10 Stosowane w celu zmniejszenia długości chromosomu, do problemów z wieloma parametrami, o dużych przestrzeniach poszukiwań, 0.002478 KODOWANIE RZECZYWISTE chromosom kodowany jest jako wektor o tej samej długości co wektor rozwiązań, geny są liczbami rzeczywistymi z danej dziedziny, 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. 7.389 Za pomocą 5 bitów można zakodować wartości od -e7 do e7 (~-1096 do ~1096) 8 2011-03-09 ZALETY KODOWANIE RZECZYWISTEGO W YKŁAD PRZYGOTOWANO NA PODSTAWIE 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. J. Arabas „Wykłady z algorytmów ewolucyjnych”, WNT, 2001. Z. Michalewicz „Algorytmy genetyczne + struktury danych = programy ewolucyjne”, WNT, 1992. D. E. Goldberg „ Algorytmy genetyczne i ich zastosowania”, WNT, 1998. 9