Ewolucja Różnicowa Differential Evolution Obliczenia z wykorzystaniem metod sztucznej inteligencji Arkadiusz Kalinowski Szczecin, 2016 Zachodniopomorski Uniwersytet Technologiczny w Szczecinie 1 / 22
Plan Wstęp Historia Okoliczności powstania Krótko o twórcach Zastosowania Algorytm Kroki Rodzaje Zmienne Przykład Porównanie z innymi metodami 2 / 22
Wstęp Differential Evolution (Źr. 4) 3 / 22
Historia Okoliczności powstania Ewolucja różnicowa jest efektem prób rozwiązania przez Kena Price'a problemu wielomianów Czebyszewa podsuniętego przez Rainera Storna, gdy Ken Price wymyślił sposób na zaburzanie populacji wektora wykorzystując do tego różnice wektorowe. 4 / 22
Historia Okoliczności powstania Algorytm został oficjalnie opublikowany w 1997 roku wraz z publikacją: Price, K. and Storn, R. "Differential Evolution." Dr. Dobb's J., Issue 264, 18-24 and 78, Apr. 1997. jednak społeczność fanów ewolucji różnicowej istniała już od lat 1994. 5 / 22
Historia Krótko o twórcach Rainer Storn Kenneth V. Price Instytucja: Uniwersytet Berkeley Kalifornia Instytucja:? Dziedziny: Algorytmy I Teoria Elektronika I inżynieria elek. Sztuczna Inteligencja Dziedziny: Sztuczna Inteligencja Algorytmy I Teoria Inżynieria Chemiczna 6 / 22
Zastosowania Optymizacja designu mechanicznego. Źr. https://i.ytimg.com/vi/vpxjnerevtq/maxresdefault.jpg Chemia Źr. https://en.wikipedia.org/wiki/chemistry 7 / 22
Zastosowania Planowanie Źr. https://upload.wikimedia.org/wikipedia/commons/9/98/shenzhen_metro_map-2030.png Optymalizacja Funkcyjna Źr. https://upload.wikimedia.org/wikipedia/commons/e/ea/visualizat ion_of_two_dimensions_of_a_nk_fitness_landscape.png 8 / 22
Zastosowania Design Filtrów, modulatorów Źr. https://en.wikipedia.org/wiki/weighting_filter Design Sieci Radiowych Źr. http://www.freefoto.com/preview/04-02-84/televisiontransmitter-tower--shotleyfield--county-durham 9 / 22
Zastosowania Synteza multiprocesorowa Źr. http://retis.sssup.it/waters2010/waters2010.pdf Nauka sieci neuronowych Źr. https://commons.wikimedia.org/wiki/file:competitive_neural_ne twork_architecture.png 10 / 22
Algorytm Kroki Przebieg pojedyńczej iteracji algorytmu ewolucji różnicowej (DE) (Źr. 3) 11 / 22
Algorytm Rodzaje DE/x/y z, gdzie: x Metoda generacji wagowego wektora różnicowego : Rand Na podstawie wektora różnicowego dwóch losowo-unikatowych wektorów obecnej populacji, dodanego do trzeciego losowounikatowego wektora obecnej populacji. Local-to-best Na podstawie wektora różnicowego dwóch losowo-u nikatowych wektorów obecnej populacji, dodanego do wektora różnicowego najlepszego wektora poprzedniej populacji i wektora poprzedniej populacji, dodanego do wektora poprzedniej populacji. Best Na podstawie wektora różnicowego dwóch losowo-unikatowych wektorów obecnej populacji, dodanego do wektora najlepszego poprzedniej populacji. 12 / 22
Algorytm Rodzaje DE/x/y z, gdzie: y Liczba par stosowanych w obliczeniach wektoru różnicowego. Dowolna liczba całkowita większa od 0. z Metoda wspierająca algorytm, używana w celu rozwiązania problemu stagnacji. Jitter Losowy szum wpływający na wektor różnicowy. Dither Losowy, równoległy do otrzymanego wektora różnicowego szum wpływający na ten wektor. Either-or Algorithm Losowanie metody zaburzenia po każdej iteracji spośród mutacji I rekombinacji. 13 / 22
Algorytm Rodzaje Popularne rodzaje algorytmu: DE/rand/1 DE/local-to-best/1 DE/best/1 with jitter DE/rand/1 with per-vector-dither DE/rand/1 with per-generation-dither DE/rand/1 either-or-algorithm 14 / 22
Algorytm Zmienne Najważniejsze zmienne: I_D numer parametrów funkcji celu. Przykładowo dla funkcji f(x,y) I_D = 2. I_NP liczba członków populacji. Zalecana liczba to 10*I_D! I_itermax maksymalna liczba generacji. F_weight waga wektora różnicy. Zalecana liczba w przedziale [0.5 1]. I_strategy stosowana metoda/rodzaj algorytmu. FVr_minbound / Fvr_maxbound wartości minimalne / maksymalne populacji startowej. Zalecane takie, które obejmują obszar gdzie znajduje się nasze wyszukiwane minimum. F_CR prawdopodobieństwo zajścia krzyżowania. Liczba w przedziale [0 1]. Fvr_bestmem Obecna najlepsza populacja. F_VTR wartość wystarczająca. Algorytm kończy pracę gdy zostanie ona przekroczona. 15 / 22
Algorytm Przykład Demonstracja w matlabie Źr. https://commons.wikimedia.org/wiki/file:matlab_logo.png 16 / 22
Porównanie z innymi metodami Ewolucja różnicowa vs algorytm genetyczny Problem komiwojażera Porównanie algorytmu ewolucji różnicowej (DE) i algorytmu genetycznego (GA) dla problemu komiwojażera (Źr. 1 str. 11) 17 / 22
Porównanie z innymi metodami Ewolucja różnicowa vs algorytm genetyczny Problem n-hetmanów Porównanie algorytmu ewolucji różnicowej (DE) i algorytmu genetycznego (GA) dla problemu n-hetmanów (Źr. 1 str. 12) 18 / 22
Porównanie z innymi metodami Plusy DE nad GA: Dokładniejsze wyniki. Brak problemu z lokalnymi optymami. Szybszy i wydajniejszy od GA dla dużych problemów. Lepsze wyniki dla problemów kombinatorycznych, dyskretnych. Minusy DE nad GA: Skończenie 1 generacji DE trwa 4-krotnie dłużej. Wolniejszy od GA dla małych problemów. 19 / 22
Źródła 1. Brian Hegerty, Chih-Cheng Hung, and Kristen Kasprak, A Comparative Study on Differential Evolution and Genetic Algorithms for Some Combinatorial Problems, http://www.micai.org/2009/proceedings/complementary/cd/wsimso/88/paper88.micai09.pdf, 7.03.2016. 2. Uday K. Chakraborty, Advances in Differential Evolution, Springer 2008 3. http://www1.icsi.berkeley.edu/~storn/code.html, 7.03.2016 4. http://chemweb.bham.ac.uk/~tremaynm/resint.htm, 7.03.2016 20 / 22
Pytania? 21 / 22
Dziękuję