Algorytmy metaheurystyczne Wykład 6 Piotr Syga 10.04.2017
Wprowadzenie Inspiracje
Wprowadzenie ACS idea 1 Zaczynamy z pustym rozwiązaniem początkowym 2 Dzielimy problem na komponenty (przedmiot do zabrania, zadanie do przydzielenia, krawędź cyklu, miasto,... ) i utożsamiamy z wierzchołkami grafu 3 Ustalamy liczbę iteracji oraz liczność kolonii, w każdej iteracji: Startujemy mrówki, prawdopodobieństwo wybrania wierzchołka zależy od natężenia feromonów Każda mrówka na wybranej trasie zostawia feromony o natężeniu proporcjonalnym do funkcji celu Feromony ulatniają się 4 Kończymy wybierając najlepsze rozwiązanie na koniec iteracji lub takie, którym podróżują wszystkie mrówki
Wprowadzenie ACS idea 1 Zaczynamy z pustym rozwiązaniem początkowym 2 Dzielimy problem na komponenty (przedmiot do zabrania, zadanie do przydzielenia, krawędź cyklu, miasto,... ) i utożsamiamy z wierzchołkami grafu 3 Ustalamy liczbę iteracji oraz liczność kolonii, w każdej iteracji: Startujemy mrówki, prawdopodobieństwo wybrania wierzchołka zależy od natężenia feromonów Każda mrówka na wybranej trasie zostawia feromony o natężeniu proporcjonalnym do funkcji celu Feromony ulatniają się 4 Kończymy wybierając najlepsze rozwiązanie na koniec iteracji lub takie, którym podróżują wszystkie mrówki GRASP+HC+SA?
ACS Wchodząc w szczegóły Prawdopodobieństwo przejścia Niech t ij będzie natężeniem feromonu pomiędzy wierzchołkami i, j oraz f ij wartością komponenty i, j (np. funkcja celu obcięta do danej komponenty). Wtedy mrówka przechodzi z i do j z prawdopodobieństwem p ij = tα ij f β ij k tα ik f β ik, dla parametrów istotności α i β (dla uproszczenia implementacji przyjmijmy α, β N + ).
ACS Ślad feromonu Po skompletowaniu dopuszczalnego rozwiązania (pusta lista zmiennych do waluacji), obliczamy nowe natężenie feromonów w ścieżce, dla każdej komponenty: t (k +1) ij = t (k ) ij + a t a,ij = { τ f (ˆx) a =1 t a,ij, jeśli i, j użyta przez a w ˆx 0 w p.p. τ może być stałe (np. 1), jak i determinowane przez funkcję najlepszego aktualnie znanego rozwiązania
ACS Ulatnianie feromonu W celu zmniejszenia ryzyka utknięcia w lokalnym optimum stopniowo pozwalamy na stopniowe wietrzenie feromonu: Jak dobrać ρ? t k ij = (1 ρ)t (k ) ij. stała z przedziału (0, 1) im większa, tym bliżej błądzenia losowego stała c z uwzględnieniem liczności kolonii (np.c 1 a ). funkcja liczności kolonii a oraz liczby mrówek korzystających z komponenty i, j ã. funkcja k początkowo chcemy błądzić losowo, następnie zmniejszać ρ
ACS Warianty Elitystyczny Max-Min Rankingowy Hiperkostkowy ANTS Dziel-rządź Przeszukiwanie sterowane
Przykłady TSP losowe rozwiązanie początkowe
Przykłady TSP iteracja 5
Przykłady TSP iteracja 10
Przykłady TSP iteracja 20
Przykłady TSP iteracja 40
Przykłady TSP iteracja 80
Przykłady TSP iteracja 85
Przykłady TSP iteracja 90
Przykłady TSP iteracja 95
Przykłady TSP iteracja 100
Przykłady TSP wyniki Przykładowe wykonania dla n = 50, k = 100, a = 13, 1000 prób. Średnia Min Max ACS 3057.91 3022.11 3230.84 Elitystyczny 3063.08 3041.60 3109.73 Elitystyczny łagodny 3049.85 3019.97 3111.46
Przykłady Parametry liczba iteracji, liczność kolonii początkowe rozmieszczenie feromonów (rozwiązanie początkowe) poziom zostawianego i ulatniającego się feromonu wpływ feromonu vs wpływ funkcji celu poziomu feromonu elity poziom minimalnego i maksymalnego nasycenia feromonami
Idea Zachowania socjalne a grawitacja Zaczynamy z pewną pulą rozwiązań dopuszczalnych nazywanych cząstkami, całą pulę nazywamy rojem. Rój porusza się w n wymiarowej przestrzeni (tzn. określana jest wartość dla każdej zmiennej). Ruch oznacza zmianę waluacji części zmiennych i przejście do nowego rozwiązania. każde rozwiązanie zmienia się w zależności od historii swoich pozycji oraz historii i aktualnej pozycji reszty roju zmiany określa wektor prędkości krok w stronę algorytmów ewolucyjnych
Idea Zarys 1 Określamy rozmiar roju i losujemy początkową populację 2 Określamy v 0 (lub v 0 i ) oraz α - współczynnik hamowania 3 Określamy β oraz η - współczynniki istotności najlepszego swojego wyniku oraz najlepszego wyniku globalnego 4 Dla każdej cząstki i: x i i oraz x min x i 5 Dla każdej cząstki z niezerową prędkością: Dla każdego wymiaru d: β R (0, β), η R (0, η), v (d) α v (d) + β( x i x i ) + η(x x i ) x i x i + v Uaktualniamy x i oraz x 6 Kończymy gdy wszystkie cząstki się zatrzymają, zrównają się pozycją lub skończy się czas
Idea Uwaga: Podatność na utknięcie w lokalnym optimum. zwiększamy znaczenie własnych wyników zmniejszamy wpływ historii globalnej ograniczamy komunikację
Idea Modyfikacje Wybór rodzaju komunikacji (pełna, geograficzna, socjalna) Dobór (pozycji) rozwiązań początkowych Stosowanie obrotów przestrzeni Podejście grawitacyjne (start z zerowymi prędkościami, zmiany rozwiązań na zasadzie siły grawitacji) Podejście wielorojowe (klastry) Hybrydyzacja
Idea Więcej informacji E. Goldbarg et al.: PSO dla TSP X. Yan et al.: PSO dla TSP oraz porównanie tempa zbieżności z alg. genetycznym M. Bonyadi: doktorat na temat PSO M. Bonyadi, Z. Michalewicz: przegląd aktualnych podejść PSO dla pojedynczej (ciągłej) funkcji celu