Systemy mrówkowe

Transkrypt

Systemy mrówkowe
Systemy mrówkowe
Opracowali: Dawid Strucker, Konrad Baranowski
Wprowadzenie
Algorytmy mrówkowe oparte są
o zasadę inteligencji roju (ang.
swarm intelligence). Służą
głównie do znajdowania
najkrótszej drogi w grafie,
jednak nie gwarantują one
znalezienia optymalnego
rozwiązania. Dlatego znajdują
one zastosowanie gdy
wystarczające jest rozwiązanie
„prawie optymalne”.
Nie trudno domyślić się że
algorytmy mrówkowe naśladują
pewne zachowania mrówek.
Jak mrówki znajdują pożywienie?
Żeby coś naśladować najpierw musimy wiedzieć
jak to coś działa :)
Jak mrówki znajdują pożywienie?
- mrówka porusza się dość losowo, dopóki nie natrafi na ślad feromonowy, im
mocniejszy tym chętniej uczęszczany
- mrówki chętniej chodzą po mocnym śladzie
- po pewnym czasie feromony wyparowują eliminując dłuższe ścieżki
- gdy mrówka znajdzie jedzenie potrafi z nim wrócić po własnych śladach
Wniosek?
Gdy jakaś mrówka odnajdzie krótką drogę to inne mrówki będą
podążać właśnie tą ścieżką zostawiając własna feromony i
zwiększając ich natężenie. Gorsze(dłuższe) drogi zostaną
zapomniane.
Algorytm
Z poprzedniego slajdu łatwo wywnioskować że mrówki nie
szukają rozwiązania najlepszego a zadowala je jedynie
„rozsądne”. My jednak potrzebujemy większego rozproszenia
mrówek aby można było znaleźć optimum nawet w znacznej
odległości od obecnej najlepszej ścieżki.
program AlgorytmMrówkowy
while (nie nastąpił warunek końca)
generujRozwiązania();
zaktualizujŚcieżkiFeromonów();
end while
koniec
Na kolejnych śladach szczegółowo opisane będą kolejne
kroki.
generujRozwiązania()
W tym miejscu algorytm naśladuje
„rozchodzenie” się mrówek. Przy
każdej iteracji generowane jest
pełne rozwiązanie czyli od punktu
startowego do celu. W tym
przypadku od 1 do 4.
●
Mrówka ląduje w węźle 1. Musi
zdecydować w którą uda się stronę.
Na podstawie lokalnej budowy
grafu oraz ilości feromonu
przypisuję się wartość
prawdopodobieństwa przejścia
mrówki do danego stanu.
●
●
Mrówka nie musi wybrać stanu o
wyższym prawdopodobieństwie.
Czynność powtarzamy aż
znajdziemy się w węźle docelowym.
GenerujRozwiązania() cz2
Prawdopodobieństwa przejścia k-tej mrówki z węzła i do węzła j
k
i,j
p
=
{
( τ ij )α (σ ij ) β
∑
α
β
(( τ ih ) (σ ih ) )
, jeśli j ∈tabu k
h∉ tabuk
0, w przeciwnym przypadku
gdzie:
τij to ilość feromonu ze stanu i do stanu j
σij to funkcja określająca „atrakcyjność” przejscia z i do j
α,β to współczynniki istotności
tabuk to zbiór odwiedzonych przez mrówkę węzłów
ZaktualizujŚcieżkiFeromonów()
W tej fazie każda mrówka zostawia feromon na przebytej ścieżce podobnie jak
postępują prawdziwe mrówki, z kilkoma zmianami:
- mrówka zostawia feromon dopiero gdy odnajdzie rozwiązanie, a nie w trakcie
podróży
- w zależności od długości przebytej ścieżki mrówka zostawia różną ilość feromonu
Reguła aktualizacji feromonu
τ ik, j :=(1− ρ ) τ ik, j + Δ τ ki , j
ρ – współczynnik wyparowywania
feromonu
Δτ
k
i, j
{
Q
jeśli węzeł k należy do rozwiązania związanego z mrówką k
= Lk
0, w przeciwnym wypadku
Q to pewna dobrana stała (parametr procedury)
Lk to koszt rozwiązania związanego z mrówką k (czyli jak dobre było jej
rozwiązanie, np. długość ścieżki, im krótsza tym więcej feromonu zostanie dodane
Warunek końcowy
Gdy zostanie osiągniety kończymy szukać rozwiązania i
aktualizować feromony. Dobierany jest do konkretnego
przypadku.
●
●
Możliwości:
Określona ilość iteracji
Jeżeli przez następne x iteracji wartość najlepszego
rozwiązania nie poprawi się to zakończ
Problem N-Hetmanów
Oczywistości
●
●
●
●
●
Warunek końcowy to znalezienie rozwiązania
lub przekroczonie liczby iteracji
Fitness Value to liczba poprawnie ustawiona
liczba hetmanów
Heurystyka to liczba kolizji pomiędzy hetmanami
traktowana jako długość ścieżki
4,426,165,368 możliwych ustawień hetmanów
Jednak jedynie 92 możliwości są poprawne
Szachownica to graf
Mrówki chodzą po szachownicy
Stałe algorytmu
●
●
●
●
●
ρ to liczba z przedziału <0,1> Marco
Dorigo proponuje 0.5
a czyli jak bardzo atrakcyjne ścieżki będą
wybierane
β czyli jak mocno feromony wpływają na
drogę mrówek
Swarm size czyli jak dużo mrówek chodzi w
każdej iteracji
University Of Computer and
Emerging Science Islamabad
Rozwiązania
Liczba mrówek ma znaczenie?
Parametr beta
Parametr alfa
Optymalne wartości
●
●
●
Liczba mrówek 15
a równe 1 jeśli β 1.5
a równe 1.5 jeśli β równe 1
Bibliografia
●
●
●
●
●
[1] http://www.ioz.pwr.wroc.pl/pracownicy/kuchta/referat.pdf
[2] Ant Colony Optimization: A New Meta-Heuristic Marco Dorigo, Gianni Di
Caro Universite´ Libre de Bruxelles
[3] http://dinoanimals.pl/zwierzeta/mrowki-formicidae-symbol-pracowitosci/
[4] http://babskiswiat.net/topic/312-%C5%9Bmieszne-zwierzaki/
[5] http://smak.pl/przepisy/filety-z-kurczaka-nadziewane-sliwkami
[6] Solution of n-Queen Problem Using ACO Salabat Khan, Mohsin Bilal, M.
Sharif, Malik Sajid, Rauf Baig National University Of Computer and
Emerging Science Islamabad, Pakistan

Podobne dokumenty