Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2
Transkrypt
Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2
Wstęp EAS Ant-Q ACS Plan Literatura Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 Paweł Paduch Politechnika Świętokrzyska 22 maja 2014 Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 1 z 40 Wstęp EAS Ant-Q ACS Plan Literatura Plan wykładu 1 Wstęp Plan Literatura 2 EAS Wstęp Zmiany Aktualizacja feromonu Zalecane parametry 3 Ant-Q Wstęp Założenia Opis Algorytm 4 ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 2 z 40 Wstęp EAS Ant-Q ACS Plan Literatura Literatura Marco Dorigo, Thomas Stützle - Ant Colony Optimization. Bradford Company, Scituate, MA, USA, 2004 M. Dorigo, V. Maniezzo, A. Colorni - Ant system: optimization by a colony of cooperating agents. IEEE, Feb 1996 Sorin C. Negulescu, Constantin Oprean, Claudiu V. Kifor, Ilie Carabulea. Elitist ant system for route allocation problem. USA, 2008. (WSEAS). Luca M. Gambardella, Marco Dorigo, - Ant-q: A reinforcement learning approach to the traveling salesman problem., 1995 Marco Dorigo, Luca Maria Gambardella - Ant colony system: A cooperative learning approach to the traveling salesman problem. IEEE, 1997 Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 3 z 40 Wstęp EAS Ant-Q ACS Wstęp Zmiany Aktualizacja feromonu Zalecane parametry Wstęp Nazwa „elitarny” zaczerpnięta została z nomenklatury algorytmów genetycznych, gdzie wykorzystuje się strategię elitarną. Elitist Ant System (EAS) wprowadzony został przez M. Dorigo w 1992 roku i jest pierwszym rozszerzeniem systemu mrówkowego AS. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 4 z 40 Wstęp EAS Ant-Q ACS Wstęp Zmiany Aktualizacja feromonu Zalecane parametry Główne zmiany EAS bazuje na algorytmie cyklicznym CAS. Główna modyfikacja polega na mocniejszym „wyeksponowaniu” krawędzi leżących na najkrótszej trasie T ∗ znalezionej od początku wykonania algorytmu (ang. best-so-far-tour ) (czasami oznaczane jako T bs ). Odbywa się to poprzez odłożenie dodatkowej porcji feromonu e ∗Q , L∗ gdzie L∗ jest długością najlepszej dotychczasowej trasy, e jest parametrem ustanawiającym wagę najlepszej dotychczasowej trasy T bs , jest to po prostu liczba elitarnych mrówek, przez którą zostanie pomnożona ilość feromonu w najlepszym rozwiązaniu. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 5 z 40 Wstęp EAS Ant-Q ACS Wstęp Zmiany Aktualizacja feromonu Zalecane parametry Aktualizacja feromonu Uwzględniając powyższe, aktualizacja feromonu dana będzie wzorem: τij (t + n) = ρ1 ∗ τij (t) + ∆τij (t, t + n) + e ∗ ∆τije (t, t + n) gdzie: ( ∆τije (t, t + n) = Q3 L∗ 0 Paweł Paduch jeżeli krawędź (i, j) ∈ T ∗ dla pozostałych. Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 6 z 40 Wstęp EAS Ant-Q ACS Wstęp Zmiany Aktualizacja feromonu Zalecane parametry Zalecane parametry W EAS Dorigo zaleca następujące parametry: α=1 β od 2 do 5 ρ = 0, 5 m = n, gdzie m liczba mrówek a n liczba miast e+m nn jest oszacowaną długością trasy np. τ0 = ρC nn , gdzie C algorytmem „najbliższy sąsiad” (ang. nearest-neighbor ) oraz zazwyczaj e = n. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 7 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Wstęp Ant-Q jest rodziną algorytmów bazujących na Q-learningu. W klasycznym problemie komiwojażera TSP mamy następujące założenia. Danych jest n miast (zbiór węzłów N) połączonych każdy z każdym krawędziami ze zbioru E o długości drs . Należy znaleźć najkrótszą zamkniętą drogę w grafie (N, E ) tak, by przechodziła przez wszystkie miasta, ale tylko 1 raz. Gdy drs 6= dsr , czyli gdy połączenia pomiędzy miastami w różne strony mają różne długości, to mówimy o asymetrycznym problemie komiwojażera ATSP. Zarówno jedno jak i drugie zadanie można rozwiązać za pomocą algorytmu Ant-Q. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 8 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Założenia Załóżmy, że AQ(r , s) jest liczbą dodatnią rzeczywistą związaną z krawędzią (r , s). Jest to odpowiednik Q-wartości w Q-learn’ingu i oznacza ona, jakie korzyści da przejście z punktu r do punktu s. Wartości AQ(r , s) są zmieniane podczas przechodzenia mrówek z punktu r do s. HE (r , s) to wartość heurystyki związanej z krawędzią (r , s) pozwalającej ocenić, która krawędź jest lepsza. Dorigo przyjął HE (r , s) = 1/drs . Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 9 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Założenia cd. k to pojedyncza mrówka, której zadaniem jest wyznaczyć trasę odwiedzającą wszystkie miasta tylko raz i wrócić do punktu startu. Każda mrówka posiada swoją własną “pamięć” - listę miast do odwiedzenia Jk (r ) gdzie r oznacza bieżące miasto. Lista ta zapewnia, że mrówka odwiedzi każde miasto i zrobi to tylko jeden raz. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 10 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Formuła przejścia Mrówka k będąca w mieście r wybiera miasto s według tzw. formuły przejścia. o n argmax [AQ(r , u)]δ · [HE (r , u)]β jeżeli q ¬ q0 u∈Jk (r ) s= S dla pozostałych, (1) gdzie δ i β są parametrami określającymi wpływ wartości AQ oraz heurystyki HE , natomiast q jest wartością losową wybieraną z jednakowym prawdopodobieństwem z zakresu [0, 1], im wyższe q0 (0 ¬ q0 ¬ 1) tym prawdopodobieństwo wybrania w sposób losowy jest mniejsze. S jest zmienną losową wybieraną według rozkładu prawdopodobieństwa wybieranego według różnych metod. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 11 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Pseudolosowy Dorigo i Gambardella przetestowali 3 sposoby wyboru losowego S: Pseudolosowy Pseudolosowy proporcjonalny Losowy proporcjonalny W pierwszym przypadku, gdy q > q0 , to kolejne nieodwiedzone miasto jest losowane z jednakowym rozkładem prawdopodobieństwa. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 12 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Pseudolosowy proporcjonalny Gdy q > q0 , to prawdopodobieństwo dane jest przez funkcje AQ(r , u) i HE (r , u), dla u ∈ Jk (r ) według wzoru 2 pk (r , s) = δ β P [AQ(r ,s)] ·[HE (r ,s)] δ u∈Jk (r ) [AQ(r ,u)] ·[HE (r ,u)]β 0 jeżeli s ∈ Jk (r ) (2) dla pozostałych. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 13 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Losowy proporcjonalny Jest identyczny z pseudolosowym proporcjonalnym z tym, że jest on wybierany zawsze, bo q0 = 0. Ten sposób wyboru jest zastosowany w AS. Najlepsze wyniki dał wybór pseudolosowy proporcjonalny. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 14 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Aktualizacja wartości AQ W systemie Ant-Q m mrówek wspólnie uczy się wartości AQ, które są sumą wzmocnienia (∆AQ) oraz wypromowanej oceny następnego stanu jak we wzorze 3. ! AQ(r , s) ← (1−α)∗AQ(r , s)+α∗ ∆AQ(r , s) + γ ∗ max AQ(s, z) . z∈Jk (s) (3) α jest odpowiednikiem współczynnika parowania ρ w AS, zaś parametr γ odpowiada za promocję kolejnego połączenia z miasta s do z. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 15 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Aktualizacja wartości AQ Połączenie do miasta z jest wybierane przez mrówkę k stojącą w mieście s z nieodwiedzonych dotąd miast. Aktualizacja wykonywana jest za każdym razem, gdy któraś z mrówek przejdzie przez krawędź rs. Gambardella i Dorigo w swoich algorytmach (AS i Ant-Q), przyjmują wzmocnienie ∆AQ = 0, aż do ukończenia tras przez wszystkie mrówki. Wzmocnienie wylicza się z opóźnieniem, na sam koniec iteracji, dopiero gdy każda mrówka osiągnie swój cel. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 16 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Aktualizacja ∆AQr ,s Aktualizacja „najlepszy globalny” (ang. Global-Best): ∆AQr ,s = W Lkgb jeżeli (r , s) należy do trasy znalezionej przez mrówkę kgb dla pozostałych 0 (4) Gdzie: W jest stałą przyjmowaną zwykle W = 10. kgb jest mrówką, która znalazła najkrótszą trasę od początku działania algorytmu, Lkgb jest długością tej trasy. Tylko te wartości AQ zostaną wzmocnione, które odpowiadają krawędziom wchodzącym w skład najkrótszej trasy. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 17 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Aktualizacja ∆AQr ,s Aktualizacja „najlepszy w danej iteracji” (ang. Iteration-Best): ∆AQr ,s = W Lkib 0 jeżeli (r , s) należy do trasy znalezionej przez mrówkę kib dla pozostałych. (5) Gdzie: W jest stałą, kib jest mrówką, która znalazła najlepszą trasę w danej iteracji, Lkib jest długością tej trasy. Oba sposoby dają podobne rezultaty, jednak uaktualnianie według najlepszej trasy w danej iteracji jest nieco szybsze i mniej wrażliwe na zmiany parametru γ Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 18 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Inicjalizacja Pierwsza część to inicjalizacja. Nadawane są wartości początkowe AQ0 dla wszystkich AQ. Inicjowany jest zbiór miast do odwiedzenia Jk (rk1 ) oraz pozycjonowana jest mrówka k na swoim mieście początkowym rk1 . Algorytm 1 Algorytm Ant-Q (krok 1) 1: for all (r , s) do 2: AQ(r , s):=AQ0 3: end for 4: for k:=1 to m do 5: niech rk1 będzie miastem startowym dla mrówki k 6: Jk (rk1 ) := {1, ...n} − rk1 { Jk (rk1 ) jest zbiorem miast nieodwiedzo- nych przez mrówkę k w mieście rk1 } 7: rk := rk1 {rk jest miastem gdzie znajduje się mrówka k} 8: end for Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 19 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Budowanie tras W kolejnym kroku mrówki budują swoje trasy. Trasa mrówki k jest zapamiętywana w Tourk Algorytm 2 Algorytm Ant-Q (krok 2 ) 9: for i := 1 to n do 10: if i 6= n then 11: for k := 1 to m do 12: Wybierz następne miasto według wzoru 1 13: if i 6= n − 1 then 14: Jk (sk ) := Jk (rk ) − sk 15: end if 16: if i = n − 1 then 17: Jk (sk ) := Jk (rk ) − sk + rk1 18: end if 19: Tourk (i) := (rk , sk ) {Zapisz bieżącą krawędź do trasy } 20: end for Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 20 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Budowanie tras c.d. Algorytm 3 Algorytm Ant-Q (krok 2 ) 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: else{W kolejnej pętli wszystkie mrówki wracają do początkowego miasta rk1 } for k := 1 to m do sk := rk1 Tourk (i) := (rk , sk ) end for end if for k := 1 to m do AQ(rk , sk ) := (1 − α)AQ(rk , sk ) + α ∗ γ ∗ maxz∈Jk (sk ) AQ(sk , z) {Jest to wzór 3 gdzie ∆AQ(rk , sk ) jest zawsze zero} rk := sk {Nowe miasto dla mrówki k} end for end for Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 21 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Aktualizacje W kolejnym kroku wyliczane są długości tras Lk oraz, na ich podstawie, wyliczane jest opóźnione wzmocnienie. Aktualizowane są wartości AQ zgodnie ze wzorem 3, w którym wyrażenie oceniające następny stan γ max AQ(rk1 , z) = 0 dla każdego z. Algorytm 4 Algorytm Ant-Q (krok 3) 32: 33: 34: 35: 36: 37: 38: for k := 1 to m do Oblicz Lk - długość trasy znalezionej przez mrówkę k end for for all krawędź (r , s) do Wylicz opóźnione wzmocnienie ∆AQ(r , s) będące funkcją Lk end for uaktualnij wartości AQ według wzoru 3 Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 22 z 40 Wstęp EAS Ant-Q ACS Wstęp Założenia Opis Algorytm Warunek stopu Sprawdzamy czy zaszedł warunek zakończenia, czyli czy osiągnęliśmy ustaloną liczbę cykli, albo czy osiągnęliśmy znane minimum. Algorytm 5 Algorytm Ant-Q (krok 4) 39: if Warunek końca spełniony then 40: Wyświetl najkrótszą Lk 41: else 42: Powtórz od kroku 2. 43: end if Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 23 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Wstęp ACS, różni się od AS w 3 następujących punktach Dzięki bardziej agresywnym zasadom wyboru drogi, znacznie lepiej wykorzystuje doświadczenie mrówek zdobyte podczas szukania. Uaktualnienie feromonu (odkładanie a także parowanie) odbywa się tylko na krawędziach budujących najlepszą trasę. Za każdym razem, gdy używana jest krawędź (i, j) by dotrzeć z miasta i do miasta j, usuwana jest pewna część feromonu w celu zwiększenia szansy eksploracji alternatywnych ścieżek. ACS bazuje bezpośrednio na algorytmie Ant-Q jest on jednak w znacznym stopniu uproszczony. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 24 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Wybór miasta W systemie koloni mrówek, mrówka k będąc w mieście i wybiera kolejne miasto j w sposób pseudolosowy według poniższej zasady: j= o n argmax τil [ηil ]β , jeżeli q ¬ q0 l∈Nik J, (6) dla pozostałych, gdzie q jest zmienną losową równomiernie rozłożoną w zakresie [0, 1], q0 jest parametrem (0 ¬ q0 ¬ 1). q0 odpowiada za to, w jakim stopniu promowane jest połączenie o największej ilości feromonu, a w jakim stopniu wybór będzie dokonany wśród ścieżek prowadzących do nieodwiedzonych jeszcze miast. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 25 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Zmienna losowa J J jest zmienną losową wybraną według rozkładu prawdopodobieństwa danego wzorem 7, gdzie α = 1 [τij ]α [ηij ]β , jeżeli j ∈ Nik . α [η ]β [τ ] k il il l∈N pijk = P (7) i Jest to właściwie ten sam wzór co w AS tylko zapisany w nieco inny sposób. Nik oznacza zbiór nieodwiedzonych miast, jakie może wybrać mrówka k będąca w mieście i. Gdy miasto nie należy do Nik prawdopodobieństwo wyboru takiego miasta jest równe 0. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 26 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Rola q0 Mrówka wykonuje najlepszy możliwy ruch wskazany przez trasę feromonową oraz informacje heurystyczną z prawdopodobieństwem q0 , natomiast tendencyjne przeszukiwanie łuków wybiera z prawdopodobieństwem (1 − q0 ). Poprzez dostrojenie parametru q0 decyduje się w jakim stopniu mrówki mają eksplorować nieznane ścieżki, a w jakim skoncentrować się na najlepszej dotychczasowej trasie. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 27 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Globalna aktualizacja feromonu W ACS do globalnego odkładania feromonu (czyli na całej trasie) uprawniona jest jedynie ta mrówka, która znalazła aktualnie najlepszą trasę. Odbywa się to według następującej zasady: τij ← (1 − ρ)τij + ρ∆τijbs , ∀(i, j) ∈ T bs , (8) gdzie ∆τijbs = C1bs . Wzór ten ogranicza górną wartość feromonu do 1 . Aktualizacja feromonu (odkładanie i parowanie) w ACS C bs odbywa się tylko na najlepszej trasie T bs o długości C bs (w przypadku AS, na wszystkich krawędziach). Dzięki temu złożoność obliczeniowa aktualizacji feromonu maleje z O(n2 ) do O(n). ρ w powyższym wzorze oznacza współczynnik parowania. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 28 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Lokalna aktualizacja feromonu Oprócz globalnego uaktualniania, mrówki w ACS uaktualniają każdą krawędź (i, j), po której przejdą podczas znajdowania drogi (wzór 9). Aktualizacja ta odbywa się na bieżąco, jak tylko mrówka przejdzie przez krawędź (i, j) τij ← (1 − ξ)τij + ξτ0 , (9) gdzie: ξ jest parametrem z przedziału (0; 1) τ0 jest ustawiana tak samo, jak wartość feromonu na początku działania algorytmu. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 29 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Lokalna aktualizacja feromonu Skutkiem aktualizacji lokalnej jest redukcja feromonowego śladu τij za każdym razem gdy mrówka przejdzie po krawędzi (i, j). Dzięki temu algorytm nie wykazuje cech stagnacji i dąży do eksploracji nieznanych ścieżek. Należy zauważyć, że formuła 9 nie pozwala uzyskać wartości mniejszych od τ0 . Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 30 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Lista kandydatów ACS jest pierwszym algorytmem ACO, w którym wprowadzono tzw. listę kandydatów. Polega to na ograniczeniu możliwych do wyboru krawędzi z danego miasta i do miasta j na podstawie wartości lokalnej heurystyki. W przypadku wartości heurystyki równej 1/dij mrówka mogła wybrać tylko najbliżej leżące miasta, chyba że wszystkie miasta z listy kandydatów zostały już odwiedzone, wtedy brane były pod uwagę dalsze miasta. Eksperymenty prowadzone przez Gambadella i Dorigo wykazały, że listy kandydatów znacznie przyspieszają działanie algorytmu oraz polepszają jakość znalezionych rozwiązań. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 31 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry ACS a ANT-Q Algorytm ACS jest bardzo zbliżony do Ant-Q. Różnica tkwi w definicji τ0 , które w przypadku Ant-Q wynosi τ0 = γ maxj∈N k {τij }, gdzie γ jest parametrem, a maximum jest i brane ze zbioru wartości feromonu na krawędziach przystających do miasta i, w którym znajduje się aktualnie mrówka k, łączących wszystkie sąsiednie nieodwiedzone miasta. Ponieważ odkryto, że wyniki praktycznie są niezmienne gdy τ0 jest traktowane jako stała o małej wartości, algorytm Ant-Q został zaniechany na rzecz ACS ze względu na mniejszy stopień komplikacji. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 32 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Krok 1 - inicjalizacja Poza zmianą notacji z AQ na τ , inicjacja jest niemal identyczna jak w Ant-Q. Algorytm 6 Algorytm ACS (krok 1) 1: for all (r , s) do 2: τ (r , s):=τ0 3: end for 4: for k:=1 to m do 5: niech rk1 będzie miastem startowym dla mrówki k 6: Jk (rk1 ) := {1, ...n} − rk1 { Jk (rk1 ) jest zbiorem miast nieodwiedzo- nych przez mrówkę k w mieście rk1 } 7: rk := rk1 {rk jest miastem gdzie znajduje się mrówka k} 8: end for Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 33 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Krok 2 - budowa trasy W kroku drugim, tak samo jak w Ant-Q mrówki budują swoje trasy. Różnica jest w ostatniej pętli i w warunkach if, gdzie zamiast 6= zastosowano nierówność <. Algorytm 7 Algorytm ACS (krok 2 ) 9: for i := 1 to n do 10: if i < n then 11: for k := 1 to m do 12: Wybierz następne miasto według wzoru 1 13: if i < n − 1 then 14: Jk (sk ) := Jk (rk ) − sk 15: end if 16: if i = n − 1 then 17: Jk (sk ) := Jk (rk ) − sk + rk1 18: end if 19: Tourk (i) := (rk , sk ) {Zapisz bieżącą krawędź do trasy } 20: end for Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 34 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Krok 2 - budowa trasy c.d. W kroku drugim, tak samo jak w Ant-Q mrówki budują swoje trasy. Algorytm 8 Algorytm ACS (krok 2 c.d.) 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: else{W kolejnej pętli wszystkie mrówki wracają do początkowego miasta rk1 } for k := 1 to m do sk := rk1 Tourk (i) := (rk , sk ) end for end if for k := 1 to m do τ (rk , sk ) := (1 − ρ)τ (rk , sk ) + ρτ0 rk := sk {Nowe miasto dla mrówki k} end for end for Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 35 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Krok 3 - aktualizacja W kolejnym kroku wyliczane są długości tras Lk , a na ich podstawie wyliczane jest opóźnione wzmocnienie. Aktualizowane są wartości τ zgodnie ze wzorem 8. Aktualizacja może przebiegać global-best lub iteration-best, jak to jest we wzorach 4 oraz 5. Algorytm 9 Algorytm ACS (krok 3) 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: for k := 1 to m do Oblicz Lk - długość trasy znalezionej przez mrówkę k end for for all krawędź (r , s) do Wylicz Lbi {bi - best-iter} end for uaktualnij wartości τ należące do Lbi według wzoru 8 for all (r,s) do τ (rk , sk ) := (1 − α)τ (rk , sk ) + α/(Lbi ) end for Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 36 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Krok 4 - warunek zakończenia Ostatni krok jest identyczny z Ant-Q Algorytm 10 Algorytm ACS (krok 4) 42: if Warunek końca spełniony then 43: Wyświetl najkrótszą Lk 44: else 45: Powtórz od kroku 2. 46: end if Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 37 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Zalecane parametry Najlepszymi wartościami dla algorytmu ACS są odpowiednio: ξ = 0, 1 τ0 = 1/nC nn , gdzie n to liczba miast, C nn jest długością trasy wygenerowanej za pomocą heurystyki “najbliższy sąsiad” (ang. Nearest Neighbor ) liczba mrówek m = 10 ρ = 0, 1 q0 = 0, 9 β od 2 do 5 Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 38 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry Pytania ? Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 39 z 40 Wstęp EAS Ant-Q ACS Wstęp Tworzenie drogi Algorytm Zalecane parametry koniec Dziękuję Państwu za uwagę. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe cz. 2 40 z 40