SlideShare a Scribd company logo
1 of 59
Download to read offline
Uniwersytet Zielonogórski
Wydział Elektrotechniki Informatyki i Telekomunikacji
Informatyka
Praca magisterska
Zastosowanie algorytmu
mrówkowego na przykładzie
systemu dynamicznego
modelowanego grafem ważonym
Marcin Szydłowski
Promotor: dr hab. inż. Andrzej Pieczyński, prof. UZ
Zielona Góra, 2010
Streszczenie
Niniejsza praca dotyczy wykorzystania algorytmów mrówkowych AS (ang. Ant-
System — system mrówkowy) w problemach transportowych. Rozpatrywane za-
gadnienia nie dotyczyły będą stricte sensu transportu jako przemieszczania czegoś
a bardziej zadania trasowania (ang. routing). Modele systemów przedstawiane
będą grafami ważonymi skierowanymi. Przykłady systemów użytych w pracy
obejmują złożone zależności determinujące zastosowanie dużych nakładów pa-
mięciowych oraz obliczeniowych. Poza tym wymienione struktury zmieniają się
dynamicznie w czasie co wymusza ciągłe szukanie nowych rozwiązań dla tych
rzeczy. W mniemaniu autora, to algorytmy stadne mają tutaj duże pole do po-
pisu. Badania określą różnice jakościowe ich zastosowania w stosunku do, np.
algorytmu Dijkstry, który jest jednym z klasycznych deterministycznych odpo-
wiedników trasowania.
Słowa kluczowe: algorytmy mrówkowe (AS), transport, trasowanie, graf, sys-
tem dynamiczny
v
This document is about application of ants algorithms, called AS stands for
“Ant-System” which means optimization by means of an ants colony, swarm
or herd for solving transport problems. Considered questions will not concern
explicitly moving something from one place to another but more routing. Sys-
tems models will be representing by directed and labeled graphs. The examples
of systems used in this paper to apply complex dependencies which determine
require lots of memory and many computations. Besides, thats structures changes
ourselves dynamically which demands searching new solutions constantly. Author
thinks that ACOs “family” have a huge potential in this case. Experiments will
demonstrate differences between results returned by AS and i.e. Dijkstra, one
of the basic deterministic algorithms for routes finding equivalent.
Keywords: ants systems (AS), transport, routing, graph, dynamic system
Spis treści
Spis treści i
1 Wstęp 3
1.1 Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Cel i zakres pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Struktura pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Podstawy teoretyczne 7
2.1 Grafy i ich zastosowania . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Tradycyjne algorytmy dla drogi prostej . . . . . . . . . . . . . . . . 8
2.3 Algorytmy mrówkowe . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Wariant klasyczny . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2 Modyfikacje . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Eksperyment 15
3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Kryteria porównywania . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3 Regulacja parametrów . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4 Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4.1 Wybór języka i środowiska programistycznego . . . . . . . . 18
3.4.2 Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.3 Dane testowe . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4 Wyniki symulacji oraz wnioski 23
4.1 Wyniki dla systemu statycznego . . . . . . . . . . . . . . . . . . . 23
4.1.1 Badanie wpływu liczby mrówek oraz iteracji . . . . . . . . . 23
4.1.2 Wpływ parametrów α oraz β . . . . . . . . . . . . . . . . . 27
4.1.3 Badanie wpływu parametru ρ . . . . . . . . . . . . . . . . . 29
4.1.4 Badanie parametru W dla algorytmu RBAS . . . . . . . . . 31
4.1.5 Badanie parametru e dla algorytmów RBAS oraz MMAS . 31
i
ii SPIS TREŚCI
4.1.6 Rezultaty dla parametrów τmin i τmax dla algorytm MMAS 33
4.1.7 Badanie parametru Q dla algorytmu CAS . . . . . . . . . . 34
4.1.8 Wpływ parametru τ0 na algorytmy CAS i RBAS . . . . . . 34
4.2 Wyniki dla systemu zmieniającego się dynamicznie . . . . . . . . . 37
4.3 Wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Bibliografia 45
Spis symboli i skrótów 49
Spis rysunków 50
Spis tablic 51
Podziękowania
Pragnę podziękować przedstawicielom kadry dydaktycznej Wydziału Elektrotech-
niki Informatyki i Telekomunikacji Uniwersytetu Zielonogórskiego, którzy prowa-
dzili zajęcia w czasie moich studiów za trud nauczania oraz cierpliwość do nas —
studentów. Dziękuję również znajomym z grupy dziekańskiej i nie tylko, których
poglądy uczyły weryfikowania własnych przekonań oraz innego spojrzenia na nie-
które problemy. W końcu, a raczej przede wszystkim, podziękowania składam ro-
dzicom za ich ogromny wkład i wsparcie towarzyszące mi od samego początku
etapu studiów.
1
Rozdział 1
Wstęp
1.1 Wprowadzenie
Nie zdajemy sobie sprawy jak wiele rzeczy i problemów wziętych z życia stanowi
dla komputera poważny problem. Nowoczesne modele oraz trendy konstrukcyjne
w branży tych maszyn pomimo coraz wydajniejszych, także wielordzeniowych∗
procesorów czy relatywnie tanich pamięci nadal nie rozwiązują problemu złożono-
ści obliczeniowej. Nawet podzielenie problemu na wiele mniejszych zadań przekra-
cza niekiedy możliwości obliczeniowe naszej cywilizacji gdy chcemy aby coś okre-
ślone zostało szybko. Z przykładem czasochłonnych obliczeń możemy się spotkać
wykorzystując chociażby klienta obliczeń rozproszonych o nazwie BOINC ∗. Pro-
blemy kombinatoryczne spotykamy na co dzień w zagadnieniach np. przydziału
miejsca, optymalizacji trasy lasera, prognozowania (pogoda, giełda, medycyna,
niebezpieczne eksperymenty), rozmieszczenia albo doboru czegoś. Wszystkie wy-
mienione dziedziny zazębiają się w jakiś sposób i wpływają bezpośrednio na ja-
kość życia, dobrze więc byłoby szybko znać odpowiedź na nurtujące nas pytania.
Niestety, w takich problemach przestrzeń możliwych interesujących nas stanów
rośnie wykładniczo i nie udowodniono jak również nie zaprzeczono na dzień dzi-
siejszy istnienia algorytmu szybszego niż przeszukiwanie ślepe. Nawet problem
najkrótszej ścieżki (optymalny transport towarów, przesył informacji), chociaż
jego złożoność jest kwadratowa dla pary wierzchołków, sprawia duży problem
∗
Dzisiaj można często spotkać komputery PC z procesorami co najmniej dwurdzeniowymi,
ale warto wspomnieć, że już w 2007r. Intel R zaprezentował Polaris — procesor 80-o rdzeniowy,
którego każdy rdzeń połączony jest z innymi oraz pamięcią za pośrednictwem własnego routera.
Kolejnym wielordzeniowym układem ze „stajni” tej samej firmy jest procesor składający się
z 48-u rdzeni a ujrzał on światło dzienne na początku grudnia zeszłego roku.
∗
BOINC [1] jest open-source’ową platformą rozproszoną zrzeszającą wolontariat użytkowni-
ków komputerów osobistych, którzy pozwalają na wykorzystanie mocy swoich maszyn do potrzeb
różnych projektów, takich jak np. WCG. Więcej informacji można znaleźć pod adresem [1] oraz
[2] albo [3]
3
4 ROZDZIAŁ 1. WSTĘP
dla algorytmu zwracającego rozwiązanie minimalne, gdy liczba wierzchołków jest
duża. Co więcej, uruchamianie algorytmu analitycznego po każdej modyfikacji
właściwości któregoś z połączeń mija się z celem.
Na szczęście możliwa jest druga opcja. Wiele rzeczy nie wymaga optymalnego
rozwiązania, więc można zaoszczędzić czas kosztem jakości. Praktyka pokazuje,
że rozwiązanie suboptymalne może być odnalezione szybko i zrekompensować
ewentualne straty. Wystarczy, że wybierając stan następny, będziemy z pewnym
prawdopodobieństwem (tzw. heurystyka) uwzględniali także rozwiązania gorsze.
Polski matematyk Stanisław Ulam stworzył stochastyczną metodę Monte Carlo.
Jednym z pomysłów opierającym się na owej koncepcji jest rodzina algorytmów
mrówkowych, których zastosowanie przedstawia ten dokument, a które omówione
zostały w punkcie 2.3. Zanim to nastąpi jednak czytelnik zostanie zaznajomiony
z podstawami z dziedziny grafów, ponieważ na nich to opierają się modele użyte
tutaj.
1.2 Cel i zakres pracy
Celem pracy jest porównanie działania algorytmu mrówkowego z tradycyjnymi
metodami rozwiązującymi problemy grafowe (chodzi głównie, o problem najkrót-
szej ścieżki z pojedynczym źródłem, tzw. (ang. Single Source Shortest Path),
w dalszej części pracy używany będzie po prostu skrót SP). Autor rozumie tutaj
pewne modele systemów rzeczywistych, których elementy reprezentowane będą
przez wierzchołki i łuki grafu ważonego.
Pierwszym zadaniem będzie przetestowanie trzech wariantów podstawowego
algorytmu mrówkowego na statycznym grafie będącym mapą pewnego miasta.
Dzięki temu, autor określi wartości parametrów dla poszczególnych algorytmów.
Jest to konieczne, ponieważ — jak się okaże — każdy z wariantów ma „inny”
zestaw zmiennych, korzystając z których zwraca rozwiązania lepsze. W tej sekcji,
wzięto pod lupę także ilość iteracji, chociaż dla problemu dynamicznego i działa-
jącego nieprzerwanie algorytmy będą działały w nieskończoność poszukując cały
czas drogi do celu. Konieczne jednak było takie ograniczenie dla pierwszej tury
badań, ponieważ po pierwsze: czas testów musiał być ograniczony, a po drugie,
opieranie się na zbieżności do pewnej wartości rozwiązania nie gwarantuje, że jest
to rozwiązanie nawet średnie (cały czas trzeba byłoby próbować szukać rozwią-
zania lepszego).
Zadanie drugie polegać będzie na ciągłym działaniu algorytmu w zmieniają-
cym się środowisku grafu abstrahującego dużą sieć komputerową złożoną z wielu
mniejszych podsieci. Na potrzeby tych testów będzie już można uruchomić pro-
cedurę „mrówkową” z najlepszymi zestawami parametrów jakie wybrane zostały
w sekcji wcześniejszej. Tutaj, sprawdzona zostanie jakość szukanych rozwiązań
każdego wariantu algorytmu dla pary nadawca—odbiorca gdy właściwości połą-
1.3. STRUKTURA PRACY 5
czeń pomiędzy nimi będą ulegały zmianie.
Działania podjęte w tym dokumencie pokażą czy zastosowanie algorytmów
mrówkowych w zmieniającym się systemie jest akceptowalne z punktu widzenia
opóźnień czasowych i czy pomimo utrudnień ogólna sprawność działania modelu
zostanie utrzymana. Czytelnik będzie też mógł odpowiedzieć sobie na pytanie
„Czy użycie tego dla mojego problemu jest uzasadnione?”. Chęcią autora było
danie przyszłym zajmującym się tym tematem wskazówek jak używać tego na-
rzędzia i czy warto bo „na siłę” wypada, czy naprawdę, jest tego sens.
1.3 Struktura pracy
Praca podzielona została na cztery główne części. Poniżej przedstawiono zawar-
tość każdego z rozdziałów.
Wstęp — rozdział obecny; po krótkim wprowadzeniu omówiony jest tutaj cel
pracy wraz z jej strukturą;
Podstawy teoretyczne — krótkie wprowadzenie do teorii grafów oraz opis
„klasycznych” algorytmów grafowych, wyjaśnienie zasady działania algo-
rytmu mrówkowego w postaci pierwotnej jak również prezentacja jego naj-
bardziej obiecujących odmian wraz z opisem różnic;
Eksperyment — wybór środowiska programistycznego wraz z jego krótką cha-
rakterystyką; założenia odnośnie modelowanych systemów, opis oczekiwań
w odniesieniu do nich; struktura ogólna systemu bazowego; wykaz proble-
mów, wyszczególnienie miejsc, w których wykorzystane zostaną różne algo-
rytmy;
Wyniki oraz wnioski — prezentacja wyników, omówienie ich i porównanie
z rozwiązaniami analitycznymi; opisano tutaj też napotkane problemy, wy-
mieniono korzyści płynące z zastosowania algorytmów omawianej klasy;
na końcu przedstawione zostały wnioski z obserwacji oraz propozycje kolej-
nych implementacji.
Rozdział 2
Podstawy teoretyczne
2.1 Grafy i ich zastosowania
Matematyka udostępnia wiele narzędzi pozwalających modelować zjawiska. Jed-
nym z takich narzędzi jest graf, który ma istotną zaletę — oprócz relacji wy-
stępujących w problemie może go także (jeżeli nie jest zbyt duży i złożony) —
czytelnie zilustrować. Grafy spotykane na co dzień, to np. schematy blokowe, plan
ulic w systemach GPS, plan trasy zakupów tworzony w naszych głowach przed
wyjściem do miasta.
Graf złożony jest z niepustego zbioru V (G) wierzchołków oraz zbioru E(G)
krawędzi, z których każda może łączyć tylko dwa wierzchołki. Zadaniem wierz-
chołka jest reprezentacja jakiegoś stanu, miejsca, cechy. Krawędź, symbolizowana
najczęściej pewną etykietą lub wartością opisuje kryterium bądź funkcję relacji
pomiędzy wierzchołkami. Łuk, to krawędź skierowana z zaznaczonym grotem in-
formującym o kierunku w jakim relację należy uwzględniać. Różnice takie są uza-
sadnione i mogą abstrahować m.in. sytuacje jak na rysunku 2.1.
(a)
(b)
350 litrów paliwa
1800 litrów paliwa
Rysunek 2.1: Graf prosty (a) oraz skierowany (b)
7
8 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE
Wierzchołki (czarne okręgi) symbolizują miasto oraz zakład. Przy założeniu,
że wypełnienie samochodu towarem nie odgrywa roli, jest pokazane tutaj jak
ułożenie drogi oddziałuje na kwestię kosztów względem kierunku, w którym po-
ruszamy się.
Oba te przypadki są skrajnie proste, ale dla większych struktur wygodnie jest
posiadać informacje o wartościach połączeń pomiędzy wszystkimi wierzchołkami.
Dane takie zawiera tzw. macierz sąsiedztwa rozmiaru Nn×n, gdzie n jest liczbą
wierzchołków. W każdym polu tej tablicy znajduje się waga krawędzi od wierz-
chołka wskazywanego wierszem do tego, który jest wskazywany kolumną. W grafie
prostym, czyli takim, w którym krawędzie mają tą samą wartość w kierunku oby-
dwu wierzchołków, macierz ta jest symetryczna. Tabela taka jest wygodna jeżeli
graf jest gęsty. Wadą takiej tabeli jest przechowywanie wielu informacji o połą-
czeniach, które nie istnieją. Dzieje się tak w sytuacji, gdy wierzchołków jest dużo
a krawędzi mało (graf rzadki∗). Zaletą za to jest szybkość odczytu interesującej
nas wartości. Alternatywą dla tej struktury w przypadku grafów rzadkich jest
aby każdy wierzchołek przechowywał listę sąsiadów, z którymi jest połączony
(lista sąsiedztwa). Rozwiązanie takie niweluje marnotrawstwo pamięci, ale wy-
maga znowuż ciągłego przeszukiwania połączeń w każdej liście wśród wszystkich
wierzchołków. Mamy więc tutaj pierwszy problem dotyczący szybkości wykonania
kosztem zajętości pamięci i vice versa.
Ścieżka jest to ciąg wierzchołków, w którym następnik sąsiaduje ze swoim
poprzednikiem. Można powiedzieć, że jest to „łamana” powstała z krawędzi albo
łuków o punktach załamania w wierzchołkach. Nas interesować będzie jednak
ścieżka prosta. Różni się ona od poprzedniego przypadku brakiem powtórzeń
krawędzi lub wierzchołków. Jest to analogia wprost do jakiejś trasy. Kolejny ter-
min, to cykl. Cyklem określa się ścieżkę prostą, której ostatni wierzchołek jest
zarazem pierwszym.
Wymienione pojęcia powinny wystarczyć do zrozumienia dalszej części pracy.
Więcej na temat grafów można znaleźć np. w [8].
2.2 Tradycyjne algorytmy dla drogi prostej
Algorytm Dijkstry jest chyba najsłynniejszy jeżeli chodzi o poszukiwanie ścieżki
minimalnej w grafie. Pozwala on obliczyć wagi minimalne z wybranego wierz-
chołka do pozostałych. Całkowity czas działania pierwotnej wersji algorytmu wy-
nosi O(n2). Modyfikacje na tym polu dotyczą zamiany listy odkrytych, ale nie eks-
plorowanych wierzchołków na wydajniejszą strukturę danych. Jedną z takich jest
kopiec Fibonacciego†, z którego autor tej pracy skorzystał implementując algo-
∗
Graf rzadki, to taki, którego liczba krawędzi jest dużo mniejsza od n(n−1)
1
. Niestety, nie
istnieje prosta reguła rozdzielająca klasy rzadki—gęsty.
†
Strukturze tej poświęcono cały rozdział nr 21 w [5].
2.3. ALGORYTMY MRÓWKOWE 9
rytmu Dijkstry do programu testującego. Dzięki temu możemy uzyskać złożoność
nie O(V 2) a O(E + V log V ). Wadą powyższego algorytmu jest brak odporności
na wagi ujemne. Z tym radzi już sobie algorytm Warshalla‡, który odnajduje wagi
minimalne albo maksymalne między wszystkimi parami wierzchołków. Może też
służyć do określenia osiągalności. Działa w czasie O(n3). Stosowaną modyfikacją
ulepszającą pierwowzór jest algorytm Warshalla-Floyda.
Powyższe charakterystyki są tylko zdawkowymi informacjami dotyczącymi
grafów oraz algorytmów ich dotyczących. Przedstawiona w tym podpunkcie wie-
dza powinna wystarczyć w zupełności do oswojenia czytelnika z dalszą częścią
pracy.
2.3 Algorytmy mrówkowe
Idea tej klasy algorytmów wywodzi się od pracy doktorskiej Pana Marco Dorigo
z Politechniki w Milanie. Na podstawie wcześniejszych badań na temat poszu-
kiwania pokarmu przez mrówki argentyńskie, które to badania przeprowadzone
zostały przez innych naukowców, postanowił on wykorzystać mechanizm poszu-
kiwania rozwiązań w sposób heurystyczny wykorzystując błądzenie losowe wielu
osobników. Kluczowym czynnikiem mającym wpływ na działanie algorytmu jest
wprowadzenie feromonu czyli abstraktu substancji zapachowej kojarzonej z każ-
dym, przeglądanym łukiem grafu. Czynnik ten świadczy o „atrakcyjności” łuku
w momencie ich wybierania. W zależności od odmiany formy bazowej algorytmu,
połączeniom w grafie przydzielana będzie odpowiednia wartość tego parametru.
To właśnie na jego podstawie określana będzie późniejsza jakość m–tego rozwią-
zania, gdzie m będzie liczbą mrówek błądzących po łukach grafu.
Algorytmy tej klasy ewoluowały, począwszy od AS (ang. Ant System czyli
po prostu system mrówkowy), aż po różne odmiany MMAS (ang. MinMax Ant
System) wymyślonego przez Hoosa i St¨utzlea w roku 1997.
2.3.1 Wariant klasyczny
Jak zostało wspomniane wcześniej, pierwszym algorytmem mrówkowym był AS.
Użyto go do rozwiązania spędzającego sen z powiek „komiwojażera”, w skrócie
TSP (ang. Travelling Salesman Problem — problem komiwojażera). Dla przy-
pomnienia: istnieje n miast połączonych w jakiś sposób i należy przejść przez
wszystkie tylko raz tak, aby zrobić to jak najszybciej (kryterium odległości za-
leży oczywiście od założeń). Złożoność problemu jest NP – zupełna i co zostało
wspomniane wcześniej nie istnieje dowód szybkiego rozwiązywania zagadnień tej
rangi. Algorytm mrówkowy dla tego zadania działał następująco: przeprowadza-
nych jest tmax iteracji, podczas których m mrówek szuka cykli wykonując tyle
‡
Z opisami i pseudokodami obu wymienionych algorytmów można się zapoznać w [8].
10 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE
kroków ile potrzeba. Każdy krok odpowiada za stochastyczny wybór j–tego mia-
sta, przez mrówkę. Mrówka posiada wiedzę o tym, które miasta odwiedziła do-
tychczas (informację o nich przechowuje w tzw. „tabu-liście”). Jest to konieczne
aby uniknąć teoretycznie nieskończonych pętli, szczególnie w przypadku DAS
czy QAS z powodu natychmiastowej aktualizacji feromonu na łukach w przy-
padku tych dwóch algorytmów. Po znalezieniu cyklu mrówka naznacza pewną
ilością feromonu swoją trasę i z wyzerowaną listą odwiedzonych miast zaczyna
błądzić ponownie. Należy dodać, że feromon cechuje pewien współczynnik pa-
rowania co chroni przed utrzymywaniem niezmienionej wartości najlepszej trasy
i ewentualnie zapewnia późniejsze znalezienie drogi lepszej. Oprócz tego, po każ-
dej iteracji ślad feromonowy na wszystkich krawędziach grafu „ulatnia” się — jest
zmniejszany o pewną wartość. Ogólnie, algorytm ten można opisać następującym
pseudokodem:
1: START = start(V)
2: END = end(V)
3: I = iterCount
4: M = antsCount
5: for i = 1 to I
6: Ants = CreateAnts(M)
7: for m = 1 to length[Ants]
8: Move[Ants[m]]
9: if (v[Ants[m]] = END)
10: ActualizePheromoneTrail(Path[Ants[m]])
11: Delete[Ants[m]]
12: ActualizePheromone
Linijki 1 i 2, to przypisanie do zmiennej START oraz END odpowiednio, wierz-
chołka startowego i końcowego ze zbioru wierzchołków grafu. W linii nr 5 rozpo-
czyna się główna pętla algorytmu. Trzeba zaznaczyć, że nie musi być ona ogra-
niczona liczbą iteracji — może to być kryterium jakości z którym porównywane
będą aktualne osiągi algorytmu obliczane po każdorazowym znalezieniu wyma-
ganej trasy przez mrówkę w pętli wewnętrznej (linia nr 7). W linijce szóstej, two-
rzona jest populacja mrówek, które będą eksplorowały graf. Pętla wewnętrzna
(7. . . 11) porusza każdą mrówką ze zbioru Ants. Ruch ten oznacza dyskretne
przejście do wierzchołka kolejnego§. Jeżeli wierzchołek wybrany okaże się doce-
lowym, feromonowy ślad jest aktualizowany na ścieżce odkrytej przez mrówkę,
a samą mrówkę usuwa się ze zbioru Ants. Gdy każda z mrówek osiągnie cel, na-
stępuje zmniejszenie wartości feromonu na wszystkich łukach grafu i rozpoczyna
się kolejna iteracja z nowym zestawem mrówek.
§
Pierwotnie zakładano, że mrówki przemieszczają się co stały kwant czasu o pewną odle-
głość, ale stwierdzono, że nie jest to istotne, więc cała krawędź, bez względu na długość, jest
przemierzana w jednej turze (rozdział 3.3 na stronie 16).
2.3. ALGORYTMY MRÓWKOWE 11
Przedstawiona postać algorytmu jest tylko bardzo ogólnym zarysem. Obecnie,
praktycznie w zależności od odmiany, może on przyjmować bardzo różną formę.
W szczególności, tyczy się to reguł aktualizacji feromonu, jego parowania, jego
umiejscowienia w kodzie algorytmu, oraz struktury przechowującej mrówki, po-
nieważ może być tak, że na miejsce mrówki usuniętej tworzona jest nowa od razu.
Pierwsze trzy odmiany pierwotnego AS dotyczą odkładania feromonowego
śladu. Nazwy tych algorytmów wywodzą się od sposobów aktualizacji feromonu
według:
• gęstości — DAS (ang. density-ant-system): mrówki zostawiają stałą ilość
feromonu na łukach, podczas budowy drogi;
• ilości — QAS (ang. quantity-ant-system): zostawianie ilości odwrotnie pro-
porcjonalnej do długości łuku (również podczas budowy);
• cyklu — CAS (ang. cycle-ant-system): odłożenie feromonu na krawędziach
cyklu dopiero po jego znalezieniu.
Wcześniejsze materiały mówią, że wariant CAS jest najefektywniejszy z powyż-
szej trójki. Pierwsze testy odbywały się na makietach mostu o dwóch pasach,
z których jeden był dłuższy. W pozycji [7] jest to przedstawione szczegółowo.
Oprócz tego, wymieniono tam parę problemów, takich jak brak zainteresowania
mrówek wybieraniem nowo utworzonego połączenia, gdy na innych jest już duże
natężenie feromonu. Innym problemem może być wspomniana wyżej możliwość
tworzenia cykli czego należy unikać modyfikując program odpowiednio. Standar-
dowo, wykorzystuje się wspomnianą już „tabu-listę” (dla problemu najkrótszej
ścieżki będzie to lista odwiedzonych krawędzi! — patrz uwaga na str. 12).
Regułę określającą prawdopodobieństwo wyboru przez mrówkę łuku od węzła
i do węzła j-tego opisuje wzór:
pij =
(τij)α(ηij)β
ω∈Ω
(τiω)α
(ηiω)β
(2.1)
gdzie:
i,j — indeksy węzłów,
τ — intensywność dotychczasowa feromonu na łuku,
η — atrakcyjność łuku, którą przyjmuje się jako 1/dij, przy czym d, to ocena
łuku (waga/koszt/długość),
α — parametr wzmocnienia decyzji względem wartości feromonu,
β — parametr wzmocnienia decyzji względem atrakcyjności łuku,
12 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE
Ω — zbiór sąsiadów węzła, w którym mrówka znajduje się aktualnie, do wę-
złów jeszcze nie eksplorowanych,
ω — indeks konkretnego węzła ze zbioru możliwych rozwiązań.
Reguła aktualizacji feromonu dotyczy tylko łuków odwiedzonych przez mrówki
a opisana jest zależnością:
τ∗
ij = (1 − ρ)τij + ∆τij (2.2)
gdzie:
τij — ilość aktualna feromonu na łuku,
τ∗
ij — ilość w kroku następnym,
ρ — współczynnik parowania feromonu (ρ ∈ (0, 1]),
∆τij — czynnik zmiany.
Czynnik zmiany jest sumą feromonowych śladów zostawianych przez mrówki,
które wykorzystały krawędź ij przy budowie swojej trasy:
∆τij =
m
k=1
δτk
ij (2.3)
m oznacza liczbę wszystkich mrówek, k zaś jest indeksem mrówki. Czynnik cząst-
kowy dla k-tej mrówki wyznaczany jest następująco:
δτk
ij =
Q/Lk jeżeli mrówka korzystała z tego łuku,
0 w przypadku przeciwnym.
(2.4)
gdzie Lk jest długością/kosztem trasy przebytej dotychczas przez k-tą mrówkę.
Parametr Q nie ma określonej stałej wartości. Pierwotnie, wartość tego licznika
ustala się na 1.
Uwaga: jest istotne czy mrówka przeczesuje graf omijając sprawdzone wierz-
chołki, czy sprawdzone krawędzie. Na rysunku 2.2 przedstawione są możliwe teo-
retycznie trasy dla problemu SP (ang. Shortest Path — najkrótszej ścieżki). Graf
po stronie lewej (a) przedstawia sytuację, gdy mrówka starała się omijać wierz-
chołki już odwiedzone. Strategia taka jest pożądana w przypadku TSP, ale dla
najkrótszej ścieżki będzie prowadziła do kiepskiej jakości rozwiązań w przeważa-
jącej liczbie przypadków. Graf środkowy (pierwszy od lewej w (b)) ukazuje trasę
znalezioną gdy mrówka wybiera następników tak, aby nie odwiedzać przebytych
już krawędzi. Chociaż sposób ten może generować cykle względem wierzchołków,
2.3. ALGORYTMY MRÓWKOWE 13
(a) (b)
Rysunek 2.2: Niektóre z możliwych ścieżek znalezione przez mrówkę; (a) wa-
riant z omijaniem wierzchołków odwiedzonych, (b) wariant z omijaniem kra-
wędzi odwiedzonych.
to po redukcji uzyskujemy tylko konieczną ilość krawędzi na znalezionej ścieżce¶
— graf po stronie prawej w części (b).
Tak więc, jeżeli czytelnik zamierza implementować algorytm mrówkowy bez
późniejszego rozczarowania wydajnością, to musi wiedzieć jaki problem chce roz-
wiązywać i wtedy, powinien odpowiednio dostosować blok wybierający zbiór Ω.
2.3.2 Modyfikacje
Pierwowzór okazuje się mało wydajny względem jakości rozwiązania, dlatego siłą
rzeczy zaczęto dążyć do poprawiania tego stanu opracowując kolejne odmiany.
W tej pracy, autor korzystając z dotychczasowych wyników badań, skoncentrował
się na wykorzystaniu i porównaniu jedynie dwóch najlepszych wariantów:
• RBAS — ang. Rank Based Ant System — system mrówkowy bazujący
na rankingu zaproponowany przez Bullnheimera w 1999r;
• MMAS — ang. MinMax Ant System — system mrówkowy min-max.
Modyfikacja pierwsza zakłada, że po każdej iteracji, wyniki wszystkich mró-
wek są sortowane niemalejąco i tylko rozwiązanie najlepsze oraz W −1 pierwszych
rozwiązań jest aktualizowanych feromonem. Oprócz tego, nowa ilość feromonu
na krawędziach zależy od rankingu mrówki:
τ∗
ij = (1 − ρ)τij + ∆W
τij + Wδτbpi
ij (2.5)
gdzie:
W — liczba rozwiązań branych pod uwagę po każdej iteracji;
bpi — (ang. best per iteration) indeks mrówki, która znalazła trasę najlepszą
w danej iteracji.
¶
Trzeba mieć na uwadze fakt, że proces usuwania cykli nie jest złożony, ale trudny optyma-
lizacyjnie. Może zdarzyć się sytuacja, że usunięcie pierwszego znalezionego cyklu uniemożliwi
późniejsze znalezienie cyklu większego w sensie długości lub kosztu trasy [7].
14 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE
Czynnik zmiany różni się tutaj trochę od swojego odpowiednika 2.3 dla CAS,
mianowicie:
∆W
τij =
W −1
k=1
(W − k)δτk
ij (2.6)
Zaleca się też inną wartość licznika dla czynników cząstkowych:
δτk
ij = e/Lk
δτbpi
ij = e/Lbpi
(2.7)
Jak widać, substytutem wartości Q jest tutaj e. Wartość e ma swoje korzenie
we wcześniejszej odmianie AS — EAS (ang. Elitist Ant System — System Mrów-
kowy względem mrówki „elitarnej” ). Pomysł tamten nakazuje większe wzmacnia-
nie najlepszego dotychczasowego rozwiązania, stąd pewna liczba e zarezerwowana
dla mrówczego lidera.
MMAS cechuje się większą liczbą zmian. Oprócz tego, że co iterację wzmac-
niana jest tylko trasa najlepsza albo na przemian: raz najlepsza dotychczas, raz
najlepsza w iteracji, to możliwe wartości feromonu na łukach zamykają się w prze-
dziale [τmin, τmax]. Przed rozpoczęciem działania algorytmu, wartość feromonu
na wszystkich łukach grafu ustawiana jest na τmax. Gdy algorytm długo „zastoi”
się w miejscu, wartości feromonów na krawędziach są inicjalizowane ponownie
wartością początkową (τmax).
Tłum. wg autora pracy.
Rozdział 3
Eksperyment
3.1 Problem
We wcześniejszym fragmencie pracy zostało wspomniane, że heurystyki wygry-
wają tam, gdzie zależy nam na czasie i niekoniecznie na jakości rozwiązania albo
gdy uruchamianie metody analitycznej co chwilę jest po prostu mało wydajne.
Jak więc określić wydajność czasową oraz wydajność jakości?
W końcowej części poprzedniego rozdziału, autor przedstawił najważniejsze
informacje odnośnie systemów mrówkowych użytych tutaj. Naturalnie, pojawia
się pytanie teraz, jak tego użyć. Banalna odpowiedź: —implementując to zderzy
się jednak bardzo szybko z podstawową barierą, która oddziela wartości para-
metrów lepszych od gorszych. Kolejny problem jest taki, że czynniki okazują się
mieć inne wartości dla różnych odmian. W końcu, parametr określający liczbę
iteracji jest potrzebny tylko podczas testów doboru parametrów.
I nareszcie zadanie ostatnie: minimalizacja przestrzeni parametrów. Korzy-
stając z poprzedniego rozdziału, uważny czytelnik naliczył ich wiele, a czytelnik
rozważny zdał sobie sprawę szybko, że proste to nie jest. Chociaż ze słowem „pro-
ste” można jeszcze polemizować myśląc naiwnie, że wszystkie kombinacje wystar-
czy sprawdzić po prostu. Przedstawione później obliczenia rozwieją te nadzieje.
Wyjdzie na to, że z ogromną i nieugiętą liczbą kombinacji dyskutować się nie da.
Tak samo, zresztą, jak z czasem na obliczanie wyników dla nich wszystkich.
3.2 Kryteria porównywania
Wiadomo, że algorytm Edsgera Dijkstry znajduje ścieżkę minimalną. Wystarczy
uruchomić tą procedurę tylko raz dla jakiejś pary wierzchołków i jesteśmy pewni
rozwiązania najlepszego. Posiadając wiedzę o czasie działania tego algorytmu
oraz o koszcie ścieżki, mamy punkt odniesienia o którym wiemy, że mrówkom
15
16 ROZDZIAŁ 3. EKSPERYMENT
nie uda się na pewno go polepszyć. Mamy minimum, ale co gdy czas i tak nie
jest dla nas zadowalający albo nie znamy na początku zbioru wszystkich wierz-
chołków? Jedynym sposobem więc, jest postawa nakazująca szukania pierwszego,
lepszego rozwiązania a następnie próba jego polepszania. Dla algorytmów AS Po-
równywany więc będzie czas uzyskania „pierwszego kontaktu” (odnaleziona droga
Vstart . . . Vend), jakość tego rozwiązania w sensie kosztu oraz szybkość zbieżności
w iteracjach późniejszych.
3.3 Regulacja parametrów
W tabeli 3.1 wyszczególniono, jakie parametry oraz dla jakiego algorytmu będą
musiały być sprawdzane.
Tablica 3.1: Funkcje parametrów oraz algorytmy korzystające z nich.
@
@
@
funkcja CAS RBAS MMAS
α Wzmocnienie wpływu śladu feromonowego łuku.
β Wzmocnienie wpływu odwrotności kosztu łuku.
ρ Współczynnik parowania feromonu.
W
Liczba mrówek, oprócz najlepszej, których ścieżki
będą aktualizowane; odpowiedzialny także za wy-
nik wartości zmiany nowego śladu.
e Czynnik odpowiadający za wartość zmiany śladu.
τmin Wartość minimalna feromonu na łukach.
τmax Wartość maksymalna feromonu na łukach.
Q Czynnik odpowiadający za wartość zmiany śladu.
τ0 Wartość początkowa feromonu na łukach.
N Liczba mrówek.
I Liczba iteracji.
Parametrem, który nie został ujęty w tabeli jest jeszcze krok . Decyduje on czy
mrówki poruszające się co kwant czasu przemierzają pewną część krawędzi tylko
czy od razu jej całość. Chociaż logika nakazuje branie pod uwagę kroku, to jednak
już podczas wcześniejszych etapów udoskonalania pierwotnego AS zaniechano
używania tego czynnika. Autor przeprowadził testy z użyciem kroku również i po-
twierdza informację o nieistotnej roli tej zmiennej.
Korzystając z wcześniejszych doświadczeń, np. w [7] [6], wiadomo było, w ja-
kich mniej więcej przedziałach zawierają się wartości parametrów. Autor posta-
nowił przeprowadzić testy dla następujących danych liczbowych:
α : 0.1, 0.2, 0.3, 0.5, 0.75, 1, 2, 3, 5, 7.5, 10;
β : 0.1, 0.2, 0.3, 0.5, 0.75, 1, 2, 3, 5, 7.5, 10;
3.3. REGULACJA PARAMETRÓW 17
ρ : 0.01, 0.02, 0.03, 0.05, 0.1, 0.2, 0.3, 0.5;
W : 2, 3, 4, 5, 6, 7, 8, 9, 10;
e : 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000;
τmin : 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000;
τmax : 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000;
Q : 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000;
τ0 : 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100;
N : 5, 10, 15, 20, 30, 40, 50, 75, 100, 200;
I : 5, 10, 15, 20, 30, 40, 50, 75, 100, 200;
step : tak, nie.
Ponieważ liczba testów dla wszystkich kombinacji (9680000 dla CAS + 113256000
dla RBAS + 132132000 (τmin musi być mniejsze od τmax, nigdy równe) dla
MMAS) wynosi 255068000 a przeciętny czas już dla liczby iteracji wynoszącej
40 oraz liczby mrówek równej 50 to około dwie i pół sekundy (testy na grafie
złożonym z trzystu wierzchołków, o którym więcej w podrozdziale 3.4.3), stąd
wychodzi, że obliczenie wszystkiego trwałoby około 20 lat (na komputerze au-
tora). Redukcja przestrzeni stanów polegała więc na zestawianiu tylko tych para-
metrów, które były w dużej mierze zależne od siebie. Przeprowadzono więc testy
dla następujących konfiguracji:
— liczba mrówek oraz iteracji;
— współczynniki α i β;
— parametr ρ;
— parametr e;
— parametr W;
— parametry τmin i τmax;
— parametr Q;
— parametr τ0.
18 ROZDZIAŁ 3. EKSPERYMENT
Dzięki testom wcześniejszym wiadome wartości zmiennych wykorzystano na eta-
pach późniejszych.
Testy wartości parametrów przeprowadzano na grafie składającym się z trzy-
stu wierzchołków, modelujący siatkę równoległych i prostopadłych ulic jakiegoś
miasta. Wierzchołki można interpretować jako skrzyżowania, łuki natomiast jako
połączenia pomiędzy nimi. Założono, że testowy wierzchołek docelowy jest osią-
galny zawsze z testowego źródłowego, w przeciwnym razie testy nie miałyby sensu.
W rzeczywistości być tak nie musi, ale warianty dla parametrów musiały mieć
przebieg od początku do końca.
3.4 Projekt
3.4.1 Wybór języka i środowiska programistycznego
Program służący do projektowania systemów i przeprowadzania symulacji na nich
został napisany w języku C# z wykorzystaniem środowiska Microsoft Visual Stu-
dio 2008 (VS2008). Pakiet ten jest dostępny za darmo dla studentów wydziału
Elektrotechniki Informatyki i Telekomunikacji Uniwersytetu Zielonogórskiego.
C# to język wysokiego poziomu, obiektowy, ogólnego zastosowania. Jedną
z jego zalet jest, tzw. Garbage Collector. Mechanizm ten wywodzący się z języka
Lisp i stosowany dzisiaj powszechnie uwalnia programistę od ręcznego zarządza-
nia pamięcią „wychwytując” nieużywane adresy. Poza tym, C# zawiera w sobie
obsługę zdarzeń, łańcuchów znakowych, interfejsy oraz typy generyczne (od wer-
sji języka 2.0), które bardzo ułatwiają korzystanie z wbudowanych dynamicznych
struktur danych w przypadku przechowywania w nich obiektów konkretnych klas.
Niestety, programy napisane w tym języku wymagają maszyny wirtualnej a do-
kładniej, środowiska .NET (alternatywa pod Linuxa nosi nazwę „Mono”). Nie
są też tak wydajne jak skompilowane np. w C++, niemniej jednak, w języku tym
pisze się szybko zarówno aplikacje konsolowe (z interfejsem czysto tekstowym)
jak i te komunikujące się za pomocą GUI (interfejs graficzny). Dostępnych jest
dużo gotowych bibliotek oraz klas.
Środowisko VS2008 należy do klasy RAD ang. Rapid Application Develop-
ment — gwałtowny/szybki rozwój aplikacji. Oprócz multum gotowych kompo-
nentów, udostępnia ono również wiele przydatnych narzędzi oraz mechanizmów,
jak np. podpowiedzi w trakcie pisania kodu wraz z możliwością szybkiego uzu-
pełnienia nazwą zmiennej/klasy/typu znaną w projekcie, zakładki pozwalające
szybko odnajdywać interesujące nas miejsca w plikach źródłowych, podpowiedzi
wartości zmiennych/obiektów podczas śledzenia wykonywania programu, auto-
matyczne uzupełnianie kodu po wstawieniu nawiasu zamykającego (opcjonalne),
a to tylko niektóre jego możliwości. W środowisku tym można tworzyć zarówno
małe programiki gdy szybko czegoś potrzebujemy jak i wielkie wieloosobowe pro-
3.4. PROJEKT 19
jekty czy aplikacje internetowe. Obsługa baz danych jest zaimplementowana rów-
nież.
Wybór języka jest konsekwencją znajomości przez autora tego narzędzia oraz
mieszanych uczuć co do wyboru popularniejszej Javy. Poza tym, C# posiada
parę rzeczy, które mogą być przydatne, a których Java nie posiada, np. różne
warianty argumentów funkcji (nie tylko wymóg obiektów czy zmiennych, których
nie można zmienić bez zwracania wartości), delegaty — przypominające wskaź-
niki do funkcji oraz właściwości będące alternatywą dla „seterów” i „geterów”
(w żargonie informatycznym funkcje Get...() oraz Set...()) z Javy. Te ostatnie
łączą w zgrabny sposób zmienną lub obiekt w jednym spójnym odwołaniu.
Autor zaznacza na wstępie, że czas reakcji programu na działania użytkow-
nika maleje wraz ze wzrostem liczby elementów grafu. Stwierdzono, że przy liczbie
paru tysięcy wierzchołków oraz krawędzi wzwyż∗, aplikacja wyraźnie „zwalnia”
i interakcja lub edycja grafów może być uciążliwa. Pomimo, prostych metod opty-
malizacji kodu oraz działań odpowiedzialnych za pracę programu, wiele mniej
ważnych rzeczy, jak np. wyświetlanie czy przesuwanie elementów nie zostało przy-
śpieszonych. Koncentracja uwagi tym programem nie była jednak głównym ce-
lem pracy, dlatego autor zrezygnował z dogłębnej analizy części odpowiedzialnej
za interfejs na rzecz fragmentów będących implementacjami porównywanych al-
gorytmów. Dla zainteresowanych profilowaniem kodu dla platformy .NET autor
może polecić darmowe narzędzie „EQATEC Profiler”. Program ten jest do pobra-
nia na stronie http://www.eqatec.com/Profiler/Download.aspx po uprzed-
nim zarejestrowaniu się.
3.4.2 Program
Okno główne programu (rys. 3.1) składa się paska menu, na którym widać ikony,
poniżej menu widnieją dwa panele: prawy, który służy do edycji grafu oraz lewy
pokazujący miniaturę całego grafu.
Opcje menu dotyczą zarówno całego grafu jak i poszczególnych jego elemen-
tów. Pierwsze trzy ikony mają związek z operacjami dyskowymi, takimi jak za-
pisanie/wczytanie grafu oraz utworzenie nowego grafu. Dwie następne opcje po-
zwalają pracować w trybie nawigacji albo tworzyć wierzchołki oraz krawędzie.
Opcja kolejna umożliwia kasowanie elementu(ów). Następnie, widzimy symbol
kostki do gry. Ta ikona symbolizuje możliwość wygenerowania losowego grafu
(dostępne pięć wariantów) albo wylosowania właściwości wierzchołków lub kra-
wędzi. Ostatnia, w części środkowej, ikona (biała kartka ze spisem) wyświetli
nam po wciśnięciu główne informacje o grafie. Pozostałe dwie ikony służą kontroli
∗
Praca z programem odbywała się na laptopie ACER R Aspire 3690 wyposażonym w proce-
sor Intel R Celeron M 1,73 MHz oraz 1,5 GB pamięci DDR2-667 i dyskiem twardym o prędkości
5400 obrotów/min.
20 ROZDZIAŁ 3. EKSPERYMENT
Rysunek 3.1: Okno główne programu.
uruchomienia/zatrzymania oraz przerwania testów dla wariantów sieci dynamicz-
nych.
Praca na panelu prawym udostępnia m.in. takie akcje jak: skalowanie widoku,
zaznaczanie grupy elementów, przesuwanie całego grafu albo poszczególnych jego
elementów, kasowanie elementu albo grupy elementów albo edytowanie ich wła-
ściwości. Z tego też względu stworzono podgląd w formie panelu lewego, gdyż
często z powodu wielkości grafu, sam panel prawy nie wystarczyłby na jego ogar-
nięcie jak to ma miejsce w sytuacji z rysunku 3.1, gdzie widać tylko część grafu
typu modelującego sieć. Na panelu miniatury widoczny obszar oznaczany jest
prostokątem w kolorze siwym.
Program po przeprowadzeniu testów zapisuje ich wyniki jako liczby zmien-
noprzecinkowe w plikach tekstowych w taki sposób aby dane te mógł odczytać
program Gnuplot†. Użytkownik może wybrać, jakie testy mają zostać przeprowa-
dzone. Wszystkie pliki z wynikami testów zostaną zapisane w katalogu, którego
nazwa będzie taka sama jak nazwa pliku z grafem, na którym przeprowadzane
były testy. Dodatkowo, nazwa ta będzie zawierała datę i czas rozpoczęcia testu.
†
Jest to darmowy kreator wykresów dostępny pod adresem [4], za pomocą którego autor
wizualizował wyniki jako pliki w formacie *.eps.
3.4. PROJEKT 21
3.4.3 Dane testowe
Do testów wykorzystywano graf, który widać na rysunku 3.2. Składa się on z trzy-
stu wierzchołków, ale łuki je łączące mają różny, losowy koszt. Siatka tylko w po-
glądowy sposób ma przedstawiać jakąś regularną sieć. Graf o takim rozmiarze nie
jest wyzwaniem w dzisiejszych czasach, ale na potrzeby strojenia parametrów był
w miarę dobry z tego względu, że algorytmy AS dawały odpowiedzi relatywnie
szybko.
(a) (b)
Rysunek 3.2: Miniatury grafu używanego do testów; rysunek (b) przedstawia
zaznaczoną na czerwono ścieżką minimalną pomiędzy wierzchołkami testo-
wymi.
Na grafie tym zaznaczono także minimalną ścieżkę znalezioną algorytmem Dijk-
stry, której koszt wynosi 1802, 18 a czas przeszukiwania wyniósł 3 ms.
W trybie pierwszym, tj. regulacji parametrów proces poszukujący rozwiązań
nie będzie zmieniał parametrów krawędzi. Tylko w trybie dynamicznym będzie
to robione. Losowo wybrane krawędzie będą zmieniać swoje możliwe kierunki
przesyłu oraz koszty. Ma to symulować obciążenie sieci oraz potencjalną niemoż-
ność wykorzystania łącza w którąś ze stron. W przypadku, gdy algorytm nie
będzie mógł znaleźć drogi od początku do końca, koszt tej trasy zostanie uznany
jako 0 (dla algorytmu Dijkstry) albo −1 dla systemów mrówkowych.
Do testów systemu dynamicznego zostaną również użyte inne, większe grafy
(rys. 3.3) mające strukturę sieci. Parametry ich krawędzi zmieniane będą w taki
sam sposób jak dla grafu mniejszego. Dla większych grafów przeprowadzono odpo-
wiednio mniej testów, ponieważ czas znajdywania rozwiązania znacznie wydłużał
się w ich przypadku.
22 ROZDZIAŁ 3. EKSPERYMENT
(a)
(b)
Rysunek 3.3: Miniatury dużych grafów testowych o strukturze sieci dla sys-
temu dynamicznego. Kolorowe okręgi są w rzeczywistości skupiskami urzą-
dzeń komputerowych wokół routerów. Graf (a): 11579 wierzchołków, 12965
krawędzi; graf (b): 19945 wierzchołków i 56871 krawędzi.
Rozdział 4
Wyniki symulacji oraz wnioski
4.1 Wyniki dla systemu statycznego
W tym podrozdziale zaprezentowano wyniki badań przetestowanych algorytmów
jako wykresy dwu- oraz trójwymiarowe. Poszczególne podpunkty opisują dokład-
niej przebiegi każdego badania. Koszty będące wartościami funkcji przedstawia-
nych na wykresach odnoszą się do kosztów znalezionych ścieżek. Legendę każdego
wykresu należy postrzegać tak samo — najciemniejszy kolor oznacza najlepszy
(najniższy) koszt.
4.1.1 Badanie wpływu liczby mrówek oraz iteracji
Wpływ liczby mrówek oraz iteracji na znalezienie ścieżki minimalnej jest wi-
doczny wyraźnie. Ogólnie rzecz biorąc, im większa wartość tych dwóch czynni-
ków, tym lepsze rozwiązanie. Sytuacja taka ma miejsce w przypadku CAS oraz
RBAS (rysunki 4.1 i 4.2). Inaczej jest jednak dla algorytmu MMAS gdzie zbyt
duża liczba iteracji wraz z połączeniem ze zmienioną regułą aktualizacji feromonu
zdaje się zaburzać „główny” ślad pomiędzy wierzchołkami. Widać tu, że powyżej
pewnej wartości rozwiązania są gorsze od uzyskanych dotychczas.
Ciekawych wniosków dostarczają obserwacje osiągów czasowych. Okazało się,
że najlepiej na polu tym radzi sobie algorytm RBAS (patrz wykres (b) na ry-
sunku 4.2). Nawet dla parametrów o wartościach maksymalnych nie wymagał
on więcej czasu niż 10 sekund na test. Kolejną zaletą jeżeli o czas chodzi jest
jego wolniejszy wzrost względem liczby iteracji niż dla pozostałych dwóch algo-
rytmów. Co więcej, algorytmowi temu udało się uzyskać wynik 1815, 18, który
jest tylko 7 promili gorszy od kosztu ścieżki minimalnej (1802, 18). Równie do-
brym wynikiem może się pochwalić MMAS, ale on tak samo jak CAS uzyskał
czas blisko osiemnastu sekund dla największych wartości. Najgorzej też radzi so-
23
24 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI
bie wraz ze wzrostem liczby iteracji, gdzie powierzchnia wykresu idzie w górę
bardziej stromo niż u konkurentów i dopiero około trzydziestej iteracji wzrost nie
jest już tak szybki (rys. 4.3 (b)).
Test ten dostarczył bardzo ciekawych informacji. Po pierwsze, widać prze-
wagę dwóch ostatnich algorytmów, jeżeli chodzi o szukanie coraz lepszych ścieżek.
Po drugie, jeżeli czas jest dla nas priorytetem, to najlepszym kandydatem wy-
daje się modyfikacja RBAS, która jest lepsza czasowo aż o 45% od konkurentów!
Jest to różnica duża. Ostatecznie, do badań dalszych autor ustalił liczbę mrówek
na 50 oraz liczbę iteracji na 40. Patrząc na wykresy, można wysnuć przypuszcze-
nie, że takie wartości nie dadzą wyników bliskich najlepszym, ale zagwarantują
dość szybkie otrzymanie wyniku.
(a)
5
10
15
20
30
40
50
75
100
200
5 10 15 20 30 40 50 75 100 200
2000
2200
2400
2600
2800
3000
3200
3400
3600
3800
Bestcost
CAS best costs
Ants count
Iterations count
Bestcost
2000
2200
2400
2600
2800
3000
3200
3400
3600
3800
(b)
5
10
15
20
30
40
50
75
100
200
5 10 15 20 30 40 50 75 100 200
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
Duration[ms]
CAS tests durations
Ants count
Iterations count
Duration[ms]
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
Rysunek 4.1: Wyniki względem liczby mrówek oraz iteracji dla CAS. Rysu-
nek (a) — koszty znalezionych ścieżek, rysunek (b) — czasy wykonywania
algorytmu.
4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 25
(a)
5
10
15
20
30
40
50
75
100
200
5 10 15 20 30 40 50 75 100 200
1800
2000
2200
2400
2600
2800
3000
3200
3400
Bestcost
RBAS best costs
Ants count
Iterations count
Bestcost
1800
2000
2200
2400
2600
2800
3000
3200
3400
(b)
5
10
15
20
30
40
50
75
100
200
5 10 15 20 30 40 50 75 100 200
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
Duration[ms]
RBAS tests durations
Ants count
Iterations count
Duration[ms]
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
Rysunek 4.2: Wyniki względem liczby mrówek oraz iteracji dla RBAS. Ry-
sunek (a) — koszty znalezionych ścieżek, rysunek (b) — czasy wykonywania
algorytmu.
26 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI
(a)
5
10
15
20
30
40
50
75
100
200
5 10 15 20 30 40 50 75 100 200
1800
2000
2200
2400
2600
2800
3000
3200
3400
3600
Bestcost
MMAS best costs
Ants count
Iterations count
Bestcost
1800
2000
2200
2400
2600
2800
3000
3200
3400
3600
(b)
5
10
15
20
30
40
50
75
100
200
5 10 15 20 30 40 50 75 100 200
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
Duration[ms]
MMAS tests durations
Ants count
Iterations count
Duration[ms]
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
Rysunek 4.3: Wyniki względem liczby mrówek oraz iteracji dla MMAS. Ry-
sunek (a) — koszty znalezionych ścieżek, rysunek (b) — czasy wykonywania
algorytmu.
4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 27
4.1.2 Wpływ parametrów α oraz β
Praktycznie każdy z badanych tym testem algorytmów zbliżał się znacznie do mi-
nimum. Jedynie w przypadku RBAS można dostrzec największe fluktuacje, tutaj
bowiem występuje największa rozpiętość uzyskanych wyników co pokazuje rysu-
nek 4.5. Można jednak zauważyć też, że CAS w porównaniu z RBAS i MMAS
posiada najmniej wyraźny atraktor∗, którego brzegi są łagodne (rys. 4.4). W po-
zostałych przypadkach, umiejscowienie punktu zbieżności jest bardziej wiadome
i określone przez węższy zakres. Sugeruje to w miarę łatwe dobieranie tych para-
metrów. Kształt funkcji dla CAS ukazuje jego mniejszą wrażliwość na parametry
α i β, i większą jego niestabilność niż u współzawodników. Oprócz tego widać
trendy wzrostowe dla każdego algorytmu względem parametrów. CAS osiąga gor-
sze wyniki gdy wzrasta beta, RBAS daje kiepskie rezultaty wraz ze wzrostem alfy
a MMAS dla odmiany, wykazuje tendencję wzrostową razem z betą i odwrotno-
ścią alfy (rys. 4.6).
0.1
0.2
0.3
0.5
0.75
1
2
3
5
7.5
10
0.1 0.2 0.3 0.5 0.75 1 2 3 5 7.5 10
1800
2000
2200
2400
2600
2800
3000
3200
Bestcost
CAS best costs
α
β
Bestcost
1800
2000
2200
2400
2600
2800
3000
3200
Rysunek 4.4: Wyniki względem parametrów α i β dla CAS.
∗
Tzw. basen przyciągania, miejsce w pewnej przestrzeni, do którego zbiegają trajektorie
punktów tej przestrzeni; pojęcie popularne w teorii chaosu.
28 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI
0.1
0.2
0.3
0.5
0.75
1
2
3
5
7.5
10
0.1 0.2 0.3 0.5 0.75 1 2 3 5 7.5 10
1800
2000
2200
2400
2600
2800
3000
3200
3400
3600
Bestcost
RBAS best costs
α
β
Bestcost
1800
2000
2200
2400
2600
2800
3000
3200
3400
3600
Rysunek 4.5: Wyniki względem parametrów α i β dla RBAS.
0.1
0.2
0.3
0.5
0.75
1
2
3
5
7.5
10
0.1 0.2 0.3 0.5 0.75 1 2 3 5 7.5 10
1800
2000
2200
2400
2600
2800
3000
3200
Bestcost
MMAS best costs
α
β
Bestcost
1800
2000
2200
2400
2600
2800
3000
3200
Rysunek 4.6: Wyniki względem parametrów α i β dla MMAS.
4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 29
Wybrane pary parametrów to:
CAS : α = 1, β = 1;
RBAS : α = 1, β = 0, 3;
MMAS : α = 2, β = 0, 1.
4.1.3 Badanie wpływu parametru ρ
Niestety, w tym przypadku udzielenie odpowiedzi sensownych jest utrudnione.
Z wykresów nie można jednoznacznie określić granic konsekwentnie oddzielają-
cych parametry gorsze od lepszych. Najmniej widoczne jest to w przypadku po-
miarów dla RBAS. Na rysunku 4.8 intuicyjnie domniemywać można, że im bliżej
wartości 0, 5, tym lepsze wyniki uzyskamy, ale jak widać nie gwarantuje to za-
wsze dobrego rozwiązania. Trochę lepiej sytuacja przedstawia się gdy spojrzymy
na wyniki algorytmu CAS (rys. 4.7). Tutaj widać dwa wyraźne skupiska wartości
atrakcyjniejszych od pozostałych, a plasujących się na wysokości około 0, 2. Naj-
bardziej klarowna sytuacja występuje dla algorytmu MMAS na wykresie 4.9. Wi-
dzimy tutaj wyraźną, mniej więcej jednostajną granicę, powyżej której wartości
kosztu są zauważalnie lepsze od innych. Z wykresu wynika, że granica ta znajduje
się blisko wartości 0, 2.
0.01
0.02
0.03
0.05
0.075
0.1
0.2
0.3
0.5
1 2 3 4 5 6 7 8 9 10
2100
2200
2300
2400
2500
2600
2700
2800
Bestcost
CAS best costs
ρ
Test number
Bestcost
2100
2200
2300
2400
2500
2600
2700
2800
Rysunek 4.7: Wyniki względem parametru ρ dla CAS.
30 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI
0.01
0.02
0.03
0.05
0.075
0.1
0.2
0.3
0.5
1 2 3 4 5 6 7 8 9 10
1800
1900
2000
2100
2200
2300
2400
2500
2600
2700
Bestcost
RBAS best costs
ρ
Test number
Bestcost
1800
1900
2000
2100
2200
2300
2400
2500
2600
2700
Rysunek 4.8: Wyniki względem parametru ρ dla RBAS.
0.01
0.02
0.03
0.05
0.075
0.1
0.2
0.3
0.5
1 2 3 4 5 6 7 8 9 10
1900
2000
2100
2200
2300
2400
2500
2600
2700
2800
2900
Bestcost
MMAS best costs
ρ
Test number
Bestcost
1900
2000
2100
2200
2300
2400
2500
2600
2700
2800
2900
Rysunek 4.9: Wyniki względem parametru ρ dla MMAS.
4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 31
4.1.4 Badanie parametru W dla algorytmu RBAS
Na rysunku 4.10 również nie można stwierdzić jednoznacznie jaka ilość mrówek
oprócz najlepszej powinna aktualizować swoje ścieżki. Można wnioskować, że po-
winna to być wartość jak najmniejsza. Na wykresie wartości najmniejsze osią-
gnięto gdy liczba W miała wartość najmniejszą, stąd autor proponuje ustalić
wartości tego czynnika jako 2.
2
3
4
5
6
7
8
9
10
1 2 3 4 5 6 7 8 9 10
1800
1900
2000
2100
2200
2300
2400
2500
Bestcost
RBAS best costs
W
Test number
Bestcost
1800
1900
2000
2100
2200
2300
2400
2500
Rysunek 4.10: Wyniki względem parametru W dla RBAS.
4.1.5 Badanie parametru e dla algorytmów RBAS oraz MMAS
Regulacja tego parametru także jest trudna. Oba algorytmy wykazują brak zbież-
ności do jakiejś konkretnej wartości niezależnie od badanej zmiennej. O ile dla
algorytmu MMAS można się dopatrywać prawdopodobnej granicy w okolicach
punktu e = 5000 (rys. 4.12), to dla RBAS nie jest to wiadome (rys. 4.11). Ponie-
waż jednak, dla wartości e = 500 da się zaobserwować wystąpienie kilku bardziej
obiecujących wyników wraz z ich otoczeniem, to autor zdecydował się ustalić ten
parametr właśnie na taką liczbę.
32 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI
1
2
5
10
20
50
100
200
500
1000
2000
5000
10000
1 2 3 4 5 6 7 8 9 10
1800
1900
2000
2100
2200
2300
2400
Bestcost
RBAS best costs
e
Test number
Bestcost
1800
1900
2000
2100
2200
2300
2400
Rysunek 4.11: Wyniki względem parametru e dla RBAS.
1
2
5
10
20
50
100
200
500
1000
2000
5000
10000
1 2 3 4 5 6 7 8 9 10
2000
2050
2100
2150
2200
2250
2300
2350
2400
2450
2500
Bestcost
MMAS best costs
e
Test number
Bestcost
2000
2050
2100
2150
2200
2250
2300
2350
2400
2450
2500
Rysunek 4.12: Wyniki względem parametru e dla MMAS.
4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 33
4.1.6 Rezultaty dla parametrów τmin i τmax dla algorytm MMAS
Aby wykres 4.13 prezentował się wizualnie dobrze przedstawiono go jako mapę
natężenia kosztów górnej macierzy trójkątnej z tablicy wyników (dla przypomnie-
nia — τmin musi być mniejsze od τmax). Chociaż mapa ta jest w miarę jednolita,
to można założyć, że występuje tu preferencja w kierunku wartości coraz więk-
szych: τmin = 5000, τmax = 10000. Nie zmienia to jednak faktu, że jest to kolejny
trudny do sterowania parametr.
MMAS best costs
0.1 0.2 0.5 1 2 5 10 20 50 100 200 500 1000 2000 5000
τmin
0.2
0.5
1
2
5
10
20
50
100
200
500
1000
2000
5000
10000
τmax
1800
1900
2000
2100
2200
2300
2400
2500
2600
2700
2800
Rysunek 4.13: Wyniki względem parametrów τmin oraz τmax dla MMAS.
34 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI
4.1.7 Badanie parametru Q dla algorytmu CAS
Kolejny czynnik też nie należy do łatwo sterowalnych. Wykazuje on co prawda
trend malejący ku wartościom niskim, ale i tak nie niweluje fluktuacji i lokal-
nych maksimów, które na wykresie możemy obserwować jako dwa większe i jeden
mniejszy garb (kolory jasne). Wykres 4.14, został wybrany do tej pracy, ponie-
waż najlepiej „widać” tutaj pogorszenie wyników wraz ze wzrostem wartości Q.
Najwięcej najniższych kosztów oscyluje po przeciwległej stronie, odpowiadając
wartości 1 i dlatego to ją wybrano.
1
2
5
10
20
50
100
200
500
1000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2000
2100
2200
2300
2400
2500
2600
2700
2800
Bestcost
CAS best costs
Q
Test number
Bestcost
2000
2100
2200
2300
2400
2500
2600
2700
2800
Rysunek 4.14: Wyniki względem parametru Q dla CAS.
4.1.8 Wpływ parametru τ0 na algorytmy CAS i RBAS
Z tym czynnikiem autor miał największy problem. Chociaż dla tej części prze-
prowadzono najwięcej testów, to każdy z nich wykazywał bardzo małą korelację
jakości rozwiązania z wartością parametru. Wykres 4.15, można jeszcze uznać
za nakazujący wybór wartości niższych niż 5. Ostatecznie, zdecydowano się, że pa-
rametr ten przyjmie wartość 0, 5 dla CAS. W przypadku jednak algorytmu RBAS
jedyną rzecz, która widać na pierwszy raz, to totalna rozbieżność minimów, które
zdają się oscylować po obu stronach prawdopodobnych skupisk wartości maksy-
malnych znajdujących się w pobliżu wartości 2. Autor zaryzykował tutaj i posta-
nowił nadać wartość 5 jako punkt odniesienia do dalszych prób
4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 35
0.1
0.2
0.5
1
2
5
10
20
50
100
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
2000
2100
2200
2300
2400
2500
2600
2700
2800
Bestcost
CAS best costs
τ0
Test number
Bestcost
2000
2100
2200
2300
2400
2500
2600
2700
2800
Rysunek 4.15: Wyniki względem parametru τ0 dla CAS.
0.1
0.2
0.5
1
2
5
10
20
50
100
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
1800
1900
2000
2100
2200
2300
2400
Bestcost
RBAS best costs
τ0
Test number
Bestcost
1800
1900
2000
2100
2200
2300
2400
Rysunek 4.16: Wyniki względem parametru τ0 dla RBAS.
36 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI
W tabeli 4.1 zebrano wartości parametrów, które statystycznie okazały się
najlepsze podczas testów. Liczby iteracji oraz mrówek nie wzięto tu pod uwagę
ze względu na fakt, że algorytmy CAS oraz RBAS zbiegały do najlepszego roz-
wiązania im większa była liczba zarówno mrówek jak i iteracji (wykresy 4.1 i 4.2),
ale w przypadku algorytmu MMAS było już inaczej co jest ciekawe (rys. 4.3).
Tablica 4.1: Najbardziej obiecujące wartości parametrów dla badanych metod.
``````````````Parametr
Algorytm
CAS RBAS MMAS
α 2 1 1
β 1 0, 3 0, 1
ρ 0, 2 0, 5 0, 2
W — 2 —
e — 500 5000
τmin — — 5000
τmax — — 10000
Q 1 — —
τ0 0, 5 10 —
Potwierdza się, że dla wielu algorytmów klasy mrówkowej czynnik alfa może
być niepotrzebny. Co do wartości β oraz ρ, to nie powinny przekraczać one warto-
ści około 0, 5 (wyjątek dla CAS gdzie wzmocnienie nie jest potrzebne) — sugeruje
to tendencję do konieczności relatywnie dużego wzmacniania długości krawędzi.
Widać też, że wartości współczynników τ dla algorytmu MMAS muszą być duże,
podczas gdy RBAS nie potrzebuje tak dużej wartości startowej. Wartość Q rów-
nież wydaje się zbędna dla CAS chociaż głębsza analiza nakazywałaby zwiększe-
nie tego czynnika.
4.2. WYNIKI DLA SYSTEMU ZMIENIAJĄCEGO SIĘ DYNAMICZNIE 37
4.2 Wyniki dla systemu zmieniającego się dynamicznie
Rysunki od 4.17 do 4.20 zestawiają wyniki odnoszące się do kosztów połączeń
oraz czasów ich znajdowania dla algorytmu Dijkstry oraz algorytmów AS. Nie-
stety, żeby uzyskać „aż tak dobre” rezultaty czasowe dla mrówek autor zmniejszył
liczbę iteracji oraz osobników do pięciu. Przełożyło się to na gorsze wyniki kosz-
tów, ale pokazało zarazem, że algorytmy mrówkowe wymagają dużych nakładów
obliczeniowych.
(a)
0
1000
2000
3000
4000
5000
6000
7000
8000
0 100 200 300 400 500 600 700 800 900 1000
Costs
Epochs
Dijkstra costs in dynamically changing graph
(b)
0
10
20
30
40
50
60
70
0 100 200 300 400 500 600 700 800 900 1000
Duration[ms]
Epochs
Dijkstra durations in dynamically changing graph
Rysunek 4.17: Koszty ścieżek (a) oraz czasy ich poszukiwań (b) za pomocą
algorytmu Dijkstry w zmieniającym się grafie.
38 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI
(a)
-1000
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
0 100 200 300 400 500 600 700 800 900 1000
Costs
Epochs
CAS costs in dynamically changing graph
(b)
-20
0
20
40
60
80
100
120
0 100 200 300 400 500 600 700 800 900 1000
Duration[ms]
Epochs
CAS durations in dynamically changing graph
Rysunek 4.18: Koszty ścieżek oraz (a) czasy ich poszukiwań (b) za pomocą
algorytmu CAS w zmieniającym się grafie.
4.2. WYNIKI DLA SYSTEMU ZMIENIAJĄCEGO SIĘ DYNAMICZNIE 39
(a)
-2000
0
2000
4000
6000
8000
10000
12000
14000
0 100 200 300 400 500 600 700 800 900 1000
Costs
Epochs
RBAS costs in dynamically changing graph
(b)
-20
0
20
40
60
80
100
120
0 100 200 300 400 500 600 700 800 900 1000
Duration[ms]
Epochs
RBAS durations in dynamically changing graph
Rysunek 4.19: Koszty ścieżek (a) oraz czasy ich poszukiwań (b) za pomocą
algorytmu RBAS w zmieniającym się grafie.
40 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI
(a)
-2000
0
2000
4000
6000
8000
10000
12000
14000
0 100 200 300 400 500 600 700 800 900 1000
Costs
Epochs
MMAS costs in dynamically changing graph
(b)
-20
0
20
40
60
80
100
120
0 100 200 300 400 500 600 700 800 900 1000
Duration[ms]
Epochs
MMAS durations in dynamically changing graph
Rysunek 4.20: Koszty ścieżek (a) oraz czasy ich poszukiwań (b) za pomocą
algorytmu MMAS w zmieniającym się grafie.
4.2. WYNIKI DLA SYSTEMU ZMIENIAJĄCEGO SIĘ DYNAMICZNIE 41
Jak widać, każdy z badanych algorytmów oscylował swoimi osiągami kosztów
blisko minimum wytyczanego przez „Dijkstrę”. Największy rozrzut prezentuje
algorytm RBAS co oznacza, że jako kandydat jest dobry w próbowaniu nowych
rozwiązań. Także tutaj, pokazał swoją wyższość czasową nad CAS oraz MMAS.
Piki występujące na wszystkich wykresach czasowych (rysunki (b)) spowodowane
są opóźnieniami aplikacji przez okresowe inne działania sprawdzające graf i nie
należy ich interpretować jako wiarygodnych wartości. Widoczne też na wszyst-
kich wykresach nagłe skoki do wartości 0 dla algorytmu Dijkstry albo −1 dla
algorytmów mrówkowych były konsekwencją tego, że w danych momentach, nie
było możliwe skonstruowanie ścieżki łączącej wierzchołek źródłowy z docelowym.
Mogło dziać się tak, ponieważ implementacja algorytmu losującego właściwości
łuków nie uwzględniała w jakikolwiek sposób możliwości uniknięcia wystąpienia
takich zdarzeń.
Kolejne testy przeprowadzone zostały dla grafów widocznych wcześniej na ry-
sunku 3.3. Niestety, z powodu długiego czasu oczekiwania na wyniki przeprowa-
dzono tylko po dwa testy dla wszystkich algorytmów AS, a czasy oraz koszty
ścieżek zebrano w tabelach 4.2 oraz 4.3.
Tablica 4.2: Wyniki algorytmów dla grafów dużych (graf (a) z rysunku 3.3).
@
@
@
Koszt Czas [ms]
Dijkstra 2036, 36 2211
CAS 2928, 22 19814
RBAS 2928, 22 3225
MMAS 2928, 22 17725
Tablica 4.3: Wyniki algorytmów dla grafów dużych (graf (b) z rysunku 3.3).
@
@
@
Koszt Czas [ms]
Dijkstra 2013, 88 2839
CAS 8114, 53 37284
RBAS 53864, 63 28194
MMAS 42616, 84 66891
W pierwszym przypadku widać, że wszystkie algorytmy AS utknęły w mi-
nimum lokalnym o tej samej wartości. Niemniej jednak, wszystkie je odnala-
zły. Druga tabela pokazuje, niestety wpływ losowości, która przełożyła się tutaj
na wyniki znacznie gorsze. Widać też, że RBAS okazuje się najlepszy czasowo
co jest potwierdzeniem wyników z sekcji dostrajania parametrów.
Autor testował jeszcze inne, większe liczby mrówek oraz iteracji. Niestety, były
42 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI
to tylko pojedyncze wyniki z racji perspektywy dość długiego wyczekiwania prze-
kraczającego minutę dla jednego uruchomienia algorytmu. Okazało się, że mrówki
pokazują swoją siłę dopiero w przypadku bardzo dużych grafów. Przykładowo,
dla bardzo rozgałęzionej i gęstej struktury sieciowej liczącej 155350 wierzchołków
i 161121 krawędzi, odmiana RBAS odnalazła rozwiązanie o koszcie 43021, 16 w 12
sekund, podczas gdy Dijkstra potrzebował ponad 3 i pół razy więcej (42 sekundy)
znajdując minimum w punkcie 7529, 29. Jest to rozwiązanie około sześciu razy
lepsze, ale czasem nie może dorównywać mocy algorytmom mrówkowym. Oczy-
wiście im większy graf, tym wyniki dla algorytmu Dijkstry albo jakiegokolwiek
innego deterministycznego będą coraz gorsze. Rozwiązania heurystyczne mają
tendencję pseudolosowego penetrowania grafu w głąb, więc należałoby oczekiwać
tutaj, że szala zwycięstwa zacznie przeważać na stronę „potomków” Monte Carlo.
4.3. WNIOSKI 43
4.3 Wnioski
Pozornie, trudno jest określić, który z trzech algorytmów mrówkowych prezento-
wanych tutaj jest lepszy. Pierwszy algorytm nie wyróżnia się na tle pozostałych.
Jak się przekonaliśmy, drugi RBAS jest szybki, ale uzyskuje wyniki statystycz-
nie trochę gorsze od MMAS. Tymczasem, ten ostatni prawdopodobnie zawsze
znajdzie nam rozwiązania lepsze. Można więc wyróżnić tutaj podział na szyb-
kość, którą chcieliśmy uzyskać oraz koszt. Wygranym więc okazuje się algorytm
RBAS. Wracając jeszcze do testów z systemem dynamicznym, szkoda, że algo-
rytmy te działają stosunkowo wolno. Gdyby nie ta wada, byłyby idealne do szyb-
kiej, heurystycznej eksploracji.
Przeprowadzone badania nie pozwoliły jednoznacznie odpowiedzieć, dla jakich
parametrów algorytmy mrówkowe działają najlepiej, ale bez względu na to ja-
kie wartości dobierzemy, to i tak nie należy się spodziewać wymiernych rezulta-
tów jeżeli nie dysponujemy naprawdę ogromnymi, gęstymi grafami rzędu kilkuset
tysięcy wierzchołków. Nie jesteśmy jednak pewni, że przekroczenie tej bariery
zmieni w jakiś cudowny sposób wyniki badanych algorytmów. Możemy jedynie
być pewni z dużą dozą prawdopodobieństwa, że odnajdziemy połączenie o wiele
szybciej. Wyłania się więc kwestia sensu użycia owych algorytmów tutaj.
Jest też druga strona medalu. Osąd może nie być w pełni poprawny z co naj-
mniej jednego względu: autor nie przeprowadził testów dla kolonii mrówek jako
równoległych procesów, a prawdopodobnie, oddziaływałoby to na korzyść rodziny
AS. Oczywiście, istnieje pewna granica wątków czy węzłów, po przekroczeniu któ-
rej liczba konfliktów dostępu czy liczby przesłanych komunikatów zaczyna „co-
fać” wyniki systemu, ale dla pewnego przedziału danych można by sprawdzić
czy byłoby to opłacalne. Kolejną rzeczą jest fakt, że przetestowano tylko trzy
algorytmy, z czego pierwszy praktycznie jako ciekawostkę. Nie podjęto się tutaj
implementacji i sprawdzenia, np. EAS, ACS, DAS, ANT-Q, nowszych odmian
MMAS, ANTS (zaproponowanych przez Vittorio Maniezzo w 1999r.), czy np.
Hyper-cube AS z roku 2004. Poza tym, trzeba mieć świadomość, że jest to ciągle
rozwijana gałąź.
Podsumowując dyskusję, autor uważa za raczej egzotyczne zastosowanie prze-
badanych przez niego algorytmów do problemów trasowania, jeżeli nie mamy
ogromnego grafu (> 100000 wierzchołków) z dużą liczbą połączeń. Po drugie, nie
należy się spodziewać niskiego kosztu znalezienia takiego połączenia. Owszem,
dla ogromnych sieci jak, np. internet, sukcesem może być sam kontakt w gąszczu
kabli i fal, ale nie oszukujmy się, dla potrzeb które nie wymagają takiej infra-
struktury można z powodzeniem stosować jeszcze algorytmy klasyczne. Autor
sugeruje wykorzystanie algorytmów mrówkowych w sztucznej inteligencji raczej
i wszędzie tam, gdzie pożądana jest losowość. Tutaj jednak nie zależy nam tak
bardzo na tej cesze, dlatego autor zaleca pewną dawkę sceptycyzmu jeżeli chodzi
o próby z wykorzystaniem CAS, RBAS, czy MMAS do tego tematu.
Bibliografia
[1] http://boinc.berkeley.edu/, strona główna projektu BOINC. [cytowanie na str. 3]
[2] http://www.boincatpoland.org, polska strona projektu. [cytowanie na str. 3]
[3] http://www.worldcommunitygrid.org, strona internetowa jednego z projektów
przetwarzanych w BOINC. [cytowanie na str. 3]
[4] http://www.gnuplot.info/download.html, strona, z której można pobrać pro-
gram. [cytowanie na str. 20]
[5] Thomas A. Cormen, Charles E. Leiserson, and Ronald L. Rivest, Wprowadzenie do
algorytmów, Wydawnictwo Naukowe PWN, Warszawa, 2001. [cytowanie na str. 8]
[6] Marco Dorigo, Vittorio Maniezzo, and Alberto Colorni, The ant system: Optimi-
zation by a colony of cooperating agents, IEEE Transactions on Systems, 1996.
[cytowanie na str. 16]
[7] Marco Dorigo and Thomas Stutzle, Ant colony optimization, Massachusetts Institute
of Technology, London, 2004. [cytowanie na str. 11, 13, 16]
[8] Kenneth A. Ross and Charles R.B. Wright, Matematyka dyskretna, Wydawnictwo
Naukowe PWN, Warszawa, 2005. [cytowanie na str. 8, 9]
45
Dodatki
47
Spis symboli i skrótów
Skrót Opis Definicja
BOINC Berkeley Open Infrastructure for Network Com-
puting
str. 3
WCG World Community Grid str. 3
AS Ant-system str. 9
CAS Cycle AS str. 11
DAS Density AS str. 11
EAS Elitist AS str. 14
QAS Quantity AS str. 11
RBAS Rank-based AS str. 13
MMAS Min-Max AS str. 9
49
Spis rysunków
2.1 Graf prosty oraz skierowany . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Niektóre z możliwych ścieżek . . . . . . . . . . . . . . . . . . . . . . . 13
3.1 Okno główne programu . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Miniatura grafu testowego (statyczny) . . . . . . . . . . . . . . . . . . 21
3.3 Miniatury dużych grafów testowych (dynamiczny) . . . . . . . . . . . 22
4.1 Porównanie kosztów (mrówki/iteracje) CAS . . . . . . . . . . . . . . . 24
4.2 Porównanie kosztów (mrówki/iteracje) RBAS . . . . . . . . . . . . . . 25
4.3 Porównanie kosztów (mrówki/iteracje) MMAS . . . . . . . . . . . . . 26
4.4 Porównanie kosztów (α/β) CAS . . . . . . . . . . . . . . . . . . . . . 27
4.5 Porównanie kosztów (α/β) RBAS . . . . . . . . . . . . . . . . . . . . 28
4.6 Porównanie kosztów (α/β) MMAS . . . . . . . . . . . . . . . . . . . . 28
4.7 Porównanie kosztów (τ) CAS . . . . . . . . . . . . . . . . . . . . . . . 29
4.8 Porównanie kosztów (τ) RBAS . . . . . . . . . . . . . . . . . . . . . . 30
4.9 Porównanie kosztów (τ) MMAS . . . . . . . . . . . . . . . . . . . . . . 30
4.10 Porównanie kosztów (W) . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.11 Porównanie kosztów (e) RBAS . . . . . . . . . . . . . . . . . . . . . . 32
4.12 Porównanie kosztów (e) MMAS . . . . . . . . . . . . . . . . . . . . . . 32
4.13 Porównanie kosztów (τmin/τmax) . . . . . . . . . . . . . . . . . . . . . 33
4.14 Porównanie kosztów (Q) . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.15 Porównanie kosztów (τ0) CAS . . . . . . . . . . . . . . . . . . . . . . . 35
4.16 Porównanie kosztów (τ0) RBAS . . . . . . . . . . . . . . . . . . . . . . 35
4.17 Porównanie (system dynamiczny) algorytmu Dijkstry . . . . . . . . . 37
4.18 Porównanie (system dynamiczny) CAS . . . . . . . . . . . . . . . . . . 38
4.19 Porównanie (system dynamiczny) RBAS . . . . . . . . . . . . . . . . . 39
4.20 Porównanie (system dynamiczny) MMAS . . . . . . . . . . . . . . . . 40
50
Spis tablic
3.1 Funkcje parametrów oraz algorytmy korzystające z nich. . . . . . . . . 16
4.1 Najbardziej obiecujące wartości parametrów dla badanych metod. . . 36
4.2 Wyniki algorytmów dla grafów dużych (graf (a) z rysunku 3.3). . . . 41
4.3 Wyniki algorytmów dla grafów dużych (graf (b) z rysunku 3.3). . . . 41
51

