Literatura Historia Obliczenia Naturalne - Paweł Paduch Politechnika Świętokrzyska 3 kwietnia 2014 Paweł Paduch Obliczenia Naturalne - 1 z 44
Plan wykładu Literatura Historia 1 Literatura Historia 2 Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se 3 Początki Algorytm Określanie wartości rang Operatory mutacji 4 Historia Kodowanie drzewiaste Mutacja Krzyżowanie Paweł Paduch Obliczenia Naturalne - 2 z 44
Literatura Literatura Historia Mariusz Flasiński - do sztucznej inteligencji, PWN, 2011 Jarosław Arabas - Wykłady z algorytmów ewolucyjnych, WNT, 2001 David Edward Goldberg - Algorytmy genetyczne i ich zastosowania, WNT, 2009 Zbigniew Michalewicz - Algorytmy genetyczne+struktury danych=programy ewolucyjne, WNT, 2003 T. D. Gwiazda - Algorytmy Genetyczne - kompendium, Tom 1 i 2, PWN, 2007 H.P. Schwefel - A Survey of Evolution Strategies, University of Dortmund, http://rain.ifmo.ru/ buzdalov/lab-2011/books/es-survey.pdf Paweł Paduch Obliczenia Naturalne - 3 z 44
Historia Literatura Historia Po raz pierwszy zastosowano strategie ewolucyjne w 1963 roku przez dwóch studentów Politechniki Berlińskiej Ingo Rechenberga i Hans-Paula Schwefela. Brali oni udział w badaniach nad poszukiwaniem optymalnych kształtów ciał w przepływach. Pierwsze strategie można uznać za programy ewolucyjne używające reprezentacji zmiennopozycyjnej oraz mutacją (zwaną perturbacją) jako jedynym operatorem. Paweł Paduch Obliczenia Naturalne - 4 z 44
Podobieństwa Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se tylko trochę podobne są do algorytmów genetycznych: Zarówno SE jak i AG opierają się na populacji potencjalnych rozwiązań. W obu wykorzystuje się selekcję opierającą się na przeżyciu bardziej przystosowanych osobników. Paweł Paduch Obliczenia Naturalne - 5 z 44
Różnice Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se SE używają wektorów zmiennopozycyjnych, AG wektorów binarnych. SE procedura selekcji jest deterministyczna a AG probabilistyczna. SE stosuje odwrotną kolejność selekcji i rekombinacji, selekcja jest po rekombinacji. Parametry reprodukcji (prawdopodobieństwo krzyżowania i mutacji) zwykle są stałe w SE parametry są samodostrajalne Paweł Paduch Obliczenia Naturalne - 6 z 44
Strategia Ewolucyjna (1+1)-SE Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se Mechanizm adaptacji zasięgu mutacji - reguła 1/5 sukcesów Przetwarzany jest tylko jeden chromosom bazowy X t W każdym kroku generowany jest nowy chromosom Y t, będący wynikiem mutacji X t Potomek jest porównywany z rodzicem i do następnego pokolenia przechodzi ten o lepszym przystosowaniu. Algorytm 1 Strategia 1+1 1: procedure SE 1 + 1 2: t 0 3: inicjalizacja X 0 4: ocena X 0 5: while (warunek stopu niespełniony) do 6: Y t mutacja X t 7: ocena Y t 8: if (f (Y t ) > f (X t )) then 9: X t+1 Y t 10: else 11: X t+1 X t 12: end if 13: t t + 1 14: end while 15: end procedure Paweł Paduch Obliczenia Naturalne - 7 z 44
Strategia Ewolucyjna (1+1)-SE Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se W strategii (1+1) kluczową rolę w działaniu odgrywa sposób mutacji. Dodajemy losową (rozkładem normalnym) modyfikację do każdego genu chromosomu X t Y t = X t + N(0, σ) Gdzie N(0, σ) jest wektorem liczb wylosowanych z rozkładu normalnego o wartości oczekiwanej 0 i odchyleniach standardowych podanych wektorem σ. Losowanie jest wykonywane niezależnie dla każdej wartości. Funkcja gęstości rozkładu prawdopodobieństwa normalnego 0.3 0.2 0.1 σ = 1 σ = 1.5 σ = 3 4 2 2 4 Paweł Paduch Obliczenia Naturalne - 8 z 44
Twierdzenie o zbieżności Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se Jeżeli σ nie zmienia się w procesie ewolucyjnym a składniki jego są jednakowe (σ = (σ, σ,..., σ)), to można udowodnić poniższe twierdzenie: Dla σ > 0 i regularnego zadania optymalizacji z f opt > (przy minimalizacji) lub f opt < (przy maksymalizacji) zachodzi: { } p lim f t (xt ) = f opt = 1 Czyli globalne optimum zostanie na pewno znalezione, jeżeli będziemy przeszukiwać odpowiednio długo. Niestety nie wiemy nic o szybkości zbieżności (ilorazu odległości przebytej w kierunku optimum i liczby pokoleń, przy której uzyskano tę odległość). Paweł Paduch Obliczenia Naturalne - 9 z 44
Reguła 1/5 sukcesów Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se W celu zoptymalizowania szybkości zbieżności Rechenberg zaproponował regułę 1/5 sukcesu. Stosunek ϕ udanych mutacji do wszystkich mutacji powinien wynosić 1/5. Jeżeli ϕ jest większe od 1/5, to zwiększ wariancję operatora mutacji, w odwrotnym przypadku zmniejsz ją. c d σ t, dla ϕ(k) < 1/5, σ t+1 = c i σ t, dla ϕ(k) > 1/5, σ t, dla p s (k) = 1/5 ϕ(k) - współczynnik sukcesów operatora mutacji w poprzednich k pokoleniach, c i > 1, c d < 1 współczynniki wzrostu lub zmniejszania wariacji mutacji. Schwefel eksperymentalnie dobrał c d = 0, 82, c i = 1/c d = 1, 22. Paweł Paduch Obliczenia Naturalne - 10 z 44
Strategia (1+λ)-SE Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se Jest to strategia będąca modyfikacją (1+1)-SE. Jeden rodzic tworzy λ potomków. Paweł Paduch Obliczenia Naturalne - 11 z 44
Strategia (µ+1)-se Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se Jest to SE wieloelementowa w której: Pokolenie składające się z µ osobników, tworzy jednego potomka. Z pokolenia µ + 1 osobników usuwa się najsłabszego Wszystkie osobniki w populacji mają te same prawdopodobieństwa łączenia się w pary Wprowadzono możliwość rekombinacji (w dziedzinie AG zwanego jednorodnym krzyżowaniem) - omówione dalej. Odchylenie standardowe σ oraz mutacja pozostają bez zmian. Paweł Paduch Obliczenia Naturalne - 12 z 44
Strategia Ewolucyjna (µ + λ)-se Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se Jest nie tylko uogólnieniem strategii (µ+1)-se, ale wprowadza nowe elementy. Oprócz krzyżowania wprowadzono mechanizm samoregulacji parametru σ zastępując regułę 1/5. Parametr σ jest teraz elementem osobnika i także podlega ewolucji. Algorytm 2 Strategia (µ + λ)-se 1: procedure (µ + λ)-se 2: t 0 3: inicjalizacja P t 4: ocena P t 5: while (warunek stopu niespełniony) do 6: T t reprodukcja P t 7: O t krzyżowanie i mutacja T t 8: ocena O t 9: P t+1 µ najlepszych z P t O t 10: t t + 1 11: end while 12: end procedure Paweł Paduch Obliczenia Naturalne - 13 z 44
Rekombinacja dyskretna Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se Przy operatorze rekombinacji dyskretnej dwoje losowo wybranych rodziców (x 1, σ 1 ) = ((x 1 1,..., x 1 n), (σ 1 1,..., σ 1 n)) tworzą potomka (x 2, σ 2 ) = ((x 2 1,..., x 2 n), (σ 2 1,..., σ 2 n)) (x, σ) = ((x q 1 qn 1,..., x n ), (σ q 1 1,..., σqn n )) gdzie q i = 1 lub q i = 2 z jednakowym prawdopodobieństwem dla wszystkich i = 1,..., n Paweł Paduch Obliczenia Naturalne - 14 z 44
Rekombinacja przez uśrednienie Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se Przy operatorze rekombinacji przez uśrednienie dwoje losowo wybranych rodziców tworzą potomka (x, σ) = (x 1, σ 1 ) = ((x 1 1,..., x 1 n), (σ 1 1,..., σ 1 n)) (x 2, σ 2 ) = ((x 2 1,..., x 2 n), (σ 2 1,..., σ 2 n)) (( x 1 1 + x 2 1 2,..., x 1 n + x 2 n 2 ), ( σ 1 1 + σ 2 1 2,..., σ1 n + σ 2 n 2 )) Czyli wybieramy wektory będące średnią wektorów σ 1 i σ 2 oraz x 1 i x 2. Paweł Paduch Obliczenia Naturalne - 15 z 44
Rekombinacja przez uśrednienie Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se Uogólniona metoda rekombinacji przez uśrednianie dla dwoje losowo wybranych rodziców uwzględnia losowy współczynnik a = ξ U(0,1) wylosowany z rozkładu jednostajnego. Potomkowie powstają z sumowania części rodziców. x 1 = ax 1 + (1 a)x 2 x 2 = ax 2 + (1 a)x 1 σ 1 = aσ 1 + (1 a)σ 2 σ 2 = aσ 2 + (1 a)σ 1 W AG takie krzyżowanie nazywa się gwarantowanym średnim krzyżowaniem zaś w SE natychmiastowym krzyżowaniem Paweł Paduch Obliczenia Naturalne - 16 z 44
Mutacja Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se Na nowo otrzymanym potomku (x, σ) stosujemy mutację i powstaje (x, σ ) gdzie: σ = σ e N(0, σ) x = x + N(0, σ ) gdzie σ jest parametrem metody. Paweł Paduch Obliczenia Naturalne - 17 z 44
Mutacja Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se W celu poprawienia szybkości zbieżności SE Schwefel wprowadził dodatkowy parametr sterujący Θ, związany ze skorelowaniem mutacji. Teraz jeden osobnik jest reprezentowany przez 3 wektory: (x, σ, Θ) Rekombinacja jest podobna do już omawianej, mutacja tworzy potomka (x, σ, Θ ) gdzie: σ = σ e N(0, σ) Θ = Θ + N(0, Θ) x = x + C(0, σ, Θ ) Gdzie Θ jest dodatkowym parametrem metody, a C(o, σ, Θ ) oznacza wektor niezależnych losowych liczb gaussowskich z zerową średnią. Paweł Paduch Obliczenia Naturalne - 18 z 44
Strategia (µ, λ)-se Strategia (1+1)-SE Strategia (µ+1)-se Strategia (µ + λ)-se Strategia (µ, λ)-se W strategii (µ + λ)-se osobnik o wyróżniającej się wartości funkcji przystosowania ale ze złym parametrem σ mógł zalegać zbyt długo. Modyfikacja w strategii (µ, λ)-se polega na tym, że nowa populacja tworzona jest wyłącznie z λ osobników potomnych populacji O t, a więc stare pokolenie jest usuwane. Algorytm 3 Strategia (µ, λ)-se 1: procedure (µ, λ)-se 2: t 0 3: inicjalizacja P t 4: ocena P t 5: while (warunek stopu niespełniony) do 6: T t reprodukcja P t 7: O t krzyżowanie i mutacja T t 8: ocena O t 9: P t+1 µ najlepszych z O t 10: t t + 1 11: end while 12: end procedure Paweł Paduch Obliczenia Naturalne - 19 z 44
Różnice Początki Algorytm Określanie wartości rang Operatory mutacji Różnica pomiędzy AG i SE a programowaniem genetycznym jest taka, że w tych pierwszych punkty poszukiwania przestrzeni rozwiązań odpowiadają osobnikom populacji. W programowaniu ewolucyjnym osobniki pochodzą jakby z osobnych gatunków, stad stosowanie operatora krzyżowania jest bezsensowne (nie krzyżujemy różnych gatunków). Paweł Paduch Obliczenia Naturalne - 20 z 44
Początki Początki Algorytm Określanie wartości rang Operatory mutacji Lawrence Fogel w 1966 opracował pierwsze metody programowania ewolucyjnego do rozwoju sztucznej inteligencji. Rozważał problem odkrywania gramatyki nieznanego języka. Zestaw jego symboli i przykłady wyrażeń syntaktycznie poprawnych były znane. Gramatyka była modelowana za pomocą automatu skończonego. Zbiór stanów, funkcja przejść i funkcja wyjść były przedmiotem poszukiwań. Liczba prawidłowych klasyfikacji (poprawnych syntaktycznie) wyrażeń poznawanego języka była funkcją przystosowania osobnika (automatu). Paweł Paduch Obliczenia Naturalne - 21 z 44
Automat skończony Początki Algorytm Określanie wartości rang Operatory mutacji 0/a Stany to węzły Krawędzie to przejścia Przy przejściach podane są dwa symbole x/y gdzie: x symbol wejściowy wprowadzany do automatu y symbol wyjściowy wygenerowany przez automat 1 0/a 4 0/b 1/a 2 0/a 1/b 1/a 3 1/a Paweł Paduch Obliczenia Naturalne - 22 z 44
Ewolucja Automatu Początki Algorytm Określanie wartości rang Operatory mutacji Automat podlega ewolucji polegającej jedynie na mutacji. Fogel rozważał 5 rodzajów mutacji: dodanie stanu, usunięcie stanu, zmiana stanu początkowego, zmiana funkcji wyjść, zmiana funkcji przejść. Pomimo obiecujących wyników prac programowanie ewolucyjne w pierwotnej formie nie stało się zbyt popularne aż do... następnego pokolenia. Paweł Paduch Obliczenia Naturalne - 23 z 44
Nowe podejście Początki Algorytm Określanie wartości rang Operatory mutacji Ponad 20 lat później, syn Fogela, David rozwinął programowanie ewolucyjne dzięki pewnym zmianom upodabniając PE do strategii ewolucyjnych. zmiana dziedziny zastosowań - optymalizacja numeryczna wprowadzenie reprezentacji rzeczywistoliczbowej dostosowanie do niej operatora mutacji wzbogacenie genotypu osobnika o chromosom, zawierający wektor σ standardowych odchyleń wprowadzenie mechanizmu modyfikacji zasięgu σ. zamiana selekcji rankingowej na selekcje turniejową Paweł Paduch Obliczenia Naturalne - 24 z 44
Algorytm Początki Algorytm Określanie wartości rang Operatory mutacji Algorytm 4 1: procedure Programowanie Ewolucyjne 2: t 0 3: inicjalizacja P t 4: ocena P t 5: while (warunek stopu niespełniony) do 6: O t 0 7: for all (X P t ) do 8: Y mutacja X 9: O t O t {Y} 10: end for 11: ocena O t 12: for all (X P t O t ) do 13: wyznacz r(x) 14: end for 15: P t+1 wybór najlepszych z O t P t 16: t t + 1 17: end while 18: end procedure Paweł Paduch Obliczenia Naturalne - 25 z 44
Algorytm Początki Algorytm Określanie wartości rang Operatory mutacji Każdy osobnik tworzy jednego potomka Każdy potomek jest poddawany mutacji Obliczana jest wartość przystosowania nowych osobników Tworzona jest nowa populacja bazowa dla każdego osobnika (z obu populacji) określana jest ranga wybieramy do nowej populacji te z najwyższą rangą Paweł Paduch Obliczenia Naturalne - 26 z 44
Określanie wartości rang Początki Algorytm Określanie wartości rang Operatory mutacji Dla każdego osobnika X losujemy q osobników o populacji Q (P t O t \ {X}) Ranga osobnika r(x) jest równa liczbie osobników z Q o przystosowaniu mniejszym od niego. r(x) = {Y Q f (X) > f (Y)} Osobniki o największej wartości przystosowania w P t O t z definicji mają rangę równą q Paweł Paduch Obliczenia Naturalne - 27 z 44
Brak adaptacji Początki Algorytm Określanie wartości rang Operatory mutacji Mutacja polega na dodaniu do genotypu osobnika wartości zmiennej losowej o wielowymiarowym nieskorelowanym rozkładzie normalnym X i = X i + σ i ξ N(0,1),i gdzie współczynniki σ i są parametrami algorytmu dla każdego genu z osobna lub σ i = σ dla każdego i. Paweł Paduch Obliczenia Naturalne - 28 z 44
Początki Algorytm Określanie wartości rang Operatory mutacji Adaptacja przez śledzenie wartości funkcji przystosowania Uzależniamy stopień mutacji osobnika od wartości funkcji przystosowania. Nowy gen jest tworzony w następujący sposób: X i = X i + β(f max f (X)) + γ ξ N(0,1),i β jest współczynnikiem szybkości zmian, γ jest parametrem ograniczającym od dołu wartość wariancji zmiennej losowej wykorzystywanej podczas mutacji, f max jest oszacowaniem wartości funkcji przystosowania w maksimum globalnym. Im osobnik bardziej zbliża się do szacowanej wartości maksimum globalnego tym stopień jego mutacji jest mniejszy. Paweł Paduch Obliczenia Naturalne - 29 z 44
Samoczynna adaptacja zasięgu Początki Algorytm Określanie wartości rang Operatory mutacji Samoczynna adaptacja wartości odchyleń standardowych σ jest podobna do tej w strategiach ewolucyjnych. Wartości σ i zapisane są w osobniku i też podlegają ewolucji. Modyfikujemy wartości genów odpowiadających przystosowaniu osobnika Następnie wartości odchyleń: σ i = X i = X i + σ i ξ N(0,1),1 ( ) min σmin 2, (σ2 i + ζξ N(0,1),i ) ζ jest współczynnikiem sterującym intensywnością zmian σ i. Paweł Paduch Obliczenia Naturalne - 30 z 44
Historia Historia Kodowanie drzewiaste Mutacja Krzyżowanie powstało jako szczególna odmiana algorytmów genetycznych o mocno rozwiniętych strukturach danych. Chciano by kody programów same się generowały gdy znane były kryteria oceny prawidłowości działania. Używano języka LISP, w którym program i dane reprezentowane są w postaci drzewa. Kodowanie binarne zastąpiono drzewiastym. W węzłach znajdują się symbole pewnego alfabetu lub wartości liczbowe ciągłe jak i dyskretne, a także, stałe, zmienne i funkcje. Paweł Paduch Obliczenia Naturalne - 31 z 44
Kodowanie drzewiaste Historia Kodowanie drzewiaste Mutacja Krzyżowanie Chromosom jest w formie drzewa składającego się z węzłów z zapisaną informacją i krawędzi opisujących wzajemne relacje. Jeżeli krawędź jest skierowana od węzła A do B to A jest nadrzędnym, zaś B podrzędnym. Liście drzewa to węzły terminalne reszta to węzły pośrednie. Węzeł bez nadrzędnego to korzeń drzewa. W węzłach terminalnych znajdują się elementy atomiczne - o niepodzielnej strukturze wewnętrznej. Paweł Paduch Obliczenia Naturalne - 32 z 44
Kodowanie drzewiaste Historia Kodowanie drzewiaste Mutacja Krzyżowanie Węzły atomiczne zawierają, stałe, zmienne lub funkcje bezparametrowe Węzły pośrednie to odpowiedniki funkcji lub operatorów przyjmujących jeden lub więcej argumentów i zwracających dokładnie jedną wartość. Argumenty mogą pochodzić jako wartości z węzłów terminalnych albo z innych funkcji. Paweł Paduch Obliczenia Naturalne - 33 z 44
Przykład Historia Kodowanie drzewiaste Mutacja Krzyżowanie (defun pierwiastki (a b c) setq ( (setq (delta -( *(b b) *(4 * (a c))))) (if<(delta 0) (setq n 0) ) (if=(delta 0) delta - ( (setq n 1) (setq x1 ( /(-b)(* (2 a)))) ) ) * (if>(delta 0) ( (setq n0) (setq x1 (x /((-( -b sqrt(delta) )(* (2 a)))))) (setq x2 (x /((+( -b sqrt(delta) )(* (2 a)))))) ) ) b b ) ) * 4 * a c Paweł Paduch Obliczenia Naturalne - 34 z 44
Mutacje Historia Kodowanie drzewiaste Mutacja Krzyżowanie Drzewa mogą podlegać mutacjom np: zmiana zawartości węzła terminalnego, zamiana węzła terminalnego na pośredni z losowo wygenerowanym poddrzewem, zamiana węzła pośredniego na terminalny, zamiana węzeł pośredni ze swoim poddrzewem na inny z losowo wygenerowanym poddrzewem, reorganizacja poddrzew węzła pośredniego. Drzewa mogą się rozrastać, zmniejszać lub zmieniać kształt. Paweł Paduch Obliczenia Naturalne - 35 z 44
Mutacja 1 Historia Kodowanie drzewiaste Mutacja Krzyżowanie + + x y x 25 zmiana zawartości węzła terminalnego Paweł Paduch Obliczenia Naturalne - 36 z 44
Mutacja 2 Historia Kodowanie drzewiaste Mutacja Krzyżowanie * * x y x + y x Zamiana węzła terminalnego na korzeń losowego poddrzewa Paweł Paduch Obliczenia Naturalne - 37 z 44
Mutacja 3 Historia Kodowanie drzewiaste Mutacja Krzyżowanie + + x * x 4 y 22 Zamiana korzenia poddrzewa na węzeł terminalny Paweł Paduch Obliczenia Naturalne - 38 z 44
Mutacja 4 Historia Kodowanie drzewiaste Mutacja Krzyżowanie * * x + x cos y x / x 4 Zmiana poddrzewa na inne Paweł Paduch Obliczenia Naturalne - 39 z 44
Mutacja 5 Historia Kodowanie drzewiaste Mutacja Krzyżowanie / / sin cos cos sin y / / y x 4 x 4 Reorganizacja poddrzew Paweł Paduch Obliczenia Naturalne - 40 z 44
Krzyżowanie Historia Kodowanie drzewiaste Mutacja Krzyżowanie / / + + - * a b - - 2 a b a Krzyżowanie struktur drzewiastych polega na losowym wybraniu po jednym węźle u każdego z 2 rodziców... Paweł Paduch Obliczenia Naturalne - 41 z 44
Krzyżowanie Historia Kodowanie drzewiaste Mutacja Krzyżowanie / / + - + * a b - - 2 a a b... oraz zamienieniu miejscami tych węzłów wraz całymi poddrzewami tak jak widać to na rysunku powyżej. Paweł Paduch Obliczenia Naturalne - 42 z 44
Pytania Historia Kodowanie drzewiaste Mutacja Krzyżowanie? Paweł Paduch Obliczenia Naturalne - 43 z 44
koniec Historia Kodowanie drzewiaste Mutacja Krzyżowanie Dziękuję Państwu za uwagę. Paweł Paduch Obliczenia Naturalne - 44 z 44