Problem komiwojażera ACO Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym. -Wikipedia
Problem do rozwiązania zazwyczaj jest przedstawiany jako wędrówka komiwojażera(źródło nazwy) od miasta do miasta.
Komiwojażer ma podróżować w sposób taki, aby odwiedzić każde z miast i wrócić do miasta startowego.
Dodatkowo minimalizując koszt podróży. Ostatni z warunków pociąga za sobą warunek dodatkowy, każde miasto zostanie odwiedzone tylko raz.
Niech V = {a,...,z} będzie zestawem miast. A = {(r,s):r,s c V} będzie zestawem krawędzi δ(r,s) będzie miarą kosztu krawędzi (r,s)ca
Prawdopodobieństwo, z którym mrówka k, w mieście r, przejdzie do miasta s.
τ feromon η = 1/δ odwrotność długości krawędzi J k (r) zestaw miast pozostałych do odwiedzenia przez mrówkę k będącą w mieście r β parametr, który determinuje relatywną ważność feromonu przeciw odległości (β>0)
Gdy wszystkie mrówki zbudują swoje trasy, feromon jest aktualizowany na wszystkich krawędziach zgodnie z:
0 < α < 1 parametr określający wietrzenie feromonów. L k długość trasy wykonanej przez mrówkę k m ilość mrówek
Zasada zmiany pozycji Mrówka na pozycji r wybiera miasto s w zależności od:
q jest losową liczbą z przedziału [0...1] q 0 jest parametrem ( 0 <= q 0 <= 1 ) S jest losową liczbą wybraną na podstawie rozkładu prawdopodobieństwa danego ze wzoru (1)
Globalna zasada aktualizacji Mrówka, która utworzyła najkrótszą trasę od samego początku ma przywilej zostawienia po sobie feromonu. Poziom feromonu jest zmienianny zgodnie z:
0 < α < 1 parametr określający wietrzenie feromonów L gb długoć globalnie najlepszej trasy od samego początku
Zasady lokalnej aktualizacji Podczas budowy rozwiązania mrówki odwiedzają krawędzie i zmieniają jej poziom feromonów poprzez zastosowanie lokalnej zasady aktualizacji:
0 < r < 1 jest parametrem
1)/*Faza inicjalizacji*/ For each pary (r,s)τ(r,s) := r 0 End-for For k := 1 to m do Niech r k1 będzie miastem startowym mrówki k J k (r k1 := {1,...,n}-r k1 /*zestaw miast do odwiedzenia przez mrowke k w miescie r k1 */ r k := r k1 /* r k jest miastem gdzie znajduje się mrówka k */ End-for
2)/*To jest faza, w której mrówki budują ich trasy. Trasa mrowki k będzie przechowywana w Tour k */ For i := 1 to n do If i<n Then For k := 1 to m do Wybierz następne miasto s k na podstawie regól (3) oraz (1) J k (s k ) := J k (r k )-s k Tour k (i) := (r k,s k ) End-for Else
For k := 1 to m do /*w tym cyklu wszystkie mrowki wracaja do miasta startowego*/ s k := r k1 Tour k (i) := (r k,s k ) End-for End-if /*W tej fazie następuja lokalne aktualizacje i feromony są aktualizowane za pomocą reguły(5)*/ For k := 1 to m do τ(r k,s k ) := (1-p)τ(r k,s k )+pτ 0 r k := s k End-for End-for
3)/* W tej fazie następujegloblna aktualizacja i feromony są aktualizowane */ For k := 1 to m do Oblicz L k /* Długość trasy wykonanej przez mrowke k*/ End-for Oblicz L best For each edge(r,s) τ(r k,s k ) := (1- α)τ(r k,s k ) + α(l best )^(-1) End-for If(End.condition = True) Wypisz najkrótszą L k else goto Phase2
Ant Colony Optimalization Na początku wszystkie krawędzie posiadają ilość feromonu f, równą 1. W kolejnym kroku, zgodnie z algorytmem mrówki wyruszają w drogę po grafie. W wyborze drogi posługują się wcześniej podanymi regułami.
W kolejnym kroku na podstawie długości przebytej drogi obliczana jest ilość feromonu do odłożenia na przebytej ścieżce w grafie. W tym momencie następuje również zwietrzanie feromonu ze wszystkich ścieżek.
Po przejściu wszystkich mrówek najkrótsza trasa jest dodatkowo premiowana
Po pewnym czasie działania tego algorytmu prawie wszystkie, jak nie wszystkie, mrówki zaczną poruszać się po jednej ścieżce. Można mieć przypuszczenie, że otrzymane rozwiązanie będzie zbliżone do optymalnego. W przeciwnym razie można w dalszym ciągu kazać mrówką wykonywać swą wędrówkę w nieskończonej pętli. Kiedyś, przypadkiem, zostanie otrzymane rozwiązanie optymalne. Warunkiem zakończenia może być wykonanie pewnej ilości iteracji lub monitorowanie różnic w ilości feromonów na różnych ścieżkach.
http://ieeexplore.ieee.org/stamp/stamp.jsp?t p=&arnumber=585892 wikipedia