More Related Content

Similar to MSc Ants In The Graph

Projektowanie i analiza algorytmów
Projektowanie i analiza algorytmówProjektowanie i analiza algorytmów
Projektowanie i analiza algorytmówWydawnictwo Helion
 
Engineering Thesis - Selected algorithms for digital signature based on ellip...
Engineering Thesis - Selected algorithms for digital signature based on ellip...Engineering Thesis - Selected algorithms for digital signature based on ellip...
Engineering Thesis - Selected algorithms for digital signature based on ellip...Adam Skołuda
 
Algorytmy, struktury danych i techniki programowania. Wydanie III
Algorytmy, struktury danych i techniki programowania. Wydanie IIIAlgorytmy, struktury danych i techniki programowania. Wydanie III
Algorytmy, struktury danych i techniki programowania. Wydanie IIIWydawnictwo Helion
 
Master Thesis - Comparative analysis of programming Environments based on Rub...
Master Thesis - Comparative analysis of programming Environments based on Rub...Master Thesis - Comparative analysis of programming Environments based on Rub...
Master Thesis - Comparative analysis of programming Environments based on Rub...Adam Skołuda
 
C++. Algorytmy i struktury danych
C++. Algorytmy i struktury danychC++. Algorytmy i struktury danych
C++. Algorytmy i struktury danychWydawnictwo Helion
 
