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 (a 1, a 2,..., a n ). 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 = R l przestrzenią binarną S = 0, 1 l przestrzenią permutacyjną (jak w problemie komiwojażera)
Przestrzeń przeszukiwań { API wymaga zdefiniowania dwóch operatorów: Q rand - operator, który generuje losowy punkt z przestrzeni S Q explo - 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 s = s, A = 1 wtedy s moze byc dowolnym punktem ze zboru S.
Globalna eksploracja Gniazdo N umieszczamy w losowym miejscu zgodnie z funkcją Q rand 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 a i opuszcza gniazdo i udaje się do jednego z p wygenerowanych miejsc w sąsiedztwie N Miejsca polowań tworzone sa przy uzyciu Q explo z amplitudą A, która przyjumuje wartosc A site (a i ) A site (1) = 0.01 A site (i) = x i 0.01 x = ( ) 1 1 n 0.01 A site (n) = x n 0.01 = 1
Globalna eksploracja Rysunek: a) s 1, s 2, s 3 są losowo wygenerowanymi miejscami b) kwadraty symbolizują miejsca eksploracji
Lokalna eksploracja Mrówka a i dokonuje lokalnego przeszukiwania sąsiedztwa punktu s. Wybiera punkt s uzywając funkcji Q explo z amplitudą A, której wartosc wyznacza A local (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ż P local (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 Q explo z amplitudą A site (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 a i i a j. Zakładamy, że najlepsze miejsce polowania mrówki a i ma wiekszą wartość funkcji oceny niż najlepsze miejsce mrówki a j. W takim przypadku najlepsze miejsce polowania mrówki a j zostanie zastąpione najlepszym miejscem polowania mrówki a i. 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 a i, i [1,...,n] If (a i 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 P local (a i ) 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 (A site,a local ) 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 A site i A local Najlepsze wyniki uzyskiwane są gdy poszczególne mrówki mają rózne parametry
Wykresy
Wykresy
Wykresy
Wykresy
Wykresy
Wykresy
Wykresy
Wykresy