Rój cząsteczek Particle Swarm Optimization Adam Grycner Instytut Informatyki Uniwersytetu Wrocławskiego 18 maja 2011 Adam Grycner Rój cząsteczek 1 / 38
Praca Kennedy ego i Eberhart a Praca Kennedy ego i Eberhart a Stado/ławica Rój W 1995 James Kennedy i Russell Eberhart opublikowali pracę o tytule Particle Swarm Optimization. Zaprezentowali oni nową metodę optymalizacji ciągłych nieliniowych funkcji. Opierała się ona na dwóch metodach 1 Sztuczne życie [artificial life] (stada ptaków, ławice ryb, teoria roju) 2 Ewolucja obliczeniowa [evolutionary computation] (algorytmy genetyczne, strategie ewolucyjne, programowanie genetyczne) Adam Grycner Rój cząsteczek 2 / 38
Obserwacja ławic, stad Praca Kennedy ego i Eberhart a Stado/ławica Rój powracanie do miejsca, gdzie wcześniej znaleziono jedzenie przekazywanie informacji o pożywieniu wewnątrz stada/ławicy Adam Grycner Rój cząsteczek 3 / 38
Cechy stada Praca Kennedy ego i Eberhart a Stado/ławica Rój bezpieczeństwo ruchu zdolność do poruszania się bez ryzyka kolizji z przeszkodami znajdującymi się w przestrzeni, oraz z innymi osobnikami rozprzestrzenianie się zdolność do rozprzestrzeniania się stada w celu ustalenia i zarządzania minimalnymi odległościami między osobnikami skupianie zdolność do gromadzenia się osobników stada w celu ustalenia i zarządzania maksymalnymi odległościami między osobnikami orientacja zdolność znajdowania określonych regionów lub punktów w przestrzeni Adam Grycner Rój cząsteczek 4 / 38
Cechy stada Praca Kennedy ego i Eberhart a Stado/ławica Rój bezpieczeństwo ruchu W abstrakcyjnym środowisku jest nieistotne. Agenci mogą zajmować taką samą pozycję. rozprzestrzenianie się Przy optymalizacji pragniemy zbieżności skupianie orientacja Adam Grycner Rój cząsteczek 5 / 38
Rój Praca Kennedy ego i Eberhart a Stado/ławica Rój Po wyeliminowaniu dwóch cech stada okazało się, że ruch agentów bardziej przypomina zachowanie roju cząsteczek, a nie stada/ławicy. Adam Grycner Rój cząsteczek 6 / 38
Cechy inteligentnego roju Praca Kennedy ego i Eberhart a Stado/ławica Rój Cechy inteligentnego roju według Millonas a bliskość obsługa populacji powinna zajmować proste struktury i mało mocy obliczeniowej jakość ocena jakości cząstek różnorodność odpowiedzi populacja powinna nie popadać w ograniczony zbiór zachowań stabilność populacja nie powinna zmieniać zachowania przy każdej najmniejszej zmianie środowiska adaptacyjność populacja powinna umieć zmienić swoje zachowanie jeśli się to opłaca Adam Grycner Rój cząsteczek 7 / 38
Atrybuty cząsteczki Praca Kennedy ego i Eberhart a Stado/ławica Rój położenie prędkość jakość najlepsze swoje położenie zbiór sąsiadów oraz najlepsze ich położenie Adam Grycner Rój cząsteczek 8 / 38
Wybory cząsteczki Praca Kennedy ego i Eberhart a Stado/ławica Rój Cząsteczka stara się poruszać zgodnie z trzema kierunkami zgodnie z poprzednim kierunkiem zgodnie z kierunkiem do najlepszej znalezionej pozycji zgodnie z kierunkiem do najlepszej pozycji znalezionej przez sąsiadów Adam Grycner Rój cząsteczek 9 / 38
Symulacja stada ptaków Ewolucja wzoru Wzór 1 Adam Grycner Rój cząsteczek 10 / 38
Ewolucja wzoru Wzór 2 - dostosowanie prędkości w zależności od odległości od maksimum Adam Grycner Rój cząsteczek 11 / 38
Ewolucja wzoru Wzór 3 - statystycznie przez połowę czasu cząsteczka będzie przelatywać przez maksimum Adam Grycner Rój cząsteczek 12 / 38
Ewolucja wzoru Wzór 4 - ostateczny wzór: Wzór na ruch cząsteczki v = c 1 r 1 v + c 2 r 2 (pbest x) + c 3 r 3 (gbest x) x = x + v gdzie v - prędkość cząsteczki x - położenie cząsteczki pbest - najlepsze znalezione przez cząsteczkę położenie gbest - najlepsze znalezione przez zbiór sąsiadów położenie c 1, c 2, c 3 - współczynniki określające wpływ poszczególnych elementów r 1, r 2, r 3 - wartości losowe z rozkładu jednostajnego U(0, 1) Adam Grycner Rój cząsteczek 13 / 38
Ewolucja wzoru Adam Grycner Rój cząsteczek 14 / 38
Ewolucja wzoru Dla c 1 = r 1 = 1 cząsteczki wykonują swarming movement wokół: 1 c 2 +c 3 (c 2 pbest + c 3 gbest) Adam Grycner Rój cząsteczek 15 / 38
Ewolucja wzoru Wylosuj początkowe położenia i prędkości roju while kryterium_zatrzymania dla każdej cząsteczki i zaktualizuj prędkość według wzoru 4 zaktualizuj pozycję według wzoru 4 jeżeli f(nowa_pozycja) < f(pbest_i): pbest_i = nowa_pozycja jeżeli f(nowa_pozycja) < f(gbest_i): gbest_i = nowa_pozycja Adam Grycner Rój cząsteczek 16 / 38
Brak sąsiedztwa Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne działa słabo Adam Grycner Rój cząsteczek 17 / 38
Sąsiedztwo globalne Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne łatwe w implementacji wymaga niskich kosztów obliczeniowych szybko zbiega Adam Grycner Rój cząsteczek 18 / 38
Sąsiedztwo według indeksu Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne Pierścień Sąsiadami są cząsteczki o indeksach < i l; i + l > modulo liczba cząsteczek Adam Grycner Rój cząsteczek 19 / 38
Sąsiedztwo według indeksu Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne Koło Adam Grycner Rój cząsteczek 20 / 38
Sąsiedztwo według indeksu Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne Von Neumann Adam Grycner Rój cząsteczek 21 / 38
Sąsiedztwo przestrzenne Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne Po każdej iteracji szukamy k najbliższych cząsteczek według ustalonej metryki Adam Grycner Rój cząsteczek 22 / 38
Sąsiedztwo przestrzenne Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne Szukanie k najbliższych sąsiadów według parametru ψ ab = pos a pos b max i,j S pos i pos j lub wykorzystanie dynamicznej wartości progowej frac(k) = 3k+0.6kmax k max gdzie k max - przewidywana maksymalna liczba iteracji k - liczba iteracji kosztowne obliczeniowo lepiej przeszukuje przestrzeń przeszukiwań Adam Grycner Rój cząsteczek 23 / 38
Inne sąsiedztwa Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne topologia gwiazdy topologia z błędem (zaburzenie poprzednich wersji) piramida Adam Grycner Rój cząsteczek 24 / 38
Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne Particle Swarm Optimization zostało zaprojektowane do optymalizacji rzeczywistych funkcji ciągłych. Jednak istnieją modyfikacje pozwalające optymalizować problemy, gdzie rozwiązaniami są wektory binarne lub wektory liczb całkowitych Adam Grycner Rój cząsteczek 25 / 38
Wersja binarna Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne Wykorzystanie funkcji sigmoidalnej Funkcja sigmoidalna sig(v t i,j ) = 1 1+exp( v t i,j ) Adam Grycner Rój cząsteczek 26 / 38
Wersja binarna Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne Wykorzystanie funkcji sigmoidalnej Nowe współrzędne cząsteczki x t+1 i,j = { 0 jeżeli r t 3,j sig(v t+1 i,j ) 1 w.p.p. r t 3,j = U(0, 1) Adam Grycner Rój cząsteczek 27 / 38
Geometric PSO Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne Wykorzystane krzyżowanie z trzema rodzicami z ppb. w 1 na pozycji x j przepiszemy zawartość j-tej pozycji poprzedniego położenia z ppb. w 2 na pozycji x j przepiszemy zawartość j-tej pozycji pbest z ppb. w 3 na pozycji x j przepiszemy zawartość j-tej pozycji gbest Adam Grycner Rój cząsteczek 28 / 38
Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne PSO dla problemów kombinatorycznych Należy zdefiniować, czym jest: położenie cząsteczki (np. permutacja) prędkość (np. lista transpozycji) odejmowanie[pozycja, pozycja] (wynik: wektor prędkości między x 1, a x 2 ) mnożenie zewnętrzne[skalar, prędkość] dodawanie[wektor,wektor] zastępowanie[pozycja, wektor] zaaplikowanie położenia do prędkości Adam Grycner Rój cząsteczek 29 / 38
Współczynnik inercji Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne Dodatkowy współczynnik do równania na prędkość cząsteczki Wzór na prędkość v = c 1 r 1 v + c 2 r 2 (pbest x) + c 3 r 3 (gbest x) c 1 maleje z czasem duża inercja - aktywna eksploracja całej dziedziny mała inercja - przeszukiwanie lokalnej Adam Grycner Rój cząsteczek 30 / 38
Limit prędkości Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne W celu uniknięcia zjawiska eksplozji (ucieczki cząsteczek w pierwszych iteracjach) często wprowadza się limit prędkości cząsteczki i-tej na pozycji k-tej. { v i,k vi,k jeżeli v = i,k v max v max jeżeli v i,k > v max lub gdzie v = v i { v i,k vi,k jeżeli v v max = v max v v i,k jeżeli v > v max Adam Grycner Rój cząsteczek 31 / 38
Selekcja Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne 1 wybierz połowę cząsteczek selekcja turniejowa lepsza połowa 2 skopiuj położenia lepszych cząsteczek w miejsce gorszych 3 pozostaw informację pbest oraz prędkości gorszych cząsteczek Wzmocnienie przeszukiwania lokalnego kosztem globalnego. Zbyt szybkie zbieganie do ekstremów lokalnych. Adam Grycner Rój cząsteczek 32 / 38
Hodowla cząsteczek Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne Reprodukcja i rekombinacja nadanie cząsteczkom ppb. wyboru, jako rodzica wylosowanie rodziców i skrzyżowanie arytmetyczne położeń oraz prędkości { pos a = rpos a + (1 r)pos b pos b = rpos b + (1 r)pos a { v a = va+v b v a+v b v a v b = va+v b v a+v b v b r (0, 1) Adam Grycner Rój cząsteczek 33 / 38
Inne Sąsiedztwo Wersja dla problemów dyskretnych Modyfikacja prędkości Operatory ewolucyjne mutacja specjacja różnicowanie (diversity) - niszowanie, dzielenie funkcji przystosowania itd. Adam Grycner Rój cząsteczek 34 / 38
Adaptacja Adaptacja Multiswarm PSO Istnieją modyfikacje PSO, w którym w raz z upływem czasu zmienia się: rozmiar roju rozmiar sąsiedztwa cząsteczki współczynniki c 1, c 2, c 3 Adam Grycner Rój cząsteczek 35 / 38
Multiswarm PSO Adaptacja Multiswarm PSO Wprowadzamy kilka rojów, każdy o innym kolorze Cząsteczki o różnych kolorach odpychają się Wprowadzamy siłę odpychającą, którą dodamy do wyliczanej prędkości λ = λ x y 2 x y x y = λ x y 3 (x y) { 0 jeżeli cząsteczki są tego samego koloru 1 jeżeli cząsteczki są różnego koloru Dobre do optymalizacji wielomodalnej Adam Grycner Rój cząsteczek 36 / 38
Bibliografia Adaptacja Multiswarm PSO Maurice Clerc, Particle Swarm Optimization J. Kennedy, R. Eberhart, Particle Swarm Optimization K. Kameyama, Particle Swarm Optimization A Survey E. Talbi, Metaheuristics : from design to implementation materiały dostarczone przez prowadzącego Adam Grycner Rój cząsteczek 37 / 38
Adaptacja Multiswarm PSO Dziękuję za uwagę Adam Grycner Rój cząsteczek 38 / 38