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

Podobne dokumenty