Professional Documents
Culture Documents
1. Wstęp 3
2. Podstawy teoretyczne algorytmów mrówkowych 5
2.1. Problemy NP-zupełne 5
2.2. Świat mrówek 6
2.3. Algorytmy mrówkowe 9
2.3.1. Ant System 10
2.3.2. Elitist Ant System 12
2.3.3. Rank-Based Ant System 13
2.3.4. Max-Min Ant System 13
2.3.5. Ant Colony System 14
2.3.6. Ant-Q 15
2.4. Rozwiązywane problemy 15
2.4.1. Problem komiwojażera 15
2.4.2. Problem najkrótszej drogi 16
2.4.3. Problem kwadratowego przydziału 17
2.4.4. Problem plecakowy (Knapsack Problem) 17
3. Porównanie skuteczności wybranych algorytmów mrówkowych 19
3.1. Co porównywać? 19
3.2. Uczciwa rywalizacja 23
4. Metoda rozwiązania 26
4.1. Porównywane algorytmy 26
4.2. Badane problemy 27
4.3. Strojenie algorytmów 27
4.3.1. Zaproponowana metoda 27
4.3.2. Wady zastosowanej metody 30
4.3.3. Propozycje innych metod 30
4.4. Porównanie skuteczności algorytmów 31
5. Opis implementacji 35
5.1. Aplikacja porównująca skuteczność wybranych algorytmów 35
5.2. Reprezentacja problemów 38
5.3. Implementacja algorytmów 41
5.4. Implementacja interfejsu graficznego 43
5.5. Implementacja metody badania 44
6. Wyniki badań 49
6.1. Strojenie algorytmów 49
6.1.1. Faza 1 49
6.1.2. Faza 2 50
6.1.3. Badanie wpływu parametrów na wyniki algorytmów 51
6.1.3.1. Badanie wpływu parametru α 51
6.1.3.2. Badanie wpływu parametru β 51
6.1.3.3. Badanie wpływu parametru τ0 53
6.1.3.4. Badanie wpływu parametru ρ 53
6.1.3.5. Badanie wpływu parametru q 54
6.1.3.6. Badanie wpływu parametru e 57
6.1.3.7. Badanie wpływu parametru γ 58
6.1.3.8. Badanie wpływu parametru q0 59
6.1.3.9. Badanie wpływu parametru w 60
6.1.3.10. Badanie wpływu parametrów τmin i τmax 60
6.1.4. Wnioski 61
6.2. Porównanie skuteczności algorytmów 61
6.2.1. Porównanie uzyskanych wyników 62
6.2.2. Szybkość algorytmów 66
6.2.3. Uzasadnienie wyników 67
6.2.3.1. Średnie rozwiązania 67
6.2.3.2. Entropia i odchylenie standardowe 71
6.2.4. Wnioski 75
7. Zakończenie 77
8. Bibliografia 78
2
1. WSTĘP
∑ (1.1)
gdzie:
• ai - są współczynnikami wielomianu
• n – stopień wielomianu
3
• Zaproponowanie i opracowanie metody oceny skuteczności algorytmów
mrówkowych
• Zastosowanie i zaimplementowanie procedur do rozwiązywania wybranych
zadań
• Porównanie skuteczności zaimplementowanych procedur
4
2. PODSTAWY TEORETYCZNE ALGORYTMÓW MRÓWKOWYCH
Oznacza to, że nawet jeśli zbierzemy tak dużą liczbę komputerów, że będą w stanie
przeliczyć wszystkie kombinacje dla np. 1000 miast w ciągu zaledwie jednej doby,
to dołożenie kolejnego, tysiąc pierwszego miasta, wydłuży czas obliczeń tysiąc razy,
czyli do ponad 3 lat, a dołożenie jeszcze kolejnego wydłuży to do czasu dłuższego
niż trwanie naszej ery.
5
pewnym przybliżeniem, ale za to w czasie o wiele krótszym. Jednym z takich
sposobów są właśnie algorytmy mrówkowe o których traktuje ta praca.
6
tendencję do wybierania z większym prawdopodobieństwem drogi oznaczonej
większą ilością feromonu. Jest to rodzaj komunikacji pośredniej zwanej inaczej
stygmergią [2].
Aby to udowodnić przeprowadzono liczne badania, np. w 1989 roku badania Goss’a,
Aron’a, Deneubourg’a i Pasteels’a [2]. Stworzyli oni połączenie pomiędzy
mrowiskiem i pożywieniem za pomocą dwóch mostów. Mrówki były wypuszczone,
aby mogły poruszać się między mrowiskiem i pożywieniem, a ich zachowanie było
bacznie obserwowane.
W pierwszym eksperymencie długość mostów była różna. Jeden z mostów był dwa
razy dłuższy niż drugi:
pożywienie
mrowisko
Dało się zauważyć, że już po kilku chwilach wszystkie mrówki podążały krótszym
mostem. Czemu tak się działo? Gdy mrówki są wypuszczone z gniazda idą w stronę
rozwidlenia. Gdy docierają do niego, część z nich wybiera drogę krótszą, część
dłuższą – z takim samym prawdopodobieństwem, więc ich liczba na każdej z dróg
jest w przybliżeniu taka sama. Jednak mrówki które wybrały krótszą drogę szybciej
powrócą z pożywieniem do owego rozwidlenia. Położą przez to więcej feromonu,
niż mrówki z konkurencyjnej drogi. Przez to owady, które będą docierały do
rozwidlenia i będą musiały dokonać wyboru drogi, po ich powrocie, częściej
wybiorą drogę krótszą. Spowoduje to, że na tej drodze będzie jeszcze więcej
feromonu, co w sumie doprowadzi do bardzo szybkiego skierowania całego ruchu na
krótszy most.
mrowisko pożywienie
Rys. 2.2 Eksperyment z mostami, przypadek dla takiej samej długości mostów
7
Początkowo taka sama liczba mrówek podążała każdym z mostów, co jest w
zasadzie zgodne z intuicją. Jednak po jakimś czasie cały ruch był kierowany na
tylko jeden z mostów – niekoniecznie ten sam dla różnych eksperymentów.
mrowisko pożywienie
mrowisko pożywienie
Rys. 2.4 Eksperyment z mostami, przypadek dla jednego mostu, dokładanie kolejnej, lepszej drogi
Jak się okazało – mimo to – mrówki nie zmieniły swojej drogi, a ciągle podążały
dłuższą drogą. Wytłumaczenie tego zjawiska jest następujące: nawet jeśli jakaś
mrówka przypadkowo zabłąkała się w lepszą drogę, to stężenie feromonu jaki
zostawiła nie miało szans rywalizacji z feromonem pozostawianym przez dłuższy
czas na gorszej jakościowo drodze. Feromon jak każda substancja chemiczna paruje,
8
jednak tempo tego procesu jest na tyle niskie, że mrówki pozostały przy marszu
starym wariantem.
9
Tutaj opiszę zastosowanie tych algorytmów do rozwiązywania problemu
komiwojażera. Jakie modyfikacje należy w nich wprowadzić, aby moc rozwiązywać
inne problemy opiszę w punkcie 2.4 .
∑
jeśli , (2.1)
gdzie:
10
• ηij – oznacza wartość heurystyczną, czyli liczbę określającą atrakcyjność wyboru
danej drogi – wartość ta jest różna dla różnych algorytmów, stąd opisana
zostanie szerzej w punkcie 2.4
• α, β – dwa parametry, które określają względny wpływ ilości feromonu i
wartości heurystycznej na wybór dokonywany przez mrówkę
• - lista miast sąsiedztwa, do których się może bezpośrednio przenieść mrówka
k będąc w mieście i
Rola parametrów α i β jest następująca: jeśli wartość α=0, to pod uwagę jest brana
tylko wartość heurystyczna, więc dla problemu komiwojażera wybierane będą
głównie miasta najbliższe. Z kolei dla β=0 wpływ na wybór drogi ma tylko wartość
feromonu na niej.
Każda mrówka posiada pamięć, w której zapisuje miasta, które już odwiedziła, wraz
z kolejnością ich odwiedzenia. Pamięć ta jest używana do określenia dostępnego
sąsiedztwa . Dodatkowo pamięć pozwala mrówce k obliczyć długość trasy jaką
przebyła, aby wiedzieć ile feromonu powinna ona na niej odłożyć.
Po tym, jak wszystkie mrówki przebędą swoje trasy, algorytm uaktualnia ilość
feromonu na ścieżkach. Pierwszym tego krokiem jest zmniejszenie jego wartości na
łukach, co symuluje zjawisko parowania, poprzez zmniejszenie wartości feromonów
na wszystkich łukach o stałą wartość. Odbywa to się zgodnie z zależnością:
1 (2.2)
∑ ∆ (2.3)
11
gdzie ∆ to ilość feromonu mrówki k który pozostawia na krawędzi, którą
odwiedziła. Wielkość ta jest definiowana następująco:
ś ę , ż
∆ , (2.4)
0,
gdzie:
Oznacza to, że im lepsza jest droga mrówki, tym więcej feromonu pozostanie na
krawędziach należących do tej drogi. Ogólnie krawędzie które zostały użyte przez
większą liczbę mrówek wybierających krótsze trasy, dostaną więcej feromonu i
przez to będą wybierane częściej w przyszłych iteracjach.
∑ ∆ ∆ , (2.5)
12
ę ź ż
∆ , (2.6)
0
∑ w r ∆ ∆ , (2.7)
gdzie ∆ / ,a∆ / .
13
Mrówką, która będzie upoważniona do pozostawienia feromonu może być
najlepsza do tej pory, wtedy ∆ / , lub najlepsza w danej iteracji, i
wtedy ∆ / , gdzie to długość najlepszej drogi w danej iteracji.
To, która z tych mrówek będzie wybrana jest stosowanie naprzemiennie.
2. Wprowadzono limity możliwych zakresów feromonów na łukach. Oznacza
to, że mamy dwie, graniczne wartości limitów feromonu – górną (τmax) i
dolną (τmin). Wszystkie wartości feromonu na danym łuku muszą zawierać się
w przedziale między nimi.
3. Początkowe wartości feromonów są ustawiane na wartość górnej granicy
(τmax). W połączeniu z powolnym parowaniem feromonu powoduje to
wydłużenie, ale i zarazem polepszenie, procesu eksploracji.
4. Jeśli podczas działania algorytmu dojdzie do stagnacji – algorytm zatrzyma
się w martwym punkcie – wartości ilości feromonów na ścieżkach są
reinicjowane.
Wyszukiwanie drogi
arg ś
, (2.9)
ł
gdzie q jest losowo wybraną zmienną z zakresu [0,1], q0 jest parametrem algorytmu
i J jest losową zmienną wybraną jak w standardowym AS (zależność 2.1).
14
Aktualizacja feromonu
W ACS tylko jedna mrówka (najlepsza do tej pory) może rozkładać feromon. Robi
to zgodnie z równaniem:
1 ∆ , (2.10)
2.3.6 ANT-Q
, (2.11)
15
miastami i oraz j. Problem komiwojażera można sprowadzić do znalezienia
najkrótszego cyklu Hamiltona w grafie, gdzie cykl Hamiltona to zamknięta droga
która przechodzi przez wszystkie wierzchołki grafu G dokładnie raz.
1 , (2.12)
16
2.4.3 PROBLEM KWADRATOWEGO PRZYDZIAŁU
Reprezentacja grafu
1 (2.13)
17
nim elementów była jak największa. Problem plecakowy często przedstawia się jako
problem złodzieja rabującego sklep – znalazł on N towarów, j-ty przedmiot jest wart
cj oraz waży wj. Złodziej dąży do zabrania ze sobą jak najwartościowszego łupu,
przy czym nie może zabrać więcej niż B kilogramów. Nie może też zabierać
ułamkowej części przedmiotów.
, (2.14)
gdzie:
· ś ł
∆ , (2.15)
0,
∆ · (2.16)
∆ · (2.17)
18
3. PORÓWNANIE SKUTECZNOŚCI WYBRANYCH ALGORYTMÓW
3.1 CO PORÓWNYWAĆ?
19
Ponieważ zdarzają się sytuacje, gdy potrzebne jest rozwiązanie o zadanej jakości,
bądź dysponujemy określonym czasem, dwie powyższe miary są często poszerzane
o dodatkowe:
∑ , (3.1)
gdzie:
• n – liczba pomiarów
• xi – i-ty wynik pomiaru
20
należałoby dowiedzieć się co dzieje się z algorytmem od fazy jego inicjacji, poprzez
poszczególne iteracje, aż do uzyskania wyniku końcowego, a nie tylko wynik
ostateczny.
21
Odchylenie standardowe najlepszego, znalezionego rozwiązania – najbardziej
klasyczna miara zmienności. Najczęściej stosowane, obok średniej arytmetycznej,
pojęcie statystyki.
∑ ∑
, (3.2)
gdzie:
Rys. 3.1 Procent populacji wpadający do poszczególnych przedziałów o szerokości jednego odchylenia standardowego przy
założeniu rozkładu normalnego. Źródło http://pl.wikipedia.org/wiki/Odchylenie_standardowe
22
Entropia
∑ ∑ , (3.3)
gdzie:
Parametry uruchomieniowe
1
J.N.Hooker: Heuristics: We Have It All Wrong, Carnagie Mellon University, Pittsburg, USA, May 1995
23
algorytmów/problemów. Powodowałoby to niesprawiedliwość rywalizacji – jedne
algorytmy mogłyby mieć bardziej korzystnie ustawione parametry niż inne. Dlatego
pierwszym krokiem porównania jest odpowiednie dobranie parametrów do
algorytmów.
Dobór problemów
Wartym zastanowienia był też wybór problemu, na którym algorytmy miały być
testowane. Całkiem możliwe, że inne algorytmy mogą rozwiązywać problemy o
małej złożoności, a inne te o bardzo wysokiej złożoności. Na jakim problemie zatem
je testować? Być może użyć ich kilku i porównać wyniki odrębnie. Również na te
pytania musiałem znaleźć odpowiedź.
Kryterium stopu
24
eksplorował przestrzeni dopuszczalnych rozwiązań, w poszukiwaniu optimum
globalnego? Algorytm powinien kończyć swoje działanie dopiero wtedy, gdy
faktycznie wyszukiwanie drogi jest zakończone. Jakie przyjąć kryterium stopu – to
było kolejnym problemem, z którym musiałem się zmierzyć.
25
4. METODA ROZWIĄZANIA
26
• Problem kwadratowego przydziału – Quadratic Assignment Problem
(QAP) – jako problem bardzo trudny
• Problem plecakowy – Knapsack Problem (KP)
Cel
Jako cel strojenia algorytmów wyznaczyłem sobie takie dobranie ich parametrów,
aby:
To, że im jakość znalezionego rozwiązania jest wyższa, tym lepiej jest dostrojony
algorytm wydaje się stosunkowo oczywiste. Niejasne może być założenie drugie.
Źle zestrojone algorytmy często działają tak, że mrówki zamiast kierować się
szlakami feromonowymi poruszają się po grafie zupełnie przypadkowo. Podczas
takiego działania czasami, zupełnie losowo, zdarza im się wpaść na najlepsze
rozwiązanie. Nie oznacza to jednak, że algorytm któremu to się udało jest dobry.
Dobrze zestrojony algorytm to taki, który początkowo przegląda dużą część obszaru
przeszukiwań, a w końcu kieruje swoją uwagę w stronę rozwiązania najlepszego i
tam koncentruje swoją uwagę ustalając końcowy ruch mrówek na jednym, być może
najlepszym rozwiązaniu. Stąd drugie założenie algorytmu dobrze zestrojonego.
27
Powyższe cele realizuję w następujący sposób:
Metoda strojenia:
• Algorytmu
• Problemu
• Trzech różnych wielkości grafu reprezentującego dany problem
• Parametru
• Trzech różnych, losowych reprezentacji problemu
28
stroję parametrami pojedynczo, czyli dla wylosowanego problemu uruchamiam
algorytm z kolejnymi wartościami badanego parametru i resztą parametrów
ustawioną na wartości domyślne (znalezione w pierwszej fazie). Jako wynik
uzyskany dla danego parametru uznaję średni wynik z trzech uruchomień algorytmu,
dla trzech różnych wielkości grafu reprezentującego problem, więc w sumie dla
dziewięciu pomiarów.
29
4.3.2 WADY ZASTOSOWANEJ METODY
Intuicyjne strojenie algorytmu czasami może dać lepsze wyniki niż stworzenie
błędnego modelu matematycznego. A jeśli intuicja, to oczywiście nasuwa się na
myśl pomysł zastosowania algorytmów sztucznej inteligencji.
30
Druga proponowana przeze mnie metoda innego, od zastosowanego, strojenia
algorytmów polegać by miała na zaimplementowaniu algorytmu genetycznego. Jako
jeden gen traktowałbym konkretną wartość danego parametru. Jako chromosom
(ciąg genetyczny) wartości wszystkich parametrów. Z chromosomów takich
stworzyć można populację, którą następnie poddać można ewolucji poprzez
stosowanie operatorów krzyżowania i mutacji. Oczywiście osobniki o wyższym
stopniu dopasowania krzyżowane byłyby częściej w ten sposób na drodze ewolucji
uzyskałbym wartości parametrów przynajmniej zbliżone do optymalnych.
31
4.4 PORÓWNANIE SKUTECZNOŚCI ALGORYTMÓW
Aby porównać skuteczność algorytmów muszę nie tylko ocenić, który z nich jest
najlepszy ale również odpowiedzieć na pytanie: dlaczego ten? Aby to zrobić dzielę
badania na dwa poziomy:
gdzie:
32
- oznacza kolejne wartości rozwiązań
• entropia
czyli miara niepewności znajdowanego rozwiązania. Jej ogólna postać
zdefiniowana jest w punkcie 3.1. Wartość entropii dla algorytmów
heurystycznych zdefiniowana jest w [12] jako:
∑ · , (4.2)
gdzie:
- zmienna i=1,2…, n
- zbiór możliwych wartości zmiennej
- wartość zmiennej
- liczba wystąpień zmiennej
- liczba znalezionych do tej pory rozwiązań
(4.3)
33
Obie te wielkości są w każdej iteracji obliczane, a następnie zapisywane do pliku z
wynikami.
• problemu
• ilości wierzchołków grafu reprezentującego problem
• trzech różnych, losowych reprezentacji problemu
• algorytmu
34
5. OPIS IMPLEMENTACJI
Rozdział ten zawiera opis aplikacji – sposób jej uruchamiania i konfiguracji, opis
implementacji programu, plików wynikowych i niektóre rozwiązania
implementacyjne.
ALGORYTMÓW
Wymagania systemowe
http://java.sun.com/javase/downloads/index.jsp
Aplikacja
http://stud.ics.p.lodz.pl/~giaur/mgr/AntSystem.jar
35
Okno programu
Problem type
Graph generator:
36
Ant system type
W oknie tym możemy dokonać wyboru rodzaju systemu mrówkowego oraz ustawić
jego parametry początkowe.
File path
Knapsack
Rys. 5.2 Wygląd okna aplikacji AntSystem dla rozwiązywania problemu plecakowego
37
5.2 REPREZENTACJA PROBLEMÓW
Pierwszym polem tej klasy jest pole problemType, w którym, podczas tworzenia
nowego problemu, zapisywany jest jego typ. Dostępne są zatem następujące typy
problemów:
• ShortestRouteProblem
• TravellingSalesmanProblem
• QuadraticAssignmentProblem
• KnapsackProblem
38
czynienia z problemem, który nie wymaga inicjacji jakiś pól – referencje pozostają
puste.
W krawędzi dodano licznik wystąpień. Na początku iteracji jest on dla całego grafu
zerowany. Podczas przejścia mrówki przez krawędź licznik ten jest zwiększany.
39
Wartość przejść danej krawędzi przez mrówki jest potrzebna do późniejszego
wyliczenia entropii.
W graficznej wersji aplikacji z każdym grafem powiązane są dwie klasy. Jedna typu
GraphVisualizer, która po wywołaniu metody visualizeGraph(Graph graph)
zwróci obiekt który można wyświetlić w obiekcie typu JPane. Klasa
GraphVisualizer korzysta z zewnętrznej biblioteki zajmującej się wizualizacją grafu
- JGraphT. Jej najnowsza wersja, oraz dokumentacja dostępna jest pod adresem:
http://jgrapht.sourceforge.net/
Rys. 5.5 Uproszczony diagram klas dla grafu reprezentującego problem plecakowy
40
odwiedzania wierzchołków. Skoro tak – nie potrzebujemy krawędzi w ogóle.
Feromon przenosimy do wierzchołka, który teraz nie musi mieć żadnej pozycji w
przestrzeni, ani nazwy. Za to ze względu na to, że każdy taki wierzchołek
reprezentuje jeden przedmiot, który może zabrać złodziej w problemie, muszę
przechowywać tam wagę tego przedmiotu i jego wartość.
Chciałem tak zaimplementować algorytmy, aby ich obsługa była jak najprostsza.
Dzięki temu aby stworzyć dany system mrówkowy korzystamy z klasy
AntSystemFactory posiadającej osiem statycznych metod, z których każda zwraca
nam gotowy system mrówkowy określonego typu.
41
System mrówkowy składa się z pewnej ilości mrówek, które przechowują parametry
danego algorytmu, i mogą robić tylko jedną rzecz – szukać drogi w jakimś
problemie. Robimy to wywołując metodę:
42
findRoute(Problem problem)
Dzięki temu, że podajemy w niej cały obiekt klasy Problem, mrówka sama dojdzie
do tego, z jakiego typu problemem ma do czynienia i znajdzie w nim odpowiednie
rozwiązanie.
Jeśli okno główne uzna, że jego działanie wymaga odświeżenia któregoś okna
podrzędnego – wywołuje jego metodę refresh(), która pobiera aktualne dane z okna
głównego i wyświetla je w jego obszarze.
43
Rys. 5.7 Uproszczony diagram klas dla interfejsu graficznego programu
45
12 0 427,6597778022338 427,65977780223403 5,441977714164655E-26 0,0
13 0 427,6597778022338 427,65977780223403 5,441977714164655E-26 0,0
14 0 427,6597778022338 427,65977780223403 5,441977714164655E-26 0,0
15 0 427,6597778022338 427,65977780223403 5,441977714164655E-26 0,0
16 0 427,6597778022338 427,65977780223403 5,441977714164655E-26 0,0
17 0 427,6597778022338 427,65977780223403 5,441977714164655E-26 0,0
18 0 427,6597778022338 427,65977780223403 5,441977714164655E-26 0,0
19 0 427,6597778022338 427,65977780223403 5,441977714164655E-26 0,0
20 0 427,6597778022338 427,65977780223403 5,441977714164655E-26 0,0
21 0 427,6597778022338 427,65977780223403 5,441977714164655E-26 0,0
Pheromone amount at the end of algorithm:
Edge <0, 1> pheromone amount:1.0
...
...
Strojenie algorytmów
foreach(antSystemType) {
foreach(problemType) {
foreach(problemSize){
foreach(antSystem.getParameters) {
foreach(parameter.getPossibleValues(){
antSystem.solveProblem(problem, outputFile);
46
Czyli, tak jak w opisywanej w punkcie 4.3.1 metodzie, dla każdego rodzaju
algorytmu, dla każdego rodzaju problemu, każdego jego rozmiaru i trzech jego
wykonań sprawdzane są kolejno wszystkie wartości, wszystkich dostępnych
parametrów a wyniki zapisywane są do pliku.
Nazwa pliku, a dokładniej ścieżka, dobierana jest w taki sposób, aby tak dużą liczbę
problemów odpowiednio uporządkować. W pseudokodzie jej tworzenie wygląda jak
poniżej:
47
res2=430.72276565389643 found for parameter value: 5.0
res3=430.72276565389643 found for parameter value: 10.0
res4=430.72276565389643 found for parameter value: 20.0
res5=430.72276565389643 found for parameter value: 50.0
res6=430.72276565389643 found for parameter value: 100.0
res7=430.72276565389643 found for parameter value: 200.0
res8=430.72276565389643 found for parameter value: 500.0
res9=430.72276565389643 found for parameter value: 1000.0
...
48
6. WYNIKI BADAŃ
W rozdziale tym zamieściłem wszystkie wyniki badań wraz z ich analizą. W części
pierwszej znajdują się wyniki strojenia algorytmów, w części drugiej – samego
porównania skuteczności algorytmów.
6.1.1 FAZA 1:
Celem tej fazy było doświadczalne ustalenie wartości parametrów na takie, aby jak
największa liczba algorytmów uzyskiwała wyniki zbieżne. Uzyskane wyniki:
• τ0=1
• τmin=1
• τmax=100
• α=4
• β=1
• γ=0,1
• ρ=0,1
• w=5
• e=5000
• q=10
• q0=0,5
Parametry niesterowalne
• m – liczba mrówek. Oczywiście im ich jest więcej, tym lepiej, jednak ich
liczba ma znaczący wpływ na czas wykonywania się algorytmu. Źródła
[1][2][9][10] podają, że optymalna ich liczba to taka, w której jest ich tyle,
ile wierzchołków w grafie reprezentującym problem. Na drodze kompromisu,
49
badając wpływ ich ilości na jakość rozwiązania i długość obliczeń –
ustawiłem ich liczbę na dwadzieścia.
• Maksymalna liczba iteracji bez entropii (iter. without entropy) – jak
poprzednio – im liczba ta wyższa, tym lepiej. Nie jest jednak możliwe
oczekiwanie w nieskończoność, aż algorytm wykona jakiś ruch
eksploracyjny. Z obserwacji wynika, że jeśli algorytm przez dziesięć iteracji
ma zerową entropię, to nie zdarza mu się przejść w nowy obszar
przeszukiwania. Jednak ze względu na niewielki wzrost kosztu
obliczeniowego, ustaliłem tą liczbę na bezpieczniejsze dwadzieścia iteracji
• Maksymalna liczba iteracji (max iterations) – czyli dla wszelkich
algorytmów poza AS awaryjne kryterium stopu, stosowane w
przypadku rozbieżności algorytmów. Liczba musi być na tyle duża, żeby
algorytmy zbieżne zdążyły odnaleźć rozwiązanie. Przeważnie następuje to po
około 100 iteracjach, w trudniejszych przypadkach wydłuża się do ok. 150.
Dla algorytmu AS z reinicjalizacją jest to jedyne kryterium stopu.
Korzystne byłoby, aby można było zaobserwować sam proces reinicjalizacji.
Następuje on około 100 iteracji. Z drugiej strony - liczba ta nie może być
zbyt duża, bo najmocniej przekłada się ona na czas działania algorytmu, jeśli
jest on rozbieżny, bądź w przypadku algorytmów AS - zawsze. Dlatego,
drogą kompromisu, ustaliłem tą wartość na 200 iteracji.
6.1.2 FAZA 2:
Stosowane oznaczenia:
50
6.1.3 BADANIE WPŁYWU PARAMETRÓW NA WYNIKI ALGORYTMÓW
51
Algorytm/problem 0,1 0,2 0,5 1 2 5 10
Ant Colony System
Shortest Route Problem ‐ ‐ ‐ ‐ 574,00 647,00 835,00
Travelling Salesman Problem ‐ ‐ ‐ ‐ 6165,00 6219,67 6066,67
Quadratic Assignment Problem ‐ ‐ ‐ ‐ 50470,00 110624,33 111583,00
KnapsackProblem ‐ ‐ 2697,00 2713,00 2701,67 2722,33 2718,00
Ant‐Q System
Shortest Route Problem ‐ ‐ ‐ 2498,33 1040,00 1074,67 1921,33
Travelling Salesman Problem ‐ ‐ ‐ 5070,00 5374,33 5033,00 5147,67
Quadratic Assignment Problem ‐ ‐ ‐ ‐ 134388,67 129081,33 129382,00
KnapsackProblem ‐ ‐ 2623,33 2631,33 2629,33 2592,00 2565,33
Cycle Ant System
Shortest Route Problem ‐ ‐ ‐ ‐ 1048,00 1073,00 1209,00
Travelling Salesman Problem ‐ ‐ ‐ ‐ ‐ 4782,33 4645,67
Quadratic Assignment Problem ‐ ‐ ‐ ‐ ‐ 116078,67 114024,00
KnapsackProblem ‐ ‐ ‐ ‐ 2662,00 2655,67
Density Ant System
Shortest Route Problem ‐ ‐ ‐ ‐ 4923,33 5034,33 6692,00
Travelling Salesman Problem ‐ ‐ ‐ ‐ 4923,33 3848,17 4673,83
Quadratic Assignment Problem ‐ ‐ ‐ ‐ 4923,33 4441,25 5682,92
KnapsackProblem ‐ ‐ ‐ ‐ ‐ ‐ ‐
Elitist Ant System
Shortest Route Problem ‐ ‐ ‐ 467,00 580,67 640,00 618,00
Travelling Salesman Problem ‐ ‐ ‐ 5216,00 7662,67 7984,00 8178,00
Quadratic Assignment Problem ‐ ‐ ‐ 99644,33 101736,33 104740,00 105037,67
KnapsackProblem ‐ ‐ 2198,33 2491,67 2488,33 2513,67 2536,00
Max‐Min Ant System
Shortest Route Problem ‐ ‐ ‐ ‐ 503,67 503,33 508,67
Travelling Salesman Problem ‐ ‐ ‐ ‐ 4544,33 4906,33 5390,67
Quadratic Assignment Problem ‐ ‐ ‐ ‐ 109612,00 110744,33 110329,00
KnapsackProblem ‐ ‐ ‐ ‐ 2724,67 2719,33 2697,67
Quantity Ant System
Shortest Route Problem ‐ ‐ ‐ ‐ 2338,67 2555,33 2063,33
Travelling Salesman Problem ‐ ‐ ‐ ‐ 4818,33 5118,00 5122,00
Quadratic Assignment Problem ‐ ‐ ‐ ‐ 135754,00 140854,67 137394,33
KnapsackProblem ‐ ‐ ‐ ‐ ‐ ‐ 905,67
Rank‐Based Ant System
Shortest Route Problem ‐ ‐ ‐ ‐ 679,6667 713,6667 769
Travelling Salesman Problem ‐ ‐ ‐ ‐ ‐ 713,6667 837,3333
Quadratic Assignment Problem ‐ ‐ ‐ ‐ ‐ 115301 115440
KnapsackProblem ‐ ‐ ‐ ‐ 2859 2829,667 2778,333
Tabela 6.1 Wyniki strojenia algorytmów parametrem α
52
Podobnie algorytmy zachowują się w przypadku problemu plecakowego – preferują
wybieranie przedmiotów o najwyższych wartościach, co jest w pełni zgodne z
intuicją.
Podobnie jak podczas sterowania parametrem τ0 i w tym przypadku nie udało mi się
uzyskać zbieżności dla algorytmów DAS i QAS dla problemu KP.
53
6.1.3.5 Badanie wpływu parametru q
54
zdominowaniem rozwiązań poprzez rozwiązanie uznane w pierwszych iteracjach
najlepsze.
Ant Colony System
Shortest Route Problem 616,00 655,67 734,00 739,33 686,00 608,67 486,00 ‐ ‐ ‐
Travelling Salesman
5950,67 6166,00 5952,00 6147,67 6332,33 6191,33 6084,67 5932,33 4177,50
Problem ‐
Quadratic Assignment 111720, 110903, 109561, 109212,
Problem 33 00 33 33 ‐ ‐ ‐ ‐ ‐ ‐
KnapsackProblem 2707,67 2704,00 2708,67 2709,33 2713,67 2713,33 2706,00 2717,33 2718,33 2711,67
Ant‐Q System
Shortest Route Problem 741,33 1089,67 897,33 1054,00 1102,67 1686,33 2188,33 1953,00 2636,33 2973,00
Travelling Salesman
Problem 4682,00 4896,67 4888,33 4921,00 4590,33 4838,00 4875,67 4978,33 4953,67 4837,33
Quadratic Assignment 128406, 127993, 128983, 129554, 132540, 132417, 134982, 136901, 136995, 136804,
Problem 33 00 67 67 67 00 33 00 00 00
KnapsackProblem 2610,33 2599,33 2597,00 2615,33 2599,00 2600,00 2593,00 2592,00 2614,33 2603,00
Cycle Ant System
Shortest Route Problem 1196,33 1119,33 1108,00 1168,33 1336,00 1353,67 1339,67 1210,00 1280,00 1157,67
Travelling Salesman
4889,33 4799,00 4768,00 4698,00 4808,33 4671,67 4871,00 4686,67 4853,00 4803,67
Problem
Quadratic Assignment 117249, 118734, 116153, 117498, 116155,
Problem 33 67 67 67 00 ‐ ‐ ‐ ‐ ‐
KnapsackProblem 2670,33 2674,00 2664,33 2673,67 2675,00 2659,33 2665,00 2655,00 2666,00 2666,00
Density Ant System
Shortest Route Problem 3828,40 5232,71 5918,38 5800,43 3922,94 5210,76 2133,37 2463,08 2444,95 2527,09
Travelling Salesman 10311,3
Problem 3 9754,33 9522,00 9467,00 9914,33 8867,00 7910,67 7166,67 5484,67 5410,33
Quadratic Assignment
Problem 7069,87 7493,52 7720,19 7633,71 6918,64 7038,88 5022,02 4814,87 3964,81 3968,71
KnapsackProblem ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐
Elitist Ant System
Shortest Route Problem 854,33 919,33 887,33 588,33 545,67 512,33 467,00 504,67 465,67 466,33
Travelling Salesman
Problem 7469,67 7941,67 7641,67 7753,33 7745,67 7669,67 7551,00 6720,00 5749,67 5213,00
Quadratic Assignment 104999, 104570, 104624, 104068, 104505, 102009, 100570, 100732, 100322, 99279,0
Problem 00 00 33 33 67 00 67 67 33 0
KnapsackProblem 2527,00 2489,33 2517,67 2479,67 2494,00 2492,00 2494,00 2504,00 2511,33 2496,67
Quantity Ant System
Shortest Route Problem 2398,00 2226,67 2046,67 1405,67 2341,00 1962,67 1970,33 2575,00 2793,33 2208,67
Travelling Salesman
Problem 5683,33 4898,00 4880,67 4829,33 4738,33 4790,33 4765,33 4798,00 4846,67 4713,33
Quadratic Assignment 137337, 135946, 132627, 137820, 135541, 135835, 136892, 135846, 136400, 134187,
Problem 00 67 00 67 67 33 67 33 67 67
KnapsackProblem ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐
Rank‐Based Ant System
Shortest Route Problem 709,67 700,67 706,67 730,33 725,00 717,00 753,67 741,00 700,67 682,67
Travelling Salesman
Problem 4481,00 4420,33 4471,67 4395,00 4372,33 4460,33 4469,00 4396,33 4416,67 3689,00
Quadratic Assignment 113114, 114394, 114589, 114430,
Problem 67 33 67 33 ‐ ‐ ‐ ‐ ‐ ‐
KnapsackProblem 2833,00 2830,67 2817,33 2842,67 2821,67 2834,33 2842,67 2842,00 2835,67 2841,00
Tabela 6.3 Wyniki strojenia algorytmów parametrem τ0
55
Podobnie jak poprzednio – dla problemu plecakowego dla algorytmów DAS i QAS
nie udało się uzyskać zbieżności.
Ant‐Q System
Shortest Route Problem 857,33 1036,33 1423,00 995,67 1098,67 888,33
Travelling Salesman Problem 4974,67 4814,33 4709,67 4923,33 4859,00 4711,33
Quadratic Assignment Problem 126598,00 127833,67 130168,67 129411,33 128178,33 134592,33
KnapsackProblem 2576,67 2603,00 2604,00 2608,00 2590,00 2608,00
Cycle Ant System
Shortest Route Problem 1347,67 1202,00 1367,67 1239,67 1220,00 1167,33
Density Ant System
Shortest Route Problem 4392,00 5477,00 4691,67 4140,00 4178,33 5471,33
Travelling Salesman Problem 9563,67 9790,00 9570,33 9921,67 10240,67 9798,67
Quadratic Assignment Problem 130726,67 125404,33 128751,00 126693,33 123731,33 123410,00
KnapsackProblem ‐ ‐ ‐ ‐ ‐ ‐
Elitist Ant System
Shortest Route Problem 795,33 835,67 478,67 505,00 476,00 628,33
Travelling Salesman Problem 7827,00 7927,00 7851,67 7540,00 8080,00 7882,33
Quadratic Assignment Problem 105355,33 104291,67 105689,00 105842,67 104755,00 104594,33
KnapsackProblem 2502,67 2512,67 2461,00 2470,00 2525,00 2485,33
Max‐Min Ant System
Shortest Route Problem ‐ 503,33 503,33 516,33 525,33 622,00
Travelling Salesman Problem ‐ ‐ 4419,67 4622,00 5079,00 6147,33
Quadratic Assignment Problem ‐ ‐ 110272,00 109437,33 109977,33 113174,33
KnapsackProblem ‐ ‐ 2730,33 2718,67 2702,33 2623,67
Quantity Ant System
Shortest Route Problem 1671,00 2283,00 2042,33 2918,33 2206,00 2209,67
KnapsackProblem ‐ ‐ ‐ ‐ ‐ ‐
Rank‐Based Ant System
Shortest Route Problem ‐ 698 737 695,3333 676 717
Travelling Salesman Problem ‐ ‐ ‐ 4425,67 4641,00 4697,333
Quadratic Assignment Problem ‐ ‐ ‐ 116780,33 115785,00 116222,3
KnapsackProblem 2819,333 2834,667 2835 2838,333 2832 2821
Tabela 6.4 Wyniki strojenia algorytmów parametrem ρ
56
Cycle Ant System
Shortest Route 372,3 364,0 312,6 313,0 629,3 454,0 326,3 406,0 324,0 333,6 224,6 346,6 281,0 230,0 238,3 296,6
Problem 3 0 7 0 3 0 3 0 0 7 7 7 0 0 3 7
Travelling 1673, 1695, 1690, 1593, 1588, 1751, 1781, 1529, 1657, 1680, 1939, 1884, 1997, 1832, 2031, 1926,
Salesman Problem 00 00 00 00 33 67 00 33 67 33 67 67 00 33 67 67
Quadratic
3666 3552 3577 3694 3592 3542 3657 3463 3638 3682 3783 3705 3722 3668 3481
Assignment
0,67 9,00 1,00 3,00 3,67 4,00 8,67 0,00 0,67 7,33 8,00 8,67 8,67 7,33 8,33
Problem ‐
960,0 959,0 967,0 966,3 962,3 957,3 960,6 957,6 960,3 969,6 963,0 963,0 961,3 962,0 968,3 965,6
KnapsackProblem 0 0 0 3 3 3 7 7 3 7 0 0 3 0 3 7
Density Ant
System
Shortest Route 2390, 1943, 1991, 2339, 2674, 1468, 1388, 2468, 1409, 1212, 1982, 2711, 1264, 1756, 2258, 1784,
Problem 00 00 33 33 67 67 33 67 00 67 33 33 00 67 67 67
Travelling 2843, 3034, 3092, 3303, 3123, 3538, 3402, 3289, 3365, 3307, 3019, 3479, 3186, 3493, 2988, 3812,
Salesman Problem 00 67 00 67 33 33 00 33 67 00 00 67 00 00 33 00
Quadratic
Assignment 3895 3823 3931 3911 3889 4008 3896 4102 3847 3981 3900 3992 3895 3892 4018 3941
Problem 0,67 1,00 7,00 8,33 8,00 4,33 7,00 5,33 0,67 3,67 6,67 5,67 3,00 1,00 7,67 5,00
KnapsackProblem ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐
Elitist Ant System
Shortest Route 163,6 204,0 368,3 165,6 262,0 257,6 151,3 204,3 187,0 280,0 515,6 208,6 317,6 232,0 157,6 157,3
Problem 7 0 3 7 0 7 3 3 0 0 7 7 7 0 7 3
Travelling 2560, 2637, 2819, 2685, 2891, 2768, 2566, 2660, 2654, 2637, 2552, 2678, 2765, 2562, 2269, 2059,
Salesman Problem 00 00 33 67 00 67 67 67 33 00 33 67 67 67 67 67
Quadratic
Assignment 3393 3349 3420 3346 3331 3402 3390 3407 3457 3352 3419 3310 3343 3337 3307 3346
Problem 8,33 4,33 5,00 3,33 8,00 9,00 2,33 9,00 7,33 3,33 2,00 4,67 2,33 8,67 2,00 6,33
871,6 842,0 864,0 870,6 857,3 838,3 866,6 870,0 866,3 857,3 852,3 858,3 850,3 883,0 891,6 900,6
KnapsackProblem 7 0 0 7 3 3 7 0 3 3 3 3 3 0 7 7
Quantity Ant
System
Shortest Route 863,6 823,6 755,3 603,0 1112, 839,0 1086, 717,0 1059, 1065, 1738, 1767, 1076, 1862, 855,6 2456,
Problem 7 7 3 0 00 0 67 0 00 33 67 00 33 67 7 67
Travelling 1567, 1573, 1556, 1696, 1592, 1277, 1380, 1592, 2133, 1573, 2709, 3146, 2181, 2626, 3749, 2603,
Salesman Problem 67 00 33 67 00 67 00 33 67 33 00 33 33 33 33 00
Quadratic
Assignment 4389 4325 4454 4446 4325 4262 4282 4285 4312 4438 4466 4359 4291 4231 4350 4400
Problem 6,67 4,00 7,67 0,00 8,00 2,67 4,33 5,33 6,33 9,67 4,67 4,00 9,33 3,00 5,33 3,00
KnapsackProblem ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐
Tabela 6.5 Wyniki strojenia algorytmów parametrem q
57
10000 20000 50000 100000
Algorytm/problem 100 200 500 1000 2000 5000 10000 20000 50000 0 0 0 0
Ant Colony System
Shortest Route Problem ‐ ‐ 497 586 702 701 789 830 711 626 783 781 687
Travelling Salesman
Problem ‐ ‐ ‐ ‐ ‐ ‐ ‐ 5566 5910 6043 6148 5963 6056
Quadratic Assignment 10992 10984
Problem ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ 3 6 110676
KnapsackProblem 2711 2713 2706 2711 2712 2716 2708 2705 2721 2719 2714 2708 2703
Ant‐Q System
Shortest Route Problem 2108 2488 2484 2061 1819 1078 768 1092 863 748 1033 1135 834
Travelling Salesman
Problem 5152 4848 5174 5158 5024 5189 5075 4995 4606 4753 4999 4740 4750
Quadratic Assignment 13709 13788 13675 13801 13751 13924 13907 13612 13606 13557 13228 12850
Problem 1 3 4 8 3 1 9 9 4 2 3 2 127394
KnapsackProblem 2588 2604 2606 2613 2596 2603 2607 2603 2607 2601 2602 2641 2597
Elitist Ant System
Shortest Route Problem 476 472 472 539 507 613 578 512 714 647 493 805 995
Travelling Salesman
Problem 5223 4382 4609 4759 4844
5791 5267 6532 7719 8058 7762 7841 8337
Quadratic Assignment 10091 10105 10233 10181 10229 10477
Problem ‐ 99220 98981 99882 99290 99723 4 1 4 7 4 2 104249
KnapsackProblem 2607 2589 2540 2513 2528 2509 2494 2498 2483 2516 2481 2509 2508
Max‐Min Ant System
Shortest Route Problem ‐ ‐ 503 503 503 503 514 503 503 509 504 512 503
Travelling Salesman
Problem ‐ ‐ ‐ ‐ ‐ 1506 1504 1501 1493 1512 1493 1511 1506
Quadratic Assignment
Problem ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ 1010 999 1011 1005
KnapsackProblem 2719 2713 2719 2712 2729 2710 2721 2723 2718 2724 2722 2718 2721
Rank‐Based Ant System
Shortest Route Problem 741 699 691 593 779 724 720 725 708 722 671 664 736
Travelling Salesman
Problem 4391 4411 4489 4474 4400 4453 4457 4418 4488 4383 4478 4343 4444
Quadratic Assignment 11487 11492 11459 11437 11363 11529 11521 11419 11598 11329 11333
Problem ‐ 3 9 9 1 9 4 1 8 0 9 3 114852
KnapsackProblem 2819 2829 2836 2837 2841 2839 2834 2835 2831 2819 2829 2825 2831
Tabela 6.6 Wyniki strojenia algorytmów parametrem e
58
Po fazie poszukiwania mrówki odkładają też feromon na najlepszej drodze,
podobnie jak w algorytmie ACS. Sterowanie tym parametrem doprowadza do
wniosków, że algorytm raczej stara się zaniżać wartość odkładanego feromonu
podczas wyszukiwania drogi – aż 75% wyników jest poniżej wartości 0,05.
Oznacza to, że Ant-Q, jako modyfikacja ACS stara się mieć jak najmniej charakteru
Ant-Q, a stara się sprowadzić swoje działanie do jak najbardziej zbliżonego do ACS.
Wywnioskować można zatem, że Ant-Q nie jest algorytmem, który znajdował
będzie najlepsze rozwiązania.
Różnica między nim a ACS sprowadza się do rozkładania feromonu już w trakcie
szukania drogi. Wychodzi zatem na to, że nie jest to dobry sposób. Podobnie
odkładanie feromonu odbywa się w algorytmach DAS i QAS – najprawdopodobniej
ich wyniki będą zatem też słabe, czego dowodzić mogą też kłopoty w ich
wysterowaniu do szukania drogi w problemie plecakowym.
Parametr ten sterowany jest w algorytmach Ant-Q i ACS. Jego działanie jest
analogiczne, dlatego jako wyniki biorę tutaj średnie wyniki z działania obu
algorytmów.
59
6.1.3.9 Badanie wpływu parametru w
Algorytm/problem 1 2 5 10
Rank‐Based Ant System
Shortest Route Problem 650,00 649,33 731,67 878,00
5 10
Algorytm/problem 0,1 0,2 0,5 1 2 5 10 20 0 0
Max‐Min Ant System
Shortest Route Problem 508,67 503,33 503,33 522,33 508,67 503,67 515,00 ‐ ‐ ‐
4624,6
Travelling Salesman Problem 4799,67 4751,67 4816,00 4763,33 4718,33 4797,33 7 ‐ ‐ ‐
Quadratic Assignment 110246,3 109043,6 110226,0 109478,6 108819,6 109424,0
Problem 3 7 0 7 7 0 ‐ ‐ ‐ ‐
2720,6 2716,6
KnapsackProblem 2718,33 2722,33 2723,67 2716,67 2725,00 2716,33 7 7 ‐ ‐
Tabela 6.10 Wyniki strojenia algorytmów parametrem τ min
Parametry te sterowalne są tylko dla algorytmu Max-Min Ant System. τmin określa
ile feromonu może być minimalnie rozkładanych na krawędziach/wierzchołkach
grafu, z kolei τmax ile tego feromonu może być maksymalnie.
Okazuje się, ze dla problemów takich jak SRP i QAP algorytm stara się jak
najbardziej poszerzyć przedział dostępnych wartości feromonu – algorytm ustawia
wartość minimalna na niskie wartości, z kolei wartość maksymalną wysoko.
60
Odwrotna sytuacja ma miejsce problemie plecakowym i w problemie komiwojażera
– algorytm stara się ten przedział zawęzić.
6.1.4 WNIOSKI
61
6.2 PORÓWNANIE SKUTECZNOŚCI ALGORYTMÓW
algorytm wynik
Density Ant System 882,41
Quantity Ant System 802,42
Ant‐Q System 654,69
Ant Colony System 441,67
Cycle Ant System 438,42
Elitist Ant System 438,42
Max‐Min Ant System 438,42
Rank‐Based Ant System 438,42
Tabela 6.12 Najlepsze wyniki algorytmów dla problemu najkrótszej drogi
1000
900
DAS
800
QAS
700 AQ
ACS
600
CAS
500 EAS
MMAS
400 RBAS
300
0
9
18
27
36
45
54
63
72
81
90
99
108
117
126
135
144
153
162
171
180
189
198
Rysunek 6.1 Wykres najlepszych wyników algorytmów dla problemu najkrótszej drogi
62
Problem plecakowy
algorytm wynik
Max‐Min Ant System 2993,56
Ant‐Q System 2992,11
Rank‐Based System 2991,78
Ant Colony System 2991,22
Cycle Ant System 2990,44
Elitist Ant System 2990,33
Density Ant System 2818,33
Quantity Ant System 2773,44
Tabela 6.13 Najlepsze wyniki algorytmów dla problemu plecakowego
3050
3000
2950 MMAS
AQ
2900
RBAS
2850 ACS
2800 CAS
EAS
2750
DAS
2700 QAS
2650
108
117
126
135
144
153
162
171
180
189
198
0
9
18
27
36
45
54
63
72
81
90
99
63
niską wartość γ=0,01, przez co jego przewaga nad ACS może być w zasadzie
przypadkowa i trudno o niej tutaj przesądzać.
Zarówno problem najkrótszej drogi jak i problem plecakowy nie pokazują wyraźnie
który algorytm można uznać za najbardziej skuteczny, jednak pokazują, że
algorytmy DAS i QAS najprawdopodobniej zwycięzcami porównania nie będą.
Problem komiwojażera
algorytm wynik
Ant Colony System 2706,87
Ant‐Q System 2655,33
Quantity Ant System 2595,73
Density Ant System 2592,33
Cycle Ant System 2518,24
Rank‐Based Ant System 2480,15
Elitist Ant System 2450,92
Max‐Min Ant System 2433,72
Tabela 6.14 Najlepsze wyniki algorytmów dla problemu komiwojażera
Interesującym faktem jest to, że do ok. 100 iteracji najlepsze rozwiązanie znalazł
algorytm EAS, zaś rozwiązanie algorytmu AS od ok. 35 iteracji zdaje się nie
zmieniać i pozostaje na nieznacznie gorszym poziomie. Dopiero od ok. 100 iteracji
algorytm AS zaczyna znajdować coraz lepsze rozwiązania, aby ostatecznie
uzyskać rozwiązanie najlepsze spośród wszystkich algorytmów.
64
3600
3400
3200 ACS
AQ
3000 QAS
DAS
2800 CAS
RBAS
2600 EAS
MMAS
2400
2200
18
27
36
45
54
63
72
81
90
99
108
117
126
135
144
153
162
171
180
189
198
0
9
Problem wynik
Density Ant System 57096,47
Quantity Ant System 52628,97
Ant‐Q System 53235,25
Ant Colony System 53062,3
Cycle Ant System 50882,49
Ealitist Ant System 50636,41
Rank‐Based Ant System 49964,33
Max‐Min Ant System 49375,96
Tabela 6.15 Najlepsze wyniki algorytmów dla problemu kwadratowego przydziału
65
58000
57000
56000
DAS
55000
QAS
54000
AQ
53000 ACS
52000 CAS
EAS
51000
RBAS
50000
MMAS
49000
48000
0
9
18
27
36
45
54
63
72
81
90
99
108
117
126
135
144
153
162
171
180
189
198
Rysunek 6.4 Wykres najlepszych wyników algorytmów dla problemu komiwojażera
66
Warto zauważyć, że algorytm, który jest w pierwszej trójce najlepszych – ASrank –
na rozwiązanie problemu potrzebuje średnio zaledwie 2 sekundy, a jego wyniki są
na poziomie algorytmu EAS, który potrzebuje sekund aż czterokrotnie więcej.
18000
16000
14000
12000
10000
8000
6000
4000
2000
0
MMAS EAS DAS QAS CAS RBAS AQ ACS
Rysunek 6.5 Wykres średnich czasów wykonywania się poszczególnych algorytmów. Wyniki w milisekundach
Wnioski:
Absolutnie nieefektywne algorytmy to QAS, DAS, Ant-Q i ACS. Postaram się teraz
odpowiedzieć na pytanie dlaczego tak jest.
Pierwsza rzecz, która się rzuca w oczy – brak zbieżności algorytmu EAS. Okazuje
się, że mimo strojenia algorytmów, dla tego nie udało się uzyskać zbieżności. Nie
67
6000
5000
AQ
4000 ACS
CAS
3000 DAS
EAS
2000 MMAS
QAS
1000 RBAS
0
16
24
32
40
48
56
64
72
80
88
96
0
8
104
112
120
128
136
144
152
160
168
176
184
192
Rysunek 6.6 Wykres średnich wyników algorytmów dla problemu najkrótszej drogi
68
Interesujące zachowanie przejawia algorytm ACS. Mimo szybkiego ustawienia się
na najlepszym rozwiązaniu (już w 8mej iteracji) przez cały czas działania algorytmu
podejmuje on próby znalezienia innego rozwiązania – wykres nie pozostaje stały.
Problem plecakowy
3050
3000
2950 AQ
ACS
2900
CAS
2850 DAS
EAS
2800
MMAS
2750 QAS
2700 RBAS
2650
0
8
16
24
32
40
48
56
64
72
80
88
96
104
112
120
128
136
144
152
160
168
176
184
192
69
Problem komiwojażera
4500
4000
AQ
ACS
3500
CAS
DAS
3000 EAS
MMAS
QAS
2500
RBAS
2000
16
24
32
40
48
56
64
72
80
88
96
0
8
104
112
120
128
136
144
152
160
168
176
184
192
Rysunek 6.8 Wykres średnich wyników algorytmów dla problemu komiwojażera
Uzasadnienie też znajduje nagłe polepszanie najlepszego wyniku dla tego problemu
od ok. 140 iteracji dla algorytmu AS. Mniej więcej w 80 iteracji nastąpiły
reinicjalizacje algorytmu, i to mniej więcej w okolicach 140 iteracji algorytm zbliżył
się do rozwiązania optymalnego, znajdując je tym razem jeszcze lepiej niż w
pierwszym cyklu.
Z kolei jego konkurenci, poza algorytmem EAS, który przeszukiwał inną przestrzeń,
nie przejawiali tendencji do polepszenia znalezionych rozwiązań – szlaki
feromonowe zostały na nich ustabilizowane.
70
Problem kwadratowego przydziału
60000
58000
AQ
56000
ACS
54000 CAS
DAS
52000
EAS
MMAS
50000
QAS
48000 RBAS
46000
18
27
36
45
54
63
72
81
90
99
0
9
108
117
126
135
144
153
162
171
180
189
198
Rysunek 6.9 Wykres średnich wyników algorytmów dla problemu kwadratowego przydziału
71
0,3
0,25
ACS
0,2 AQ
CAS
0,15 DAS
EAS
0,1 MMAS
QAS
0,05
RBAS
0
0
8
16
24
32
40
48
56
64
72
80
88
96
104
112
120
128
136
144
152
160
168
176
184
192
Rysunek 6.10 Wykres entropii algorytmów dla problemu najkrótszej drogi
Wykres odchylenia standardowego „opada” wolniej niż wykres entropii. Oznacza to,
że pomimo, że zawęża się obszar poszukiwanych danych, to wyniki potrafią ciągle
być z szerokiego zakresu. Na potrzeby moich badań bardziej interesujący jest zatem
wykres entropii, gdyż bardziej mnie interesuje siła eksploracji algorytmu, a jej
wyniki mogę zobaczyć na wykresach najlepszego znalezionego rozwiązania, bądź
średniego uzyskanego rozwiązania. Biorąc powyższe pod uwagę, pomijam
umieszczanie wykresów średniego odchylenia w niniejszej pracy, gdyż w ich kształt
przebiega adekwatnie do entropii.
14000000
12000000 ACS
10000000 AQ
8000000 CAS
DAS
6000000
EAS
4000000
MMAS
2000000 QAS
0 RBAS
18
27
36
45
54
63
72
81
90
99
108
117
126
135
144
153
162
171
180
189
198
0
9
Rysunek 6.11 Wykres średniego odchylenia algorytmów dla problemu najkrótszej drogi
72
Problem plecakowy
0,16
0,14
0,12
ACS
0,1 AQ
CAS
0,08 DAS
EAS
0,06
MMAS
0,04 QAS
RBAS
0,02
0
0
8
104
112
120
128
136
144
152
160
168
176
184
192
16
24
32
40
48
56
64
72
80
88
96
Problem komiwojażera
73
0,4
0,35
0,3
ACS
0,25 AQ
CAS
0,2 DAS
EAS
0,15
MMAS
0,1 QAS
RBAS
0,05
0
104
112
120
128
136
144
152
160
168
176
184
192
0
8
16
24
32
40
48
56
64
72
80
88
96
0,3
0,25
ACS
0,2
AQ
CAS
0,15 DAS
EAS
0,1 MMAS
QAS
RBAS
0,05
0
16
24
32
40
48
56
64
72
80
88
96
104
112
120
128
136
144
152
160
168
176
184
192
0
8
74
Zwyczajowo przeszukiwanie przestrzeni rozwiązań przez algorytm AS trwa
nieprzerwanie. Ciekawe efekty przynosi jednak przyjrzenie się wykresom
algorytmów ASrank i CAS.
Algorytm ASrank przeszukuje graf do 80 iteracji, podczas gdy nie uzyskuje poprawy
od iteracji ok. 65. Przy czym ostatnie przeszukiwania są mocno zawężone – entropia
jest niższa niż 0,05. Jest to mocno intuicyjne: algorytm jest znalazł najlepsze
rozwiązanie, ale szuka jeszcze w jego pobliżu być może lepszych opcji.
6.2.4 WNIOSKI
75
Okazało się, że porównanie skuteczności algorytmów nie jest zagadnieniem łatwym
i jeśli sprowadzimy je do prostego porównania najlepszych uzyskanych wyników,
nie dostaniemy pełnego obrazu różnic wynikających między algorytmami. Dopiero
analiza wykresów średniego rozwiązania pozwoliła uściślić wyniki badań, zaś
analiza entropii pozwoliła dodatkowo te wyniki uzasadnić.
76
7 ZAKOŃCZENIE
77
8. BIBLIOGRAFIA
Opracowania książkowe:
Publikacje:
[3] Barton, A.: „A Simplified Ant Colony System Applied to the Quadratic
Assignment Problem”, National Research Council of Canada, March 2005
[5] Dorigo Marco, Gambardella Luca M., Taillard E. D. : “Ant Colonies for the
Quadratic Assignment Problem”,
[6] Dorigo Marco, Maniezzo Vittorio, Colorni Alberto: “The Ant System:
Optimization by a Colony of Cooperating Agents”, IEEE Transactions on
Systems, 1996
[8] Hooker J. N.: „Testing Heuristics: We Have It All Wrong”, Graduate School
Of Industrial Administration, Pittsburgh, USA 1995
78
[11] Maniezzo Vittorio, Colorni Alberto: “The Ant System Applied to the
Quadratic Assignment Problem”
[12] Mills Patrick: “Monitors for GLS and Other Meta-Heuristics”, Department of
Computer Science, University of Essex, May 2000
79