Algorytmy ewolucyjne Termin EC (Evolutionary Computation) obliczenia ewolucyjne obejmuje wiele technik obliczeniowych kluczowym elementem jest model procesów ewolucyjnych Algorytmy ewolucyjne operują na populacji struktur, które podlegają procesowi ewolucji w czasie, wykorzystując operatory selekcji, mutacji i rekombinacji Każdy element populacji oceniany jest za pomocą miary przystosowania do środowiska (fitness factor). Wśród algorytmów ewolucyjnych wyróżnia się programowanie ewolucyjne (EP) strategie ewolucyjne (ES) algorytmy genetyczne (GA).
procedure EA;{ T=0; inicjuj_populację P(t); oceń P(t); repeat { t=t+1; wybór rodziców P(t); rekombinacja P(t); mutacja P(t); sukcesja P(t);} until warunek stopu;}
Różnice pomiędzy algorytmami tkwią w wyborze: Podstawowymi elementami wszystkich algorytmów ewolucyjnych jest populacja i działające na niej operatory Różnice pomiędzy algorytmami tkwią w wyborze: reprezentacji indywidualnych struktur, typu mechanizmów selekcji, rodzaju genetycznych operatorów, metody ich oceny.
W programowaniu ewolucyjnym (EP) nie stosuje się operacji krzyżowania Elementy - wektory liczb rzeczywistych, listy lub grafy Wybór rodziców nie zależy od funkcji przystosowania (każdy) selekcja jest dokonywana na podstawie probabilistycznej funkcji, bazującej na przystosowaniu Ewolucyjne strategie (ES) stosują reprezentację wektorów rzeczywistych Rodzice wybierani są losowo, stosuje się mutację, a następnie rekombinację, która ma drugorzędne znaczenie Operator selekcji wybiera najlepiej przystosowane indywidualne struktury. Algorytmy genetyczne używają zwykle niezależnej reprezentacji w postaci ciągu bitów, (grafy, wyrażenia Lisp’u, listy, wektory) Selekcja rodziców zależna jest od wartości funkcji przystosowania Elementy potomne utworzone w wyniku rekombinacji rodziców poddawane są mutacji i krzyżowaniu Relacje między tymi operatorami są przeciwne niż w ES Mutacja ma znaczenie drugorzędne
AG John Holland 1975 przetwarza populację osobników (rozwiązań problemu) Działa w środowisku (zdefiniowanym na pdst. problemu; opisanym przez funkcję przystosowania - ff) Osobnik Przystosowanie – określa jakość rozwiązania – ff Genotyp – informacja; przepis na Fenotyp – zestaw cech (podlega ocenie) Kodowanie – zamiana fenotypu na genotyp Fenotyp – punkt w przestrzeni rozwiązań problemu Genotyp – punkt w przestrzeni kodów Funkcja przystosowania – przypisuje osobnikom przystosowanie na podstawie fenotypu
GA Funkcja przystosowania ff – określona dla genotypu Stacjonarna Zmienna w czasie Zawierająca element losowy ff – określona dla genotypu Genotyp – składa się z chromosomów (najczęściej jednego) Chromosom – zawiera kod określający fenotyp; składa się z genów Allel – wartość genu
GA Reprodukcja operatory genetyczne ocena sukcesja Utworzenie początkowej populacji bazowej (losowo) Pętla: - generacje, pokolenia Reprodukcja – powielenie losowo wybranych elementów z populacji bazowej do populacji tymczasowej; losowość uwzględnia przystosowanie Kopie powstałe w wyniku reprodukcji – osobniki rodzicielskie – populacja tymczasowa Operatory genetyczne – losowa modyfikacja genów Krzyżowanie Mutacja Populacja potomna Ocena Sukcesja – tworzenie nowej populacji bazowej (zawiera osobniki z populacji bazowej i potomnej) Warunek stopu: odpowiednio duże przystosowanie lub stagnacja algorytmu
inicjuj_populację P(t); oceń P(t); repeat { t=t+1; procedure SGA;{ t=0; inicjuj_populację P(t); oceń P(t); repeat { t=t+1; T(t)=reprodukcja P(t); O(t)=rekombinacja i mutacja P(t); oceń O(t);) P(t)=O(t);} until warunek stopu;} P(t) – populacja bazowa O(t) – populacja potomna T(t) – populacja tymczasowa
Zastosowanie algorytmu genetycznego do rozwiązania problemu wymaga określenia następujących elementów: sposobu reprezentacji poszczególnych osobników populacji (tj. możliwych rozwiązań), sposobu oceny elementów populacji, operatorów genetycznych.
Łańcuchy zer i jedynek stosowane w algorytmach genetycznych są najprostszą reprezentacją, niezależną od problemu Można przy jej pomocy budować skomplikowane struktury, co wymaga jednak stosowania często złożonych schematów kodowania Każde rozwiązanie problemu musi posiadać swoją reprezentację w postaci łańcucha i każdy łańcuch musi reprezentować jakieś rozwiązanie Elementy populacji oceniane są za pomocą funkcji przystosowania, reprezentującej rozwiązywany problem.
kodowanie Chromosom – n-elementowy ciąg genów (0 lub 1) 0101000111
reprodukcja Odpowiednik zasady doboru naturalnego Powielanie ciągów kodowych w zależności od wartości funkcji przystosowania Proporcjonalna, ruletkowa Każdemu ciągowi kodowemu odpowiada sektor o rozmiarze proporcjonalnym do ff Wielokrotne zakręcenie kołem ruletki – kopiowanie do populacji
mutacja Wykonywana dla każdego genu z prawdopodobieństwem pm 0101000111 0100001111
Odpowiednik przemian w DNA Krzyżowanie pc Miejsce rozcięcia wybierane losowo z rozkładem równomiernym Odpowiednik przemian w DNA
Σ=97 wart. śr. ff = 4.85 chromosm ff p. reprodukcji dystrybuanta 1 chromosm ff p. reprodukcji dystrybuanta 1 1111110011 8 0,082474227 2 0110100100 4 0,041237113 0,12371134 3 0000110100 0,030927835 0,154639175 0110100111 6 0,06185567 0,216494845 5 1001111001 0,278350515 1001110011 0,340206186 7 0000100101 0,371134021 1000110100 0,412371134 9 0001011001 0,453608247 10 1011110000 0,051546392 0,505154639 11 0010111101 0,567010309 12 1100010010 0,608247423 13 0111110111 0,690721649 14 0100101100 0,731958763 15 0001100110 0,773195876 16 1001001101 0,824742268 17 1010000110 0,865979381 18 0010101100 0,907216495 19 1101000011 0,958762887 20 0010010011 Σ=97 wart. śr. ff = 4.85
Koło ruletki
Dystrybuanta rozkładu reprodukcji Wylosowana liczba Wybrany – osobnik 9
rep - zmienna losowa wykorzystywana do określenia reprodukowanego osobnika i - numer reprodukowanego osobnika g -jego genotyp ff - jego funkcja przystosowania (liczba "1" w ciągu kodowym) c - wartość zmiennej losowej okreslającej decyzję o krzyżowaniu k - pozycja rozcięcia gp - genotyp potomka ffp - funkcja przystosowania potomka wm - wektor decyzji o mutacji poszczególnych genów gpm - genotyp potomka po mutacji ffpm - funkcja przystosowania potomka po mutacji
rep i g ff c k gp ffp wm gpm 0.0267 1 1111110011 8 0000001000 1111111011 9 0.0428 0001000000 1110110011 7 0.3426 0000100101 3 — 0000000100 0000100001 2 0.6351 13 0111110111 0100001100 0011111011 0.6975 14 0100101100 4 0000000001 0100101101 5 0.8737 18 0010101100 0010000000 0000101100 0.1706 0110100111 6 0110110111 1000000000 1110110111 0.6526 0111100111 0000000000
Operatory genetyczne (mutacja, krzyżowanie) Reprodukcja średnia wartość ff w kolejnych pokoleniach wzrasta Maleje różnorodność populacji Operatory genetyczne (mutacja, krzyżowanie) Przywracają różnorodność Nie gwarantują poprawy średniego przystosowania
selekcja Reprodukcja (preselakcja) Sukcesja (postselekcja) Powielanie osobników o lepszym przystosowaniu z większym prawdopodobieństwem niż osobników gorzej przystosowanych Nacisk selektywny Sukcesja (postselekcja) Utworzenie nowej populacji bazowej na podstawie populacji potomnej i starej populacji bazowej
Metody reprodukcji Reprodukcja proporcjonalna (ruletkowa) Zmodyfikowana reprodukcja proporcjonalna Reprodukcja rangowa (rankingowa) Reprodukcja turniejowa Reprodukcja progowa
Metody reprodukcji Reprodukcja proporcjonalna (ruletkowa) pr(X)=ff(X)/ΣY є P(t)f(Y) Jeśli ff różnią się o stałą – zmniejsza się intensywność nacisku selektywnego w kolejnych generacjach (coraz więcej osobników ma podobne wartości ff), co utrudnia zbieżność; Na początku – duże zróżnicowanie ff tendencja do przedwczesnej zbieżności
Metody reprodukcji Zmodyfikowana reprodukcja proporcjonalna Odjęcie najmniejszej wartości ff Reprodukcja rangowa (rankingowa) Prawdopodobieństwo reprodukcji każdego osobnika podane w sposób jawny – na podstawie rangi – liczby, określającej jakość Posortowanie osobników nierosnąco wg. wartości ff; ranga = numer osobnika w szeregu Funkcja prawdopodobieństwa: Liniowa: pr(X) = a + k (1 – r(X)/rmax) Lub potęgowa: pr(X) = a + k (rmax – r(X))b Niewrażliwa na zwiększenie ff o stałą
Metody reprodukcji Reprodukcja turniejowa Reprodukcja progowa Dwustopniowa selekcja Wybór q osobników z P(t) – Q(t) Losowanie ze zwracaniem i bez zwracania turniej między osobnikami z Q – wygrywa najlepiej przystosowany q – rozmiar (liczność) turnieju q=2 Reprodukcja progowa pr(X)=1/(μρ) dla 0 <= r(X) < μρ pr(X)=0 w przeciwnym wypadku r – ranga μ – rozmiar populacji ρ - nacisk selektywny ρ= 1 – wszystkie elementy mogą reprodukować ρ=1/μ – tylko 1 element reprodukuje (najlepszy)
Metody sukcesji Z całkowitym zastępowaniem (trywialna) - nowa populacja bazowa powstaje wyłącznie z populacji potomnej Nie zawsze najlepsze rozwiązania z populacji P(t) znajdą się w P(t+1) Sukcesja z częściowym zastępowaniem Część osobników starej populacji zamieniona przez potomstwo Najgorzej przystosowani - sukcesja elitarna Najbardziej podobni do potomnych – metoda ze ściskiem Losowo wybrani Sukcesja elitarna P(t+1) powstaje z O(t) i η najlepszych osobników z P(t) η - elita
kodowanie Reprezentacja rzeczywistych wartości zmiennej x – chromosom – wektor binarny Długość wektora zależy od żądanej dokładności i dziedziny zmienności x Przykład: x Є < -1; 1 > 2 dokładność - 1 cyfra po przecinku Podział przedziału na 2 * 101 części 2 4 = 16 < 20 <25=32 Długość chromosomu – 5 bitów liczba= -1 + x * 2 / ( 25 – 1 ) // x – chromosom binarny zamieniony na liczbę (10) 11111 31 * 2 / (25 – 1) = 2 ; -1 +2 = 1 00000 -1
PRZYKŁAD d = -1 + x(10) * 2 / 31 d = 0.5 ??? 10111 23 23 * 2 / 31= 46/31 -1 +1.48=0.48 0.5 d=0.2 1.2 * 31/2 = 18.6 19 10011 10011 19 19 *2/31 38/31 =1.22 -1 + 1.2 = 0.2
Kod Gray’a Problemy reprezentacji binarnej 100 zmiennych z zakresu <-500, 500>; dokładność – 6 cyfr po przecinku długość binarnego wektora = 3000 2 punkty leżące blisko siebie w przestrzeni reprezentacji leżą blisko siebie w reprezentacji zadania ?? Odległość między reprezentacjami = liczba pozycji o różnych bitach kod Grey’a
binarny Grey’a 0000 0001 0010 0011 0100 0110 0101 0111 1000 1100 1001 1101 1010 1111 1011 1110 procedure B-G begin g[1]=b[1]; for k=2 to m do g[k]=b[k-1] xor b[k] end procedure G-B begin v=g[1]; b[1]=v; for k=2 to m do if g[k]==1 then v=not v; b[k]=v; end
Kodowanie zmiennopozycyjne Genotyp: s=<v1, v2, ….., vm> vi – pojedyncza zmienna; m – długość wektora rozwiązania Każdy element z zadanej dziedziny Możliwe duże dziedziny i nieznane dziedziny Operatory genetyczne zachowują ograniczenia związane z dziedziną Mutacja krzyżowanie
Kodowanie zmiennopozycyjne Mutacja Losowa – zmiana jednej cyfry wybranej składowej liczby Równomierna – zastąpienie losowo wybranego vk nowym wygenerowanym z jego dziedziny s=<v1, v2, ….., vm> <v1, ..v’k, ….., vm> Nierównomierna - zależna od numeru pokolenia Początkowo – większe zmiany; później lokalne przeszukiwanie Zmiana pojedynczego vi Zmiana całego wektora
Kodowanie zmiennopozycyjne Krzyżowanie Proste Punkty krzyżowania pomiędzy wartościami vi Arytmetyczne Liniowa kombinacja wektorów rodzicielskich (całe wektory lub wybrane elementy) sta=<v1, v2, ….., vm> stb=<v1, v2, ….., vm> St+1a=c* sta + (1-c)* stb St+1b=c *stb + (1-c)* sta c – stała ( jednorodne krzyżowanie) zmienna (niejednorodne krzyżowanie)
Ocena algorytmu ewolucyjnego Metoda niedeterministyczna - przy jednakowych parametrach i identycznych populacjach startowych – różne zachowanie algorytmu Rzetelna ocena – wymaga wielu uruchomień, analizy statystycznej Krzywa zbieżności – wykres zmian rozwiązania roboczego w czasie (wartości średnie ff, wartości maksymalne, wykres zmian przystosowania najlepszego osobnika); uśrednione lub dla pojedynczego przebiegu Koszt symulacji – liczba iteracji + liczność populacji Testy odporności algorytmu – zdolności opuszczania ekstremum lokalnego
Dopuszczalne jest pogorszenie populacji bazowej przez reprodukcję osobników słabo przystosowanych wyjście z pułapki ewolucyjnej Pułapka ewolucyjna – niewielkie zmiany fenotypu prowadzą do pogorszenia rozwiązania
Operator selekcji, wielkość populacji oraz generacja populacji początkowej mają wpływ na różnorodność populacji Jest ona bardzo ważnym aspektem algorytmów genetycznych, gdyż decyduje o sposobie przeszukiwania dziedziny i od niej zależy możliwość znalezienia najlepszego rozwiązania Na początku algorytm sprawdza wiele różnych rozwiązań, a następnie dokładniej penetruje potencjalnie bardziej perspektywiczne obszary dziedziny funkcji. Jeśli początkowa populacja jest zróżnicowana, tj. zawiera dobrze spróbkowaną dziedzinę algorytmu to algorytm ma szansę na odnalezienie najlepszego rozwiązania. Źle przygotowana populacja startowa może spowodować, że pewne obszary dziedziny nie będą w ogóle badane. Algorytm genetyczny nie gwarantuje zbieżności do minimum globalnego, dlatego często stosuje się jego hybrydy.
PRSA połączenie AG z SA (parallel recombinative simulated annealing) procedure PRSA;{ T=T0; ustal wysoką początkową temperaturę Inicjuj n-elementową populację ; repeat { do n/2 razy{ t=t+1; wybór 2 rodziców z populacji; generuj 2 potomków (mutacja, rekombinacja ) ; oceń potomków (Ei); przeprowadź zawody Boltzmanna; zastąp rodziców zwycięzcami zawodów;} T=T-T; } until warunek stopu;}
PRSA odpowiada równolegle działającym wielu kopiom SA, z wykorzystaniem operatorów genetycznych: mutacji i krzyżowania Zastosowanie schematu Metropolisa gwarantuje zbieżność metody do minimum globalnego Tradycyjny operator selekcji zastąpiono tzw. alternatywą Boltzmanna [Aarts i Korst, 1989], w której prawo rodziców do życia określone jest prawdopodobieństwem p, danym wzorem gdzie: Ei – „energia” rodzica, Ej – „energia” potomka.
Ważnym problemem algorytmów ewolucyjnych jest również właściwy wybór reprezentacji oraz rozmiaru populacji, będącej miarą ilości zawartej w niej informacji (ang. carrying capacity). Małe populacje mogą być wystarczające do rozwiązania prostych problemów, natomiast liczniejsze stosuje się do bardziej skomplikowanych zadań. Trudne problemy wymagają stosowania licznych populacji. Dlatego, aby zredukować czas potrzebny do uzyskania zadawalającego rozwiązania stosuje się algorytmy współbieżne, wykorzystujące inherentną równoległość metody
Grefenstette wyróżnił cztery typy równoległych algorytmów genetycznych: synchroniczny scentralizowany - w którym proces nadrzędny realizuje operacje genetyczne i koordynuje procesy podrzędne, obliczające wartości funkcji przystosowania, półsynchroniczny scentralizowany - będący modyfikacją poprzedniego, polegającą na asynchronicznym działaniu procesów podrzędnych, asynchroniczny rozproszony - w którym współbieżne procesy realizują niezależnie wszystkie operacje, wykorzystując pamięć dzieloną, sieciowy - z autonomicznymi procesami realizującymi niezależne algorytmy genetyczne, komunikującymi się między sobą wymieniając najlepiej przystosowane osobniki.
Erick Cantu-Paz sformułował kilka kategorii technik zrównoleglających, stosowanych w algorytmach genetycznych: zrównoleglenie globalne (global parallelization), gruboziarniste równoległe GA (coarse grained parallel GA), drobnoziarniste równoległe GA (fine grained parallel GA), hybrydowe równoległe GA.
Algorytmy coarse grained W GGA (Global Genetic Algorithm) każde dwa osobniki mogą być krzyżowane. podział populacji między dostępne procesory symultaniczna ewolucja subpopulacji impulsowy wzrost komunikacji między procesami Algorytmy coarse grained Subpopulacje izolowane są między sobą na wzór geograficznych kontynentów, genetyczne połączenie grup zapewnia migracja osobników - każda grupa w każdym kroku czasowym wysyła do innych swoich przedstawicieli W modelu „wyspa” (island) migracja może się odbywać do dowolnej subpopulacji, natomiast metoda „stepping stone” ogranicza ją do sąsiednich obszarów. Drobnoziarniste równoległe GA dzielą populację na wiele małych i realizowane są na masywnie równoległych komputerach Algorytmy hybrydowe stanowią połączenie tych trzech technik.
procedure LGA;{ inicjuj_populację P(t); oceń P(t); repeat { losowy wybór obszaru 3x3; wybór dwóch rodziców; krzyżowanie; mutacja; probabilistyczny wybór najlepszego spośród dwóch potomków i osobnika najgorszego w danym sąsiedztwie; dołącz zwycięzcę do nowej populacji;} until warunek stopu;}
Klasyczny GA Gdy krzyżowane są osobniki o wysokiej wartości ff, a niepodobnych ciągach kodowych może dojść do: rozrywania dobrze przystosowanych łańcuchów zuniformizowania populacji zaniku różnorodności populacji oddalenia od optimum globalnego
Przykład
GA, wykorzystujące ideę lokalności Znaczenie geograficznego rozmieszczenie osobników krzyżowanie ma miejsce jedynie pomiędzy spokrewnionymi gatunkami - „dobór krewniaczy” dobrze przystosowane elementy populacji tworzą skupiska oddalone od siebie ciągi kodowe, cechujące się dużą wartością funkcji celu nie zostaną rozbite utrzymanie różnorodności populacji; możliwe jest zlokalizowanie większej ilości ekstremów