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

Podobne dokumenty