Wyszukiwanie maksimum funkcji za pomocą mrówki Pachycondyla Apicalis.
Inspiracje biologiczne Algorytm został oparty na zachowaniu mrówek Pachycondyla Apicalis. Mrówki te żyją w Meksykańskich tropikalnych lasach w pobliżu granicy z Gwatemalą. Liczebność kolonii wynosi od około 20 do 100 osobników. W danym czasie jedynie nieliczne osobniki polują (20-30%). Ich globalna strategia polowań polega na tworzeniu miejsc polowań, które są rozłożone wokół gniazda w promieniu około 10 m. Miejsca polowań poszczególnych osobników ograniczone są okręgiem o promieniu mniej więcej 2,5 m.
Plądrowanie Lokalna strategia plądrowania stosowana przez mrówki polega początkowo na losowym wyborze miejsc polowań w pobliżu gniazda. Po pierwszym sukcesie (schwytaniu zdobyczy) osobnik zapamiętuje miejsce, w którym osiągnięto sukces. Dana mrówka wykazuje tendencję do powracania do ostatnio odkrytego miejsca polowania, używając tej samej ścieżki. Podążając tą ścieżką mrówka używa wizualnych znaków terenowych. Gdy w danym miejscu zdobycz zostaje złapana, następna eksploracja wykonywana przez mrówkę odbywa się z tego właśnie miejsca. Gdy miejsce polowań staje się zubożałe w pokarm i mrówka nie otrzymuje odpowiedniej zdobyczy, przechodzi do eksploracji innych miejsc w terenie. Dokładniej mówiąc osobnik może przemieścić się do wcześniej eksplorowanego miejsca polowań z uwydatnioną zdolnością do pamiętania jedynie kilku poprzednich miejsc. W końcu, gdy zdobycz zostaje złapana mrówka, podąża prosto do gniazda. Interakcje pomiędzy mrówkami dotyczące plądrowania są ograniczone. Ważną rzeczą jest fakt, iż mrówki kierują się głównie znakami wizualnymi, a nie feromonem.
Przestrzeń przeszukiwań Rozważamy populację n mrówek a1….,an. Agenci ci są lokowani w przestrzeni przeszukiwań S i próbują minimalizować funkcję f:S->R. Każdy punkt s w S jest odpowiednim rozwiązaniem rozważanego problemu. S może być przestrzenią ciągłą (S=Rl), binarną (S={0,1}l) lub permutacyjną (jak w problemie TSP). W każdym bądź razie algorytm nazywany API (od Pachycondyla APIcalis), nie narzuca żadnych ograniczeń w definiowanej przestrzeni przeszukiwań. API wymaga definicji jedynie dwóch następujących operatorów: Qrand, który generuje losowy punkt z S zgodny z jednokrotnym rozdziałem, Qexplo, który generuje punkt s’ w sąsiedztwie punktu s. Rozmiar sąsiedztwa w pobliżu centralnego punktu s jest ustawiony na wartość A. Ten parametr definiuje amplitudę eksploracji. Gdy A=0, wtedy s’ jest zawsze równe s. Gdy natomiast A=1 s’ może być dowolnym punktem ze zbioru S.
Globalna eksploracja Na początku w losowo wybranym miejscu umieszcza się gniazdo N zgodnie z funkcją Qrand. Następnie N jest przenoszone każde T ruchów n mrówek i umieszczane w najlepszym punkcie znalezionym po ostatnim przenoszeniu gniazda. Dlatego przenoszenie gniazda zachodzi każdorazowo co T pojedynczych ruchów. Gdy API rozpoczyna działanie, lub po tym jak gniazdo zostało przeniesione każda mrówka ai opuszcza gniazdo do losowo wygenerowanych p miejsc łownych w sąsiedztwie N. Aby stworzyć inicjalne miejsca łowne każda mrówka ai używa funkcji Qexplo z amplitudą A, której wartością jest Asite(ai) (Rys. 1). Wartości Asite(ai) wynoszą:
Globalna eksploracja (cd) Rys. 1. (a) s1, s2 i s3 są losowo wygenerowanymi miejscami, (b) kwadraty reprezentują lokalne eksploracje miejsca s1 w maksymalnej odległości Alocal od s1.
Lokalne zachowanie mrówek Mrówka ai wykonuje lokalne przeszukiwanie w sąsiedztwie s, punkt s’ jest wybierany używając funkcji Qexplo z amplitudą Alocal(ai) a następnie funkcja f(s’) jest oceniana. Lokalna eksploracja jest zakończona sukcesem, gdy prowadzi do lepszej wartości funkcji f, to jest f(s’)< f(s). Wtedy mrówka ai zapamiętuje ten sukces i uaktualnia miejsce s w jej pamięci: s<-s’. W tym przypadku, ai niezwłocznie powróci do nowego miejsca s w celu jego następnej eksploracji. Jeżeli natomiast eksploracja miejsca nie powiedzie się to wówczas w następnej eksploracji mrówka ai wybierze losowo miejsce spośród p miejsc w jej pamięci. Jeżeli miejsce zostanie przeszukane przez więcej niż Plocal(ai) razy, bez znalezienia jakiejkolwiek zdobyczy, zostaje ono zapomniane i zastąpione przez stworzenie nowego miejsca. To nowe miejsce jest stworzone z wykorzystaniem funkcji Qexplo z amplitudą Asite(ai). Ostatecznie po każdym przenoszeniu gniazda miejsca są wymazywane z pamięci mrówek.
Lokalne zachowanie mrówek Automat użyty w modelu zachowań mrówki API. ns ≤p reprezentuje liczbę miejsc zapamiętanych przez mrówkę (ai). ej reprezentuje liczbę porażek kolejno następujących podczas szukania zdobyczy przez mrówkę w miejscu j.
Kooperacja w tandemowym naborze Za każdym razem, gdy n mrówek eksploruje otoczenie gniazda, nabór jest oceniany w następujący sposób: Dwie mrówki ai i aj są losowo wybierane. Załóżmy, że najlepsze miejsce mrówki ai ma większa wartość funkcji oceny, niż najlepsze miejsce mrówki aj. W tym przypadku najlepsze miejsce aj zostanie usunięte i zastąpione przez najlepsze miejsce aj. Ta kooperacja jest formą eksploatacji, która zwiększa liczbę prób, które zostaną wykonane w danym miejscu. To ponadto umożliwia API eksplorowanie miejsca z różnymi parametrami wyszukiwania, ponieważ pamięć p mrówki aj zawiera niekoniecznie miejsca łowne w okolicach optimum mrówki ai.
API algorytm (1) Wybierz losowo inicjalną lokalizację gniazda N (2) For każda mrówka ai, i Є[1…n]: If ai ma mniej niż p miejsca polowań w pamięci Then Stwórz nowe miejsce w okolicy N i Eksploruj to stworzone miejsce Else If poprzednia eksploracja zakończyła się sukcesem Then Eksploruj raz jeszcze to miejsce Else Eksploruj losowo wybrane miejsce (spośród p miejsc w pamięci) (3) Usuń z pamięci mrówek wszystkie miejsca, które były eksplorowane nieskutecznie przez więcej niż Plocal(ai) kolejnych razy (4) Wykonaj Nabór (najlepsze miejsce kopiowane pomiędzy losowo wybranymi mrówkami) (5) If więcej niż T iteracji było wykonanych Then Zmień lokalizację gniazda i Wyczyść pamięć wszystkich mrówek (6) idź do kroku (2) lub Koniec If kryterium stopu jest satysfakcjonujące
Podsumowanie działania algorytmu Ilustracja zachowania API. W (a) gniazdo jest losowo umiejscowione w przestrzeni przeszukiwań. Następnie w (b), miejsca łowne są losowo stworzone wokół gniazda z rozmieszczeniem zgodnym z parametrem Asite. W (c) poprzez eksplorację miejsca łowne przemieszczają się w kierunku bardziej interesujących obszarów. Finalnie w (d) zmienia się położenie gniazda do najlepszego wygenerowanego punktu. Miejsca łowne są tworzone na nowo.
Analiza funkcji F1’
Analiza funkcji F3’
Analiza funkcji F6’
Analiza funkcji F7