2 modele matematyczne
2 modele matematyczne2 modele matematyczne
2 modele matematycznemarwron
 
2 modele matematyczne
2 modele matematyczne2 modele matematyczne
2 modele matematycznemarwron
 
Algorytmy numeryczne w Delphi. Księga eksperta
Algorytmy numeryczne w Delphi. Księga ekspertaAlgorytmy numeryczne w Delphi. Księga eksperta
Algorytmy numeryczne w Delphi. Księga ekspertaWydawnictwo Helion
 
Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...
Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...
Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...Łukasz Szczepański
 
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Wydawnictwo Helion
 
Sieci komputerowe. Księga eksperta. Wydanie II poprawione i uzupełnione
Sieci komputerowe. Księga eksperta. Wydanie II poprawione i  uzupełnioneSieci komputerowe. Księga eksperta. Wydanie II poprawione i  uzupełnione
Sieci komputerowe. Księga eksperta. Wydanie II poprawione i uzupełnioneWydawnictwo Helion
 
Kincaid D. - Analiza numeryczna.pdf
Kincaid D. - Analiza numeryczna.pdfKincaid D. - Analiza numeryczna.pdf
Kincaid D. - Analiza numeryczna.pdfKlaraPobiedzinska
 
Modele równań i metody ich rozwiązywania
Modele równań i metody ich rozwiązywaniaModele równań i metody ich rozwiązywania
Modele równań i metody ich rozwiązywaniaLucas Jarzembowski
 
