Modyfikacje i ulepszenia standardowego algorytmu genetycznego



Podobne dokumenty
Standardowy algorytm genetyczny

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA

Algorytmy genetyczne w optymalizacji

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba

Algorytm genetyczny (genetic algorithm)-

Dobór parametrów algorytmu ewolucyjnego

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE

Strategie ewolucyjne (ang. evolution strategies)

Algorytmy ewolucyjne. Łukasz Przybyłek Studenckie Koło Naukowe BRAINS

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

WAE Jarosław Arabas Pełny schemat algorytmu ewolucyjnego

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Algorytmy ewolucyjne 1

Algorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki

Algorytmy genetyczne

Obliczenia ewolucyjne - plan wykładu

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia niestacjonarne

Strategie ewolucyjne (ang. evolu4on strategies)

Algorytmy ewolucyjne NAZEWNICTWO

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia stacjonarne i niestacjonarne

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009

Algorytmy genetyczne

Algorytmy ewolucyjne Część II

Algorytmy genetyczne

METODY HEURYSTYCZNE wykład 3

ALGORYTMY GENETYCZNE ćwiczenia

Teoria algorytmów ewolucyjnych

ALHE Z11 Jarosław Arabas wykład 11

METODY HEURYSTYCZNE wykład 3

LABORATORIUM 3: Wpływ operatorów krzyżowania na skuteczność poszukiwań AE

Algorytmy ewolucyjne. wprowadzenie

