Migracyjne ( Wyspowe ) Algorytmy Ewolucyjne
O czym będziemy mówić: Algorytmy ewolucyjne problemy czasochłonność premature convergence Próby rozwiązania problemów Crowding Fitness sharing Distributed Genetic Algorithm (DGA)
Szczegóły o DGA Jak działa DGA (migration interval i migration rate) Modele migracji stepping stones model random migration model hierarchical parallel model Metody wyboru osobników do migracji Competition and Cooperation Injection island GA (iiGA) Hierarchical Fair Competition parallel model (HFC) DGA/rmr (random migration rate)
Algorytmy Ewolucyjne Typowe podejścia: Evolutionary Algorithms EA: ulepszanie jednego rozwiązania Evolutionary Algorithms EA: przetwarzanie całych populacji
Algorytmy Ewolucyjne Wspólne cechy EA reprezentacja rozwiązań jako osobników reprodukcja losowe zmiany współzawodnictwo osobników selekcja osobników
Algorytmy Ewolucyjne Genetic Algorithms – GA Algorytmy te opierają się głównie na reprodukcji „genetycznej” – poprzez zastosowanie algorytmów genetycznych Genetic Algorithms – GA krzyżowanie mutacja
Algorytmy Genetyczne Zalety: Wady: są one w stanie znaleźć właściwe rozwiązanie (lub jego przybliżenie) także w przypadku funkcji o wielu minimach lokalnych Wady: są czasochłonne (bardzo liczne populacje) nie zawsze otrzymujemy minimum globalne (tylko jedno z lepszych minimów lokalnych)
Algorytmy Genetyczne – rozwiązania problemów przyspieszenie przez równoległe obliczenia DGA (Distributed Genetic Algorithm) PEA (Parallel Evolutionary Algorithms) unikanie przedwczesnej zbiezności (premature convergence) przez: Zatłoczenie Podział przystosowania Algorytmy wyspowe (PEA, DGA)
Premature convergence Przedwczesna zbieżność W środowisku, w którym zbyt mocno promujemy najlepsze jednostki może dojść do sytuacji w której jeden gatunek (typ rozwiązania) szybko wyeliminuje pozostałe, czego efektem będzie ugrzęźniecie w minimum lokalnym. Natomiast w przeciwnym przypadku, gdy stosujemy inne zasady doboru, mogą zachodzić zbyt chaotyczne zmiany prowadzące do utraty „dobrych” materiałów genetycznych. Należy zapewnić balans między szerokością eksploracji przestrzeni rozwiązań a dokładnością przeszukiwań (dopracowywaniem rozwiązań) (exploration and exploitation). W przypadku przedwczesnej zbieżności w miarę postępu ewolucji średnie przystosowanie populacji rośnie pozwalając „przeżyć” tylko podobnym osobnikom, usuwając wszystkie słabsze (o niskim przystosowaniu), które być może mogły by wyprowadzić populację z minimum lokalnego do którego zdąża.
Crowding Strategia wymiany potomstwa mająca za zadanie utrzymanie różnorodności. Polega na wymienieniu podobnych osobników zwykle zapobiegając zbieraniu się ich wokół jednego minimum, rozszerzając w ten sposób zakres poszukiwań. Często jednak nie spisuje się prowadząc do zbiegania się populacji do kilku minimów.
Fitness sharing Modyfikacja operatora selekcji bazującego na dostosowaniu – pozwalająca na formowanie stabilnych podpopulacji wokół rożnych minimów powodująca równoległe poszukiwania w okolicy wielu minimów obszaru poszukiwań. Jednak w przypadku bardzo wielu minimów lokalnych jest wielce prawdopodobne, że ograniczona populacja nie będzie w stanie sprawdzić ich wszystkich.
Distributed Genetic Algorithm - DGA Właściwie wszystkie operacje genetyczne poza selekcją mogą być wykonywane równolegle mówi się że algorytmy genetyczne posiadają wrodzony paralelizm. W DGA populacja podzielona jest na podpopulacje zwane wyspami (stosuje się też inne rozwiązania równoległości GA, np. modele lokalnego sąsiedztwa z procesem dyfuzji)
Distributed Genetic Algorithm populację dzielimy na podpopulacje w każdej podpopulacji realizujemy alg. gen. najczęściej jednej podpopulacji odpowiada 1 komputer / procesor migracja 1 wyspa / 1 komputer między populacjami zachodzi migracja osobników
Distributed Genetic Algorithm Po zdefiniowanej ilości pokoleń migration interval część osobników przenoszonych jest (lub kopiowanych) na inną wyspę. Ich ilość jest zdefiniowana przez migration rate.
Distributed Genetic Algorithm DGA mogą być wykonywane równolegle udowodniono, że potrafią dostarczać dobrych rozwiązań po mniejszej liczbie obliczeń niż zwykłe GA! Wielkość populacji na każdej z wysp jest mniejsza niż w przypadku GA i co za tym idzie lokalne rozwiązanie może zostać osiągnięte szybciej. Jednak dzięki istnieniu innych wysp i operacji migracji w DGA zachowana zostaje różnorodność rozwiązań.
Modele migracji w DGA stepping stones model docelowa wyspa na którą przenoszone są osobniki jest wcześniej określona.
Modele migracji w DGA random migration model cel migracji za każdym razem wybierany jest losowo.
Modele migracji w DGA hierarchical parallel model docelowa wyspa na którą przenoszone są osobniki jest wcześniej określona tak jak w stepping stones model, z tym że wyspy ułożone są na różnych poziomach w hierarchię najczęściej określającą kierunek i warunki migracji
HFC Microsoft joke
Hierarchical Fair Competition przystosowanie Chinese saying: One can’t go thousands miles away without walking small steps Losowa generacja rozwiązań
Porównanie HFC z klasycznymi GA HFC bada nowe obszary przystosowanie We don’t depend on highly coupled individuals to jump long distance, we depends on continuing individuals emerging from below to explore different search areas even each one can only search in neighborhood. With the sustainable evolution structure, easier to evolve a better optima than mutating current local optima into better optima Klasyczny GA
Metody wyboru osobników do migracji. Elitarne osobniki Metoda polega na przesyłaniu najlepszych osobników do następnej wyspy zastępując nimi najgorsze. Metoda ta niestety często prowadzi do przedwczesnej zbieżności. Turniejowo Osobniki wybierane są metodą turniejową, również często prowadzi do przedwczesnej zbieżności. Losowo wybierane osobniki W brew pozorom metoda ta daje dość dobre wyniki, gdyż prowadzi do zachowania różnorodności osobników na każdej wyspie.
Metody wyboru osobników do migracji. Maximum Gap Allowed (MGA) Metoda ta próbuje zapobiec nie wyrównanej wymianie genotypów poprzez użycie progu akceptowalności (acceptance threshold) dla przychodzących łańcuchów. Unika ona wprowadzania zbyt dobrych osobników (elitarnych), które mogłyby zdominować populację, poprzez określenie maksymalnej akceptowalnej różnicy między miarami dopasowania najlepszego lokalnego osobnika i osobnika migrującego do danej populacji.
Metody wyboru osobników do migracji. Dynamic Arbiter Strategy (DAS) Pozwala na niezależną ewolucję podpopulacji jednak podejmując działania w przypadku wykrycia stagnacji. W takim przypadku próbuje uniknąć wpadnięcia w lokalne minimum poprzez dodanie do populacji osobników znacznie różniących się od istniejących w celu przywrócenia różnorodności. Arbiter zbiera dane o średnim, najlepszym i najgorszym przystosowaniu osobników populacji i na ich podstawie określa które populacje zagrożone są stagnacją. Jeśli znajdzie takie populacje to dokonuje migracji: IF najlepszy globalny osobnik nie rezyduje w źródłowej populacji THEN migruj najlepszego globalnego osobnika ELSE migruj najgorszego globalnego osobnika
Metody wyboru osobników do migracji. Combined MGA-DAS Strategy (CMGA-DAS) Połączenie metod MGA i DAS powstaje przez proste dodanie kryterium akceptowalności metody DAS w momencie wyboru osobników do migracji.
Competition and Cooperation W standartowym PEA (Parallel Evolutionary Algorithm) wszystkie podpopulacje używają tych samych parametrów. Model współzawodniczących populacji określa dla każdej podpopulacji inną strategię (inne parametry np. krzyżowania i mutacji) przestrzeń rozwiązań przeszukiwana jest za pomocą różnych strategii. ranking podpopulacji na podstawie najlepszego dostosowania średniego dostosowania podpopulacji. Współzawodniczenie populacji osiąga się przez dostarczanie większej ilości zasobów lepszym populacjom, dobre populacje otrzymują również osobników z nieudanych populacji.
Competition and Cooperation Wprowadzenie współzawodniczenia owocuje w pewnym sensie automatycznym wybieraniem lepszych strategii metod wartości parametrów we właściwym czasie.
Competition and Cooperation Przykład: 3 podpopulacje używające różnych strategii: podpopulacja 1: brutalne szukanie (duże kroki mutacji) podpopulacja 3: gładkie szukanie (małe kroki mutacji) funkcja RASTRIGINa nr 6, n = 20, - 500 < x < 500
Injection island GA - iiGA Hierarchiczny model równoległy podpopulacje zorganizowane są w hierarchię różne reprezentacje na każdym z poziomów przykład modelu z rywalizacją. posiada wadę: dla każdej podpopulacji (a w szczególności dla podpopulacji o najwyższym poziomie) wciąż istnieje ryzyko wpadnięcia w lokalne minimum. próbuje rozwiązać problem przedwczesnej zbieżności głównie poprzez użycie kilku podpopulacji na każdym poziomie oraz przez użycie mechanizmów takich jak crowding, zamiast bezpośrednio za pomocą hierarchii jak to robi HFC.
Hierarchical Fair Competition parallel model HFC
Hierarchical Fair Competition powody przedwczesnej zbieżności selection pressure (napór selekcyjny) promowanie najlepiej dopasowanych eliminacja młodych osobników, które mogą być obiecujące dyskryminacja „nie fair” dobrego kodu genetycznego.
Hierarchical Fair Competition poziomy na podobieństwo szkolnictwa:
Hierarchical Fair Competition szeroka eksploracja przestrzeni poszukiwań młode osobniki nie rywalizują z dorosłymi podobieństwo do natury usuwane są osobniki bez perspektyw admission threshold bardzo dobre wyniki
DGA/rmr DGA with random migration rate losowo wybierane jest: osobniki do migracji ich liczba wyspa docelowa
DGA/rmr Losowa liczba osobników migruje zmienna liczność podpopulacji marnowanie czasu na synchronizację popdpopulacji Zaletą DGA/rmr jest „adaptacyjne” dobieranie migration rate. Testy wykazują, że losowość tego parametru jest dobrym rozwiązaniem i daje całkiem dobre wyniki.
DGA/rmr - właściwości Gdy wielkość populacji jest wystarczająco duża rozwiązania są niezależne od migration rate i migration interval. Gdy natomiast wielkość populacji jest zbyt mała rozwiązania zależą od tych parametrów dość ciężko jest znaleźć optymalne ich wartości Osiąga dobre wyniki dla różnych wartości migration interval zarówno dla funkcji Rastrigina jak i Rosenbrocka. Sugeruje to, że wartości tych parametrów nie muszą być zdefiniowane żeby znaleźć dobre rozwiązania. Wada: strata czasu na synchronizację.
Podsumowanie Migracyjne algorytmy ewolucyjne okazują się rozwiązaniem bardzo dobrym, dającym lepsze wyniki niż tradycyjne EA, na dodatek w krótszym czasie. Metody te mają ponadto zdolność do unikania przedwczesnej zbieżności co owocuje lepszym przeszukaniem przestrzeni rozwiązań i niejednokrotnie znalezieniem minimum globalnego, gdy tradycyjne EA znajdują jedynie minima lokalne zbliżone do globalnego. Niewątpliwą zaletą PEA jest również możliwość ich równoległego wykonywania co dodatkowo radykalnie zwiększa szybkość obliczeń. Za pomocą PEA istnieje także możliwość stworzenia współzawodnictwa różnych metod, co prowadzi do automatycznego wybrania tych lepszych wraz z odpowiednimi wartościami parametrów we właściwym czasie. Wśród metody tych należy wyróżnić model Hierarchical Fair Competition HFC jako najciekawszy i dający najlepsze rezultaty algorytm opierający się w całości na analogii z naturą i systemami szkolnictwa. Wyraźnie dobre wyniki osiągane są również za pomocą algorytmu DGA/rmr.
Obliczenia testowe
Algorytm wyspowy Optymalizacja funkcji dwóch zmiennych Użytkownik ma możliwość podania następujących parametrów: funkcji: wzór funkcji przedziały dla każdej zmiennej na którym ma być znalezione minimum algorytmu wyspowego rozmiar populacji i liczba wysp współczynnik migracji czas migracji liczba pokoleń prawdopodobieństwo krzyżowania i mutacji dokładność z jaka ma być liczone minimum
Schemat blokowy algorytmu wyspowego
Schemat blokowy algorytmu genetycznego (jedno pokolenie)
Schemat blokowy migracji (jeden poziom hierarchii)
Instrukcja obsługi Po rozpoczęciu programu użytkownik ma możliwość wykonania jednej z dwóch czynności: • Rozpoczęcie liczenia minimum funkcji – przycisk Znajdź min • Zakończenie programu – przycisk Koniec. Aby rozpocząć liczenie minimum należy wypełnić wszystkie pola w oknie programu. Po naciśnięciu przycisku Znajdź min, wszystkie pola i przyciski zostają wyłączone. Następnie wyświetla się pole wykresu i algorytm zaczyna liczyć minimum zadanej funkcji, cały czas pokazując użytkownikowi aktualne dane (numer pokolenia, wartość najlepszego osobnika z 3 poziomów hierarchii: najniższego, środkowego i najwyższego). Po zakończeniu liczenia użytkownik dostaje trzy nowe opcje: • Może wyświetlić średniego dopasowania poszczególnych pokoleń – przycisk Wykres dopasowania (wyświetla średnie dopasowanie z każdego pokolenia, oraz najlepszego osobnika z ostatniego pokolenia dla 3 poziomów hierarchii: najniższego, środkowego i najwyższego) • Może wyświetlić ponownie ostatni widok wykresu funkcji – przycisk Wykres funkcji • Może ponownie rozpocząć obliczenia – przycisk Nowa funkcja (jego naciśnięcie ponownie włącza wszystkie wyłączone elementy okna przez przycisk Znajdź min).
Algorytm migracyjny algorytm_wyspowy – funkcja odpowiadająca za działanie algorytmu migracyjnego migracja – funkcja odpowiadająca za migrację między poziomami hierarchii oblicz_progi – funkcja licząca progi akceptacji po każdej migracji (próg to średnie dopasowanie na danej wyspie) podaj_naj – funkcja podająca najlepszego osobnika z danej wyspy podaj_srednie – funkcja podaje średnie dopasowanie osobników danej wyspy w danym pokoleniu podziel_na_wyspy – funkcja odpowiada na podzielenie początkowej, losowej populacji na liczbę wysp zadaną przez użytkownika selekcja_do_migracji – funkcja selekcjonująca osobniki, które spełniają warunek do migracji, z danej wyspy selekcja_elitarna – funkcja selekcjonująca metodą elitarną osobników wśród osobników danej wyspy i migrantów (wynikiem jest podpopulacja rozmiarów danej wyspy) stworz_populacje – funkcja odpowiadająca za utworzenie losowe populacji początkowej
Lokalny SGA algorytm_genetyczny – funkcja odpowiadająca za działanie algorytmu genetycznego dla jednego pokolenia na danej podpopulacji (wyspie) dekoduj – funkcja odczytuje wartość zakodowaną binarnie w chromosomie jaka_dlugosc – funkcja licząca długość chromosomu, w zależności od podanych przedziałów i precyzji krzyzowanie – funkcja realizująca operator krzyżowania (zwracanych jest 2 najlepszych z rodziców i potomków) mutacja – funkcja realizująca operator mutacji ocena – funkcja licząca dopasowanie osobników w populacji selekcja_turniej – funkcja realizująca selekcje metodą turniejową (maksymalna wielkość turnieju to liczba równa połowie osobników w danej podpopulacji)
Wnioski W programie liczymy minimum funkcji dwóch zmiennych. Zmienną x i y umieszczamy w tym samym chromosomie. Przy precyzji 5 i długości przedziału około 2 długość zakodowanej danej wynosi 15. Ponieważ kodujemy 2 zmienne naraz długość ta wynosi już 30. Przy większych przedziałach długość ta zwiększa się znacznie, co powoduje dużą ilość obliczeń. Do macierzy, w której przechowywane są osobniki, dołożyliśmy 3 kolumny. W pierwszej z nich znajduje się odkodowana wartość zmiennej x, w drugiej wartość zmiennej y, a w trzecie wartość funkcji dopasowania. Obliczenia nowego dopasowania są wykonywane w momencie krzyżowania i tylko dla potomków oraz jeśli zajdzie mutacja co najmniej jednej pozycji chromosomu. Dzięki ograniczeniu ilości obliczeń zmniejszyliśmy koszt obliczeniowy programu
Wnioski Ponieważ metoda HFC korzysta z prostego algorytmu genetycznego wykonywanego na każdej wyspie, istotny jest odpowiedni dobór prawdopodobieństwa krzyżowania i mutacji. Bardzo dobre wyniki otrzymywaliśmy dla pk=90% i pm=5% (wykres 1). Sprawdziliśmy także inne warianty (wykresy 2, 3, 4): • pk=5% i pm=90% - w tym przypadku dopasowanie poszczególnych podpopulacji znacznie spadło, a wahanie dopasowania miedzy kolejnymi pokoleniami są znaczne; dopasowania miedzy poziomami znacznie się różniły (najlepszy osobnik z poziomu 1 był lepszy niż z poziomu 3) • pk=5% i pm=5% - w tym przypadku dopasowanie populacji również spadło, ale nie dużo i nie wystąpiły wielkie wahania między pokoleniami, wyniki nie były tak złe • pk=90% i pm=90% - w tym przypadku dopasowanie poszczególnych podpopulacji również spadło znacznie, a między pokoleniami są znaczne wahania w dopasowaniu; również i w tym przypadku najlepszy osobnik z poziomu 1 był lepszy niż z poziomu 3
Wnioski Ponieważ model HFC jest algorytmem wyspowym, to istotnym parametrem dla niego jest liczba wysp. Sprawdziliśmy to dla 3 różnych wartości (rozmiar populacji wynosił 100): • 1 wyspa – zwykły algorytm genetyczny (wykresy 5, 6) – otrzymane wyniki są bardzo dobre, jednak średnie dopasowanie populacji odbiega od najlepszego osobnika o około 10 • 5 wysp - model gruboziarnisty (wykresy 7, 8) – otrzymane wyniki są bardzo dobre zarówno dla najniższego poziomu jak i najwyższego; średnie dopasowanie najwyższego poziomu hierarchii jest bliższe najlepszemu osobnikowi, niż było to w przypadku 1 wyspy • 20 wysp - model drobnoziarnisty (wykresy 9, 10) – otrzymane wyniki końcowe nie są zadawalające, są zdecydowanie gorsze od otrzymanych mniejszej ilości wysp; średnie dopasowanie bardzo oscyluje, niższe poziomy otrzymują znacznie lepsze wyniki niż wyższe.
Wnioski Z powyższych wyników można wywnioskować, że zdecydowanie najlepsze rezultaty otrzymuje się stosując algorytm genetyczny lub algorytm wyspowy typu gruboziarnistego. Spowodowane jest to tym, że poszukiwania odbywają się równolegle na kilku podpopulacjach, jednak ilość osobników na każdej z nich umożliwia przeszukiwanie sporego obszaru rozwiązań. Ich liczba umożliwia duży napór selekcyjny z zachowaniem różnorodności genetycznej. W momencie, gdy mamy dużą liczbę wysp, ale o małej liczebności, napór selekcyjny mamy również duży, ale różnorodność genetyczna jest zbyt mała. Dodatkowo jedna przypadkowa mutacja może spowodować, że osobnik będzie miał bardzo duże przystosowanie lub bardzo małe, a wyniku podobne dopasowanie będzie na całej wyspie. Osobniki migrujące nie będą się od siebie znacznie różniły. Dodatkowo mogą wprowadzać znaczne oscylacje w dopasowaniu poszczególnych poziomów hierarchii, co w efekcie końcowym da słabe wyniki, co widać na wykresach 9 i 10.
Wnioski Ważnym elementem w algorytmach wyspowych jest migracja. Podczas przejścia na wyższy poziom hierarchii osobnik musi mieć dopasowanie wyższe niż próg akceptacji (średnie dopasowanie danej podpopulacji). Zastosowano dynamiczną zmianę progu akceptacji Jest on liczony po stworzeniu wysp oraz po każdej migracji. Dzięki temu dopasowuje się on do aktualnie panujących warunków i umożliwia przejście tylko najlepszym osobnikom. Zbadano także jak zachowuje się model HFC typu grubo i drobnoziarnistego w zależności od wielkości współczynnika migracji (0.3, 0.6, 0.9): • model gruboziarnisty (wykresy 11, 8, 13) • model drobnoziarnisty (wykresy 12, 10, 14) W obu przypadkach zdecydowanie lepsze wyniki zostały uzyskane dla współczynników migracji równych 0.6 i 0.9 niż dla 0.3. Można stwierdzić, że zbyt niski współczynnik migracji zdecydowanie pogarsza efektywność modelu HFC. Już 0.6 powoduje bardzo dobre wyniki. Podniesienie o kolejne 0.3 powoduje również polepszenie efektywności algorytmu. W przypadku modelu drobnoziarnistego jest ona bardziej widoczna niż w modelu gruboziarnistym.
Literatura 1. Tomoyuki HIROYASU, Mitsunori MIKI and Masami NEGAMI „Distributed Genetic Algorithms with Randomized Migration Rate” 2. Jian Jun. Hu, Erik D. Goodman „The Hierarchical Fair Competition (HFC) Model for Parallel Evolutionary Algorithms” 3. Gallard R.H., Esquivel S. C. “Enhancing Evolutionary Algorithms Through Recombination and Parallelism” 4. Hartmut Pohlheim (DaimlerChrysler AG, Research & Technology) “Competition and Cooperation in Extended Evolutionary Algorithms”
Literatura dodatkowa 5. D.E.Goldberg “Algorytmy genetyczne i ich zastosowania” 6. Jeffrey Horn “The Nature of Niching: Genetic Algorithms and The Evolution of Optimal, Cooperative Population” 7. J.Arabas "Wykłady z algorytmów ewolucyjnych" 8. J. Nang and K. Matsuo, A Survey on the Parallel Genetic Algorithms, 9. V. S. Gordon and D. Whitley, Serial and Parallel Genetic Algorithms as Function Optimizers 10. Bäck T. ”Evolutionary algorithms in theory and practice” 11. Belding T.C. “The Distributed Genetic Algorithm Revisited” 12. Ochoa C., Gallard R. “Strategies for Migration Overseeing in Asynchronous Schemes of Parallel Genetic Algorithms” 13. Tanese R. “Distributed Genetic Algorithms”
Internet Freeware and Shareware Tools for Evolutionary Computation: http://www.emsl.pnl.gov:2080/proj/neuron/evolve/systems/shareware.html http://www.geatbx.com/docu/algparal.html Source Code Collection for GA programs: http://www.aic.nrl.navy.mil/galist/src/