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
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.
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.
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
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
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