Obliczenia Naturalne - Strategie ewolucyjne
Transkrypt
Obliczenia Naturalne - Strategie ewolucyjne
Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Literatura Historia Obliczenia Naturalne - Strategie ewolucyjne Paweł Paduch Politechnika Świętokrzyska 3 kwietnia 2014 Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 1 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Literatura Historia Plan wykładu 1 Wstęp Literatura Historia 2 Strategie ewolucyjne Strategia (1+1)-SE Strategia (µ+1)-SE Strategia (µ + λ)-SE Strategia (µ, λ)-SE 3 Programowanie ewolucyjne Początki Algorytm Określanie wartości rang Operatory mutacji 4 Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 2 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Literatura Historia Literatura Mariusz Flasiński - Wstęp 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 - Strategie ewolucyjne 3 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Literatura Historia 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 - Strategie ewolucyjne 4 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Podobieństwa Strategie ewolucyjne 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 - Strategie ewolucyjne 5 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Różnice 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 - Strategie ewolucyjne 6 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Strategia Ewolucyjna (1+1)-SE Mechanizm adaptacji zasięgu mutacji - reguła 1/5 sukcesów Przetwarzany jest tylko jeden chromosom bazowy Xt W każdym kroku generowany jest nowy chromosom Yt , będący wynikiem mutacji Xt Potomek jest porównywany z rodzicem i do następnego pokolenia przechodzi ten o lepszym przystosowaniu. Paweł Paduch Algorytm 1 Strategia 1+1 1: procedure SE 1 + 1 2: t←0 3: inicjalizacja X0 4: ocena X0 5: while (warunek stopu niespełniony) do 6: Yt ← mutacja Xt 7: ocena Yt 8: if (f (Yt ) > f (Xt )) then 9: Xt+1 ← Y t 10: else 11: Xt+1 ← X t 12: end if 13: t ←t+1 14: end while 15: end procedure Obliczenia Naturalne - Strategie ewolucyjne 7 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Strategia Ewolucyjna (1+1)-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 Xt Yt = Xt + 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. σ = 1 Funkcja gęstości rozkładu prawdopodobieństwa normalnego −4 Paweł Paduch 0.3 σ = 1.5 σ = 3 0.2 0.1 −2 2 4 Obliczenia Naturalne - Strategie ewolucyjne 8 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Twierdzenie o zbieżności 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 fopt > −∞ (przy minimalizacji) lub fopt < ∞ (przy maksymalizacji) zachodzi: p n o lim f (xt ) = fopt = 1 t→∞ 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 - Strategie ewolucyjne 9 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Reguła 1/5 sukcesów 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ą.” σ t+1 = t cd · σ , ci · σ t , σt , dla ϕ(k) < 1/5, dla ϕ(k) > 1/5, dla ps (k) = 1/5 ϕ(k) - współczynnik sukcesów operatora mutacji w poprzednich k pokoleniach, ci > 1, cd < 1 współczynniki wzrostu lub zmniejszania wariacji mutacji. Schwefel eksperymentalnie dobrał cd = 0, 82, ci = 1/cd = 1, 22. Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 10 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Strategia (1+λ)-SE Jest to strategia będąca modyfikacją (1+1)-SE. Jeden rodzic tworzy λ potomków. Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 11 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Strategia (µ+1)-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 - Strategie ewolucyjne 12 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Strategia Ewolucyjna (µ + λ)-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. Paweł Paduch Algorytm 2 Strategia (µ + λ)-SE 1: procedure (µ + λ)-SE 2: t←0 3: inicjalizacja Pt 4: ocena Pt 5: while (warunek stopu niespełniony) do 6: Tt ← reprodukcja Pt 7: Ot ← krzyżowanie i mutacja Tt 8: ocena Ot 9: Pt+1 ← µ najlepszych z Pt ∪ Ot 10: t ←t+1 11: end while 12: end procedure Obliczenia Naturalne - Strategie ewolucyjne 13 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Rekombinacja dyskretna Przy operatorze rekombinacji dyskretnej dwoje losowo wybranych rodziców (x1 , σ 1 ) = ((x11 , ..., xn1 ), (σ11 , ..., σn1 )) (x2 , σ 2 ) = ((x12 , ..., xn2 ), (σ12 , ..., σn2 )) tworzą potomka (x, σ) = ((x1q1 , ..., xnqn ), (σ1q1 , ..., σnqn )) gdzie qi = 1 lub qi = 2 z jednakowym prawdopodobieństwem dla wszystkich i = 1, ..., n Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 14 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Rekombinacja przez uśrednienie Przy operatorze rekombinacji przez uśrednienie dwoje losowo wybranych rodziców (x1 , σ 1 ) = ((x11 , ..., xn1 ), (σ11 , ..., σn1 )) (x2 , σ 2 ) = ((x12 , ..., xn2 ), (σ12 , ..., σn2 )) tworzą potomka (x, σ) = x11 + x12 x 1 + xn2 , ..., n 2 2 ! σ11 + σ12 σ 1 + σn2 , , ..., n 2 2 !! Czyli wybieramy wektory będące średnią wektorów σ 1 i σ 2 oraz x1 i x2 . Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 15 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Rekombinacja przez uśrednienie 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. x01 = ax1 + (1 − a)x2 x02 = ax2 + (1 − a)x1 σ 01 = aσ 1 + (1 − a)σ 2 σ 02 = 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 - Strategie ewolucyjne 16 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Mutacja Na nowo otrzymanym potomku (x, σ) stosujemy mutację i powstaje (x0 , σ 0 ) gdzie: σ 0 = σ · e N(0,∆σ) x0 = x + N(0, σ 0 ) gdzie ∆σ jest parametrem metody. Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 17 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-SE Mutacja 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 (x0 , σ 0 , Θ0 ) gdzie: σ 0 = σ · e N(0,∆σ) Θ0 = Θ + N(0, ∆Θ) x0 = x + C (0, σ 0 , Θ0 ) Gdzie ∆Θ jest dodatkowym parametrem metody, a C (o, σ 0 , Θ0 ) oznacza wektor niezależnych losowych liczb gaussowskich z zerową średnią. Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 18 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Strategia Strategia Strategia Strategia (1+1)-SE (µ+1)-SE (µ + λ)-SE (µ, λ)-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 Ot , a więc stare pokolenie jest usuwane. Paweł Paduch Algorytm 3 Strategia (µ, λ)-SE 1: procedure (µ, λ)-SE 2: t←0 3: inicjalizacja Pt 4: ocena Pt 5: while (warunek stopu niespełniony) do 6: Tt ← reprodukcja Pt 7: Ot ← krzyżowanie i mutacja Tt 8: ocena Ot 9: Pt+1 ← µ najlepszych z Ot 10: t ←t+1 11: end while 12: end procedure Obliczenia Naturalne - Strategie ewolucyjne 19 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Początki Algorytm Określanie wartości rang Operatory mutacji Różnice 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 - Strategie ewolucyjne 20 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Początki Algorytm Określanie wartości rang Operatory mutacji Początki 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 - Strategie ewolucyjne 21 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Początki Algorytm Określanie wartości rang Operatory mutacji Automat skończony 0/a 1 Stany to węzły 0/a Krawędzie to przejścia Przy przejściach podane są dwa symbole x/y gdzie: 4 x symbol wejściowy wprowadzany do automatu y symbol wyjściowy wygenerowany przez automat 1/a 0/b 2 0/a 1/b 1/a 3 1/a Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 22 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Początki Algorytm Określanie wartości rang Operatory mutacji Ewolucja Automatu 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 - Strategie ewolucyjne 23 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Początki Algorytm Określanie wartości rang Operatory mutacji Nowe podejście 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 - Strategie ewolucyjne 24 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Początki Algorytm Określanie wartości rang Operatory mutacji Algorytm Algorytm 4 Programowanie ewolucyjne 1: procedure Programowanie Ewolucyjne 2: t←0 3: inicjalizacja Pt 4: ocena Pt 5: while (warunek stopu niespełniony) do 6: Ot ← 0 7: for all (X ∈ Pt ) do 8: Y ← mutacja X 9: Ot ← Ot ∪ {Y} 10: end for 11: ocena Ot 12: for all (X ∈ Pt ∪ Ot ) do 13: wyznacz r (X) 14: end for 15: Pt+1 ← wybór najlepszych z Ot ∪ Pt 16: t ←t +1 17: end while 18: end procedure Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 25 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Początki Algorytm Określanie wartości rang Operatory mutacji Algorytm 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 - Strategie ewolucyjne 26 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Początki Algorytm Określanie wartości rang Operatory mutacji Określanie wartości rang Dla każdego osobnika X losujemy q osobników o populacji Q ⊂ (Pt ∪ Ot \ {X}) Ranga osobnika r (X) jest równa liczbie osobników z Q o przystosowaniu mniejszym od niego. r (X) = k{Y ∈ Q|f (X) > f (Y)}k Osobniki o największej wartości przystosowania w Pt ∪ Ot z definicji mają rangę równą q Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 27 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Początki Algorytm Określanie wartości rang Operatory mutacji Brak adaptacji Mutacja polega na dodaniu do genotypu osobnika wartości zmiennej losowej o wielowymiarowym nieskorelowanym rozkładzie normalnym Xi0 = Xi + σ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 - Strategie ewolucyjne 28 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne 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: Xi0 = Xi + q β(fmax − 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, fmax 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 - Strategie ewolucyjne 29 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Początki Algorytm Określanie wartości rang Operatory mutacji Samoczynna adaptacja zasięgu 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 Xi0 = Xi + σi ξN(0,1),1 Następnie wartości odchyleń: σi0 r = 2 , (σ 2 + ζξ min σmin N(0,1),i ) i ζ jest współczynnikiem sterującym intensywnością zmian σi . Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 30 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Historia Programowanie genetyczne 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 - Strategie ewolucyjne 31 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Kodowanie drzewiaste 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 - Strategie ewolucyjne 32 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Kodowanie drzewiaste 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 - Strategie ewolucyjne 33 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Przykład setq (defun pierwiastki (a b c) ( (setq (delta -( *(b b) *(4 * (a c))))) (if<(delta 0) (setq n 0) ) delta (if=(delta 0) ( (setq n 1) (setq x1 ( /(-b)(* (2 a)))) ) * ) (if>(delta 0) ( (setq n0) (setq x1 (x /((-( -b sqrt(delta) )(* (2 a)))))) b (setq x2 (x /((+( -b sqrt(delta) )(* (2 a)))))) b ) ) ) ) Paweł Paduch - * 4 Obliczenia Naturalne - Strategie ewolucyjne * a c 34 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Mutacje 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 - Strategie ewolucyjne 35 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Mutacja 1 + x + y x 25 zmiana zawartości węzła terminalnego Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 36 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Mutacja 2 * x * y x + y x Zamiana węzła terminalnego na korzeń losowego poddrzewa Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 37 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Mutacja 3 + x + x * y 4 22 Zamiana korzenia poddrzewa na węzeł terminalny Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 38 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Mutacja 4 * x * x + y cos x / x 4 Zmiana poddrzewa na inne Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 39 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Mutacja 5 / / sin cos cos sin y / / y x x 4 4 Reorganizacja poddrzew Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 40 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Krzyżowanie / / + a - + b - b √ - a ∆ * √ 2 a ∆ Krzyżowanie struktur drzewiastych polega na losowym wybraniu po jednym węźle u każdego z 2 rodziców ... Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 41 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Krzyżowanie / / - + a b - a + √ - ∆ b * √ 2 a ∆ ... oraz zamienieniu miejscami tych węzłów wraz całymi poddrzewami tak jak widać to na rysunku powyżej. Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 42 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie Pytania ? Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 43 z 44 Wstęp Strategie ewolucyjne Programowanie ewolucyjne Programowanie genetyczne Historia Kodowanie drzewiaste Mutacja Krzyżowanie koniec Dziękuję Państwu za uwagę. Paweł Paduch Obliczenia Naturalne - Strategie ewolucyjne 44 z 44