Sieć LAN
Sieć LANSieć LAN
Sieć LANGim1
 
Strukturalna organizacja systemów komputerowych. Wydanie V
Strukturalna organizacja systemów komputerowych. Wydanie VStrukturalna organizacja systemów komputerowych. Wydanie V
Strukturalna organizacja systemów komputerowych. Wydanie VWydawnictwo Helion
 
Rozbudowa i naprawa sieci. Wydanie II
Rozbudowa i naprawa sieci. Wydanie IIRozbudowa i naprawa sieci. Wydanie II
Rozbudowa i naprawa sieci. Wydanie IIWydawnictwo Helion
 

Similar to MSc Ants In The Graph (20)

Projektowanie i analiza algorytmów
Projektowanie i analiza algorytmówProjektowanie i analiza algorytmów
Projektowanie i analiza algorytmów
 
Engineering Thesis - Selected algorithms for digital signature based on ellip...
Engineering Thesis - Selected algorithms for digital signature based on ellip...Engineering Thesis - Selected algorithms for digital signature based on ellip...
Engineering Thesis - Selected algorithms for digital signature based on ellip...
 
Algorytmy, struktury danych i techniki programowania. Wydanie III
Algorytmy, struktury danych i techniki programowania. Wydanie IIIAlgorytmy, struktury danych i techniki programowania. Wydanie III
Algorytmy, struktury danych i techniki programowania. Wydanie III
 
