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