Mrówka Pachycondyla apicalis
Mrówki Pachycondyla apicalis wystepują w lasach południowego Meksyku, północnej Argentyny i Kostaryki. Wystepuja zarówno w lasach wilgotnych jak i suchych.
Mrówki te polują w otoczeniu gniazda na żywe owady innego gatunku, lub zbierają ciała martwych owadów. Z obserwacji tego gatunku mrówek wynika ze polują tylko w dzień.
Mrowiska zakładają w kawałku martwego drewna na ziemi.
Liczebność kolonii wynosi około 20 do 100 osobników.
Polowaniem zajmuje sie 20-30% osobników.
Mrówka Pachycondyla apicalis
Rysunek: Pachycondyla apicalis
Mrówka Pachycondyla apicalis
Rysunek: Pachycondyla apicalis
Hierarchia mrowiska
Hierarchia w kolonii Pachycondyla apicalis zaobserwowana została w 1990 (Oliveira i Hoelldobler ).
Na czele mrowiska stoi królowa, której zadaniem jest składanie jaj.
Robotnice dominujące - są agresywne w stosunku do osobników znajdujących sie niżej w hierarchii. Są zdolne do składania jaj haploidalnych, z których mogą sie rozwinąc osobniki. Robotnice dominujące zajmują sie polowaniem.
Pozostałe robotnice zajmują sią opieką nad młodymi osobnikami, gniazdem i królową.
Fresneu i Dupuy (1988) przeprowadzili szereg badań laboratoryjnych i zaobserwowali, że robotnice z czasem przechodzą do wyższych grup w hierarchii.
Zachowania mrówek
Robotnice polują osobno (Fresneau, 1985) Orientacje w terenie opierają o znaki wizualne
Współpraca pomiędzy mrówkami w postaci biegu tandemowego przy zmianie lokalizacji mrowiska
Nie zaobserwowano współpracy podczas poszukiwania zdobyczy
Powstanie API
Algorytm bazujący na modelu zachowań populacji prymitywnych mrówek z rodziny Pachycondyla apicalis.
Nazwa algorytmu stanowi fragment nazwy gatunku mrówek Pachycondyla APIcalis
Twórcami algorytmu są: Monmarche, Venturini i Slimane
Przestrzeń przeszukiwań
Rozważmy populacje n mrówek (a1, a2, ..., an). Mrówki umieszczane są w przestrzeni przeszukiwań S i próbują zminimalizować funkcje f : S → R
Kazdy punkt s w S jest poprawnym rozwiązaniem rozważanego problemu
Przestrzen S moze być:
przestrzenią ciagłą S = Rl przestrzenią binarną S = 0, 1l
przestrzenią permutacyjną (jak w problemie komiwojażera)
Przestrzeń przeszukiwań
API wymaga zdefiniowania dwóch operatorów:
Qrand- operator, który generuje losowy punkt z przestrzeni S Qexplo- operator, który generuje punkt s’ w sąsiedztwie punktu s Rozmiar sasiedztwa w poblizu punktu s definiowany jest przez parametr A ∈ [0, 1].
A = 0 wtedy s0 = s,
A = 1 wtedy s0 moze byc dowolnym punktem ze zboru S .
Globalna eksploracja
Gniazdo N umieszczamy w losowym miejscu zgodnie z funkcją Qrand
Co T ruchów n mrówek gniazdo jest przenoszone w najlepsze miejsce znalezione po ostatnim przenoszeniu gniazda.
Po uruchomieniu algorytmu, lub po przeniesieniu gniazda, każda mrówka ai opuszcza gniazdo i udaje się do jednego z p
wygenerowanych miejsc w sąsiedztwie N
Miejsca polowań tworzone sa przy uzyciu Qexplo z amplitudą A, która przyjumuje wartosc Asite(ai)
Asite(1) = 0.01
Asite(i) = xi · 0.01 x = 0.011 1n Asite(n) = xn · 0.01 = 1
Globalna eksploracja
Rysunek: a) s1, s2, s3są losowo wygenerowanymi miejscami b) kwadraty symbolizują miejsca eksploracji
Lokalna eksploracja
Mrówka ai dokonuje lokalnego przeszukiwania sąsiedztwa punktu s.
Wybiera punkt s’ uzywając funkcji Qexplo z amplitudą A, której wartosc wyznacza Alocal(ai). Po wyborze s’ następuje jego ocena f(s’) Jesli f(s’) < f(s) wtedy mrówka zapamiętuje ten sukces i zastępuje dotychczasowe miejsce polowań nowym miejscem s := s’. Kolejne poszukiwanie zostanie rozpoczęte z nowego miejsca s.
Jeśli f(s’) f(s) wtedy podczas kolejnego poszukiwania mrówka jako punkt startowy wybiera losowo punkt z listy p. Jeśli dane miejsce zostanie wybrane więcej niż Plocal(ai) razy, bez poprawy wyniku podczas poszukiwania, wtedy miejsce to zostaje usunięte z listy i zastąpione nowym miejscem.
Nowe miejsce na liście p tworzone jest w oparciu o funkcje Qexplo z amplitudą Asite(ai).
Po przeniesieniu mrowiska zapamiętane miejsca są usuwane z pamięci mrówek.
Lokalna eksploracja
Rysunek: Lokalna eksploracja
Kooperacja
Kooperacja w API oparta jest na zachowaniu, które zwane jest biegiem tandemowym.
Za każdym razem po n eksploracjach dokonywana jest ocena jakości znalezionych miejsc polowań
Losowo wybierana jest para mrówek ai i aj. Zakładamy, że najlepsze miejsce polowania mrówki ai ma wiekszą wartość funkcji oceny niż najlepsze miejsce mrówki aj. W takim przypadku najlepsze miejsce polowania mrówki aj zostanie zastąpione najlepszym miejscem polowania mrówki ai.
Taka forma kooperacji zwiększa liczbe poszukiwań, które zostaną przeprowadzone z miejsca bardziej atrakcyjnego. Ponadto powoduje eksplorowanie miejsca z różnymi parametrami poszukiwania, ponieważ dwie mrówki polujące w tym samym miejscu mogą mieć inne parametry.
Algorytm API
1 Wybierz losowo początkowe położenie mrowiska N
2 Dla każdej mrówki ai , i ∈ [1,...,n]
If (ai ma mniej niż p miejsc polowań w pamięci) Then utwórz nowe miejsce w sąsiedztwie N i eksploruj to miejsce
Else
If (poprzednia eksploracja zakończyła się sukcesem) Then eksploruj jeszcze raz to samo miejsce
Else eksploruj wybrane losowo miejsce (z listy p)
3 Wykonaj nabór (skopiuj najlepsze miejsce pomiędzy losowo wybranymi mrówkami)
4 Usuń z pamięci mrówek wszystkie miejsca, które były eksplorowane więcej niz Plocal(ai) razy
5 If (wykonano T iteracji) Then Zmień lokalizację mrowiska i wyczyść pamięc wszystkich mrówek
6 If (kryterium stopu = false) Then GoTo(2) Else Koniec
Algorytm API
Rysunek: a) początkowa lokalizacja gniazda b) losowo utworzone miejsca polowań c) w wyniku eksploatacji miejsca polowań przemieszczają się w strone miejsc bardziej atrakcyjnych d) przeniesienie mrowiska w najlepsze miejsce
Parametry API
Liczba mrówek
Liczba mrówek musi być wystarczająco duża, aby zapewnić heterogeniczność parametrów (Asite,Alocal)
Liczba mrówek określa poziom eksploracji (powinien być stosunkowo niski, aby zapewnić efektywne przenoszenie gniazda)
n = 2 przynosi dużo lepsze wyniki, niż n = 1, co świadczy o roli kooperacji pomiędzy osobnikami
Liczba mrówek nie wpływa znacznie na zmianę wydajnosci API (minimum dwie mrówki)
Wyniki doświadczeń pokazują, ze n = 20 jest liczbą optymalną Nabór i przenoszenie mrowiska
Nabór jest parametrem nie mającym znaczącego wpływu na wydajność algorytmu
Przenoszenie gniazda jest bardzo ważnym parametrem.
Parametry API
Liczba miejsc w pamieci p
Wraz ze wzrostem liczby miejsc w pamięci spada wydajność algorytmu
Wartość wskazywana w wyniku doswiadczeń to p = 2 Rozmiar Asite i Alocal
Najlepsze wyniki uzyskiwane są gdy poszczególne mrówki mają rózne parametry