Algorytmy stochastyczne, wykład 01 J. Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2014-02-21
In memoriam prof. dr hab. Tomasz Schreiber (1975-2010)
1 2 3 Różne
Orientacyjny program 1 Algorytmy genetyczne i ewolucyjne 2 (??) Optymalizacja mrowiskowa 3 Systemy Liendenmayera 4 Sieci bayesowskie 5 (??) Sieci qussowskie
Literatura Z. Michalewicz Algorytmy genetyczne + struktury danych = programy ewolucyjne, P. Prusinkiewicz, A. Liendenmayer The algorithmic beauty of plants P. Judea, Probabilistic reasoniings in intelligent systems: Networks of plausible inference R. Neapolitan, Learning Bayesian Networks
Wymagania programowanie, algorytmy i struktury danych język programowania wysokiego poziomu (C / C++ / C# / Java / Python...) + biblioteki GUI podstawy rachunku prawdopodobieństwa i statystyki (rozkłady dyskretne, prawdopodobieństwo warunkowe)
Zaliczenie Zaliczenie wykładu: egzamin pisemny pytania opisowe egzamin ustny pytania otwarte wymagane jest laboratoriów przed podejściem do egzaminu
Zaliczenie Zaliczenie laboratoriów: projekty programistyczne (ok. 3 6 programów) ocena BDB+ z laboratorium zwalnia z egzaminu
1 2 3 Różne
Motywacje biologiczne Darwin, The origin of the species Dla zainteresowanych pełen tekst na wikisource: http://en.wikisource. org/wiki/the_origin_ of_species_%281872%29 Źródło: http://en.wikipedia.org/wiki/charles_darwin
Chromosomy geny nośniki informacji biologicznej geny łączą się w chromosomy geny w chromosomie ustalają cechy osobnika Źródło: http://en.wikipedia.org/wiki/file:gene.png
Dobór naturalny osobniki walczą o przetrwanie w naturalnych warunkach zagrożenia zewnętrzne i wewnętrzne osobniki słabe giną osobniki najsilniejsze przeżywają i mają potomstwo
Dziedziczenie i zmienność genetyczna crossover (krzyżowanie) wymiana fragmentów materiału genetycznego potomek otrzymuje (częściowo) cechy rodziców mutacje losowa zmiana małych fragmentów łańcucha gdzie wszyscy myślą tak samo, nikt nie myśli zbyt wiele
Nowa populacja osobniki, które przeżyły i potomstwo tworzą nową populację wróć do kroku 1...
Poskładajmy klocki razem Dany mamy... problem osobnik pewne rozwiązanie problemu środowisko mechanizm weryfikujący czy osobnik się nadaje krzyżowanie łączymy dobre osobniki, być może ich potomek będzie jeszcze lepszy mutacje nie chcemy aby rozwiązania skupiły się na jednym fragmencie przestrzeni selekcja odrzucamy słabe i nie rokujące rozwiązania następne pokolenie powinno być lepiej dostosowane niż poprzednie
Poskładajmy klocki razem Rozpocznij ze startową populacją P i=1 do następnej populacji wybierz osobników z prawdopodobieństwem P(X P i+1 ) = F (X )/ Y P i F (Y ) oceń każdego osobnika z prawdopodobieństwem p c wybierz osobników do krzyżowania i utwórz ich potomków z prawdopodobieństwem p m wybierz osobników do mutacji i zmutuj ich genotyp jeżeli zachodzi warunek stopu to zakończ i:= i+1; wróć do 2
Reprezentacja osobnik rozwiązanie problemu np osobnik = [a 1, a 2, a 3,..., a N ] binarnie zakodowane rozwiązanie z osobników {o 1, o 2,...o P } składamy populację (w epoce t=0) dla t = 0 populacja losowa
Krzyżowanie krzyżowanie łączymy dobre osobniki, być może ich potomek będzie jeszcze lepszy krzyżowanie dwuargumentowy operator genetyczny (tzn. bierze dwa zestawy genów i zwraca trzeci) jak? zamiana ogonów w łańcuchach: O o 1...o i o i+1...o n S := o 1...o i q i+1...q n Q q 1...q i q i+1...q n T := q 1...q i o i+1...o n
Krzyżowanie implementacja krzyżowania: ustal punkt cięcia i {1...N 1} rozetnij Q i O na i-tym genie sklej głowę O z ogonem Q, zwróć potomka podobnie można otrzymać drugiego potomka sklejając głowę Q i ogon O p c = prawdopodobieństwo krzyżowania duże
Mutacje mutacje zmienność genetyczna dla każdego bitu z prawdopodobieństwem p m zamień bit na przeciwny implementacja głupia: for po wszystkich bitach wszystkich osobników
Mutacje implementacja lepsza: K = liczba bitów liczba osobników w populacji, wylosuj L Binom(p m, K), tj. gdzie p = p m, P(L = l) = ( K l ) p l (1 p) K l wylosuj L liczb z przedziału 1..K pozycje bitów do mutowania zamień wylosowane bity na przeciwne (licząc od początku populacji) p m małe, ok 1 zmiany na cały chromosom, np. p m 1/dlugosc lancucha
Dostosowanie środowisko mechanizm weryfikujący czy osobnik się nadaje np. funkcja dostosowania jak dobry jest osobnik F : [0, 1] N R jeżeli F (o 1 = [0, 1, 0]) > F (o 2 = [0, 1, 1]), to osobnik o 1 jest lepszy
Selekcja koło ruletki: tworzymy niesymetryczną ruletkę z osobnikami populacji x3 x2 x1 x10 osobnik o i ma prawdopodobieństwo bycia wylosowanym x4 x9 P(o i ) = F (o i ) q P t F (q) x5 x8 utwórz nową populację P t+1 poprzez kolejne losowania kołem x6 x7
Warunki stopu Różne liczba pokoleń dostatecznie dobre rozwiązanie jednolita populacja limit czasu
Przetrwanie najlepszego Różne wymuszamy przeżycie najlepiej dostosowanego osobnika pierwszy slot w nowej populacji jest dla najlepszego reszta według ruletki
Niebinarne geny Różne zamiast ciągu bitów jako można przyjąć ciąg liczb, mutacja zmiana liczby na inną z dopuszczonego zakresu,
Presja genetyczna Różne F funkcja dostosowania (im większe F tym lepiej) i F (O) > 0 Φ(O) zależy od F (O) i C 1, gdzie C 1 presja genetyczna (utrudnia wygranie słabym osobnikom) Φ(O) = (F (O)) C 1 Φ(O) = (F (O)) C 1 C 1 > 1 większa presja 0 < C 1 < 1 mała presja
Zrównoleglenie Różne obliczenie funkcji oceny F mutacje osobników krzyżowania osobników selekcja