Algorytmy ewolucyjne Łukasz Przybyłek Studenckie Koło Naukowe BRAINS 1
Wprowadzenie Algorytmy ewolucyjne ogólne algorytmy optymalizacji operujące na populacji rozwiązań, inspirowane biologicznymi zjawiskami, takimi jak selekcja naturalna, krzyżowanie i mutacja. Główną zaletą jest możliwość rozwiązania dowolnego problemu, którego propozycje rozwiązania można przedstawić w sformalizowany sposób, a następnie poddać ocenie. 2
Inspiracje biologiczne (1) Główne inspiracje biologiczne pochodzą z dzieła Karola Darwina On the Origin of Species. 1. Osobniki danego gatunku produkują więcej potomstwa, niż jest w stanie przetrwać do dorosłości. 2. Rozmiar populacji gatunku jest stały, jeśli nie występują zewnętrzne działania (działanie człowieka, katastrofy naturalne itp.). 3
Inspiracje biologiczne (2) 3. Dostępność pożywienia dla całego gatunku jest limitowana, ale stała w czasie, ponownie jeśli nie występują zewnętrzne działania. 4. Osobniki rywalizują o dostępność pożywienia. 5. Nie występują dwa identyczne osobniki, szczególnie w gatunkach rozmnażających się płciowo. 6. Niektóre różnice między osobnikami wpływają na ich indywidualną sprawność, a przez to zdolność do przetrwania. 4
Inspiracje biologiczne (3) 7. Różnice te są dziedziczone z pokolenia na pokolenie. 8. Słabsze osobniki mają mniej potomków, silniejsze więcej. 9. Osobniki, które przetrwają i wyprodukują potomstwo najprawdopodobniej przekażą mu swoje cechy. 5
Inspiracje biologiczne (4) 10. Gatunki będą powoli zmieniać się i coraz bardziej przystosowywać do środowiska, w którym żyją. Może to prowadzić nawet do powstania nowych gatunków. 6
Nazewnictwo (1) Populacja zbiór kandydatów na rozwiązanie (osobników). Genotyp forma zapisu propozycji rozwiązania (np. ciąg zerojedynkowy dla liczb rzeczywistych). Chromosom często tożsame z genotypem, jednak jeden genotyp może zawierać wiele chromosomów. Fenotyp określa jak rozwiązanie jest widziane przez środowisko (np. liczba rzeczywista przy optymalizacji). 7
Nazewnictwo (2) Każdy osobnik działa w środowisku, które ocenia osobnika. Ocena osobnika nazwana jest jego przystosowaniem (fitnessem). Funkcja przyporządkowująca oceny nazwana jest funkcją przystosowania (fitness function). W każdej iteracji algorytmu populacja rodzicielska zastępowana jest populacją potomną. Osobniki powstałe w tej samej iteracji należą do wspólnej generacji. 8
Pseudokod algorytmu ewolucyjnego 1. Stwórz populację P. 2. Dopóki nie jest spełniony warunek zatrzymania powtarzaj: 1. Dokonaj selekcji i zapisz wyselekcjonowane osobniki jako populację P. 2. Poddaj P krzyżowaniu. 3. Poddaj P mutacji. 9
Schemat działania algorytmów ewolucyjnych 10
Algorytmy genetyczne jako przykład algorytmów ewolucyjnych Często pojęcia algorytmów genetycznych i ewolucyjnych używane są (niepoprawnie) zamiennie. Algorytmy genetyczne są podklasą algorytmów ewolucyjnych, która charakteryzuje się binarną reprezentacją chromosomu. Każdy chromosom jest zerojedynkowym wektorem o ustalonej długości n. X = [X 0, X 1,, X n-1 ], gdzie X i {0,1} 11
Pseudokod - przypomnienie 1. Stwórz populację P. 2. Dopóki nie jest spełniony warunek zatrzymania powtarzaj: 1. Dokonaj selekcji i zapisz wyselekcjonowane osobniki jako populację P. 2. Poddaj P krzyżowaniu. 3. Poddaj P mutacji. 12
Inicjacja populacji P Populacja zazwyczaj tworzona jest z ustalonej liczby p osobników o losowych genach. P = {X i }, gdzie i = 1,, p-1 13
Warunek zatrzymania Warunkiem zatrzymania może być: Ustalona liczba iteracji, Osiągnięcie zadanego optimum, Brak poprawy przystosowania najlepszego osobnika w zadanej liczbie iteracji, itp. 14
Funkcja przystosowania Funkcja przystosowania F musi być monotoniczna i właściwa dla problemu. Dla każdej pary x i,x j jeśli x i jest lepsze od x j F(x i )>F(x j ) (zadanie maksymalizacji) Przyjmijmy jako testową funkcję ONEMAX, która zlicza liczbę jedynek w wektorze. Dla n = 5: X 0 = [0 0 0 0 0], F(X 0 ) = 0 X 1 = [0 1 0 1 0], F(X 1 ) = 2 X 2 = [1 1 1 1 0], F(X 2 ) = 4 F max (X i ) = n 15
Selekcja Selekcja jest procesem, w którym wszystkie osobniki danej generacji poddane są ocenie, a następnie selektywnie przekazane do kolejnej generacji. Celem selekcji jest powielenie osobników silnie przystosowanych, zachowanie umiarkowanie przystosowanych oraz usunięcie najsłabszych. Poprzez zmiany liczności osobników modulowane jest prawdopodobieństwo przekazania genów. 16
Selekcja ruletkowa (1) Najpopularniejszy rodzaj selekcji to selekcja ruletkowa. W selekcji ruletkowej każdemu osobnikowi przyporządkowane zostaje prawdopodobieństwo przejścia do kolejnej generacji proporcjonalne do wartości jego przystosowania P (X i ) = F(X i ) / p-1 j=0 F(X j ) 17
Selekcja ruletkowa (2) Losowanie przypomina obrót ruletką. Prawdopodobieństwa odkładane są na tarczy ruletki, po czym wykonywany jest obrót. Problem: jeśli jeden osobnik ma znacząco wyższe przystosowanie populacja straci różnorodność i szybko zbiegnie do lokalnego optimum. F(X 0 )=1 F(X 1 )=2 F(X 2 )=3 F(X 3 )=4 F(X 4 )=40 P(X 0 )=0,02 P(X 1 )=0,04 P(X 2 )=0,06 F(X 3 )=0,08 P(X 4 )=0,8 18
Inne rodzaje selekcji W celu wyeliminowania ryzyka przedwczesnej zbieżności stosuje się inne rodzaje selekcji. Jednym z rozwiązań jest stworzenie rankingu i przyporządkowanie prawdopodobieństw na podstawie miejsc w rankingu (selekcja rankingowa) Kolejne to przeprowadzanie turniejów. Z populacji rodzicielskiej losowane jest q osobników (ze zwracaniem), zaś do populacji potomnej przekazywany jest najlepszy z nich. Proces powtarzany jest tak długo, aż zostanie osiągnięta zadana wielkość populacji p. Selekcja ta zwana jest selekcją turniejową. 19
Krzyżowanie Krzyżowanie jest operacją genetyczną, podczas której losowana jest ze zwracaniem ustalona liczba osobników (zazwyczaj 2), a następnie na podstawie ich genotypów tworzone są osobniki potomne. Proces ten odpowiada biologicznemu procesowi rozmnażania. Dzięki wymianie informacji genetycznej połączonej z promowaniem silnych osobników możliwe jest uzyskiwanie coraz silniejszych jednostek. 20
Krzyżowanie jednopunktowe (1) Krzyżowanie jednopunktowe operuje na dwóch osobnikach rodzicielskich i zazwyczaj tworzy dwa osobniki potomne. Pierwszym krokiem jest wybranie punktu krzyżowania. Następnie w punkcie krzyżowania łączy się chromosomy w taki sposób, aby u każdego z potomków znalazły się geny obu rodziców. 21
Krzyżowanie jednopunktowe (1) Rozważmy osobniki: X 0 = [0 0 0 0 0] X 1 = [1 1 1 1 1] W procesie krzyżowania wylosowano punkt s=2. W wyniku krzyżowania uzyskano: X 2 = [0 0 0 1 1] X 3 = [1 1 1 0 0] 22
Krzyżowanie równomierne (1) Krzyżowanie równomierne pozwala na szybszą wymianę genów między osobnikami. Pierwszym krokiem krzyżowania równomiernego jest wylosowanie wektora o długości n, który będzie określał do którego z osobników potomnych ma trafić dany gen. Krzyżowanie równomierne zazwyczaj daje lepsze rezultaty, niż krzyżowanie jednopunktowe lub dwupunktowe. 23
Krzyżowanie równomierne (2) 24
Krzyżowanie równomierne (3) Rozważmy osobniki: X 0 = [0 0 0 0 1] X 1 = [1 1 1 1 0] W procesie krzyżowania wylosowano wektor losowy s=[0 1 1 0 0]. W wyniku krzyżowania uzyskano: X 2 = [0 1 1 0 1] X 3 = [1 0 0 1 0] 25
Mutacja (1) Rozważmy populacje (n=5, funkcja ONEMAX): X 0 = [0 0 0 0 0], F(X 0 ) = 0 X 1 = [0 1 0 1 0], F(X 1 ) = 2 X 2 = [1 1 1 1 0], F(X 2 ) = 4 X 3 = [0 0 1 1 0], F(X 2 ) = 4 X 4 = [1 0 1 1 0], F(X 2 ) = 3 Czy w wyniku krzyżowania i selekcji możliwe jest uzyskanie X i : F(X i ) = 5? 26
Mutacja (2) Nie, ponieważ X i (X 4 = 0). Z tego względu stosuje się operator mutacji, który ma za zadanie wprowadzanie nowych genów do populacji. Dla algorytmów genetycznych mutacja polega na zmianie wartości genu na przeciwną. Operator mutacji klasycznie posiada jeden parametr: prawdopodobieństwo mutacji każdego genu r. Zazwyczaj r<0.01, ponieważ mutacja może niszczyć silne rozwiązania w populacji. 27
Mutacja (3) Algorytm mutacji polega na iterowaniu po kolejnych genach, losowaniu liczby z rozkładu jednostajnego i sprawdzaniu czy jest ona niższa niż liczba r. 28
Mutacja (4) Przykład dla osobnika X 0 = [1 1 1 1 0], r=0.1: Oznaczenia: ig gen wejściowy, rnd wylosowana liczba, og - gen wyjściowy Kolejne kroki ig = 1, rnd = 0. 5, rnd>r, og = 1 ig = 1, rnd = 0. 7, rnd>r, og = 1 ig = 1, rnd = 0. 3, rnd>r, og = 1 ig = 1, rnd = 0. 2, rnd>r, og = 1 ig = 0, rnd = 0. 05, rnd<r, og = 1 Po mutacji: X 0 = [1 1 1 1 1] 29
Funkcja Easom - optimtool 30
Przykłady zastosowań algorytmów ewolucyjnych (1) Optymalizacja funkcji w R n, Problem plecakowy i jego odmiany: Generowanie jadłospisów, Układanie planu zajęć. Problem komiwojażera, Niestandardowe zadania optymalizacji: np. Poszukiwanie takiego rozmieszczenia opakowań w kartonach, aby zajęły jak najmniej przestrzeni. Musimy jedynie potrafić zasymulować propozycje rozwiązania i poddać je ocenie. 31
Przykłady zastosowań algorytmów ewolucyjnych (2) Ewolucja pojazdów poruszających się w środowisku: http://boxcar2d.com/index.html Ewolucja kształtów: Dysza silnika odrzutowego: http://ls11-www.cs.unidortmund.de/people/schwefel/eademos/ Kształt skrzydła samolotu http://3.bp.blogspot.com/_nwshay-_gtk/si2i0cwdpi/aaaaaaaaaci/8vit0zlvxtm/s1600-h/45es002.jpg http://geneticargonaut.blogspot.com/2006/03/evolutionarycomputation-classics-vol.html 32
Bibliografia Thomas Weise. Global Optimization Algorithms Theory and Application. itweise.de, Germany, 2009. Łukasz Przybyłek. Zastosowanie metod sztucznej inteligencji w dietetyce. Praca inżynierska, 2012. http://edu.pjwstk.edu.pl/wyklady/nai/scb/wy klad10/w10.htm 33
Dziękujemy za uwagę 34