Efektywne Populacyjne ACO - Systemy Inteligencji Obliczeniowej
Transkrypt
Efektywne Populacyjne ACO - Systemy Inteligencji Obliczeniowej
Z I i A O Uniwersytet Śląski Wydział Informatyki i Nauki o Materiałach Instytut Informatyki Zakład Algorytmiki i Inteligencji Obliczeniowej Efektywny Populacyjny Algorytm Optymalizacji Mrowiskowej Rafał Skinderowicz 9 grudnia 2014 r. Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Plan prezentacji 1 Populacyjny ACO 2 Modyfikacja reguły przejścia 3 Eksperymenty obliczeniowe 4 Podsumowanie 2 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Motywacje • Obserwacja zachowania mrówek poszukujących pożywienia zainspirowała • • • • Marco Dorigo do opracowania systemu mrówkowego (ang. Ant System) w 1991 r. Od tego czasu zaproponowano wiele usprawnionych algorytmów inspirowanych zachowaniami mrówek, m.in.: system mrowiskowy (ang. Ant Colony System, Dorigo, 1996), MAX-MIN Ant System (Stützle, 1997), Approximate Nondeterministic Tree Search (Maniezzo, 1999), populacyjny algorytm optymalizacji mrowiskowej (ang. Population-based ACO ,Guntsch, 2002), Beam ACO (Blum, 2005), ACOR (Socha, 2006) Algorytmy z rodziny ACO stosowane były z powodzeniem do znajdowania przybliżonych rozwiązań wielu trudnych problemów optymalizacji kombinatorycznej oraz ciągłej (ACOR ) Populacyjny ACO (PACO) należy do najbardziej efektywnych algorytmów mrówkowych1 Unikalne cechy algorytmu PACO umożliwiają implementację efektywną zarówno pod względem kosztu obliczeniowego, jak i zajętości pamięci 1 Oliveira, Sabrina M., et al. ”A detailed analysis of the population-based ant colony optimization algorithm for the TSP and the QAP.” Proceedings of the 13th annual conference companion on Genetic and evolutionary computation. ACM, 2011. 3 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Populacyjny ACO Algorytm PACO ma strukturę podobną do algorytmu ACS: • sztuczne mrówki konstruują w sposób iteracyjny rozwiązania rozpatrywanego problemu; • mrówki kooperują pośrednio (stygmergia) poprzez sztuczny ślad feromonowy; • mrówki rozszerzają swoje częściowe rozwiązania o kolejne komponenty wybierane na podstawie dostępnej wiedzy o problemie (informacji heurystycznej) oraz śladów feromonowych; • wszystkie ślady feromonowe tworzą pamięć feromonową. 4 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Proces budowy rozwiązania • Mrówka znajdująca się w węźle i wybiera kolejny węzeł j na podstawie informacji heurystycznej o problemie oraz wartości feromonu na krawędziach łączących węzły, zgodnie z pseudo-losową regułą przejścia: j= arg maxl∈J i [τil ] · [ηil ]β , gdy q ¬ q0 J, if q > q0 , k • Gdy q ¬ q0 wybór jest zachłanny • Gdy q > q0 wybór jest losowy – kolejny komponent J wybierany jest z prawdopodobieństwem określonym przez: P(J|i) = [τiJ ] · [ηiJ ]β P l∈J i k [τil ] · [ηil ]β . i a c d b τij – wartość feromonu dla krawędzi (i, j) ηij – wart. wynikająca z informacji heurystycznej. Dla problmu TSP równa jest: d1 , gdzie dij oznacza odl. pomiędzy ij miastami i oraz j. 5 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie PACO – pamięć feromonowa • Pamięć feromonowa w Populacyjnym ACO definiowana jest za pomocą populacji rozwiązań przechowywanych w archiwum rozwiązań • Wartości śladów feromonowych zależą bezpośrednio od zawartości archiwum i mogą być na jej podstawie wyznaczone • Najlepsze rozwiązanie z każdej iteracji może zostać dodane do populacji jeżeli spełnia kryteria określone przez przyjętą strategię aktualizacji • Rozmiar populacji jest ograniczony – nowe rozwiązanie zastępuje jedno z poprzednich, gdy osiągnięto zadany limit rozmiaru • Zapisywanie wartości śladów feromonowych w macierzy feromonowej jest opcjonalne 6 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Strategie aktualizacji populacji rozwiązań Trzy najbardziej znane i najczęściej rozpatrywane w literaturze strategie aktualizacji populacji rozwiązań to2 : • strategia czasowa – działa jak kolejka (FIFO). Po każdej iteracji najlepsze znalezione podczas niej rozwiązanie jest włączane do populacji, zastępując najstarsze rozwiązanie w przypadku osiągnięcia limitu rozmiaru; • strategia jakościowa – rozwiązanie jest włączane do populacji, jeżeli jest lepszej jakości niż najgorsze z rozwiązań w populacji; • strategia elitarna – działa podobnie do strategi czasowej, ale najlepsze rozwiązanie zawsze jest przechowywane w populacji, nawet jeżeli jest najstarsze. 2 Guntsch, Michael, and Martin Middendorf. ”A population based approach for ACO.” Applications of Evolutionary Computing. Springer Berlin Heidelberg, 2002. 72-81. 7 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Pamięć feromonowa w algorytmie PACO • Wartość śladu feromonowego w algorytmie PACO definiowana jest jako: τij = τ0 + ∆ K X wk · Iijk , k=1 gdzie ∆= τmax − τ0 ; K • K – rozmiar populacji rozwiązań; • Iijk – wskaźnik przynależności krawędzi do rozwiązania, równy jeden, gdy krawędź (i, j) należy do k-tego rozwiązania populacji i zero w przeciwnym przypadku • wk – waga k-tego rozwiązania • τmax – parametr określający maksymalną wartość feromonu • Dodanie rozwiązania do populacji skutkuje zwiększeniem wartości feromonu na krawędziach rozwiązania o wartość ∆ • Usunięcie rozwiązania z populacji powoduje zmniejszenie wartości feromonu na krawędziach należących do rozwiązania o wartość ∆ 8 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Optymalizacja reguły przejścia w PACO • Reguła przejścia (wyboru) kolejnego węzła ma kluczowe znaczenie w algorytmie PACO • Jest stosowana n − 1 razy dla każdego rozwiązania budowanego przez m mrówek w każdej iteracji algorytmu • Możemy przyspieszyć obliczanie części arg maxl∈J i [τil ] · [ηil ]β k reguły zauważając, że: • Wartości śladów feromonowych zależą jedynie od populacji rozwiązań • W każdym momencie co najwyżej K krawędzi dla każdego węzła może mieć wartość feromonu różną od domyślnej (τ0 ) • Do otrzymania rozwiązań dobrej jakości wystarczy zazwyczaj populacja o niewielkim rozmiarze (K ) 9 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Optymalizacja reguły przejścia w PACO – przykład Szukamy krawędzi z największą wartością iloczynu śladu feromonowego, τij , oraz informacji heurystycznej, ηij . W algorytmie PACO krawędź taka jest: • najkrótszą z dostępnych krawędzi • albo jedną z dostępnych krawędzi należących do co najmniej jednego rozwiązania w populacji. Krawędź dij ηij = 1/dij τij (1,6) 5 0.2 τ0 = 0.1 (1,5) 10 0.1 τ0 (1,2) 15 ≈ 0.067 0.2 (1,4) 20 0.05 0.3 (1,3) 25 0.04 τ0 ← posortowane • W takim przypadku należy sprawdzić jedynie K + 1 elementów, zamiast n, gdzie n oznacza rozmiar problemu, K rozmiar populacji • Oczywiście, przyspieszenie można uzyskać, jeżeli K < n (idealnie K n) 10 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Lista kandydacka a reguła przejścia • Często w algorytmach mrowiskowych stosowana jest tzw. lista kandydacka w celu skrócenia czasu obliczania reguły przejścia3 • Lista kandydacka dla każdego węzła zawiera cl najbliższych sąsiadów (węzłów), którzy rozpatrywani są w miejsce pełnej listy węzłów podczas stosowania reguły przejścia • Proponowana modyfikacja reguły przejścia może przynieść korzyść również w takim przypadku, pod warunkiem że K < cl (zazwyczaj cl = 30) 3 Dorigo, Marco, and Luca Maria Gambardella. ”Ant colony system: a cooperative learning approach to the traveling salesman problem.” IEEE Transactions on Evolutionary Computation, 1997, 1(1), 53–66. 11 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Reprezentacja pamięci feromonowej • W alg. PACO wartości śladów feromonowych mogą zostać wyznaczone tylko na podstawie populacji rozwiązań • W celu przyspieszenia wyznaczania wartości śladu na podstawie populacji rozwiązań wygodnie jest użyć listy incydencji, która dla każdego węzła przechowuje listę sąsiadów, z którymi jest połączony oraz ilość feromonu na krawędzi • Jeżeli przez K oznaczymy rozmiar archiwum rozwiązań, przez n rozmiar problemu (l. węzłów): • przechowywanie archiwum rozwiązań wymaga O(Kn) pamięci • przechowywanie list incydencji wymaga O(Kn) pamięci • łącznie O(Kn) wobec O(n2 ) dla macierzy feromonowej • Wadą jest dłuższy czas wyznaczania wartości feromonu dla danej krawędzi, który rośnie z O(1) dla macierzy do O(K ) dla listy incydencji – nie musi to być problemem ze względu na poprawę lokalności odniesień dla K n 12 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Problem komiwojażera • Prosta definicja, dobrze znany i zbadany - publicznie dostępne repozytoria ze znanymi rozwiązaniami optymalnymi, np. TSPLIB • TSP jest NP-zupełny. Liczba rozwiązań jest wynosi n!, gdzie n jest liczbą miast (węzłów) • Kryterium optymalizacji: minimalizacja długości trasy • Ograniczenia: Rysunek : Przykładowa instancja TSP wraz z rozwiązaniem (Autor: Johann Dréo). • każde miast musi być odwiedzone dokładnie raz • trasa musi kończyć się w mieście początkowym (cykl Hamiltona) 13 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Eksperymenty obliczeniowe • Wybrano zestaw testów z repozytorium TSPLIB: kroA100, tsp225, lin318, u574, rat783, pcb1173, pr2392 oraz rl5915 • Parametry alg. PACO: • m = 10 mrówek • β=4 • q0 = (n − 50)/n (n oznacza rozmiar problemu) • cl = 30 rozmiar listy kandydackiej • K = 8 – rozmiar populacji rozwiązań • Kryterium stopu: • 30 sek. dla testów: kroA100, tsp225, lin318 ; • 60 sek. dla testów: u574, rat783, pcb1173 ; • 120 sek. dla największych testów: pr2392 oraz rl5915. • Implementacja w C++, kompilator GCC v4.8.1 (przełącznik -Ofast), obliczenia wykonane na jednym rdzeniu procesora Intel Xeon X5650 z 12MB pam. podręcznej 14 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Analiza przyspieszenia Przyspieszenie 2.5 2.0 1.5 PACO-age FPACO-age FPACO-elitist FPACO-quality 1.0 0.5 0.0 100tsp225 lin318 u574 rat783 b1173 r2392 rl5915 p pc A kro Test Rysunek : Średnie przyspieszenie alg. PACO ze zmodyfikowaną regułą przejścia (oznaczone jako FPACO) dla różnych strategii aktualizacji populacji w odniesieniu do alg. PACO z czasową strategią aktualizacji 15 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Analiza przyspieszenia Przyspieszenie 3.0 2.5 2.0 PACO-age FPACO-age FPACO-elitist FPACO-quality 1.5 1.0 0.5 0.0 100tsp225 lin318 u574 rat783 b1173 r2392 rl5915 p pc A kro Test Rysunek : Średnie przyspieszenie alg. FPACO w odniesieniu do alg. PACO. W obu algorytmach stosowano lokalne przeszukiwanie (3-Opt). 16 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Odl. od optimum[%] Analiza jakości rozwiązań 16 14 12 10 8 6 4 2 0 PACO-age FPACO-age FPACO-elitist FPACO-quality 4 5 3 8 5 2 3 0 A10 tsp22 lin31 u57 rat78 pcb117 pr239 rl591 kro Test Rysunek : Jakość rozwiązań alg. PACO z czasową strategią aktualizacji populacji oraz alg. FPACO z trzema strategiami aktualizacji. • Większa liczba iteracji algorytmu wykonana w ustalonym czasie daje przewagę alg. FPACO 17 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Odl. od optimum [%] Analiza jakości rozwiązań 3.5 3.0 2.5 2.0 PACO-age FPACO-age FPACO-elitist FPACO-quality 1.5 1.0 0.5 0.0 kro 4 5 3 8 5 2 3 0 A10 tsp22 lin31 u57 rat78 pcb117 pr239 rl591 Test Rysunek : Jakość rozwiązań alg. PACO z czasową strategią aktualizacji populacji oraz alg. FPACO z trzema strategiami aktualizacji. Oba algorytmy z lokalnym przeszukiwaniem (3-Opt). 18 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Porównanie wyników PACO i FPACO Tabela : Porównanie średniej liczby iteracji oraz średniego błędu rozwiązania (w odniesieniu do optimum) dla alg. PACO oraz FPACO z czasową strategią aktualizacji populacji. Wyróżnione wartości wskazują istotną przewagę nad drugim algorytmem według nieparametrycznego testu sumy rang Wilcoxona (poziom istotności α = 0.01). Test kroA100 tsp225 lin318 u574 rat783 pcb1173 pr2392 rl5915 PACO L. iteracji Błąd [%] 69340 33730 25506 24431 18022 11310 8445 1708 0,21 1,82 2,49 5,85 3,65 6,84 12,57 12,96 FPACO L. iteracji Błąd [%] 77606 56618 44821 51938 37693 22244 16166 3902 0,21 1,89 2,34 3,47 3,64 4,58 7,59 10,7 PACO + LS L. iteracji Błąd [%] 33887 19920 10958 6455 11051 2536 2936 403 0 0,04 0,28 0,81 0,5 1,86 0,83 2,94 FPACO + LS L. iteracji Błąd [%] 36548 26923 13414 9500 15807 3144 3856 502 0 0 0,26 0,2 0,49 1,59 0,81 2,61 19 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Analiza rozmiaru populacji • Proponowana modyfikacja reguły przejścia jest korzystna tylko, gdy rozmiar populacji jest odpowiednio mały, tzn. K < cl = 30 • Czy nie tracimy na jakości rozwiązań przyjmując niewielki rozmiar populacji? 20 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie 14 Jakość rozw. a rozm. populacji pcb1173 rat783 u574 12 10 L. iteracji Odl. od optimum [%] Analiza rozmiaru populacji 8 6 4 2 21 22 23 24 25 Rozmiar populacji 26 50000 45000 40000 35000 30000 25000 20000 15000 10000 Szybkość a rozmiar populacji pcb1173 rat783 u574 21 22 23 24 25 26 Rozmiar populacji • Wyniki pokazują, że zwiększenie rozmiaru populacji powyżej wartości 8 nie przynosi korzyści – problem polega na niskiej różnorodności rozwiązań w populacji • Większy rozmiar populacji skutkuje również wydłużeniem czasu obliczeń 21 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Wnioski • Proponowana modyfikacja reguły przejścia: • skutkuje skróceniem czasu obliczeń alg. PACO w stosunku do wersji oryginalnej; • może być stosowana dla różnych strategi aktualizacji populacji; • wymaga odpowiednio małego rozmiaru populacji – potencjalny problem dla złożonych strategi aktualizacji • Przy niewielkim rozmiarze populacji wartości śladów feromonowych nie muszą być przechowywane w macierzy feromonowej → redukcja złożoności pamięci z O(n2 ) do O(n)4 . 4 Scheuermann, Bernd, et al. ”FPGA implementation of population-based ant colony optimization.” Applied Soft Computing 4.3 (2004): 303-322. 22 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Dalsze prace • Proponowana modyfikacja reguły przejścia może być zastosowana w innych algorytmach mrówkowych, w których ograniczono rozmiar pamięci feromonowej • Zmodyfikowana reguła przejścia i rezygnacja z jawnego przechowywania wartości śladów feromonowych w postaci macierzy feromonowej powinna ułatwić równoległą implementację algorytmu PACO, również dla GPU 23 / 24 Populacyjny ACO Modyfikacja reguły przejścia Eksperymenty obliczeniowe Podsumowanie Dziękuję za uwagę 24 / 24