ALGORYTMY EWOLUCYJNE. INTELIGENTNE TECHNIKI KOMPUTEROWE wykład 011. Napór selekcyjny (selektywny nacisk. Superosobniki: SELEKCJA

LABORATORIUM 5: Wpływ reprodukcji na skuteczność poszukiwań AE. opracował: dr inż. Witold Beluch

Algorytmy genetyczne (AG)

Równoważność algorytmów optymalizacji

6. Klasyczny algorytm genetyczny. 1

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa

Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA HISTORIA NA CZYM BAZUJĄ AG

Techniki optymalizacji

SZTUCZNA INTELIGENCJA

Testy De Jonga. Problemy. 1 Optymalizacja dyskretna i ciągła

Algorytmy genetyczne

Metody Rozmyte i Algorytmy Ewolucyjne

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek

Programowanie genetyczne, gra SNAKE

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

Automatyczny dobór parametrów algorytmu genetycznego

przetworzonego sygnału

Algorytmy genetyczne w interpolacji wielomianowej

METODY HEURYSTYCZNE 3

SZTUCZNA INTELIGENCJA

Algorytmy genetyczne jako metoda wyszukiwania wzorców. Seminarium Metod Inteligencji Obliczeniowej Warszawa 26 X 2005 mgr inż.

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA ZADANIE KOMIWOJAŻERA METODY ROZWIĄZYWANIA. Specyfika zadania komiwojażera Reprezentacje Operatory

Algorytmy genetyczne Michał Bereta Paweł Jarosz (część teoretyczna)

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Metody przeszukiwania

BIOCYBERNETYKA ALGORYTMY GENETYCZNE I METODY EWOLUCYJNE. Adrian Horzyk. Akademia Górniczo-Hutnicza

Algorytmy ewolucyjne `

LABORATORIUM 2: Wpływ wielkości populacji i liczby pokoleń na skuteczność poszukiwań AE. opracował: dr inż. Witold Beluch

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

Algorytmy stochastyczne, wykład 02 Algorytmy genetyczne

Optymalizacja ciągła

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

WAE Jarosław Arabas Adaptacja i samoczynna adaptacja parametrów AE Algorytm CMA-ES

Problemy z ograniczeniami

Zaawansowane programowanie

5. Algorytm genetyczny przykład zastosowania

Generowanie i optymalizacja harmonogramu za pomoca

Inspiracje soft computing. Soft computing. Terminy genetyczne i ich odpowiedniki w algorytmach genetycznych. Elementarny algorytm genetyczny

Wstęp do Sztucznej Inteligencji

KARTA MODUŁU KSZTAŁCENIA

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin. 2009, Oeconomica 275 (57), 53 58

Zadania laboratoryjne i projektowe - wersja β

Algorytmy genetyczne służą głównie do tego, żeby rozwiązywać zadania optymalizacji

Aproksymacja funkcji a regresja symboliczna

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

Rój cząsteczek. Particle Swarm Optimization. Adam Grycner. 18 maja Instytut Informatyki Uniwersytetu Wrocławskiego

Optymalizacja. Wybrane algorytmy

Program "FLiNN-GA" wersja 2.10.β

ALGORYTMY GENETYCZNE

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin., Oeconomica 2017, 337(88)3, 5 12

Programowanie genetyczne - gra SNAKE

LICZEBNOŚĆ POPULACJI OBLICZENIA EWOLUCYJNE. wykład 3. Istotny parametr AG...

Algorytmy ewolucyjne

Algorytmy ewolucyjne (3)

Obliczenia Naturalne - Algorytmy genetyczne

Metody Optymalizacji: Przeszukiwanie z listą tabu

Algorytmy zrandomizowane

Wykorzystanie metod ewolucyjnych w projektowaniu algorytmów kwantowych

Systemy Inteligentnego Przetwarzania wykład 4: algorytmy genetyczne, logika rozmyta

Optymalizacja optymalizacji

METODY SZTUCZNEJ INTELIGENCJI algorytmy ewolucyjne

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

OBLICZENIA EWOLUCYJNE

ALGORYTMY GENETYCZNE (wykład + ćwiczenia)

Transkrypt:

Modyfikacje i ulepszenia standardowego algorytmu genetycznego 1

2 Przypomnienie: pseudokod SGA t=0; initialize(p 0 ); while(!termination_condition(p t )) { evaluate(p t ); T t =selection(p t ); O t =crossover(t t ); Q t =mutation(o t ); P t+1 =Q t ; t=t+1; }

3 Krzyżowanie czy mutacja Który operator jest ważniejszy? Długa (i nierozstrzygnięta - zależy od problemu) debata w społeczności naukowców. Poniżej przedstawiam mój własny pogląd: Oba operatory pełnią ważną funkcję. Krzyżowanie pozwala na eksplorację - odkrywanie nowych obiecujących obszarów w przestrzeni rozwiązań. Osobnik po krzyżowaniu jest diametralnie różny od swoich rodziców - duże skoki w przestrzeni rozwiązań Tylko krzyżowanie jest w stanie na połączyć informacje pochodzące z dwóch osobników. Mutacja, poprzez niewielkie zmiany (osobnik po mutacji bardzo przypomina rodzica) wykonuje eksploatację - optymalizację lokalną w obiecującym regionie przestrzeni cech odkrytym przez krzyżowanie. Możliwe są algorytmy ewolucyjne działające wyłącznie w oparciu o mutację. Algorytm bez mutacji oparty wyłącznie na krzyżowaniu nie może działać (dlaczego?).

4 Kryteria zatrzymania algorytmu Do tej pory wspomniałem o zakończeniu algorytmu po zadanej z góry liczbie iteracji. Lepszym kryterium, niewrażliwym na rozmiar populacji S, jest zatrzymanie algorytmu po zadanej z góry liczbie obliczeń funkcji dopasowania. Zatrzymanie po osiągnięciu zadanej wartości funkcji dopasowania (ale dla wielu problemów nie znamy optymalnej wartości tej funkcji). Zatrzymanie gdy najlepsza wartość dopasowania w populacji nie ulega ulepszeniu przez pewną, zadaną liczbę generacji. Zatrzymanie po przekroczeniu maksymalnego wykorzystanego czasu pracy procesora. Zatrzymanie, gdy różnorodność osobników w populacji, mierzona np. przez entropię, spadnie poniżej pewnego progu.

Selekcja turniejowa (ang. tournament selection) Turniej Wybierz losowo q osobników (bez zwracania) z populacji P t. Rozmiar turnieju q jest parametrem algorytmu. Skopiuj najlepszego z wybranych osobników do populacji rodziców T t. Zwróć q osobników z powrotem do P t. Organizuj turniej S razy otrzymując kompletną populację rodziców T t o liczności S. Im większa wartość parametru q, tym większy napór selekcyjny. Zalety brak ograniczeń odnośnie optymalizowanej funkcji znanych z selekcji proporcjonalnej. nie wymaga znajomości optymalizowanej funkcji (musimy tylko wiedzieć, kiedy jeden osobnik jest lepszy od drugiego - przydaje się to w zastosowaniach np. w teorii gier). nie wymaga globalnych statystyk populacji, a przez to jest łatwiejsza w implementacji na maszynach równoległych. 5

Selekcja oparta na rangach (rangowa) Próba ominięcia wad selekcji proporcjonalnej poprzez oparcie prawdopodobieństwa selekcji nie na bezwzględnej wartości funkcji dopasowania, ale na jej porównaniu z dopasowaniem innych osobników. Nadanie rang: posortuj osobników w populacji w oparciu o wartość funkcji dopasowania. Osobnik o największym dopasowaniu otrzymuje rangę S, osobnik o dopasowaniu drugim co do wielkości rangę S-1,..., osobnik najgorszy rangę 1. Łatwo poradzimy sobie z problemami typu funkcja celu osiąga wartości mniejsze od 0 bądź wymaga minimalizacji. Algorytm wymaga sortowania, o koszcie obliczeniowym O(S*logS), ale jest on z reguły niewielki w porównaniu z kosztem obliczenia funkcji dopasowania. Niech r(y i ) jest rangą osobnika y i. Prawdopodobieństwo selekcji p(y i ) jest wyliczone wyłącznie na podstawie r(y i ), a nie na postawie f(y i ). Jeżeli znamy już p(y i ), to dalej wykorzystujemy metodę koła ruletki, lub lepiej algorytm SRS albo SUS. 6

Selekcja rangowa z liniową funkcją prawdopodobieństwa 7 p y i = 2 s S 2 r y i s 1 S S 1 p(y i ) jest liniową funkcją r(y i ). S: rozmiar populacji, 1<s 2 parametr algorytmu określający liczbę kopii najlepszego osobnika (im większy s, tym większy napór selekcyjny). Przykład dla S=3 (Eiben i Smith): i f(y i ) r(y i ) p prop (y i ) p rank (y i ) [s=2] p rank (y i ) [s=1.5] 1 1 1 0.1 0.0 0.0167 2 5 3 0.5 0.67 0.5 3 4 2 0.4 0.33 0.33 Suma 10 1.0 1.0 1.0 widoczny jest większy napór selekcyjny dla s=2 niż dla s=1.5

Elitarny model sukcesji (K. A. de Jong, 1975) Model sukcesji z całkowitym zastępowaniem rodziców przez potomków, może prowadzić do zjawiska w którym wartość najlepszego dopasowania w populacji w generacji t+1 jest mniejsza (gorsza) niż wartość najlepszego dopasowania w populacji w generacji t. Elitaryzm: Zapamiętaj najlepszego y Best osobnika w populacji P t. Jeżeli dopasowanie najlepszego osobnika w populacji P t+1 jest mniejsze od dopasowania y Best, wstaw y Best do populacji P t+1 (na przykład na miejsce osobnika o najmniejszym dopasowaniu). Algorytm można rozszerzyć na zapamiętywanie η najlepszych osobników (J. Arabas, s. 130). Model elitarny przyspiesza zbieżność, ale może również prowadzić do przedwczesnej zbieżności do optimum lokalnego, zwłaszcza przy dużym η. 8

Algorytm genetyczny stanu stałego (ang. steady state) Algorytm SGA jest algorytmem z generacyjnym modelem sukcesji. każdy osobnik przeżywa dokładnie jedną generację. populacja potomków w pełni zastępuje populację rodziców. Na przeciwnym biegunie jest algorytm stanu stałego, w którym w jednej generacji zastępowany jest jeden osobnik w populacji. wybierz (np. przy pomocy selekcji turniejowej) dwóch rodziców. poddaj ich krzyżowaniu i mutacji. wybierz lepszego z potomków. zastąp jednego z osobników populacji. Zastępowany osobnik może być (sukcesja): najstarszym osobnikiem w populacji. osobnikiem w populacji o najgorszym dopasowaniu. jednym z rodziców. losowym osobnikiem. osobnikiem najbardziej podobnym do potomka. 9

10 Krzyżowanie wielopunktowe (rys. - Eiben & Smith) Wybierz losowo n punktów przecięcia. Podziel chromosomy według n-punktów. Sklej odcinki wymieniając fragmenty chromosomów pomiędzy rodzicami. Z krzyżowaniem wielopunktowy eksperymentował K. A. de Jong (1975)

Krzyżowanie jednostajne (ang. uniform, Syswerda 1989) 11 Wymiana każdej pary genów pomiędzy chromosomami jest przeprowadzana z prawdopodobieństwem 0.5 Który operator krzyżowania wybrać? W eksperymentach najgorzej wypada krzyżowanie jednopunktowe (Eshelman i wsp., 1989), ale brak zdecydowanego zwycięzcy.

Krzyżowanie wielorodzicielskie (ang. multi-parent) 12 Mutacja jest operatorem operującym na jednym rodzicu. Krzyżowanie operuje na dwóch. Projektując operatory nie jesteśmy ograniczeni przez mechanizmy znane w przyrodzie. Stąd idea krzyżowania z liczbą rodziców p>2. Przykład: krzyżowanie diagonalne (będące uogólnieniem krzyżowania wielopunktowego) Liczba punktów cięcia równa liczbie rodziców

Reprezentacja całkowitoliczbowa (ang. integer) y 8 1 3 7 y 1 y 2 y 3 y 4 Chromosom ma postać gdzie najczęściej y=[ y 1, y 2,..., y L ] y i {a i, a i 1,..., b i 1, b i } C Niektóre problemy optymalizacyjne charakteryzują się naturalnie zmiennymi całkowitymi (np. przetwarzanie obrazów). Inne dają się zakodować łatwo przy pomocy liczb całkowitych np. zmienne kategoryczne w eksploracji danych. Operatory krzyżowania n-punktowego i jednostajnego działają bez zmian. Mutacja: wylosuj losowo liczbę ze zbioru wartości zmiennej całkowitej y i. Ale rozważmy sytuację w której wartości całkowite kodują zakres wartości zmiennej wyrażającej stopień bólu: {0-Brak, 1-Słaby, 2- Średni, 3-Silny,4-Bardzo Silny, 5 - Nie do zniesienia} Być może operator mutacji powinien być tak skonstruowany aby zmiana 5 4 była o wiele bardziej prawdopodobna niż 5 0. 13

14 Reprezentacja zmiennopozycyjna Generalnie obecnie uważa się, że dla problemów optymalizacji numerycznej najlepsza jest reprezentacja zmiennopozycyjna, jako pojęciowo bliższa przestrzeni zadania (Michalewicz, 1996, s. 129). W tej reprezentacji chromosom x ma postać ciągu (wektora) liczb rzeczywistych: x=[ x 1, x 2,..., x L ] gdzie x i a i, b i R x 0.12 2.86 3.24 1.59 x 1 x 2 x 3 x 4 Pozostaje zaprojektowanie operatorów krzyżowania i mutacji działających dla tej reprezentacji. Nie jest to trywialne. W niektórych złożone problemy optymalizacyjne, np. w mechanice, część zmiennych jest całkowita a cześć rzeczywista.

Pierwsza próba (Michalewicz, 1996, s. 132) Operator krzyżowania: standardowe krzyżowanie jednopunktowe, w którym wymieniane są kompletne liczby zmiennoprzecinkowe. 0.12 2.86 3.24 1.59 0.12 5.14 4.89 2.74 0.38 5.14 4.89 2.74 rodzice 0.38 2.86 3.24 1.59 potomkowie Operator mutacji: mutując gen x i wylosuj liczbę z przedziału (a i,b i ). Implementacja: jeżeli r jest liczbą losową z przedziału (0,1), to x i ' =a i +r (b i a i ) Wyniki nie najlepsze (gorsze, niż w przypadku chromosomów binarnych), ponieważ operator mutacji prowadzi do dużych zmian w chromosomie. 15

16 Operator mutacji nierównomiernej t jest numerem iteracji, T całkowitą liczbą iteracji, po której zatrzymujemy algorytm. x ' i = i t,b i x i z prawd. 0.5 {x x i t, x i a i z prawd. 0.5 Funkcja Δ(t,y) zwraca liczbę losową z przedziału [0,y], przy czym wraz ze wzrostem numeru iteracji t rośnie prawdopodobieństwo, że Δ(t,y) jest bliskie zeru. Jest ona dana wzorem (Michalewicz przyjął c=2): t, y = y 1 r 1 t / T c Gdzie r jest liczbą losową z przedziału [0,1].

17 Mutacja nierównomierna - funkcja Δ Δ(t, y)= y (1 r (1 t /T ) c ) y y t/t=0.5 (algorytm zaawansowany w 50%) r r t/t=0.9 (algorytm zaawansowany w 90%) Im większe zaawansowanie algorytmu, tym mniejsza szansa wylosowania dużych wartości y.

Operatory krzyżowania arytmetycznego (1) Operator whole arithmetic crossover z dwóch rodziców x 1 i x 2 tworzy dwóch potomków y 1 oraz y 2. y 1 =α x 1 +(1 α) x 2 gdzie α {0,1} y 2 =(1 α) x 1 +α x 2 Idea: Stwórz potomków ulokowanych pomiędzy rodzicami. Przykład: α=0.25 x 1 0.1 0.1 0.1 0.1 y 1 0.25 0.25 0.25 0.25 x 2 0.3 0.3 0.3 0.3 y 2 0.15 0.15 0.15 0.15 rodzice potomkowie Parametr α może być: Stały podczas procesu ewolucji. Losowany z każdą aplikacją operatora krzyżowania. Zmienny w zależności od numeru iteracji algorytmu genetycznego. 18

19 Operatory krzyżowania arytmetycznego (2) Operator single arithmetic crossover z dwóch rodziców x 1 i x 2 tworzy dwóch potomków y 1 oraz y 2. y 1 ={x 1 1, x 1 1 2,, x k 1,α x 1 k +(1 α) x 2 1 k, x k+1, x 1 L } y 2 ={x 2 1, x 2 2 2,, x k 1,α x 2 k +(1 α) x 1 2 k, x k +1, x 2 L } Parametr α wybierany podobnie jak poprzednio. k jest losowo wybranym numerem genu. Przykład: α=0.25, k=3 x 1 0.1 0.1 0.1 0.1 y 1 0.1 0.1 0.25 0.1 x 2 0.3 0.3 0.3 0.3 y 2 rodzice 0.3 0.3 0.15 0.3 potomkowie

20 Operatory krzyżowania arytmetycznego (3) Operator simple arithmetic crossover z dwóch rodziców x 1 i x 2 tworzy dwóch potomków y 1 oraz y 2., w ten sposób że pierwszych k genów pozostaje bez zmian, a następnych L-k jest obliczanych jak w operatorze whole arithmetic crossover y 1 ={x 1 1,, x 1 1 2 k, α x k +1 +(1 α) x k +1,,α x 1 L +(1 α) x 2 L } y 2 ={x 2 1,, x 2 2 1 k,α x k+1 +(1 α) x k+1,,α x 2 L +(1 α) x 1 L } Parametr α wybierany podobnie jak poprzednio. k, podobnie jak poprzednio, jest losowo wybranym numerem genu. Przykład: α=0.25, k=2 x 1 0.1 0.1 0.1 0.1 y 1 0.1 0.1 0.25 0.25 x 2 0.3 0.3 0.3 0.3 y 2 rodzice 0.3 0.3 0.15 0.15 potomkowie

21 Podsumowanie Algorytm genetyczny z reprezentacją zmiennopozycyjną i specjalnymi operatorami daje znacznie lepsze wyniki niż algorytm z klasyczną reprezentacją binarną (Michalewicz, 1996, rozdz. 5 oraz 6) reprezentacja i operatory dopasowane do problemu. Podobnie jest w przypadku problemów optymalizacji dyskretnej. np. reprezentacja permutacyjna i operatory krzyżowania oraz mutacji dla problemu komiwojażera. Za tydzień strategie ewolucyjne (evolution strategies). zaprojektowane w Europie (Niemcy). przeznaczone do optymalizacji numerycznej. temat jednego z projektów.