Master Thesis - Comparative analysis of programming Environments based on Rub...
Master Thesis - Comparative analysis of programming Environments based on Rub...Master Thesis - Comparative analysis of programming Environments based on Rub...
Master Thesis - Comparative analysis of programming Environments based on Rub...
 
C++. Algorytmy i struktury danych
C++. Algorytmy i struktury danychC++. Algorytmy i struktury danych
C++. Algorytmy i struktury danych
 
2 modele matematyczne
2 modele matematyczne2 modele matematyczne
2 modele matematyczne
 
2 modele matematyczne
2 modele matematyczne2 modele matematyczne
2 modele matematyczne
 
Algorytmy numeryczne w Delphi. Księga eksperta
Algorytmy numeryczne w Delphi. Księga ekspertaAlgorytmy numeryczne w Delphi. Księga eksperta
Algorytmy numeryczne w Delphi. Księga eksperta
 
mgr
mgrmgr
mgr
 
MATLAB. Ćwiczenia
MATLAB. ĆwiczeniaMATLAB. Ćwiczenia
MATLAB. Ćwiczenia
 
Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...
Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...
Wybrane zagadnienia wizualizacji wirtualnego środowiska za pomocą biblioteki ...
 
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
 
Sieci komputerowe. Księga eksperta. Wydanie II poprawione i uzupełnione
Sieci komputerowe. Księga eksperta. Wydanie II poprawione i  uzupełnioneSieci komputerowe. Księga eksperta. Wydanie II poprawione i  uzupełnione
Sieci komputerowe. Księga eksperta. Wydanie II poprawione i uzupełnione
 
Praktyczny kurs SQL
Praktyczny kurs SQLPraktyczny kurs SQL
Praktyczny kurs SQL
 
Kincaid D. - Analiza numeryczna.pdf
Kincaid D. - Analiza numeryczna.pdfKincaid D. - Analiza numeryczna.pdf
Kincaid D. - Analiza numeryczna.pdf
 
Algorytmy i struktury danych
Algorytmy i struktury danychAlgorytmy i struktury danych
Algorytmy i struktury danych
 
Modele równań i metody ich rozwiązywania
Modele równań i metody ich rozwiązywaniaModele równań i metody ich rozwiązywania
Modele równań i metody ich rozwiązywania
 
Sieć LAN
Sieć LANSieć LAN
Sieć LAN
 
Strukturalna organizacja systemów komputerowych. Wydanie V
Strukturalna organizacja systemów komputerowych. Wydanie VStrukturalna organizacja systemów komputerowych. Wydanie V
Strukturalna organizacja systemów komputerowych. Wydanie V
 
Rozbudowa i naprawa sieci. Wydanie II
Rozbudowa i naprawa sieci. Wydanie IIRozbudowa i naprawa sieci. Wydanie II
Rozbudowa i naprawa sieci. Wydanie II
 

