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