Obliczenia Naturalne
Transkrypt
Obliczenia Naturalne
Wstęp Algorytmy Pszczółki Inne pszczelarskie Literatura Wstęp Obliczenia Naturalne - Algorytmy rojowe Paweł Paduch Politechnika Świętokrzyska 24 kwietnia 2014 Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 1 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Literatura Wstęp Plan wykładu 1 Wstęp Literatura Wstęp 2 Algorytmy Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best 3 Pszczółki Wstęp Naturalne pszczoły Algorytm Przykład 4 Inne pszczelarskie Algorytmy BCO Algorytmy MBO Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 2 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Literatura Wstęp Literatura Mariusz Flasiński - Wstęp do sztucznej inteligencji, PWN, 2011 Russell C. Eberhart, Yuhui Shi, James Kennedy - Swarm Intelligence, Elsevier, 2001 E. Bonabeau, M. Dorigo, G. Theraulaz, Swarm Intelligence: From Natural to Artificial Systems, New York, NY: Oxford University Press, 1999 PSO Tutorial - http://www.swarmintelligence.org/ Eberhart, R. C. and Kennedy, J. A new optimizer using particle swarm theory. Proc. 6th Int. Symp. on Micromachine and Human Science, Nagoya, Japan. s. 39-43, 1995 Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 3 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Literatura Wstęp Literatura Yuhui Shi and Russell Eberhart - A Modified Particle Swarm Optimizer. IEEE 1998 Darvis Karaboga - An idea based on honey bee swarm for numerical optimization, 2005 Dušana Teodorović and Mauro Dell’orco Bee Colony Ooptimization – A Cooperative Learning Aproach To Complex Ttransportation Problem, 2005 Hussein A. Abbass - MBO: Marriage in Honey Bees Optimization A Haplometrosis Polygynous Swarming Approach, IEEE Congress on Evolutionary Computation, strony 207–214, 2001 Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 4 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Literatura Wstęp Wstęp W 1987 Craig Reynolds za pomocą 3 prostych reguł (dopasuj prędkość do sąsiada, kieruj się do widocznego centrum stada, unikaj kolizji) pokazał, że można zaprogramować realistycznie wyglądające poruszające się stado. Metoda optymalizacji rojem cząstek została zaproponowana w 1995 roku przez Russela Eberharta i Jamesa Kennedy’ego inspirowanych zachowaniem ptasich stad czy rybich ławic. Autorzy zastosowali optymalizację rojem do znajdowania wag podczas uczenia sieci neuronowej. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 5 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Literatura Wstęp Wstęp Optymalizacja rojem cząstek (ang. Particle swarm optimization) jest prostym i intuicyjnym mechanizmem optymalizacyjnym. Każda cząstka reprezentuje potencjalne rozwiązanie. Cząstki poruszają się przez wielowymiarową przestrzeń poszukiwań. Pozycja jest aktualizowana według własnego doświadczenia oraz doświadczenia sąsiadów, poprzez dodanie wektora prędkości do ich aktualnego stanu przemieszczania się. Aktualna prędkość zależy od, poprzedniej prędkości, dążenia do swojego najlepszego poprzedniego położenia oraz dążenia do globalnego lub lokalnego najlepszego wyniku sąsiada. Każda cząstka jest zbieżna do punktu pomiędzy własnym najlepszym rozwiązaniem a najlepszym rozwiązaniem globalnym. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 6 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Trzy algorytmy Rój cząstek porusza się kierując się doświadczeniem własnym, najbliższych sąsiadów lub całego stada. Dlatego opracowano 3 główne algorytmy optymalizacji rojem cząstek: Individual Best - każda cząstka zapamiętuje swoje dotychczasowe najlepsze rozwiązanie i nie używa informacji pochodzących od innych cząstek, Global Best - każda cząstka porównuje swoją pozycję do najlepszej pozycji wśród wszystkich innych cząstek, Local Best - uogólnienie Global Best, rozpatrujemy tylko najbliższe sąsiedztwo (ale sąsiedztwo może zawierać też wszystkie cząstki). Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 7 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Definicje Każda i-ta cząstka w czasie t (Pi (t)) w hiperprzestrzeni n wymiarowej posiada dwa parametry: położenie: x~i (t) = (xi1 (t), xi2 (t), ..., xin (t)), oraz prędkość: v~i (t) = (vi1 (t), vi2 (t), ..., vin (t)). Nową pozycję w czasie t + 1 wyznaczamy: x~i (t + 1) = x~i (t) + v~i (t + 1) Przy czym v~i (t + 1) zależy od użytego algorytmu. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 8 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Algorytm Individual Best k - liczba cząstek Algorytm 1 Individual Best P(t) = {P1 , P2 , ..., Pk } zbiór cząstek 1: P(t) ← losowo wygeneruj rój cząstek 2: repeat 3: for all Pi w zbiorze P do 4: wyznacz F (~ xi (t)) 5: if F (~ xi (t)) < pbesti then 6: pbesti ← F (~ xi (t)) ~ 7: xpbesti ← x~i (t). 8: end if 9: end for 10: for all Pi w zbiorze P do ~ 11: vi (t + 1) ← ~ vi (t) + ϕ(~ xpbesti − ~ xi (t)) ~ 12: xi (t + 1) ← ~ xi (t) + ~ vi (t + 1) 13: end for 14: t ←t +1 15: until Spełnione kryteria stopu Pi = (~ xi , v~i ) - każda cząstka ma położenie i prędkość F (~ xi (t)) - funkcja przystosowania cząstki Pi w czasie t w miejscu x~i ϕ - liczba losowa Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 9 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Algorytm Individual Best 1 ∀Pi ∈ P(0) wylosuj położenie ~xi (0) oraz prędkość ~vi (0), t = 0 2 Oceń rozwiązanie F (~xi (t)) każdej cząstki w P(t) na podstawie jej położenia ~xi (t) 3 Jeżeli znalazło się rozwiązanie lepsze od obecnego pbesti to zapamiętaj go oraz jego położenie ~xi (t) 4 ∀Pi ∈ P(0) wyznacz nową prędkość w kierunku i zwrocie do nowego najlepszego rozwiązania ale o wartości losowej. 5 ∀Pi ∈ P(0) na podstawie nowej prędkości ustal nowe położenie. 6 Zwiększ t o jeden i jeżeli warunek stopu nie spełniony zacznij od punktu 2. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 10 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Wizualizacja obliczeń ~vi (t + 1) = ~vi (t) + ϕ(~xpbesti − ~xi (t)) ~xi (t + 1) ~xi (t + 1) = ~xi (t) + ~vi (t + 1) v~i (t + 1) ~xpbesti v~i (t ) ~x pb ~xi (t) Paweł Paduch i est ~x pb i est − − ~x i( t) t )) ~x i( ϕ( Obliczenia Naturalne - Algorytmy rojowe 11 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Algorytm global Best Algorytm 2 Global Best 1: P(t) ← losowo wygeneruj rój cząstek 2: repeat 3: for all Pi w zbiorze P do 4: wyznacz F (~ xi (t)) 5: if F (~ xi (t)) < pbesti then 6: pbesti ← F (~ xi (t)) ~ 7: xpbesti ← x~i (t). 8: end if 9: if F (~ xi (t)) < gbesti then 10: gbesti ← F (~ xi (t)) ~ 11: xgbesti ← x~i (t). 12: end if 13: end for 14: for all Pi w zbiorze P do ~ 15: vi (t + 1) ← ~ vi (t) + ϕ1 (~ xpbesti − ~ xi (t)) + ϕ2 (~ xgbesti − ~ xi (t)) ~ 16: xi (t + 1) ← ~ xi (t) + ~ vi (t + 1) 17: end for 18: t ←t +1 19: until Spełnione kryteria stopu Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 12 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Algorytm Global Best 1 2 3 4 5 6 ∀Pi ∈ P(0) wylosuj położenie ~xi (0) oraz prędkość ~vi (0), t = 0 Oceń rozwiązanie F (~xi (t)) każdej cząstki w P(t) na podstawie jej położenia ~xi (t) Jeżeli znalazło się rozwiązanie lepsze od obecnego pbesti to zapamiętaj go oraz jego położenie ~xi (t) Dodatkowo jeżeli znalazło się rozwiązanie lepsze od obecnego globlnego gbest to zapamiętaj go oraz jego położenie ~xi (t) ∀Pi ∈ P(0) wyznacz nową prędkość w kierunku i zwrocie uwzględniającym najlepsze rozwiązanie danej cząstki oraz globalne. ∀Pi ∈ P(0) na podstawie nowej prędkości ustal nowe położenie. Zwiększ t o jeden i jeżeli warunek stopu nie spełniony zacznij od punktu 2. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 13 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Algorytm Local Best Algorytm 3 Local Best 1: P(t) ← losowo wygeneruj rój cząstek 2: repeat 3: for all Pi w zbiorze P do 4: wyznacz F (~ xi (t)) 5: if F (~ xi (t)) < pbesti then 6: pbesti ← F (~ xi (t)) ~ 7: xpbesti ← x~i (t). 8: end if 9: if F (~ xi (t)) < lbesti then 10: lbesti ← F (~ xi (t)) ~ 11: xlbesti ← x~i (t). 12: end if 13: end for 14: for all Pi w zbiorze P do ~ 15: vi (t + 1) ← ~ vi (t) + ϕ1 (~ xpbesti − ~ xi (t)) + ϕ2 (~ xlbesti − ~ xi (t)) ~ 16: xi (t + 1) ← ~ xi (t) + ~ vi (t + 1) 17: end for 18: t ←t +1 19: until Spełnione kryteria stopu Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 14 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Liczby losowe Podane we wzorach liczby losowe ϕ1 i ϕ2 zdefiniowane są następująco: ϕ1 = r1 c1 ϕ2 = r2 c2 Gdzie r1 , r2 ∈ U(0, 1) oraz c1 i c2 są stałymi przyspieszenia. W pracach Kennedy’ego wykazane zostało eksperymentalnie, że przy c1 + c2 > 4 następuje „eksplozja” prędkości i położenia. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 15 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Funkcja oceny Pozycja cząstki jest tym lepsza im bliżej jest rozwiązania tak więc F (~xi (t)) może być miarą odległości. Dlatego też gbesti czy lbest jest poprawiane gdy jest F (~xi (t)) < best. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 16 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Warunki stopu Warunkami zatrzymania algorytmu mogą być np.: Wykonianie określonej liczby iteracji. Zmiana prędkości jest bliska 0 dla wszystkich cząstek (nie ma zmian w pozycji cząstek) Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 17 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Który algorytm? Wersja globalna jest szybsza jednak może być zbieżna do lokalnego ekstremum w niektórych problemach, ponieważ wszystkie cząstki dążą do jednego punktu Wersja lokalna jest nieco wolniejsza jednak mniej podatna na lokalne ekstrema, ponieważ punktów lbest jest więcej. Wersja lokalna z maksymalnym sąsiedztwem (wszystkie cząstki są sąsiadami) to wersja globalna. Sterując rozmiarem sąsiedztwa mamy wpływ jak bardzo algorytm na stopień w jakim algorytm działa jako globalny lub lokalny. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 18 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Parametry standardowego PSO Standardowy algorytm PSO ma następujące parametry: n - wymiar przestrzeni poszukiwań, zależy od problemu, k - liczba cząstek w każdej iteracji (typowo stosuje się około 20-40 cząstek), Ograniczenie ϕ Górne ograniczenie prędkości Rozmiar sąsiedztwa Waga inercji Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 19 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Ograniczenie prędkości Ograniczenie prędkości przemieszczania cząstek stosuje się po to by nie „przeskakiwały” zbyt szybko po przestrzeni poszukiwań. Jeżeli: v~i (t) = (vi1 (t), vi2 (t), ..., vin (t)) to vij = vmax , −vmax , v , ij jeżeli vij > vmax , jeżeli vij < −vmax , w pozostałych przypadkach Zwykle vmax określa się miarą problemu, np gdy x1 ∈< 0, 10 > to vmax = 10. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 20 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Waga inercji We wzorze ~vi (t + 1) = φ~vi (t) + ϕ1 (~xpbesti − ~xi (t)) + ϕ2 (~xlbesti − ~xi (t)) Yuhui Shi i Eberhart dodali parametr φ. Jest to waga inercji (bezwładu) cząstki. Im większa jest inercja tym większa jest eksploracja, cząstka nie zmienia łatwo kierunku. Jeżeli zmniejszymy bezwładność cząstki, łatwiej będzie zmieniać kierunek i skupi się na przeszukiwaniu mniejszego obszaru. W PSO φ zwykle zmienia się z kolejnymi iteracjami, od dużego do małego. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 21 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Sąsiedztwo lokalne 1 .... Dla sąsiedztwa o rozmiarze 2 branych jest pod uwagę dwóch najbliższych sąsiadów. 2 0,33 8 .... 3 0,54 7 .... Np. dla cząstki 3, sąsiadami są 2 i 4 dla cząstki 3 lbest = 0, 33 4 0,72 6 .... 5 .... Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 22 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Sąsiedztwo globalne 1 .... Przy sąsiedztwie globalnym rozmiar sąsiedztwa wynosi k − 1 elementów. Każda cząstka porównuje wynik ze wszystkimi sąsiadami. 8 .... 2 .... 3 0,54 7 .... 6 .... 4 .... 5 .... Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 23 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Wersja binarna W przypadku wersji binarnej, położenie każdej cząsteczki w każdym wymiarze opisane jest tylko przez 0 i 1. Jeżeli przestrzeń była by 3 wymiarowa to ciąg ~xi = (xi1 , xi2 , xi3 ). Obrazując takie założenie, rozwiązania znajdowały by się w wierzchołkach sześcianu o długości boku 1 i jednym roku w punkcie 0,0,0 a drugim 1,1,1. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 24 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wprowadzenie Algorytm Individual Best Algorytm Global Best Algorytm Local Best Wersja binarna Jeżeli nowa wartość prędkości cząstki wynosi: ~vi (t + 1) = ~vi (t) + ϕ1 (~xpbesti − ~xi (t)) + ϕ2 (~xlbesti − ~xi (t)) To nowe położenie będzie zależne od wektora losowo wygenerowanych liczb o rozkładzie jednostajnym ρi ∈ U(0, 1), i wynosi: ( xij (t + 1) = 1, 0, jeżeli ρij < s(vij (t + 1)), w przeciwnym wypadku Gdzie: 1 1 + exp(−vij (t + 1)) Sigmoidalna funkcja „spłaszcza” dane wejściowe do zadanego przedziału i można według niej wyznaczyć próg prawdopodobieństwa. s(vij (t + 1)) = Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 25 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Wstęp Algorytmy „pszczele” są stosunkowo nowymi algorytmami optymalizacji bazujące na zachowaniach stadnych owadów. Co prawda już Arystoteles zaobserwował dziwny „taniec” wywabiający inne pszczoły do źródła pożywienia. W XX w. naszej ery zaczęto badać ów „taniec” i okazało się, że pszczoły zwiadowcy zachęcają tańcem jednocześnie informując w jakim kierunku, jak daleko i jak dobrej jakości jest pożywienie. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 26 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Wstęp Kolejnymi trzema algorytmami zainspirowanymi rojami, w tym wypadku rojami pszczół są: MBO (ang. Marriage in Honey-Bees Optimization) przedstawiony w 2001 roku przez H.A. Abbas’a, ABC (ang. Artificial Bee Colony ) - opracowany w 2005 roku przez Dervisa Karaboga. BCO (ang. Bee Colony Optimization) - zaproponowany w tym samym roku przez Dušana Teodorovića i Mauro Dell’orco Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 27 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Role W podstawowym modelu zachowania pszczół wyróżnić można dwie grupy: Pszczoły zatrudnione, robotnice zbierające nektar (eksploatujące) z określonego już wcześniej miejsca, które oprócz nektaru dostarczają informacji o jakości i położenia źródła pożywienia. Po powrocie do ula mogą: Kontynuować zbieranie Zachęcać kolejnych przyglądaczy Porzucić eksploatacje i zamienić się w skautów lub przyglądaczy Pszczoły niezatrudnione z podziałem na: skautów - pszczoły zwiadowcy, które przeszukują (eksplorują) teren w poszukiwaniu pożywienia przyglądaczy - czekające w ulu i gotowe do zatrudnienia w terenie. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 28 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Zwiadowcy Zwiadowcy opuszczają ul w celu znalezienia obiecujących pól kwiatów z nektarem. Po powrocie za pomocą tańca zachęcają przyglądaczy by polecieli do ich znaleziska. Taniec odbywa się w tzw. strefie tańca. Jeżeli pszczoła kręci się w kółko pożywienie jest bliżej niż 50m. Jeżeli dalej to idzie po prostej kręcąc odwłokiem zawraca i znowu powtarza czynność. Kierunek w którym idzie oznacza azymut pomiędzy słońcem a znaleziskiem Szybkość ruchów odległość, im wolniej tym dalej Długość prostej po której idzie, jakość znaleziska. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 29 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Eksploatacja Bezrobotne pszczoły po obejrzeniu kilku tańców podejmują decyzję, do którego pola kwiatów lecieć. Kolejne pszczoły przyłączają się obserwując wyniki swoich współpracownic. Po wyczerpaniu nektaru, pszczoły wracają do ula a część z nich przyjmuje rolę zwiadowców. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 30 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Inteligencja stadna Aby uzyskać inteligentne zachowania stadne, powinny być spełnione dwa fundamentalne pojęcia: Samoorganizacja - zestaw dynamicznych mechanizmów i interakcji na niskim poziomie skutkujących powstawaniem struktur na poziomie globalnym, wysokim. Podział zadań - w roju są wyspecjalizowane jednostki wykonujące swoje zadania. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 31 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Samoorganizacja Bonabeau scharakteryzował 4 podstawowe własności na których opiera się samoorganizacja. Pozytywne sprzężenie zwrotne - informacja potwierdzająca, że dane działanie jest dobre i trzeba go kontynuować. Gdy ilość sprowadzanego nektaru zwiększa się, to i coraz większa liczba pszczół angażuje się eksploracje danego terenu. Negatywne sprzężenie zwrotne - przeciwdziała powyższemu stabilizując kolektywny wzorzec, np. po wyczerpaniu nektaru pszczoły opuszczają poletko. Fluktuacje - losowe odchylenia od kolektywnego działania często poprawiają wyniki. Skauci latają w losowych kierunkach odkrywając nowe źródła pożywienia. Wielokrotne interakcje - pszczoły dzielą się informacją o znalezionym nektarze przez taniec. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 32 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Sztuczne pszczoły W algorytmie ABC sztuczne pszczoły poruszają się w wielowymiarowej przestrzeni poszukiwań. Mają one przydzielone różne funkcje takie jak obserwator, pracownica czy skaut(zwiadowca). Niektóre z nich (pracujące i obserwujące) korzystają z doświadczenia własnego lub kolegów z gniazda, inne (skauci) zbierają nektar z losowych miejsc, nie biorąc pod uwagę doświadczenia. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 33 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Sztuczne pszczoły Na samym początku wypuszczane są pszczoły “zwiadowcy” losowo inicjujące pewien zbiór rozwiązań. Pszczoły pracujące, lecą “do okolic” (miejsca o nieznacznie przesuniętych współrzędnych) znalezionego danego rozwiązania. Pszczoły obserwujące, na podstawie wyników jakie uzyskały pszczoły pracujące, podejmują decyzje, którym pszczołom pracującym mogą pomóc, np. na zasadzie koła ruletki. Gdy poszukiwania przestają przynosić poprawę wyników, pszczoły pracujące przekształcają się w skautów szukając na oślep nowych, potencjalnych rozwiązań zadania. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 34 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Algorytm Algorytm 4 ABC 1: Zainicjuj n skautów umieszczając ich losowo w przestrzeni poszukiwań 2: repeat 3: Oceń rozwiązania (ilość nektaru) 4: Wybierz m rozwiązań do poszukiwań (wybierane są pszczoły o najlepszym przy5: 6: 7: 8: 9: stosowaniu a tym samym regiony przez nie odwiedzone). Określ prawdopodobieństwo przydziału przyglądaczy do danych m regionów (lub inną metodę selekcji np. elitarną, wtedy określamy liczbę e elitarnych regionów gdzie przydzielana jest z góry określona liczby pszczół nep, pozostałe pszczoły nsp zatrudniane są do m − e regionów) pszczoły w poszczególnych regionach eksploatują je w granicach o rozmiarach 2 ∗ ngh (oceniamy wszystkie rozwiązania) Wybierz po jednej najlepszej pszczole z każdego regionu. Przydziel (n − m) pozostałych pszczół do przeszukiwania losowego (wypuść nowych skautów) until Spełnione kryteria stopu Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 35 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Przykład Mamy losowo wygenerowanych n = 20 pszczół w przestrzeni poszukiwań. 6 x2 4 2 0 0 1 2 3 4 5 6 x1 Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 36 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Przykład Wybieramy m = 3 najlepsze pszczoły, a w śród nich e = 1 pszczół elitarnych 6 x2 4 2 0 0 1 2 3 4 5 6 x1 Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 37 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Przykład 6 (x12 , x22 ) 4 (x13 , x23 ) x2 Rekrutujemy resztę pszczół do wybranych miejsc. Miejsce pszczoły elitarnej dostaje np. nep = 7, po nsp = 3 rozlosowana do pozostałych m − e = 2 regionów. Dla ngh = 0, 5 regiony mają rozmiary odpowiednio: (x11 − ngh, x11 + ngh) × (x21 − ngh, x21 + ngh) (x12 − ngh, x12 + ngh) × (x22 − ngh, x22 + ngh) (x11 , x21 ) 2 0 0 1 2 3 4 5 6 x1 (x13 − ngh, x13 + ngh) × (x23 − ngh, x23 + ngh) Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 38 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Przykład Wybierz po jednej najlepszej pszczole z każdego regionu 6 x2 4 2 0 0 1 2 3 4 5 6 x1 Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 39 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Wstęp Naturalne pszczoły Algorytm Przykład Przykład Dolosuj pozostałe n − m = 17 pszczół do nowego pokolenia i oceń ponownie. 6 x2 4 2 0 0 1 2 3 4 5 6 x1 Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 40 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Algorytmy BCO Algorytmy MBO BCO Kolejnym systemem zainspirowanym rojem pszczół jest algorytmy BCO (ang. Bee Colony Optimization) BCO zaproponowany został przez Dušana Teodorovića i Mauro Dell’orco w 2005 roku. Budowa końcowego rozwiązania generowana jest przez rozwijanie rozwiązań częściowych. Słabe rozwiązania eliminowane są już na etapie ich tworzenia. Metodą tą skutecznie można rozwiązywać np. problemy alokacji zadań, czy chociażby problem komiwojażera. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 41 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Algorytmy BCO Algorytmy MBO MBO Ostatni z trzech wymienianych tu algorytmów “pszczelarskich”, zaproponował H.A. Abbas w 2001. MBO bazuje na kopulacji królowej z trutniami. Królowe reprezentują potencjalne rozwiązania. Odbywają loty godowe z trutniami, dzięki czemu powstaje nowe potomstwo, które zostaje ulepszone przez robotnice za pomocą danej metaheurystyki. Najgorsze matki są w tym modelu zastępowane najlepszym potomstwem. Abbas wykorzystał ten algorytm do rozwiązywania jednego z problemów NP-zupełnych, problemu spełnialności 3-SAT. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 42 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Algorytmy BCO Algorytmy MBO Pytania ? Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 43 z 44 Wstęp Algorytmy Pszczółki Inne pszczelarskie Algorytmy BCO Algorytmy MBO koniec Dziękuję Państwu za uwagę. Paweł Paduch Obliczenia Naturalne - Algorytmy rojowe 44 z 44