MSc Ants In The Graph

  • 1. Uniwersytet Zielonogórski Wydział Elektrotechniki Informatyki i Telekomunikacji Informatyka Praca magisterska Zastosowanie algorytmu mrówkowego na przykładzie systemu dynamicznego modelowanego grafem ważonym Marcin Szydłowski Promotor: dr hab. inż. Andrzej Pieczyński, prof. UZ Zielona Góra, 2010
  • 2.
  • 3.
  • 4.
  • 5. Streszczenie Niniejsza praca dotyczy wykorzystania algorytmów mrówkowych AS (ang. Ant- System — system mrówkowy) w problemach transportowych. Rozpatrywane za- gadnienia nie dotyczyły będą stricte sensu transportu jako przemieszczania czegoś a bardziej zadania trasowania (ang. routing). Modele systemów przedstawiane będą grafami ważonymi skierowanymi. Przykłady systemów użytych w pracy obejmują złożone zależności determinujące zastosowanie dużych nakładów pa- mięciowych oraz obliczeniowych. Poza tym wymienione struktury zmieniają się dynamicznie w czasie co wymusza ciągłe szukanie nowych rozwiązań dla tych rzeczy. W mniemaniu autora, to algorytmy stadne mają tutaj duże pole do po- pisu. Badania określą różnice jakościowe ich zastosowania w stosunku do, np. algorytmu Dijkstry, który jest jednym z klasycznych deterministycznych odpo- wiedników trasowania. Słowa kluczowe: algorytmy mrówkowe (AS), transport, trasowanie, graf, sys- tem dynamiczny v
  • 6. This document is about application of ants algorithms, called AS stands for “Ant-System” which means optimization by means of an ants colony, swarm or herd for solving transport problems. Considered questions will not concern explicitly moving something from one place to another but more routing. Sys- tems models will be representing by directed and labeled graphs. The examples of systems used in this paper to apply complex dependencies which determine require lots of memory and many computations. Besides, thats structures changes ourselves dynamically which demands searching new solutions constantly. Author thinks that ACOs “family” have a huge potential in this case. Experiments will demonstrate differences between results returned by AS and i.e. Dijkstra, one of the basic deterministic algorithms for routes finding equivalent. Keywords: ants systems (AS), transport, routing, graph, dynamic system
  • 7. Spis treści Spis treści i 1 Wstęp 3 1.1 Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Cel i zakres pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Struktura pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Podstawy teoretyczne 7 2.1 Grafy i ich zastosowania . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Tradycyjne algorytmy dla drogi prostej . . . . . . . . . . . . . . . . 8 2.3 Algorytmy mrówkowe . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.1 Wariant klasyczny . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.2 Modyfikacje . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3 Eksperyment 15 3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2 Kryteria porównywania . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3 Regulacja parametrów . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.4 Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.4.1 Wybór języka i środowiska programistycznego . . . . . . . . 18 3.4.2 Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.4.3 Dane testowe . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4 Wyniki symulacji oraz wnioski 23 4.1 Wyniki dla systemu statycznego . . . . . . . . . . . . . . . . . . . 23 4.1.1 Badanie wpływu liczby mrówek oraz iteracji . . . . . . . . . 23 4.1.2 Wpływ parametrów α oraz β . . . . . . . . . . . . . . . . . 27 4.1.3 Badanie wpływu parametru ρ . . . . . . . . . . . . . . . . . 29 4.1.4 Badanie parametru W dla algorytmu RBAS . . . . . . . . . 31 4.1.5 Badanie parametru e dla algorytmów RBAS oraz MMAS . 31 i
  • 8. ii SPIS TREŚCI 4.1.6 Rezultaty dla parametrów τmin i τmax dla algorytm MMAS 33 4.1.7 Badanie parametru Q dla algorytmu CAS . . . . . . . . . . 34 4.1.8 Wpływ parametru τ0 na algorytmy CAS i RBAS . . . . . . 34 4.2 Wyniki dla systemu zmieniającego się dynamicznie . . . . . . . . . 37 4.3 Wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Bibliografia 45 Spis symboli i skrótów 49 Spis rysunków 50 Spis tablic 51
  • 9. Podziękowania Pragnę podziękować przedstawicielom kadry dydaktycznej Wydziału Elektrotech- niki Informatyki i Telekomunikacji Uniwersytetu Zielonogórskiego, którzy prowa- dzili zajęcia w czasie moich studiów za trud nauczania oraz cierpliwość do nas — studentów. Dziękuję również znajomym z grupy dziekańskiej i nie tylko, których poglądy uczyły weryfikowania własnych przekonań oraz innego spojrzenia na nie- które problemy. W końcu, a raczej przede wszystkim, podziękowania składam ro- dzicom za ich ogromny wkład i wsparcie towarzyszące mi od samego początku etapu studiów. 1
  • 10.
  • 11. Rozdział 1 Wstęp 1.1 Wprowadzenie Nie zdajemy sobie sprawy jak wiele rzeczy i problemów wziętych z życia stanowi dla komputera poważny problem. Nowoczesne modele oraz trendy konstrukcyjne w branży tych maszyn pomimo coraz wydajniejszych, także wielordzeniowych∗ procesorów czy relatywnie tanich pamięci nadal nie rozwiązują problemu złożono- ści obliczeniowej. Nawet podzielenie problemu na wiele mniejszych zadań przekra- cza niekiedy możliwości obliczeniowe naszej cywilizacji gdy chcemy aby coś okre- ślone zostało szybko. Z przykładem czasochłonnych obliczeń możemy się spotkać wykorzystując chociażby klienta obliczeń rozproszonych o nazwie BOINC ∗. Pro- blemy kombinatoryczne spotykamy na co dzień w zagadnieniach np. przydziału miejsca, optymalizacji trasy lasera, prognozowania (pogoda, giełda, medycyna, niebezpieczne eksperymenty), rozmieszczenia albo doboru czegoś. Wszystkie wy- mienione dziedziny zazębiają się w jakiś sposób i wpływają bezpośrednio na ja- kość życia, dobrze więc byłoby szybko znać odpowiedź na nurtujące nas pytania. Niestety, w takich problemach przestrzeń możliwych interesujących nas stanów rośnie wykładniczo i nie udowodniono jak również nie zaprzeczono na dzień dzi- siejszy istnienia algorytmu szybszego niż przeszukiwanie ślepe. Nawet problem najkrótszej ścieżki (optymalny transport towarów, przesył informacji), chociaż jego złożoność jest kwadratowa dla pary wierzchołków, sprawia duży problem ∗ Dzisiaj można często spotkać komputery PC z procesorami co najmniej dwurdzeniowymi, ale warto wspomnieć, że już w 2007r. Intel R zaprezentował Polaris — procesor 80-o rdzeniowy, którego każdy rdzeń połączony jest z innymi oraz pamięcią za pośrednictwem własnego routera. Kolejnym wielordzeniowym układem ze „stajni” tej samej firmy jest procesor składający się z 48-u rdzeni a ujrzał on światło dzienne na początku grudnia zeszłego roku. ∗ BOINC [1] jest open-source’ową platformą rozproszoną zrzeszającą wolontariat użytkowni- ków komputerów osobistych, którzy pozwalają na wykorzystanie mocy swoich maszyn do potrzeb różnych projektów, takich jak np. WCG. Więcej informacji można znaleźć pod adresem [1] oraz [2] albo [3] 3
  • 12. 4 ROZDZIAŁ 1. WSTĘP dla algorytmu zwracającego rozwiązanie minimalne, gdy liczba wierzchołków jest duża. Co więcej, uruchamianie algorytmu analitycznego po każdej modyfikacji właściwości któregoś z połączeń mija się z celem. Na szczęście możliwa jest druga opcja. Wiele rzeczy nie wymaga optymalnego rozwiązania, więc można zaoszczędzić czas kosztem jakości. Praktyka pokazuje, że rozwiązanie suboptymalne może być odnalezione szybko i zrekompensować ewentualne straty. Wystarczy, że wybierając stan następny, będziemy z pewnym prawdopodobieństwem (tzw. heurystyka) uwzględniali także rozwiązania gorsze. Polski matematyk Stanisław Ulam stworzył stochastyczną metodę Monte Carlo. Jednym z pomysłów opierającym się na owej koncepcji jest rodzina algorytmów mrówkowych, których zastosowanie przedstawia ten dokument, a które omówione zostały w punkcie 2.3. Zanim to nastąpi jednak czytelnik zostanie zaznajomiony z podstawami z dziedziny grafów, ponieważ na nich to opierają się modele użyte tutaj. 1.2 Cel i zakres pracy Celem pracy jest porównanie działania algorytmu mrówkowego z tradycyjnymi metodami rozwiązującymi problemy grafowe (chodzi głównie, o problem najkrót- szej ścieżki z pojedynczym źródłem, tzw. (ang. Single Source Shortest Path), w dalszej części pracy używany będzie po prostu skrót SP). Autor rozumie tutaj pewne modele systemów rzeczywistych, których elementy reprezentowane będą przez wierzchołki i łuki grafu ważonego. Pierwszym zadaniem będzie przetestowanie trzech wariantów podstawowego algorytmu mrówkowego na statycznym grafie będącym mapą pewnego miasta. Dzięki temu, autor określi wartości parametrów dla poszczególnych algorytmów. Jest to konieczne, ponieważ — jak się okaże — każdy z wariantów ma „inny” zestaw zmiennych, korzystając z których zwraca rozwiązania lepsze. W tej sekcji, wzięto pod lupę także ilość iteracji, chociaż dla problemu dynamicznego i działa- jącego nieprzerwanie algorytmy będą działały w nieskończoność poszukując cały czas drogi do celu. Konieczne jednak było takie ograniczenie dla pierwszej tury badań, ponieważ po pierwsze: czas testów musiał być ograniczony, a po drugie, opieranie się na zbieżności do pewnej wartości rozwiązania nie gwarantuje, że jest to rozwiązanie nawet średnie (cały czas trzeba byłoby próbować szukać rozwią- zania lepszego). Zadanie drugie polegać będzie na ciągłym działaniu algorytmu w zmieniają- cym się środowisku grafu abstrahującego dużą sieć komputerową złożoną z wielu mniejszych podsieci. Na potrzeby tych testów będzie już można uruchomić pro- cedurę „mrówkową” z najlepszymi zestawami parametrów jakie wybrane zostały w sekcji wcześniejszej. Tutaj, sprawdzona zostanie jakość szukanych rozwiązań każdego wariantu algorytmu dla pary nadawca—odbiorca gdy właściwości połą-
  • 13. 1.3. STRUKTURA PRACY 5 czeń pomiędzy nimi będą ulegały zmianie. Działania podjęte w tym dokumencie pokażą czy zastosowanie algorytmów mrówkowych w zmieniającym się systemie jest akceptowalne z punktu widzenia opóźnień czasowych i czy pomimo utrudnień ogólna sprawność działania modelu zostanie utrzymana. Czytelnik będzie też mógł odpowiedzieć sobie na pytanie „Czy użycie tego dla mojego problemu jest uzasadnione?”. Chęcią autora było danie przyszłym zajmującym się tym tematem wskazówek jak używać tego na- rzędzia i czy warto bo „na siłę” wypada, czy naprawdę, jest tego sens. 1.3 Struktura pracy Praca podzielona została na cztery główne części. Poniżej przedstawiono zawar- tość każdego z rozdziałów. Wstęp — rozdział obecny; po krótkim wprowadzeniu omówiony jest tutaj cel pracy wraz z jej strukturą; Podstawy teoretyczne — krótkie wprowadzenie do teorii grafów oraz opis „klasycznych” algorytmów grafowych, wyjaśnienie zasady działania algo- rytmu mrówkowego w postaci pierwotnej jak również prezentacja jego naj- bardziej obiecujących odmian wraz z opisem różnic; Eksperyment — wybór środowiska programistycznego wraz z jego krótką cha- rakterystyką; założenia odnośnie modelowanych systemów, opis oczekiwań w odniesieniu do nich; struktura ogólna systemu bazowego; wykaz proble- mów, wyszczególnienie miejsc, w których wykorzystane zostaną różne algo- rytmy; Wyniki oraz wnioski — prezentacja wyników, omówienie ich i porównanie z rozwiązaniami analitycznymi; opisano tutaj też napotkane problemy, wy- mieniono korzyści płynące z zastosowania algorytmów omawianej klasy; na końcu przedstawione zostały wnioski z obserwacji oraz propozycje kolej- nych implementacji.
  • 14.
  • 15. Rozdział 2 Podstawy teoretyczne 2.1 Grafy i ich zastosowania Matematyka udostępnia wiele narzędzi pozwalających modelować zjawiska. Jed- nym z takich narzędzi jest graf, który ma istotną zaletę — oprócz relacji wy- stępujących w problemie może go także (jeżeli nie jest zbyt duży i złożony) — czytelnie zilustrować. Grafy spotykane na co dzień, to np. schematy blokowe, plan ulic w systemach GPS, plan trasy zakupów tworzony w naszych głowach przed wyjściem do miasta. Graf złożony jest z niepustego zbioru V (G) wierzchołków oraz zbioru E(G) krawędzi, z których każda może łączyć tylko dwa wierzchołki. Zadaniem wierz- chołka jest reprezentacja jakiegoś stanu, miejsca, cechy. Krawędź, symbolizowana najczęściej pewną etykietą lub wartością opisuje kryterium bądź funkcję relacji pomiędzy wierzchołkami. Łuk, to krawędź skierowana z zaznaczonym grotem in- formującym o kierunku w jakim relację należy uwzględniać. Różnice takie są uza- sadnione i mogą abstrahować m.in. sytuacje jak na rysunku 2.1. (a) (b) 350 litrów paliwa 1800 litrów paliwa Rysunek 2.1: Graf prosty (a) oraz skierowany (b) 7
  • 16. 8 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE Wierzchołki (czarne okręgi) symbolizują miasto oraz zakład. Przy założeniu, że wypełnienie samochodu towarem nie odgrywa roli, jest pokazane tutaj jak ułożenie drogi oddziałuje na kwestię kosztów względem kierunku, w którym po- ruszamy się. Oba te przypadki są skrajnie proste, ale dla większych struktur wygodnie jest posiadać informacje o wartościach połączeń pomiędzy wszystkimi wierzchołkami. Dane takie zawiera tzw. macierz sąsiedztwa rozmiaru Nn×n, gdzie n jest liczbą wierzchołków. W każdym polu tej tablicy znajduje się waga krawędzi od wierz- chołka wskazywanego wierszem do tego, który jest wskazywany kolumną. W grafie prostym, czyli takim, w którym krawędzie mają tą samą wartość w kierunku oby- dwu wierzchołków, macierz ta jest symetryczna. Tabela taka jest wygodna jeżeli graf jest gęsty. Wadą takiej tabeli jest przechowywanie wielu informacji o połą- czeniach, które nie istnieją. Dzieje się tak w sytuacji, gdy wierzchołków jest dużo a krawędzi mało (graf rzadki∗). Zaletą za to jest szybkość odczytu interesującej nas wartości. Alternatywą dla tej struktury w przypadku grafów rzadkich jest aby każdy wierzchołek przechowywał listę sąsiadów, z którymi jest połączony (lista sąsiedztwa). Rozwiązanie takie niweluje marnotrawstwo pamięci, ale wy- maga znowuż ciągłego przeszukiwania połączeń w każdej liście wśród wszystkich wierzchołków. Mamy więc tutaj pierwszy problem dotyczący szybkości wykonania kosztem zajętości pamięci i vice versa. Ścieżka jest to ciąg wierzchołków, w którym następnik sąsiaduje ze swoim poprzednikiem. Można powiedzieć, że jest to „łamana” powstała z krawędzi albo łuków o punktach załamania w wierzchołkach. Nas interesować będzie jednak ścieżka prosta. Różni się ona od poprzedniego przypadku brakiem powtórzeń krawędzi lub wierzchołków. Jest to analogia wprost do jakiejś trasy. Kolejny ter- min, to cykl. Cyklem określa się ścieżkę prostą, której ostatni wierzchołek jest zarazem pierwszym. Wymienione pojęcia powinny wystarczyć do zrozumienia dalszej części pracy. Więcej na temat grafów można znaleźć np. w [8]. 2.2 Tradycyjne algorytmy dla drogi prostej Algorytm Dijkstry jest chyba najsłynniejszy jeżeli chodzi o poszukiwanie ścieżki minimalnej w grafie. Pozwala on obliczyć wagi minimalne z wybranego wierz- chołka do pozostałych. Całkowity czas działania pierwotnej wersji algorytmu wy- nosi O(n2). Modyfikacje na tym polu dotyczą zamiany listy odkrytych, ale nie eks- plorowanych wierzchołków na wydajniejszą strukturę danych. Jedną z takich jest kopiec Fibonacciego†, z którego autor tej pracy skorzystał implementując algo- ∗ Graf rzadki, to taki, którego liczba krawędzi jest dużo mniejsza od n(n−1) 1 . Niestety, nie istnieje prosta reguła rozdzielająca klasy rzadki—gęsty. † Strukturze tej poświęcono cały rozdział nr 21 w [5].
  • 17. 2.3. ALGORYTMY MRÓWKOWE 9 rytmu Dijkstry do programu testującego. Dzięki temu możemy uzyskać złożoność nie O(V 2) a O(E + V log V ). Wadą powyższego algorytmu jest brak odporności na wagi ujemne. Z tym radzi już sobie algorytm Warshalla‡, który odnajduje wagi minimalne albo maksymalne między wszystkimi parami wierzchołków. Może też służyć do określenia osiągalności. Działa w czasie O(n3). Stosowaną modyfikacją ulepszającą pierwowzór jest algorytm Warshalla-Floyda. Powyższe charakterystyki są tylko zdawkowymi informacjami dotyczącymi grafów oraz algorytmów ich dotyczących. Przedstawiona w tym podpunkcie wie- dza powinna wystarczyć w zupełności do oswojenia czytelnika z dalszą częścią pracy. 2.3 Algorytmy mrówkowe Idea tej klasy algorytmów wywodzi się od pracy doktorskiej Pana Marco Dorigo z Politechniki w Milanie. Na podstawie wcześniejszych badań na temat poszu- kiwania pokarmu przez mrówki argentyńskie, które to badania przeprowadzone zostały przez innych naukowców, postanowił on wykorzystać mechanizm poszu- kiwania rozwiązań w sposób heurystyczny wykorzystując błądzenie losowe wielu osobników. Kluczowym czynnikiem mającym wpływ na działanie algorytmu jest wprowadzenie feromonu czyli abstraktu substancji zapachowej kojarzonej z każ- dym, przeglądanym łukiem grafu. Czynnik ten świadczy o „atrakcyjności” łuku w momencie ich wybierania. W zależności od odmiany formy bazowej algorytmu, połączeniom w grafie przydzielana będzie odpowiednia wartość tego parametru. To właśnie na jego podstawie określana będzie późniejsza jakość m–tego rozwią- zania, gdzie m będzie liczbą mrówek błądzących po łukach grafu. Algorytmy tej klasy ewoluowały, począwszy od AS (ang. Ant System czyli po prostu system mrówkowy), aż po różne odmiany MMAS (ang. MinMax Ant System) wymyślonego przez Hoosa i St¨utzlea w roku 1997. 2.3.1 Wariant klasyczny Jak zostało wspomniane wcześniej, pierwszym algorytmem mrówkowym był AS. Użyto go do rozwiązania spędzającego sen z powiek „komiwojażera”, w skrócie TSP (ang. Travelling Salesman Problem — problem komiwojażera). Dla przy- pomnienia: istnieje n miast połączonych w jakiś sposób i należy przejść przez wszystkie tylko raz tak, aby zrobić to jak najszybciej (kryterium odległości za- leży oczywiście od założeń). Złożoność problemu jest NP – zupełna i co zostało wspomniane wcześniej nie istnieje dowód szybkiego rozwiązywania zagadnień tej rangi. Algorytm mrówkowy dla tego zadania działał następująco: przeprowadza- nych jest tmax iteracji, podczas których m mrówek szuka cykli wykonując tyle ‡ Z opisami i pseudokodami obu wymienionych algorytmów można się zapoznać w [8].
  • 18. 10 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE kroków ile potrzeba. Każdy krok odpowiada za stochastyczny wybór j–tego mia- sta, przez mrówkę. Mrówka posiada wiedzę o tym, które miasta odwiedziła do- tychczas (informację o nich przechowuje w tzw. „tabu-liście”). Jest to konieczne aby uniknąć teoretycznie nieskończonych pętli, szczególnie w przypadku DAS czy QAS z powodu natychmiastowej aktualizacji feromonu na łukach w przy- padku tych dwóch algorytmów. Po znalezieniu cyklu mrówka naznacza pewną ilością feromonu swoją trasę i z wyzerowaną listą odwiedzonych miast zaczyna błądzić ponownie. Należy dodać, że feromon cechuje pewien współczynnik pa- rowania co chroni przed utrzymywaniem niezmienionej wartości najlepszej trasy i ewentualnie zapewnia późniejsze znalezienie drogi lepszej. Oprócz tego, po każ- dej iteracji ślad feromonowy na wszystkich krawędziach grafu „ulatnia” się — jest zmniejszany o pewną wartość. Ogólnie, algorytm ten można opisać następującym pseudokodem: 1: START = start(V) 2: END = end(V) 3: I = iterCount 4: M = antsCount 5: for i = 1 to I 6: Ants = CreateAnts(M) 7: for m = 1 to length[Ants] 8: Move[Ants[m]] 9: if (v[Ants[m]] = END) 10: ActualizePheromoneTrail(Path[Ants[m]]) 11: Delete[Ants[m]] 12: ActualizePheromone Linijki 1 i 2, to przypisanie do zmiennej START oraz END odpowiednio, wierz- chołka startowego i końcowego ze zbioru wierzchołków grafu. W linii nr 5 rozpo- czyna się główna pętla algorytmu. Trzeba zaznaczyć, że nie musi być ona ogra- niczona liczbą iteracji — może to być kryterium jakości z którym porównywane będą aktualne osiągi algorytmu obliczane po każdorazowym znalezieniu wyma- ganej trasy przez mrówkę w pętli wewnętrznej (linia nr 7). W linijce szóstej, two- rzona jest populacja mrówek, które będą eksplorowały graf. Pętla wewnętrzna (7. . . 11) porusza każdą mrówką ze zbioru Ants. Ruch ten oznacza dyskretne przejście do wierzchołka kolejnego§. Jeżeli wierzchołek wybrany okaże się doce- lowym, feromonowy ślad jest aktualizowany na ścieżce odkrytej przez mrówkę, a samą mrówkę usuwa się ze zbioru Ants. Gdy każda z mrówek osiągnie cel, na- stępuje zmniejszenie wartości feromonu na wszystkich łukach grafu i rozpoczyna się kolejna iteracja z nowym zestawem mrówek. § Pierwotnie zakładano, że mrówki przemieszczają się co stały kwant czasu o pewną odle- głość, ale stwierdzono, że nie jest to istotne, więc cała krawędź, bez względu na długość, jest przemierzana w jednej turze (rozdział 3.3 na stronie 16).
  • 19. 2.3. ALGORYTMY MRÓWKOWE 11 Przedstawiona postać algorytmu jest tylko bardzo ogólnym zarysem. Obecnie, praktycznie w zależności od odmiany, może on przyjmować bardzo różną formę. W szczególności, tyczy się to reguł aktualizacji feromonu, jego parowania, jego umiejscowienia w kodzie algorytmu, oraz struktury przechowującej mrówki, po- nieważ może być tak, że na miejsce mrówki usuniętej tworzona jest nowa od razu. Pierwsze trzy odmiany pierwotnego AS dotyczą odkładania feromonowego śladu. Nazwy tych algorytmów wywodzą się od sposobów aktualizacji feromonu według: • gęstości — DAS (ang. density-ant-system): mrówki zostawiają stałą ilość feromonu na łukach, podczas budowy drogi; • ilości — QAS (ang. quantity-ant-system): zostawianie ilości odwrotnie pro- porcjonalnej do długości łuku (również podczas budowy); • cyklu — CAS (ang. cycle-ant-system): odłożenie feromonu na krawędziach cyklu dopiero po jego znalezieniu. Wcześniejsze materiały mówią, że wariant CAS jest najefektywniejszy z powyż- szej trójki. Pierwsze testy odbywały się na makietach mostu o dwóch pasach, z których jeden był dłuższy. W pozycji [7] jest to przedstawione szczegółowo. Oprócz tego, wymieniono tam parę problemów, takich jak brak zainteresowania mrówek wybieraniem nowo utworzonego połączenia, gdy na innych jest już duże natężenie feromonu. Innym problemem może być wspomniana wyżej możliwość tworzenia cykli czego należy unikać modyfikując program odpowiednio. Standar- dowo, wykorzystuje się wspomnianą już „tabu-listę” (dla problemu najkrótszej ścieżki będzie to lista odwiedzonych krawędzi! — patrz uwaga na str. 12). Regułę określającą prawdopodobieństwo wyboru przez mrówkę łuku od węzła i do węzła j-tego opisuje wzór: pij = (τij)α(ηij)β ω∈Ω (τiω)α (ηiω)β (2.1) gdzie: i,j — indeksy węzłów, τ — intensywność dotychczasowa feromonu na łuku, η — atrakcyjność łuku, którą przyjmuje się jako 1/dij, przy czym d, to ocena łuku (waga/koszt/długość), α — parametr wzmocnienia decyzji względem wartości feromonu, β — parametr wzmocnienia decyzji względem atrakcyjności łuku,
  • 20. 12 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE Ω — zbiór sąsiadów węzła, w którym mrówka znajduje się aktualnie, do wę- złów jeszcze nie eksplorowanych, ω — indeks konkretnego węzła ze zbioru możliwych rozwiązań. Reguła aktualizacji feromonu dotyczy tylko łuków odwiedzonych przez mrówki a opisana jest zależnością: τ∗ ij = (1 − ρ)τij + ∆τij (2.2) gdzie: τij — ilość aktualna feromonu na łuku, τ∗ ij — ilość w kroku następnym, ρ — współczynnik parowania feromonu (ρ ∈ (0, 1]), ∆τij — czynnik zmiany. Czynnik zmiany jest sumą feromonowych śladów zostawianych przez mrówki, które wykorzystały krawędź ij przy budowie swojej trasy: ∆τij = m k=1 δτk ij (2.3) m oznacza liczbę wszystkich mrówek, k zaś jest indeksem mrówki. Czynnik cząst- kowy dla k-tej mrówki wyznaczany jest następująco: δτk ij = Q/Lk jeżeli mrówka korzystała z tego łuku, 0 w przypadku przeciwnym. (2.4) gdzie Lk jest długością/kosztem trasy przebytej dotychczas przez k-tą mrówkę. Parametr Q nie ma określonej stałej wartości. Pierwotnie, wartość tego licznika ustala się na 1. Uwaga: jest istotne czy mrówka przeczesuje graf omijając sprawdzone wierz- chołki, czy sprawdzone krawędzie. Na rysunku 2.2 przedstawione są możliwe teo- retycznie trasy dla problemu SP (ang. Shortest Path — najkrótszej ścieżki). Graf po stronie lewej (a) przedstawia sytuację, gdy mrówka starała się omijać wierz- chołki już odwiedzone. Strategia taka jest pożądana w przypadku TSP, ale dla najkrótszej ścieżki będzie prowadziła do kiepskiej jakości rozwiązań w przeważa- jącej liczbie przypadków. Graf środkowy (pierwszy od lewej w (b)) ukazuje trasę znalezioną gdy mrówka wybiera następników tak, aby nie odwiedzać przebytych już krawędzi. Chociaż sposób ten może generować cykle względem wierzchołków,
  • 21. 2.3. ALGORYTMY MRÓWKOWE 13 (a) (b) Rysunek 2.2: Niektóre z możliwych ścieżek znalezione przez mrówkę; (a) wa- riant z omijaniem wierzchołków odwiedzonych, (b) wariant z omijaniem kra- wędzi odwiedzonych. to po redukcji uzyskujemy tylko konieczną ilość krawędzi na znalezionej ścieżce¶ — graf po stronie prawej w części (b). Tak więc, jeżeli czytelnik zamierza implementować algorytm mrówkowy bez późniejszego rozczarowania wydajnością, to musi wiedzieć jaki problem chce roz- wiązywać i wtedy, powinien odpowiednio dostosować blok wybierający zbiór Ω. 2.3.2 Modyfikacje Pierwowzór okazuje się mało wydajny względem jakości rozwiązania, dlatego siłą rzeczy zaczęto dążyć do poprawiania tego stanu opracowując kolejne odmiany. W tej pracy, autor korzystając z dotychczasowych wyników badań, skoncentrował się na wykorzystaniu i porównaniu jedynie dwóch najlepszych wariantów: • RBAS — ang. Rank Based Ant System — system mrówkowy bazujący na rankingu zaproponowany przez Bullnheimera w 1999r; • MMAS — ang. MinMax Ant System — system mrówkowy min-max. Modyfikacja pierwsza zakłada, że po każdej iteracji, wyniki wszystkich mró- wek są sortowane niemalejąco i tylko rozwiązanie najlepsze oraz W −1 pierwszych rozwiązań jest aktualizowanych feromonem. Oprócz tego, nowa ilość feromonu na krawędziach zależy od rankingu mrówki: τ∗ ij = (1 − ρ)τij + ∆W τij + Wδτbpi ij (2.5) gdzie: W — liczba rozwiązań branych pod uwagę po każdej iteracji; bpi — (ang. best per iteration) indeks mrówki, która znalazła trasę najlepszą w danej iteracji. ¶ Trzeba mieć na uwadze fakt, że proces usuwania cykli nie jest złożony, ale trudny optyma- lizacyjnie. Może zdarzyć się sytuacja, że usunięcie pierwszego znalezionego cyklu uniemożliwi późniejsze znalezienie cyklu większego w sensie długości lub kosztu trasy [7].
  • 22. 14 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE Czynnik zmiany różni się tutaj trochę od swojego odpowiednika 2.3 dla CAS, mianowicie: ∆W τij = W −1 k=1 (W − k)δτk ij (2.6) Zaleca się też inną wartość licznika dla czynników cząstkowych: δτk ij = e/Lk δτbpi ij = e/Lbpi (2.7) Jak widać, substytutem wartości Q jest tutaj e. Wartość e ma swoje korzenie we wcześniejszej odmianie AS — EAS (ang. Elitist Ant System — System Mrów- kowy względem mrówki „elitarnej” ). Pomysł tamten nakazuje większe wzmacnia- nie najlepszego dotychczasowego rozwiązania, stąd pewna liczba e zarezerwowana dla mrówczego lidera. MMAS cechuje się większą liczbą zmian. Oprócz tego, że co iterację wzmac- niana jest tylko trasa najlepsza albo na przemian: raz najlepsza dotychczas, raz najlepsza w iteracji, to możliwe wartości feromonu na łukach zamykają się w prze- dziale [τmin, τmax]. Przed rozpoczęciem działania algorytmu, wartość feromonu na wszystkich łukach grafu ustawiana jest na τmax. Gdy algorytm długo „zastoi” się w miejscu, wartości feromonów na krawędziach są inicjalizowane ponownie wartością początkową (τmax). Tłum. wg autora pracy.
  • 23. Rozdział 3 Eksperyment 3.1 Problem We wcześniejszym fragmencie pracy zostało wspomniane, że heurystyki wygry- wają tam, gdzie zależy nam na czasie i niekoniecznie na jakości rozwiązania albo gdy uruchamianie metody analitycznej co chwilę jest po prostu mało wydajne. Jak więc określić wydajność czasową oraz wydajność jakości? W końcowej części poprzedniego rozdziału, autor przedstawił najważniejsze informacje odnośnie systemów mrówkowych użytych tutaj. Naturalnie, pojawia się pytanie teraz, jak tego użyć. Banalna odpowiedź: —implementując to zderzy się jednak bardzo szybko z podstawową barierą, która oddziela wartości para- metrów lepszych od gorszych. Kolejny problem jest taki, że czynniki okazują się mieć inne wartości dla różnych odmian. W końcu, parametr określający liczbę iteracji jest potrzebny tylko podczas testów doboru parametrów. I nareszcie zadanie ostatnie: minimalizacja przestrzeni parametrów. Korzy- stając z poprzedniego rozdziału, uważny czytelnik naliczył ich wiele, a czytelnik rozważny zdał sobie sprawę szybko, że proste to nie jest. Chociaż ze słowem „pro- ste” można jeszcze polemizować myśląc naiwnie, że wszystkie kombinacje wystar- czy sprawdzić po prostu. Przedstawione później obliczenia rozwieją te nadzieje. Wyjdzie na to, że z ogromną i nieugiętą liczbą kombinacji dyskutować się nie da. Tak samo, zresztą, jak z czasem na obliczanie wyników dla nich wszystkich. 3.2 Kryteria porównywania Wiadomo, że algorytm Edsgera Dijkstry znajduje ścieżkę minimalną. Wystarczy uruchomić tą procedurę tylko raz dla jakiejś pary wierzchołków i jesteśmy pewni rozwiązania najlepszego. Posiadając wiedzę o czasie działania tego algorytmu oraz o koszcie ścieżki, mamy punkt odniesienia o którym wiemy, że mrówkom 15
  • 24. 16 ROZDZIAŁ 3. EKSPERYMENT nie uda się na pewno go polepszyć. Mamy minimum, ale co gdy czas i tak nie jest dla nas zadowalający albo nie znamy na początku zbioru wszystkich wierz- chołków? Jedynym sposobem więc, jest postawa nakazująca szukania pierwszego, lepszego rozwiązania a następnie próba jego polepszania. Dla algorytmów AS Po- równywany więc będzie czas uzyskania „pierwszego kontaktu” (odnaleziona droga Vstart . . . Vend), jakość tego rozwiązania w sensie kosztu oraz szybkość zbieżności w iteracjach późniejszych. 3.3 Regulacja parametrów W tabeli 3.1 wyszczególniono, jakie parametry oraz dla jakiego algorytmu będą musiały być sprawdzane. Tablica 3.1: Funkcje parametrów oraz algorytmy korzystające z nich. @ @ @ funkcja CAS RBAS MMAS α Wzmocnienie wpływu śladu feromonowego łuku. β Wzmocnienie wpływu odwrotności kosztu łuku. ρ Współczynnik parowania feromonu. W Liczba mrówek, oprócz najlepszej, których ścieżki będą aktualizowane; odpowiedzialny także za wy- nik wartości zmiany nowego śladu. e Czynnik odpowiadający za wartość zmiany śladu. τmin Wartość minimalna feromonu na łukach. τmax Wartość maksymalna feromonu na łukach. Q Czynnik odpowiadający za wartość zmiany śladu. τ0 Wartość początkowa feromonu na łukach. N Liczba mrówek. I Liczba iteracji. Parametrem, który nie został ujęty w tabeli jest jeszcze krok . Decyduje on czy mrówki poruszające się co kwant czasu przemierzają pewną część krawędzi tylko czy od razu jej całość. Chociaż logika nakazuje branie pod uwagę kroku, to jednak już podczas wcześniejszych etapów udoskonalania pierwotnego AS zaniechano używania tego czynnika. Autor przeprowadził testy z użyciem kroku również i po- twierdza informację o nieistotnej roli tej zmiennej. Korzystając z wcześniejszych doświadczeń, np. w [7] [6], wiadomo było, w ja- kich mniej więcej przedziałach zawierają się wartości parametrów. Autor posta- nowił przeprowadzić testy dla następujących danych liczbowych: α : 0.1, 0.2, 0.3, 0.5, 0.75, 1, 2, 3, 5, 7.5, 10; β : 0.1, 0.2, 0.3, 0.5, 0.75, 1, 2, 3, 5, 7.5, 10;
  • 25. 3.3. REGULACJA PARAMETRÓW 17 ρ : 0.01, 0.02, 0.03, 0.05, 0.1, 0.2, 0.3, 0.5; W : 2, 3, 4, 5, 6, 7, 8, 9, 10; e : 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000; τmin : 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000; τmax : 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000; Q : 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000; τ0 : 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100; N : 5, 10, 15, 20, 30, 40, 50, 75, 100, 200; I : 5, 10, 15, 20, 30, 40, 50, 75, 100, 200; step : tak, nie. Ponieważ liczba testów dla wszystkich kombinacji (9680000 dla CAS + 113256000 dla RBAS + 132132000 (τmin musi być mniejsze od τmax, nigdy równe) dla MMAS) wynosi 255068000 a przeciętny czas już dla liczby iteracji wynoszącej 40 oraz liczby mrówek równej 50 to około dwie i pół sekundy (testy na grafie złożonym z trzystu wierzchołków, o którym więcej w podrozdziale 3.4.3), stąd wychodzi, że obliczenie wszystkiego trwałoby około 20 lat (na komputerze au- tora). Redukcja przestrzeni stanów polegała więc na zestawianiu tylko tych para- metrów, które były w dużej mierze zależne od siebie. Przeprowadzono więc testy dla następujących konfiguracji: — liczba mrówek oraz iteracji; — współczynniki α i β; — parametr ρ; — parametr e; — parametr W; — parametry τmin i τmax; — parametr Q; — parametr τ0.
  • 26. 18 ROZDZIAŁ 3. EKSPERYMENT Dzięki testom wcześniejszym wiadome wartości zmiennych wykorzystano na eta- pach późniejszych. Testy wartości parametrów przeprowadzano na grafie składającym się z trzy- stu wierzchołków, modelujący siatkę równoległych i prostopadłych ulic jakiegoś miasta. Wierzchołki można interpretować jako skrzyżowania, łuki natomiast jako połączenia pomiędzy nimi. Założono, że testowy wierzchołek docelowy jest osią- galny zawsze z testowego źródłowego, w przeciwnym razie testy nie miałyby sensu. W rzeczywistości być tak nie musi, ale warianty dla parametrów musiały mieć przebieg od początku do końca. 3.4 Projekt 3.4.1 Wybór języka i środowiska programistycznego Program służący do projektowania systemów i przeprowadzania symulacji na nich został napisany w języku C# z wykorzystaniem środowiska Microsoft Visual Stu- dio 2008 (VS2008). Pakiet ten jest dostępny za darmo dla studentów wydziału Elektrotechniki Informatyki i Telekomunikacji Uniwersytetu Zielonogórskiego. C# to język wysokiego poziomu, obiektowy, ogólnego zastosowania. Jedną z jego zalet jest, tzw. Garbage Collector. Mechanizm ten wywodzący się z języka Lisp i stosowany dzisiaj powszechnie uwalnia programistę od ręcznego zarządza- nia pamięcią „wychwytując” nieużywane adresy. Poza tym, C# zawiera w sobie obsługę zdarzeń, łańcuchów znakowych, interfejsy oraz typy generyczne (od wer- sji języka 2.0), które bardzo ułatwiają korzystanie z wbudowanych dynamicznych struktur danych w przypadku przechowywania w nich obiektów konkretnych klas. Niestety, programy napisane w tym języku wymagają maszyny wirtualnej a do- kładniej, środowiska .NET (alternatywa pod Linuxa nosi nazwę „Mono”). Nie są też tak wydajne jak skompilowane np. w C++, niemniej jednak, w języku tym pisze się szybko zarówno aplikacje konsolowe (z interfejsem czysto tekstowym) jak i te komunikujące się za pomocą GUI (interfejs graficzny). Dostępnych jest dużo gotowych bibliotek oraz klas. Środowisko VS2008 należy do klasy RAD ang. Rapid Application Develop- ment — gwałtowny/szybki rozwój aplikacji. Oprócz multum gotowych kompo- nentów, udostępnia ono również wiele przydatnych narzędzi oraz mechanizmów, jak np. podpowiedzi w trakcie pisania kodu wraz z możliwością szybkiego uzu- pełnienia nazwą zmiennej/klasy/typu znaną w projekcie, zakładki pozwalające szybko odnajdywać interesujące nas miejsca w plikach źródłowych, podpowiedzi wartości zmiennych/obiektów podczas śledzenia wykonywania programu, auto- matyczne uzupełnianie kodu po wstawieniu nawiasu zamykającego (opcjonalne), a to tylko niektóre jego możliwości. W środowisku tym można tworzyć zarówno małe programiki gdy szybko czegoś potrzebujemy jak i wielkie wieloosobowe pro-
  • 27. 3.4. PROJEKT 19 jekty czy aplikacje internetowe. Obsługa baz danych jest zaimplementowana rów- nież. Wybór języka jest konsekwencją znajomości przez autora tego narzędzia oraz mieszanych uczuć co do wyboru popularniejszej Javy. Poza tym, C# posiada parę rzeczy, które mogą być przydatne, a których Java nie posiada, np. różne warianty argumentów funkcji (nie tylko wymóg obiektów czy zmiennych, których nie można zmienić bez zwracania wartości), delegaty — przypominające wskaź- niki do funkcji oraz właściwości będące alternatywą dla „seterów” i „geterów” (w żargonie informatycznym funkcje Get...() oraz Set...()) z Javy. Te ostatnie łączą w zgrabny sposób zmienną lub obiekt w jednym spójnym odwołaniu. Autor zaznacza na wstępie, że czas reakcji programu na działania użytkow- nika maleje wraz ze wzrostem liczby elementów grafu. Stwierdzono, że przy liczbie paru tysięcy wierzchołków oraz krawędzi wzwyż∗, aplikacja wyraźnie „zwalnia” i interakcja lub edycja grafów może być uciążliwa. Pomimo, prostych metod opty- malizacji kodu oraz działań odpowiedzialnych za pracę programu, wiele mniej ważnych rzeczy, jak np. wyświetlanie czy przesuwanie elementów nie zostało przy- śpieszonych. Koncentracja uwagi tym programem nie była jednak głównym ce- lem pracy, dlatego autor zrezygnował z dogłębnej analizy części odpowiedzialnej za interfejs na rzecz fragmentów będących implementacjami porównywanych al- gorytmów. Dla zainteresowanych profilowaniem kodu dla platformy .NET autor może polecić darmowe narzędzie „EQATEC Profiler”. Program ten jest do pobra- nia na stronie http://www.eqatec.com/Profiler/Download.aspx po uprzed- nim zarejestrowaniu się. 3.4.2 Program Okno główne programu (rys. 3.1) składa się paska menu, na którym widać ikony, poniżej menu widnieją dwa panele: prawy, który służy do edycji grafu oraz lewy pokazujący miniaturę całego grafu. Opcje menu dotyczą zarówno całego grafu jak i poszczególnych jego elemen- tów. Pierwsze trzy ikony mają związek z operacjami dyskowymi, takimi jak za- pisanie/wczytanie grafu oraz utworzenie nowego grafu. Dwie następne opcje po- zwalają pracować w trybie nawigacji albo tworzyć wierzchołki oraz krawędzie. Opcja kolejna umożliwia kasowanie elementu(ów). Następnie, widzimy symbol kostki do gry. Ta ikona symbolizuje możliwość wygenerowania losowego grafu (dostępne pięć wariantów) albo wylosowania właściwości wierzchołków lub kra- wędzi. Ostatnia, w części środkowej, ikona (biała kartka ze spisem) wyświetli nam po wciśnięciu główne informacje o grafie. Pozostałe dwie ikony służą kontroli ∗ Praca z programem odbywała się na laptopie ACER R Aspire 3690 wyposażonym w proce- sor Intel R Celeron M 1,73 MHz oraz 1,5 GB pamięci DDR2-667 i dyskiem twardym o prędkości 5400 obrotów/min.
  • 28. 20 ROZDZIAŁ 3. EKSPERYMENT Rysunek 3.1: Okno główne programu. uruchomienia/zatrzymania oraz przerwania testów dla wariantów sieci dynamicz- nych. Praca na panelu prawym udostępnia m.in. takie akcje jak: skalowanie widoku, zaznaczanie grupy elementów, przesuwanie całego grafu albo poszczególnych jego elementów, kasowanie elementu albo grupy elementów albo edytowanie ich wła- ściwości. Z tego też względu stworzono podgląd w formie panelu lewego, gdyż często z powodu wielkości grafu, sam panel prawy nie wystarczyłby na jego ogar- nięcie jak to ma miejsce w sytuacji z rysunku 3.1, gdzie widać tylko część grafu typu modelującego sieć. Na panelu miniatury widoczny obszar oznaczany jest prostokątem w kolorze siwym. Program po przeprowadzeniu testów zapisuje ich wyniki jako liczby zmien- noprzecinkowe w plikach tekstowych w taki sposób aby dane te mógł odczytać program Gnuplot†. Użytkownik może wybrać, jakie testy mają zostać przeprowa- dzone. Wszystkie pliki z wynikami testów zostaną zapisane w katalogu, którego nazwa będzie taka sama jak nazwa pliku z grafem, na którym przeprowadzane były testy. Dodatkowo, nazwa ta będzie zawierała datę i czas rozpoczęcia testu. † Jest to darmowy kreator wykresów dostępny pod adresem [4], za pomocą którego autor wizualizował wyniki jako pliki w formacie *.eps.
  • 29. 3.4. PROJEKT 21 3.4.3 Dane testowe Do testów wykorzystywano graf, który widać na rysunku 3.2. Składa się on z trzy- stu wierzchołków, ale łuki je łączące mają różny, losowy koszt. Siatka tylko w po- glądowy sposób ma przedstawiać jakąś regularną sieć. Graf o takim rozmiarze nie jest wyzwaniem w dzisiejszych czasach, ale na potrzeby strojenia parametrów był w miarę dobry z tego względu, że algorytmy AS dawały odpowiedzi relatywnie szybko. (a) (b) Rysunek 3.2: Miniatury grafu używanego do testów; rysunek (b) przedstawia zaznaczoną na czerwono ścieżką minimalną pomiędzy wierzchołkami testo- wymi. Na grafie tym zaznaczono także minimalną ścieżkę znalezioną algorytmem Dijk- stry, której koszt wynosi 1802, 18 a czas przeszukiwania wyniósł 3 ms. W trybie pierwszym, tj. regulacji parametrów proces poszukujący rozwiązań nie będzie zmieniał parametrów krawędzi. Tylko w trybie dynamicznym będzie to robione. Losowo wybrane krawędzie będą zmieniać swoje możliwe kierunki przesyłu oraz koszty. Ma to symulować obciążenie sieci oraz potencjalną niemoż- ność wykorzystania łącza w którąś ze stron. W przypadku, gdy algorytm nie będzie mógł znaleźć drogi od początku do końca, koszt tej trasy zostanie uznany jako 0 (dla algorytmu Dijkstry) albo −1 dla systemów mrówkowych. Do testów systemu dynamicznego zostaną również użyte inne, większe grafy (rys. 3.3) mające strukturę sieci. Parametry ich krawędzi zmieniane będą w taki sam sposób jak dla grafu mniejszego. Dla większych grafów przeprowadzono odpo- wiednio mniej testów, ponieważ czas znajdywania rozwiązania znacznie wydłużał się w ich przypadku.
  • 30. 22 ROZDZIAŁ 3. EKSPERYMENT (a) (b) Rysunek 3.3: Miniatury dużych grafów testowych o strukturze sieci dla sys- temu dynamicznego. Kolorowe okręgi są w rzeczywistości skupiskami urzą- dzeń komputerowych wokół routerów. Graf (a): 11579 wierzchołków, 12965 krawędzi; graf (b): 19945 wierzchołków i 56871 krawędzi.
  • 31. Rozdział 4 Wyniki symulacji oraz wnioski 4.1 Wyniki dla systemu statycznego W tym podrozdziale zaprezentowano wyniki badań przetestowanych algorytmów jako wykresy dwu- oraz trójwymiarowe. Poszczególne podpunkty opisują dokład- niej przebiegi każdego badania. Koszty będące wartościami funkcji przedstawia- nych na wykresach odnoszą się do kosztów znalezionych ścieżek. Legendę każdego wykresu należy postrzegać tak samo — najciemniejszy kolor oznacza najlepszy (najniższy) koszt. 4.1.1 Badanie wpływu liczby mrówek oraz iteracji Wpływ liczby mrówek oraz iteracji na znalezienie ścieżki minimalnej jest wi- doczny wyraźnie. Ogólnie rzecz biorąc, im większa wartość tych dwóch czynni- ków, tym lepsze rozwiązanie. Sytuacja taka ma miejsce w przypadku CAS oraz RBAS (rysunki 4.1 i 4.2). Inaczej jest jednak dla algorytmu MMAS gdzie zbyt duża liczba iteracji wraz z połączeniem ze zmienioną regułą aktualizacji feromonu zdaje się zaburzać „główny” ślad pomiędzy wierzchołkami. Widać tu, że powyżej pewnej wartości rozwiązania są gorsze od uzyskanych dotychczas. Ciekawych wniosków dostarczają obserwacje osiągów czasowych. Okazało się, że najlepiej na polu tym radzi sobie algorytm RBAS (patrz wykres (b) na ry- sunku 4.2). Nawet dla parametrów o wartościach maksymalnych nie wymagał on więcej czasu niż 10 sekund na test. Kolejną zaletą jeżeli o czas chodzi jest jego wolniejszy wzrost względem liczby iteracji niż dla pozostałych dwóch algo- rytmów. Co więcej, algorytmowi temu udało się uzyskać wynik 1815, 18, który jest tylko 7 promili gorszy od kosztu ścieżki minimalnej (1802, 18). Równie do- brym wynikiem może się pochwalić MMAS, ale on tak samo jak CAS uzyskał czas blisko osiemnastu sekund dla największych wartości. Najgorzej też radzi so- 23
  • 32. 24 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI bie wraz ze wzrostem liczby iteracji, gdzie powierzchnia wykresu idzie w górę bardziej stromo niż u konkurentów i dopiero około trzydziestej iteracji wzrost nie jest już tak szybki (rys. 4.3 (b)). Test ten dostarczył bardzo ciekawych informacji. Po pierwsze, widać prze- wagę dwóch ostatnich algorytmów, jeżeli chodzi o szukanie coraz lepszych ścieżek. Po drugie, jeżeli czas jest dla nas priorytetem, to najlepszym kandydatem wy- daje się modyfikacja RBAS, która jest lepsza czasowo aż o 45% od konkurentów! Jest to różnica duża. Ostatecznie, do badań dalszych autor ustalił liczbę mrówek na 50 oraz liczbę iteracji na 40. Patrząc na wykresy, można wysnuć przypuszcze- nie, że takie wartości nie dadzą wyników bliskich najlepszym, ale zagwarantują dość szybkie otrzymanie wyniku. (a) 5 10 15 20 30 40 50 75 100 200 5 10 15 20 30 40 50 75 100 200 2000 2200 2400 2600 2800 3000 3200 3400 3600 3800 Bestcost CAS best costs Ants count Iterations count Bestcost 2000 2200 2400 2600 2800 3000 3200 3400 3600 3800 (b) 5 10 15 20 30 40 50 75 100 200 5 10 15 20 30 40 50 75 100 200 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 Duration[ms] CAS tests durations Ants count Iterations count Duration[ms] 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 Rysunek 4.1: Wyniki względem liczby mrówek oraz iteracji dla CAS. Rysu- nek (a) — koszty znalezionych ścieżek, rysunek (b) — czasy wykonywania algorytmu.
  • 33. 4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 25 (a) 5 10 15 20 30 40 50 75 100 200 5 10 15 20 30 40 50 75 100 200 1800 2000 2200 2400 2600 2800 3000 3200 3400 Bestcost RBAS best costs Ants count Iterations count Bestcost 1800 2000 2200 2400 2600 2800 3000 3200 3400 (b) 5 10 15 20 30 40 50 75 100 200 5 10 15 20 30 40 50 75 100 200 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Duration[ms] RBAS tests durations Ants count Iterations count Duration[ms] 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Rysunek 4.2: Wyniki względem liczby mrówek oraz iteracji dla RBAS. Ry- sunek (a) — koszty znalezionych ścieżek, rysunek (b) — czasy wykonywania algorytmu.
  • 34. 26 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI (a) 5 10 15 20 30 40 50 75 100 200 5 10 15 20 30 40 50 75 100 200 1800 2000 2200 2400 2600 2800 3000 3200 3400 3600 Bestcost MMAS best costs Ants count Iterations count Bestcost 1800 2000 2200 2400 2600 2800 3000 3200 3400 3600 (b) 5 10 15 20 30 40 50 75 100 200 5 10 15 20 30 40 50 75 100 200 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 Duration[ms] MMAS tests durations Ants count Iterations count Duration[ms] 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 Rysunek 4.3: Wyniki względem liczby mrówek oraz iteracji dla MMAS. Ry- sunek (a) — koszty znalezionych ścieżek, rysunek (b) — czasy wykonywania algorytmu.
  • 35. 4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 27 4.1.2 Wpływ parametrów α oraz β Praktycznie każdy z badanych tym testem algorytmów zbliżał się znacznie do mi- nimum. Jedynie w przypadku RBAS można dostrzec największe fluktuacje, tutaj bowiem występuje największa rozpiętość uzyskanych wyników co pokazuje rysu- nek 4.5. Można jednak zauważyć też, że CAS w porównaniu z RBAS i MMAS posiada najmniej wyraźny atraktor∗, którego brzegi są łagodne (rys. 4.4). W po- zostałych przypadkach, umiejscowienie punktu zbieżności jest bardziej wiadome i określone przez węższy zakres. Sugeruje to w miarę łatwe dobieranie tych para- metrów. Kształt funkcji dla CAS ukazuje jego mniejszą wrażliwość na parametry α i β, i większą jego niestabilność niż u współzawodników. Oprócz tego widać trendy wzrostowe dla każdego algorytmu względem parametrów. CAS osiąga gor- sze wyniki gdy wzrasta beta, RBAS daje kiepskie rezultaty wraz ze wzrostem alfy a MMAS dla odmiany, wykazuje tendencję wzrostową razem z betą i odwrotno- ścią alfy (rys. 4.6). 0.1 0.2 0.3 0.5 0.75 1 2 3 5 7.5 10 0.1 0.2 0.3 0.5 0.75 1 2 3 5 7.5 10 1800 2000 2200 2400 2600 2800 3000 3200 Bestcost CAS best costs α β Bestcost 1800 2000 2200 2400 2600 2800 3000 3200 Rysunek 4.4: Wyniki względem parametrów α i β dla CAS. ∗ Tzw. basen przyciągania, miejsce w pewnej przestrzeni, do którego zbiegają trajektorie punktów tej przestrzeni; pojęcie popularne w teorii chaosu.
  • 36. 28 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI 0.1 0.2 0.3 0.5 0.75 1 2 3 5 7.5 10 0.1 0.2 0.3 0.5 0.75 1 2 3 5 7.5 10 1800 2000 2200 2400 2600 2800 3000 3200 3400 3600 Bestcost RBAS best costs α β Bestcost 1800 2000 2200 2400 2600 2800 3000 3200 3400 3600 Rysunek 4.5: Wyniki względem parametrów α i β dla RBAS. 0.1 0.2 0.3 0.5 0.75 1 2 3 5 7.5 10 0.1 0.2 0.3 0.5 0.75 1 2 3 5 7.5 10 1800 2000 2200 2400 2600 2800 3000 3200 Bestcost MMAS best costs α β Bestcost 1800 2000 2200 2400 2600 2800 3000 3200 Rysunek 4.6: Wyniki względem parametrów α i β dla MMAS.
  • 37. 4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 29 Wybrane pary parametrów to: CAS : α = 1, β = 1; RBAS : α = 1, β = 0, 3; MMAS : α = 2, β = 0, 1. 4.1.3 Badanie wpływu parametru ρ Niestety, w tym przypadku udzielenie odpowiedzi sensownych jest utrudnione. Z wykresów nie można jednoznacznie określić granic konsekwentnie oddzielają- cych parametry gorsze od lepszych. Najmniej widoczne jest to w przypadku po- miarów dla RBAS. Na rysunku 4.8 intuicyjnie domniemywać można, że im bliżej wartości 0, 5, tym lepsze wyniki uzyskamy, ale jak widać nie gwarantuje to za- wsze dobrego rozwiązania. Trochę lepiej sytuacja przedstawia się gdy spojrzymy na wyniki algorytmu CAS (rys. 4.7). Tutaj widać dwa wyraźne skupiska wartości atrakcyjniejszych od pozostałych, a plasujących się na wysokości około 0, 2. Naj- bardziej klarowna sytuacja występuje dla algorytmu MMAS na wykresie 4.9. Wi- dzimy tutaj wyraźną, mniej więcej jednostajną granicę, powyżej której wartości kosztu są zauważalnie lepsze od innych. Z wykresu wynika, że granica ta znajduje się blisko wartości 0, 2. 0.01 0.02 0.03 0.05 0.075 0.1 0.2 0.3 0.5 1 2 3 4 5 6 7 8 9 10 2100 2200 2300 2400 2500 2600 2700 2800 Bestcost CAS best costs ρ Test number Bestcost 2100 2200 2300 2400 2500 2600 2700 2800 Rysunek 4.7: Wyniki względem parametru ρ dla CAS.
  • 38. 30 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI 0.01 0.02 0.03 0.05 0.075 0.1 0.2 0.3 0.5 1 2 3 4 5 6 7 8 9 10 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 Bestcost RBAS best costs ρ Test number Bestcost 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 Rysunek 4.8: Wyniki względem parametru ρ dla RBAS. 0.01 0.02 0.03 0.05 0.075 0.1 0.2 0.3 0.5 1 2 3 4 5 6 7 8 9 10 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 Bestcost MMAS best costs ρ Test number Bestcost 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 Rysunek 4.9: Wyniki względem parametru ρ dla MMAS.
  • 39. 4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 31 4.1.4 Badanie parametru W dla algorytmu RBAS Na rysunku 4.10 również nie można stwierdzić jednoznacznie jaka ilość mrówek oprócz najlepszej powinna aktualizować swoje ścieżki. Można wnioskować, że po- winna to być wartość jak najmniejsza. Na wykresie wartości najmniejsze osią- gnięto gdy liczba W miała wartość najmniejszą, stąd autor proponuje ustalić wartości tego czynnika jako 2. 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1800 1900 2000 2100 2200 2300 2400 2500 Bestcost RBAS best costs W Test number Bestcost 1800 1900 2000 2100 2200 2300 2400 2500 Rysunek 4.10: Wyniki względem parametru W dla RBAS. 4.1.5 Badanie parametru e dla algorytmów RBAS oraz MMAS Regulacja tego parametru także jest trudna. Oba algorytmy wykazują brak zbież- ności do jakiejś konkretnej wartości niezależnie od badanej zmiennej. O ile dla algorytmu MMAS można się dopatrywać prawdopodobnej granicy w okolicach punktu e = 5000 (rys. 4.12), to dla RBAS nie jest to wiadome (rys. 4.11). Ponie- waż jednak, dla wartości e = 500 da się zaobserwować wystąpienie kilku bardziej obiecujących wyników wraz z ich otoczeniem, to autor zdecydował się ustalić ten parametr właśnie na taką liczbę.
  • 40. 32 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI 1 2 5 10 20 50 100 200 500 1000 2000 5000 10000 1 2 3 4 5 6 7 8 9 10 1800 1900 2000 2100 2200 2300 2400 Bestcost RBAS best costs e Test number Bestcost 1800 1900 2000 2100 2200 2300 2400 Rysunek 4.11: Wyniki względem parametru e dla RBAS. 1 2 5 10 20 50 100 200 500 1000 2000 5000 10000 1 2 3 4 5 6 7 8 9 10 2000 2050 2100 2150 2200 2250 2300 2350 2400 2450 2500 Bestcost MMAS best costs e Test number Bestcost 2000 2050 2100 2150 2200 2250 2300 2350 2400 2450 2500 Rysunek 4.12: Wyniki względem parametru e dla MMAS.
  • 41. 4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 33 4.1.6 Rezultaty dla parametrów τmin i τmax dla algorytm MMAS Aby wykres 4.13 prezentował się wizualnie dobrze przedstawiono go jako mapę natężenia kosztów górnej macierzy trójkątnej z tablicy wyników (dla przypomnie- nia — τmin musi być mniejsze od τmax). Chociaż mapa ta jest w miarę jednolita, to można założyć, że występuje tu preferencja w kierunku wartości coraz więk- szych: τmin = 5000, τmax = 10000. Nie zmienia to jednak faktu, że jest to kolejny trudny do sterowania parametr. MMAS best costs 0.1 0.2 0.5 1 2 5 10 20 50 100 200 500 1000 2000 5000 τmin 0.2 0.5 1 2 5 10 20 50 100 200 500 1000 2000 5000 10000 τmax 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 Rysunek 4.13: Wyniki względem parametrów τmin oraz τmax dla MMAS.
  • 42. 34 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI 4.1.7 Badanie parametru Q dla algorytmu CAS Kolejny czynnik też nie należy do łatwo sterowalnych. Wykazuje on co prawda trend malejący ku wartościom niskim, ale i tak nie niweluje fluktuacji i lokal- nych maksimów, które na wykresie możemy obserwować jako dwa większe i jeden mniejszy garb (kolory jasne). Wykres 4.14, został wybrany do tej pracy, ponie- waż najlepiej „widać” tutaj pogorszenie wyników wraz ze wzrostem wartości Q. Najwięcej najniższych kosztów oscyluje po przeciwległej stronie, odpowiadając wartości 1 i dlatego to ją wybrano. 1 2 5 10 20 50 100 200 500 1000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2000 2100 2200 2300 2400 2500 2600 2700 2800 Bestcost CAS best costs Q Test number Bestcost 2000 2100 2200 2300 2400 2500 2600 2700 2800 Rysunek 4.14: Wyniki względem parametru Q dla CAS. 4.1.8 Wpływ parametru τ0 na algorytmy CAS i RBAS Z tym czynnikiem autor miał największy problem. Chociaż dla tej części prze- prowadzono najwięcej testów, to każdy z nich wykazywał bardzo małą korelację jakości rozwiązania z wartością parametru. Wykres 4.15, można jeszcze uznać za nakazujący wybór wartości niższych niż 5. Ostatecznie, zdecydowano się, że pa- rametr ten przyjmie wartość 0, 5 dla CAS. W przypadku jednak algorytmu RBAS jedyną rzecz, która widać na pierwszy raz, to totalna rozbieżność minimów, które zdają się oscylować po obu stronach prawdopodobnych skupisk wartości maksy- malnych znajdujących się w pobliżu wartości 2. Autor zaryzykował tutaj i posta- nowił nadać wartość 5 jako punkt odniesienia do dalszych prób
  • 43. 4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 35 0.1 0.2 0.5 1 2 5 10 20 50 100 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 2000 2100 2200 2300 2400 2500 2600 2700 2800 Bestcost CAS best costs τ0 Test number Bestcost 2000 2100 2200 2300 2400 2500 2600 2700 2800 Rysunek 4.15: Wyniki względem parametru τ0 dla CAS. 0.1 0.2 0.5 1 2 5 10 20 50 100 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 1800 1900 2000 2100 2200 2300 2400 Bestcost RBAS best costs τ0 Test number Bestcost 1800 1900 2000 2100 2200 2300 2400 Rysunek 4.16: Wyniki względem parametru τ0 dla RBAS.
  • 44. 36 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI W tabeli 4.1 zebrano wartości parametrów, które statystycznie okazały się najlepsze podczas testów. Liczby iteracji oraz mrówek nie wzięto tu pod uwagę ze względu na fakt, że algorytmy CAS oraz RBAS zbiegały do najlepszego roz- wiązania im większa była liczba zarówno mrówek jak i iteracji (wykresy 4.1 i 4.2), ale w przypadku algorytmu MMAS było już inaczej co jest ciekawe (rys. 4.3). Tablica 4.1: Najbardziej obiecujące wartości parametrów dla badanych metod. ``````````````Parametr Algorytm CAS RBAS MMAS α 2 1 1 β 1 0, 3 0, 1 ρ 0, 2 0, 5 0, 2 W — 2 — e — 500 5000 τmin — — 5000 τmax — — 10000 Q 1 — — τ0 0, 5 10 — Potwierdza się, że dla wielu algorytmów klasy mrówkowej czynnik alfa może być niepotrzebny. Co do wartości β oraz ρ, to nie powinny przekraczać one warto- ści około 0, 5 (wyjątek dla CAS gdzie wzmocnienie nie jest potrzebne) — sugeruje to tendencję do konieczności relatywnie dużego wzmacniania długości krawędzi. Widać też, że wartości współczynników τ dla algorytmu MMAS muszą być duże, podczas gdy RBAS nie potrzebuje tak dużej wartości startowej. Wartość Q rów- nież wydaje się zbędna dla CAS chociaż głębsza analiza nakazywałaby zwiększe- nie tego czynnika.
  • 45. 4.2. WYNIKI DLA SYSTEMU ZMIENIAJĄCEGO SIĘ DYNAMICZNIE 37 4.2 Wyniki dla systemu zmieniającego się dynamicznie Rysunki od 4.17 do 4.20 zestawiają wyniki odnoszące się do kosztów połączeń oraz czasów ich znajdowania dla algorytmu Dijkstry oraz algorytmów AS. Nie- stety, żeby uzyskać „aż tak dobre” rezultaty czasowe dla mrówek autor zmniejszył liczbę iteracji oraz osobników do pięciu. Przełożyło się to na gorsze wyniki kosz- tów, ale pokazało zarazem, że algorytmy mrówkowe wymagają dużych nakładów obliczeniowych. (a) 0 1000 2000 3000 4000 5000 6000 7000 8000 0 100 200 300 400 500 600 700 800 900 1000 Costs Epochs Dijkstra costs in dynamically changing graph (b) 0 10 20 30 40 50 60 70 0 100 200 300 400 500 600 700 800 900 1000 Duration[ms] Epochs Dijkstra durations in dynamically changing graph Rysunek 4.17: Koszty ścieżek (a) oraz czasy ich poszukiwań (b) za pomocą algorytmu Dijkstry w zmieniającym się grafie.
  • 46. 38 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI (a) -1000 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 0 100 200 300 400 500 600 700 800 900 1000 Costs Epochs CAS costs in dynamically changing graph (b) -20 0 20 40 60 80 100 120 0 100 200 300 400 500 600 700 800 900 1000 Duration[ms] Epochs CAS durations in dynamically changing graph Rysunek 4.18: Koszty ścieżek oraz (a) czasy ich poszukiwań (b) za pomocą algorytmu CAS w zmieniającym się grafie.
  • 47. 4.2. WYNIKI DLA SYSTEMU ZMIENIAJĄCEGO SIĘ DYNAMICZNIE 39 (a) -2000 0 2000 4000 6000 8000 10000 12000 14000 0 100 200 300 400 500 600 700 800 900 1000 Costs Epochs RBAS costs in dynamically changing graph (b) -20 0 20 40 60 80 100 120 0 100 200 300 400 500 600 700 800 900 1000 Duration[ms] Epochs RBAS durations in dynamically changing graph Rysunek 4.19: Koszty ścieżek (a) oraz czasy ich poszukiwań (b) za pomocą algorytmu RBAS w zmieniającym się grafie.
  • 48. 40 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI (a) -2000 0 2000 4000 6000 8000 10000 12000 14000 0 100 200 300 400 500 600 700 800 900 1000 Costs Epochs MMAS costs in dynamically changing graph (b) -20 0 20 40 60 80 100 120 0 100 200 300 400 500 600 700 800 900 1000 Duration[ms] Epochs MMAS durations in dynamically changing graph Rysunek 4.20: Koszty ścieżek (a) oraz czasy ich poszukiwań (b) za pomocą algorytmu MMAS w zmieniającym się grafie.
  • 49. 4.2. WYNIKI DLA SYSTEMU ZMIENIAJĄCEGO SIĘ DYNAMICZNIE 41 Jak widać, każdy z badanych algorytmów oscylował swoimi osiągami kosztów blisko minimum wytyczanego przez „Dijkstrę”. Największy rozrzut prezentuje algorytm RBAS co oznacza, że jako kandydat jest dobry w próbowaniu nowych rozwiązań. Także tutaj, pokazał swoją wyższość czasową nad CAS oraz MMAS. Piki występujące na wszystkich wykresach czasowych (rysunki (b)) spowodowane są opóźnieniami aplikacji przez okresowe inne działania sprawdzające graf i nie należy ich interpretować jako wiarygodnych wartości. Widoczne też na wszyst- kich wykresach nagłe skoki do wartości 0 dla algorytmu Dijkstry albo −1 dla algorytmów mrówkowych były konsekwencją tego, że w danych momentach, nie było możliwe skonstruowanie ścieżki łączącej wierzchołek źródłowy z docelowym. Mogło dziać się tak, ponieważ implementacja algorytmu losującego właściwości łuków nie uwzględniała w jakikolwiek sposób możliwości uniknięcia wystąpienia takich zdarzeń. Kolejne testy przeprowadzone zostały dla grafów widocznych wcześniej na ry- sunku 3.3. Niestety, z powodu długiego czasu oczekiwania na wyniki przeprowa- dzono tylko po dwa testy dla wszystkich algorytmów AS, a czasy oraz koszty ścieżek zebrano w tabelach 4.2 oraz 4.3. Tablica 4.2: Wyniki algorytmów dla grafów dużych (graf (a) z rysunku 3.3). @ @ @ Koszt Czas [ms] Dijkstra 2036, 36 2211 CAS 2928, 22 19814 RBAS 2928, 22 3225 MMAS 2928, 22 17725 Tablica 4.3: Wyniki algorytmów dla grafów dużych (graf (b) z rysunku 3.3). @ @ @ Koszt Czas [ms] Dijkstra 2013, 88 2839 CAS 8114, 53 37284 RBAS 53864, 63 28194 MMAS 42616, 84 66891 W pierwszym przypadku widać, że wszystkie algorytmy AS utknęły w mi- nimum lokalnym o tej samej wartości. Niemniej jednak, wszystkie je odnala- zły. Druga tabela pokazuje, niestety wpływ losowości, która przełożyła się tutaj na wyniki znacznie gorsze. Widać też, że RBAS okazuje się najlepszy czasowo co jest potwierdzeniem wyników z sekcji dostrajania parametrów. Autor testował jeszcze inne, większe liczby mrówek oraz iteracji. Niestety, były
  • 50. 42 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI to tylko pojedyncze wyniki z racji perspektywy dość długiego wyczekiwania prze- kraczającego minutę dla jednego uruchomienia algorytmu. Okazało się, że mrówki pokazują swoją siłę dopiero w przypadku bardzo dużych grafów. Przykładowo, dla bardzo rozgałęzionej i gęstej struktury sieciowej liczącej 155350 wierzchołków i 161121 krawędzi, odmiana RBAS odnalazła rozwiązanie o koszcie 43021, 16 w 12 sekund, podczas gdy Dijkstra potrzebował ponad 3 i pół razy więcej (42 sekundy) znajdując minimum w punkcie 7529, 29. Jest to rozwiązanie około sześciu razy lepsze, ale czasem nie może dorównywać mocy algorytmom mrówkowym. Oczy- wiście im większy graf, tym wyniki dla algorytmu Dijkstry albo jakiegokolwiek innego deterministycznego będą coraz gorsze. Rozwiązania heurystyczne mają tendencję pseudolosowego penetrowania grafu w głąb, więc należałoby oczekiwać tutaj, że szala zwycięstwa zacznie przeważać na stronę „potomków” Monte Carlo.
  • 51. 4.3. WNIOSKI 43 4.3 Wnioski Pozornie, trudno jest określić, który z trzech algorytmów mrówkowych prezento- wanych tutaj jest lepszy. Pierwszy algorytm nie wyróżnia się na tle pozostałych. Jak się przekonaliśmy, drugi RBAS jest szybki, ale uzyskuje wyniki statystycz- nie trochę gorsze od MMAS. Tymczasem, ten ostatni prawdopodobnie zawsze znajdzie nam rozwiązania lepsze. Można więc wyróżnić tutaj podział na szyb- kość, którą chcieliśmy uzyskać oraz koszt. Wygranym więc okazuje się algorytm RBAS. Wracając jeszcze do testów z systemem dynamicznym, szkoda, że algo- rytmy te działają stosunkowo wolno. Gdyby nie ta wada, byłyby idealne do szyb- kiej, heurystycznej eksploracji. Przeprowadzone badania nie pozwoliły jednoznacznie odpowiedzieć, dla jakich parametrów algorytmy mrówkowe działają najlepiej, ale bez względu na to ja- kie wartości dobierzemy, to i tak nie należy się spodziewać wymiernych rezulta- tów jeżeli nie dysponujemy naprawdę ogromnymi, gęstymi grafami rzędu kilkuset tysięcy wierzchołków. Nie jesteśmy jednak pewni, że przekroczenie tej bariery zmieni w jakiś cudowny sposób wyniki badanych algorytmów. Możemy jedynie być pewni z dużą dozą prawdopodobieństwa, że odnajdziemy połączenie o wiele szybciej. Wyłania się więc kwestia sensu użycia owych algorytmów tutaj. Jest też druga strona medalu. Osąd może nie być w pełni poprawny z co naj- mniej jednego względu: autor nie przeprowadził testów dla kolonii mrówek jako równoległych procesów, a prawdopodobnie, oddziaływałoby to na korzyść rodziny AS. Oczywiście, istnieje pewna granica wątków czy węzłów, po przekroczeniu któ- rej liczba konfliktów dostępu czy liczby przesłanych komunikatów zaczyna „co- fać” wyniki systemu, ale dla pewnego przedziału danych można by sprawdzić czy byłoby to opłacalne. Kolejną rzeczą jest fakt, że przetestowano tylko trzy algorytmy, z czego pierwszy praktycznie jako ciekawostkę. Nie podjęto się tutaj implementacji i sprawdzenia, np. EAS, ACS, DAS, ANT-Q, nowszych odmian MMAS, ANTS (zaproponowanych przez Vittorio Maniezzo w 1999r.), czy np. Hyper-cube AS z roku 2004. Poza tym, trzeba mieć świadomość, że jest to ciągle rozwijana gałąź. Podsumowując dyskusję, autor uważa za raczej egzotyczne zastosowanie prze- badanych przez niego algorytmów do problemów trasowania, jeżeli nie mamy ogromnego grafu (> 100000 wierzchołków) z dużą liczbą połączeń. Po drugie, nie należy się spodziewać niskiego kosztu znalezienia takiego połączenia. Owszem, dla ogromnych sieci jak, np. internet, sukcesem może być sam kontakt w gąszczu kabli i fal, ale nie oszukujmy się, dla potrzeb które nie wymagają takiej infra- struktury można z powodzeniem stosować jeszcze algorytmy klasyczne. Autor sugeruje wykorzystanie algorytmów mrówkowych w sztucznej inteligencji raczej i wszędzie tam, gdzie pożądana jest losowość. Tutaj jednak nie zależy nam tak bardzo na tej cesze, dlatego autor zaleca pewną dawkę sceptycyzmu jeżeli chodzi o próby z wykorzystaniem CAS, RBAS, czy MMAS do tego tematu.
  • 52.
  • 53. Bibliografia [1] http://boinc.berkeley.edu/, strona główna projektu BOINC. [cytowanie na str. 3] [2] http://www.boincatpoland.org, polska strona projektu. [cytowanie na str. 3] [3] http://www.worldcommunitygrid.org, strona internetowa jednego z projektów przetwarzanych w BOINC. [cytowanie na str. 3] [4] http://www.gnuplot.info/download.html, strona, z której można pobrać pro- gram. [cytowanie na str. 20] [5] Thomas A. Cormen, Charles E. Leiserson, and Ronald L. Rivest, Wprowadzenie do algorytmów, Wydawnictwo Naukowe PWN, Warszawa, 2001. [cytowanie na str. 8] [6] Marco Dorigo, Vittorio Maniezzo, and Alberto Colorni, The ant system: Optimi- zation by a colony of cooperating agents, IEEE Transactions on Systems, 1996. [cytowanie na str. 16] [7] Marco Dorigo and Thomas Stutzle, Ant colony optimization, Massachusetts Institute of Technology, London, 2004. [cytowanie na str. 11, 13, 16] [8] Kenneth A. Ross and Charles R.B. Wright, Matematyka dyskretna, Wydawnictwo Naukowe PWN, Warszawa, 2005. [cytowanie na str. 8, 9] 45
  • 54.
  • 56.
  • 57. Spis symboli i skrótów Skrót Opis Definicja BOINC Berkeley Open Infrastructure for Network Com- puting str. 3 WCG World Community Grid str. 3 AS Ant-system str. 9 CAS Cycle AS str. 11 DAS Density AS str. 11 EAS Elitist AS str. 14 QAS Quantity AS str. 11 RBAS Rank-based AS str. 13 MMAS Min-Max AS str. 9 49
  • 58. Spis rysunków 2.1 Graf prosty oraz skierowany . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Niektóre z możliwych ścieżek . . . . . . . . . . . . . . . . . . . . . . . 13 3.1 Okno główne programu . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2 Miniatura grafu testowego (statyczny) . . . . . . . . . . . . . . . . . . 21 3.3 Miniatury dużych grafów testowych (dynamiczny) . . . . . . . . . . . 22 4.1 Porównanie kosztów (mrówki/iteracje) CAS . . . . . . . . . . . . . . . 24 4.2 Porównanie kosztów (mrówki/iteracje) RBAS . . . . . . . . . . . . . . 25 4.3 Porównanie kosztów (mrówki/iteracje) MMAS . . . . . . . . . . . . . 26 4.4 Porównanie kosztów (α/β) CAS . . . . . . . . . . . . . . . . . . . . . 27 4.5 Porównanie kosztów (α/β) RBAS . . . . . . . . . . . . . . . . . . . . 28 4.6 Porównanie kosztów (α/β) MMAS . . . . . . . . . . . . . . . . . . . . 28 4.7 Porównanie kosztów (τ) CAS . . . . . . . . . . . . . . . . . . . . . . . 29 4.8 Porównanie kosztów (τ) RBAS . . . . . . . . . . . . . . . . . . . . . . 30 4.9 Porównanie kosztów (τ) MMAS . . . . . . . . . . . . . . . . . . . . . . 30 4.10 Porównanie kosztów (W) . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.11 Porównanie kosztów (e) RBAS . . . . . . . . . . . . . . . . . . . . . . 32 4.12 Porównanie kosztów (e) MMAS . . . . . . . . . . . . . . . . . . . . . . 32 4.13 Porównanie kosztów (τmin/τmax) . . . . . . . . . . . . . . . . . . . . . 33 4.14 Porównanie kosztów (Q) . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.15 Porównanie kosztów (τ0) CAS . . . . . . . . . . . . . . . . . . . . . . . 35 4.16 Porównanie kosztów (τ0) RBAS . . . . . . . . . . . . . . . . . . . . . . 35 4.17 Porównanie (system dynamiczny) algorytmu Dijkstry . . . . . . . . . 37 4.18 Porównanie (system dynamiczny) CAS . . . . . . . . . . . . . . . . . . 38 4.19 Porównanie (system dynamiczny) RBAS . . . . . . . . . . . . . . . . . 39 4.20 Porównanie (system dynamiczny) MMAS . . . . . . . . . . . . . . . . 40 50
  • 59. Spis tablic 3.1 Funkcje parametrów oraz algorytmy korzystające z nich. . . . . . . . . 16 4.1 Najbardziej obiecujące wartości parametrów dla badanych metod. . . 36 4.2 Wyniki algorytmów dla grafów dużych (graf (a) z rysunku 3.3). . . . 41 4.3 Wyniki algorytmów dla grafów dużych (graf (b) z rysunku 3.3). . . . 41 51