msc ants in the graph

59
Uniwersytet Zielonogórski Wydzial Elektrotechniki Informatyki i Telekomunikacji Informatyka Praca magisterska Zastosowanie algorytmu mrówkowego na przykladzie systemu dynamicznego modelowanego grafem ważonym Marcin Szydlowski Promotor: dr hab. inż. Andrzej Pieczyński, prof. UZ Zielona Góra, 2010

Upload: marcin-szydlowski

Post on 13-Apr-2017

83 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: MSc Ants In The Graph

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

Page 2: MSc Ants In The Graph
Page 3: MSc Ants In The Graph
Page 4: MSc Ants In The Graph
Page 5: MSc Ants In The Graph

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 przedstawianebędą grafami ważonymi skierowanymi. Przykłady systemów użytych w pracyobejmują 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 tychrzeczy. 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

Page 6: MSc Ants In The Graph

This document is about application of ants algorithms, called AS stands for“Ant-System” which means optimization by means of an ants colony, swarmor herd for solving transport problems. Considered questions will not concernexplicitly moving something from one place to another but more routing. Sys-tems models will be representing by directed and labeled graphs. The examplesof systems used in this paper to apply complex dependencies which determinerequire lots of memory and many computations. Besides, thats structures changesourselves dynamically which demands searching new solutions constantly. Authorthinks that ACOs “family” have a huge potential in this case. Experiments willdemonstrate differences between results returned by AS and i.e. Dijkstra, oneof the basic deterministic algorithms for routes finding equivalent.

Keywords: ants systems (AS), transport, routing, graph, dynamic system

Page 7: MSc Ants In The Graph

Spis treści

Spis treści i

1 Wstęp 3

1.1 Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Cel i zakres pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Struktura pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Podstawy teoretyczne 7

2.1 Grafy i ich zastosowania . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Tradycyjne algorytmy dla drogi prostej . . . . . . . . . . . . . . . . 82.3 Algorytmy mrówkowe . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3.1 Wariant klasyczny . . . . . . . . . . . . . . . . . . . . . . . 92.3.2 Modyfikacje . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Eksperyment 15

3.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2 Kryteria porównywania . . . . . . . . . . . . . . . . . . . . . . . . 153.3 Regulacja parametrów . . . . . . . . . . . . . . . . . . . . . . . . . 163.4 Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.4.1 Wybór języka i środowiska programistycznego . . . . . . . . 183.4.2 Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.4.3 Dane testowe . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 Wyniki symulacji oraz wnioski 23

4.1 Wyniki dla systemu statycznego . . . . . . . . . . . . . . . . . . . 234.1.1 Badanie wpływu liczby mrówek oraz iteracji . . . . . . . . . 234.1.2 Wpływ parametrów α oraz β . . . . . . . . . . . . . . . . . 274.1.3 Badanie wpływu parametru ρ . . . . . . . . . . . . . . . . . 294.1.4 Badanie parametru W dla algorytmu RBAS . . . . . . . . . 314.1.5 Badanie parametru e dla algorytmów RBAS oraz MMAS . 31

i

Page 8: MSc Ants In The Graph

ii SPIS TREŚCI

4.1.6 Rezultaty dla parametrów τmin i τmax dla algorytm MMAS 334.1.7 Badanie parametru Q dla algorytmu CAS . . . . . . . . . . 344.1.8 Wpływ parametru τ0 na algorytmy CAS i RBAS . . . . . . 34

4.2 Wyniki dla systemu zmieniającego się dynamicznie . . . . . . . . . 374.3 Wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Bibliografia 45

Spis symboli i skrótów 49

Spis rysunków 50

Spis tablic 51

Page 9: MSc Ants In The Graph

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

Page 10: MSc Ants In The Graph
Page 11: MSc Ants In The Graph

Rozdział 1

Wstęp

1.1 Wprowadzenie

Nie zdajemy sobie sprawy jak wiele rzeczy i problemów wziętych z życia stanowidla komputera poważny problem. Nowoczesne modele oraz trendy konstrukcyjnew 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łumiejsca, 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ówrośnie wykładniczo i nie udowodniono jak również nie zaprzeczono na dzień dzi-siejszy istnienia algorytmu szybszego niż przeszukiwanie ślepe. Nawet problemnajkró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 potrzebróżnych projektów, takich jak np.WCG. Więcej informacji można znaleźć pod adresem [1] oraz[2] albo [3]

3

Page 12: MSc Ants In The Graph

4 ROZDZIAŁ 1. WSTĘP

dla algorytmu zwracającego rozwiązanie minimalne, gdy liczba wierzchołków jestduża. Co więcej, uruchamianie algorytmu analitycznego po każdej modyfikacjiwłaściwości któregoś z połączeń mija się z celem.

Na szczęście możliwa jest druga opcja. Wiele rzeczy nie wymaga optymalnegorozwią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 pewnymprawdopodobień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ówmrówkowych, których zastosowanie przedstawia ten dokument, a które omówionezostały w punkcie 2.3. Zanim to nastąpi jednak czytelnik zostanie zaznajomionyz podstawami z dziedziny grafów, ponieważ na nich to opierają się modele użytetutaj.

1.2 Cel i zakres pracy

Celem pracy jest porównanie działania algorytmu mrówkowego z tradycyjnymimetodami 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 tutajpewne 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 podstawowegoalgorytmu 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łyczas drogi do celu. Konieczne jednak było takie ograniczenie dla pierwszej turybadań, 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 jestto 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 wielumniejszych podsieci. Na potrzeby tych testów będzie już można uruchomić pro-cedurę „mrówkową” z najlepszymi zestawami parametrów jakie wybrane zostaływ sekcji wcześniejszej. Tutaj, sprawdzona zostanie jakość szukanych rozwiązańkażdego wariantu algorytmu dla pary nadawca—odbiorca gdy właściwości połą-

Page 13: MSc Ants In The Graph

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 widzeniaopóźnień czasowych i czy pomimo utrudnień ogólna sprawność działania modeluzostanie utrzymana. Czytelnik będzie też mógł odpowiedzieć sobie na pytanie„Czy użycie tego dla mojego problemu jest uzasadnione?”. Chęcią autora byłodanie 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 celpracy 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ównaniez 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.

Page 14: MSc Ants In The Graph
Page 15: MSc Ants In The Graph

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, planulic w systemach GPS, plan trasy zakupów tworzony w naszych głowach przedwyjś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ź, symbolizowananajczęściej pewną etykietą lub wartością opisuje kryterium bądź funkcję relacjipomię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

Page 16: MSc Ants In The Graph

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 jakuł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 grafieprostym, 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żeligraf 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żoa krawędzi mało (graf rzadki∗). Zaletą za to jest szybkość odczytu interesującejnas wartości. Alternatywą dla tej struktury w przypadku grafów rzadkich jestaby 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 wszystkichwierzchołków. Mamy więc tutaj pierwszy problem dotyczący szybkości wykonaniakosztem 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 jestzarazem 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żkiminimalnej 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 jestkopiec 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].

Page 17: MSc Ants In The Graph

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ścina wagi ujemne. Z tym radzi już sobie algorytmWarshalla‡, który odnajduje wagiminimalne 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 Dorigoz Politechniki w Milanie. Na podstawie wcześniejszych badań na temat poszu-kiwania pokarmu przez mrówki argentyńskie, które to badania przeprowadzonezostały przez innych naukowców, postanowił on wykorzystać mechanizm poszu-kiwania rozwiązań w sposób heurystyczny wykorzystując błądzenie losowe wieluosobników. Kluczowym czynnikiem mającym wpływ na działanie algorytmu jestwprowadzenie feromonu czyli abstraktu substancji zapachowej kojarzonej z każ-dym, przeglądanym łukiem grafu. Czynnik ten świadczy o „atrakcyjności” łukuw 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 AntSystem) wymyślonego przez Hoosa i Stutzlea 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ócieTSP (ang. Travelling Salesman Problem — problem komiwojażera). Dla przy-pomnienia: istnieje n miast połączonych w jakiś sposób i należy przejść przezwszystkie 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łowspomniane wcześniej nie istnieje dowód szybkiego rozwiązywania zagadnień tejrangi. 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].

Page 18: MSc Ants In The Graph

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 konieczneaby uniknąć teoretycznie nieskończonych pętli, szczególnie w przypadku DASczy 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 zaczynabłądzić ponownie. Należy dodać, że feromon cechuje pewien współczynnik pa-rowania co chroni przed utrzymywaniem niezmienionej wartości najlepszej trasyi ewentualnie zapewnia późniejsze znalezienie drogi lepszej. Oprócz tego, po każ-dej iteracji ślad feromonowy na wszystkich krawędziach grafu „ulatnia” się — jestzmniejszany o pewną wartość. Ogólnie, algorytm ten można opisać następującympseudokodem:

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ównywanebę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 dyskretneprzejś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 rozpoczynasię 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ść, jestprzemierzana w jednej turze (rozdział 3.3 na stronie 16).

Page 19: MSc Ants In The Graph

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, jegoumiejscowienia 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 feromonuwedł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ędziachcyklu 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 zainteresowaniamrówek wybieraniem nowo utworzonego połączenia, gdy na innych jest już dużenatęż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,

Page 20: MSc Ants In The Graph

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ówkia 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

δτkij (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:

δτkij =

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 licznikaustala 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). Grafpo 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 dlanajkró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ć przebytychjuż krawędzi. Chociaż sposób ten może generować cykle względem wierzchołków,

Page 21: MSc Ants In The Graph

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ącyna 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 orazW−1 pierwszychrozwiązań jest aktualizowanych feromonem. Oprócz tego, nowa ilość feromonuna krawędziach zależy od rankingu mrówki:

τ∗ij = (1− ρ)τij +∆W τij +Wδτ

bpiij (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żliwipóźniejsze znalezienie cyklu większego w sensie długości lub kosztu trasy [7].

Page 22: MSc Ants In The Graph

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)δτkij (2.6)

Zaleca się też inną wartość licznika dla czynników cząstkowych:

δτkij = e/Lkδτ bpiij = e/Lbpi

(2.7)

Jak widać, substytutem wartości Q jest tutaj e. Wartość e ma swoje korzeniewe 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 zarezerwowanadla 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, raznajlepsza w iteracji, to możliwe wartości feromonu na łukach zamykają się w prze-dziale [τmin, τmax]. Przed rozpoczęciem działania algorytmu, wartość feromonuna wszystkich łukach grafu ustawiana jest na τmax. Gdy algorytm długo „zastoi”się w miejscu, wartości feromonów na krawędziach są inicjalizowane ponowniewartością początkową (τmax).

‖Tłum. wg autora pracy.

Page 23: MSc Ants In The Graph

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 albogdy 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, pojawiasię pytanie teraz, jak tego użyć. Banalna odpowiedź: —implementując to zderzysię 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 czytelnikrozważ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ą. Wystarczyuruchomić tą procedurę tylko raz dla jakiejś pary wierzchołków i jesteśmy pewnirozwiązania najlepszego. Posiadając wiedzę o czasie działania tego algorytmuoraz o koszcie ścieżki, mamy punkt odniesienia o którym wiemy, że mrówkom

15

Page 24: MSc Ants In The Graph

16 ROZDZIAŁ 3. EKSPERYMENT

nie uda się na pewno go polepszyć. Mamy minimum, ale co gdy czas i tak niejest 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 drogaVstart . . . Vend), jakość tego rozwiązania w sensie kosztu oraz szybkość zbieżnościw 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. X X X

β Wzmocnienie wpływu odwrotności kosztu łuku. X X X

ρ Współczynnik parowania feromonu. X X X

WLiczba mrówek, oprócz najlepszej, których ścieżkibędą aktualizowane; odpowiedzialny także za wy-nik wartości zmiany nowego śladu.

X

e Czynnik odpowiadający za wartość zmiany śladu. X X

τmin Wartość minimalna feromonu na łukach. X

τmax Wartość maksymalna feromonu na łukach. X

Q Czynnik odpowiadający za wartość zmiany śladu. X

τ0 Wartość początkowa feromonu na łukach. X X

N Liczba mrówek. X X X

I Liczba iteracji. X X X

Parametrem, który nie został ujęty w tabeli jest jeszcze krok . Decyduje on czymrówki poruszające się co kwant czasu przemierzają pewną część krawędzi tylkoczy od razu jej całość. Chociaż logika nakazuje branie pod uwagę kroku, to jednakjuż podczas wcześniejszych etapów udoskonalania pierwotnego AS zaniechanouż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;

Page 25: MSc Ants In The Graph

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 + 113256000dla RBAS + 132132000 (τmin musi być mniejsze od τmax, nigdy równe) dlaMMAS) wynosi 255068000 a przeciętny czas już dla liczby iteracji wynoszącej40 oraz liczby mrówek równej 50 to około dwie i pół sekundy (testy na grafiezłożonym z trzystu wierzchołków, o którym więcej w podrozdziale 3.4.3), stądwychodzi, ż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 testydla 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.

Page 26: MSc Ants In The Graph

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 jakopołą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 nichzostał napisany w języku C# z wykorzystaniem środowiskaMicrosoft Visual Stu-dio 2008 (VS2008). Pakiet ten jest dostępny za darmo dla studentów wydziałuElektrotechniki 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ęzykaLisp i stosowany dzisiaj powszechnie uwalnia programistę od ręcznego zarządza-nia pamięcią „wychwytując” nieużywane adresy. Poza tym, C# zawiera w sobieobsł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 dynamicznychstruktur 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”). Niesą też tak wydajne jak skompilowane np. w C++, niemniej jednak, w języku tympisze się szybko zarówno aplikacje konsolowe (z interfejsem czysto tekstowym)jak i te komunikujące się za pomocą GUI (interfejs graficzny). Dostępnych jestduż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ąceszybko odnajdywać interesujące nas miejsca w plikach źródłowych, podpowiedziwartoś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ównomałe programiki gdy szybko czegoś potrzebujemy jak i wielkie wieloosobowe pro-

Page 27: MSc Ants In The Graph

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 orazmieszanych uczuć co do wyboru popularniejszej Javy. Poza tym, C# posiadaparę rzeczy, które mogą być przydatne, a których Java nie posiada, np. różnewarianty argumentów funkcji (nie tylko wymóg obiektów czy zmiennych, którychnie 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 liczbieparu 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 mniejważ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 odpowiedzialnejza interfejs na rzecz fragmentów będących implementacjami porównywanych al-gorytmów. Dla zainteresowanych profilowaniem kodu dla platformy .NET autormoż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 lewypokazują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 symbolkostki 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świetlinam 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ści5400 obrotów/min.

Page 28: MSc Ants In The Graph

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 jegoelementó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ęść grafutypu modelującego sieć. Na panelu miniatury widoczny obszar oznaczany jestprostoką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óregonazwa będzie taka sama jak nazwa pliku z grafem, na którym przeprowadzanebył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 autorwizualizował wyniki jako pliki w formacie *.eps.

Page 29: MSc Ants In The Graph

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 niejest wyzwaniem w dzisiejszych czasach, ale na potrzeby strojenia parametrów byłw miarę dobry z tego względu, że algorytmy AS dawały odpowiedzi relatywnieszybko.

(a) (b)

Rysunek 3.2: Miniatury grafu używanego do testów; rysunek (b) przedstawiazaznaczoną 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ędzieto robione. Losowo wybrane krawędzie będą zmieniać swoje możliwe kierunkiprzesyłu oraz koszty. Ma to symulować obciążenie sieci oraz potencjalną niemoż-ność wykorzystania łącza w którąś ze stron. W przypadku, gdy algorytm niebędzie mógł znaleźć drogi od początku do końca, koszt tej trasy zostanie uznanyjako 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 takisam 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.

Page 30: MSc Ants In The Graph

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, 12965krawędzi; graf (b): 19945 wierzchołków i 56871 krawędzi.

Page 31: MSc Ants In The Graph

Rozdział 4

Wyniki symulacji oraz wnioski

4.1 Wyniki dla systemu statycznego

W tym podrozdziale zaprezentowano wyniki badań przetestowanych algorytmówjako 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żdegowykresu 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 orazRBAS (rysunki 4.1 i 4.2). Inaczej jest jednak dla algorytmu MMAS gdzie zbytduża liczba iteracji wraz z połączeniem ze zmienioną regułą aktualizacji feromonuzdaje się zaburzać „główny” ślad pomiędzy wierzchołkami. Widać tu, że powyżejpewnej 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 jestjego 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óryjest 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

Page 32: MSc Ants In The Graph

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 niejest 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ówekna 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)

510

1520

3040

5075100

2005 10 15 20 30 40 50 75 100 200

2000 2200 2400 2600 2800 3000 3200 3400 3600 3800

Bes

t cos

t

CAS best costs

Ants count

Iterations count

Bes

t cos

t

2000 2200 2400 2600 2800 3000 3200 3400 3600 3800

(b)

510

1520

3040

5075100

2005 10 15 20 30 40 50 75 100 200

0 2000 4000 6000 8000

10000 12000 14000 16000 18000

Dur

atio

n [m

s]

CAS tests durations

Ants count

Iterations count

Dur

atio

n [m

s]

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

Page 33: MSc Ants In The Graph

4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 25

(a)

510

1520

3040

5075100

2005 10 15 20 30 40 50 75 100 200

1800 2000 2200 2400 2600 2800 3000 3200 3400

Bes

t cos

t

RBAS best costs

Ants count

Iterations count

Bes

t cos

t

1800 2000 2200 2400 2600 2800 3000 3200 3400

(b)

510

1520

3040

5075100

2005 10 15 20 30 40 50 75 100 200

0 1000 2000 3000 4000 5000 6000 7000 8000 9000

10000

Dur

atio

n [m

s]

RBAS tests durations

Ants count

Iterations count

Dur

atio

n [m

s]

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

Page 34: MSc Ants In The Graph

26 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI

(a)

510

1520

3040

5075100

2005 10 15 20 30 40 50 75 100 200

1800 2000 2200 2400 2600 2800 3000 3200 3400 3600

Bes

t cos

t

MMAS best costs

Ants count

Iterations count

Bes

t cos

t

1800 2000 2200 2400 2600 2800 3000 3200 3400 3600

(b)

510

1520

3040

5075100

2005 10 15 20 30 40 50 75 100 200

0 2000 4000 6000 8000

10000 12000 14000 16000 18000

Dur

atio

n [m

s]

MMAS tests durations

Ants count

Iterations count

Dur

atio

n [m

s]

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

Page 35: MSc Ants In The Graph

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, tutajbowiem 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 MMASposiada najmniej wyraźny atraktor∗, którego brzegi są łagodne (rys. 4.4). W po-zostałych przypadkach, umiejscowienie punktu zbieżności jest bardziej wiadomei 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 alfya MMAS dla odmiany, wykazuje tendencję wzrostową razem z betą i odwrotno-ścią alfy (rys. 4.6).

0.10.2

0.30.50.75

12

357.5

100.1 0.2 0.3 0.5 0.75 1 2 3 5 7.5 10

1800

2000

2200

2400

2600

2800

3000

3200

Bes

t cos

t

CAS best costs

α

β

Bes

t cos

t

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ą trajektoriepunktów tej przestrzeni; pojęcie popularne w teorii chaosu.

Page 36: MSc Ants In The Graph

28 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI

0.10.2

0.30.50.75

12

357.5

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

Bes

t cos

t

RBAS best costs

α

β

Bes

t cos

t

1800 2000 2200 2400 2600 2800 3000 3200 3400 3600

Rysunek 4.5: Wyniki względem parametrów α i β dla RBAS.

0.10.2

0.30.50.75

12

357.5

100.1 0.2 0.3 0.5 0.75 1 2 3 5 7.5 10

1800

2000

2200

2400

2600

2800

3000

3200

Bes

t cos

t

MMAS best costs

α

β

Bes

t cos

t

1800

2000

2200

2400

2600

2800

3000

3200

Rysunek 4.6: Wyniki względem parametrów α i β dla MMAS.

Page 37: MSc Ants In The Graph

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żejwartości 0, 5, tym lepsze wyniki uzyskamy, ale jak widać nie gwarantuje to za-wsze dobrego rozwiązania. Trochę lepiej sytuacja przedstawia się gdy spojrzymyna wyniki algorytmu CAS (rys. 4.7). Tutaj widać dwa wyraźne skupiska wartościatrakcyjniejszych 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ścikosztu są zauważalnie lepsze od innych. Z wykresu wynika, że granica ta znajdujesię blisko wartości 0, 2.

0.010.02

0.030.050.075

0.10.2

0.30.5

1 2 3 4 5 6 7 8 9 10

2100

2200

2300

2400

2500

2600

2700

2800

Bes

t cos

t

CAS best costs

ρ

Test number

Bes

t cos

t

2100

2200

2300

2400

2500

2600

2700

2800

Rysunek 4.7: Wyniki względem parametru ρ dla CAS.

Page 38: MSc Ants In The Graph

30 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI

0.010.02

0.030.050.075

0.10.2

0.30.5

1 2 3 4 5 6 7 8 9 10

1800 1900 2000 2100 2200 2300 2400 2500 2600 2700

Bes

t cos

t

RBAS best costs

ρ

Test number

Bes

t cos

t

1800 1900 2000 2100 2200 2300 2400 2500 2600 2700

Rysunek 4.8: Wyniki względem parametru ρ dla RBAS.

0.010.02

0.030.050.075

0.10.2

0.30.5

1 2 3 4 5 6 7 8 9 10

1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900

Bes

t cos

t

MMAS best costs

ρ

Test number

Bes

t cos

t

1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900

Rysunek 4.9: Wyniki względem parametru ρ dla MMAS.

Page 39: MSc Ants In The Graph

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

23

45

67

8910

1 2 3 4 5 6 7 8 9 10

1800

1900

2000

2100

2200

2300

2400

2500

Bes

t cos

t

RBAS best costs

W

Test number

Bes

t cos

t

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 dlaalgorytmu MMAS można się dopatrywać prawdopodobnej granicy w okolicachpunktu 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 bardziejobiecujących wyników wraz z ich otoczeniem, to autor zdecydował się ustalić tenparametr właśnie na taką liczbę.

Page 40: MSc Ants In The Graph

32 ROZDZIAŁ 4. WYNIKI SYMULACJI ORAZ WNIOSKI

12

510

2050100

2005001000

2000500010000

1 2 3 4 5 6 7 8 9 10

1800

1900

2000

2100

2200

2300

2400

Bes

t cos

t

RBAS best costs

e

Test number

Bes

t cos

t

1800

1900

2000

2100

2200

2300

2400

Rysunek 4.11: Wyniki względem parametru e dla RBAS.

12

510

2050100

2005001000

2000500010000

1 2 3 4 5 6 7 8 9 10

2000 2050 2100 2150 2200 2250 2300 2350 2400 2450 2500

Bes

t cos

t

MMAS best costs

e

Test number

Bes

t cos

t

2000 2050 2100 2150 2200 2250 2300 2350 2400 2450 2500

Rysunek 4.12: Wyniki względem parametru e dla MMAS.

Page 41: MSc Ants In The Graph

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

Page 42: MSc Ants In The Graph

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 prawdatrend 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 jedenmniejszy 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ącwartości 1 i dlatego to ją wybrano.

12

510

2050100

2005001000

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

Bes

t cos

t

CAS best costs

Q

Test number

Bes

t cos

t

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 RBASjedyną rzecz, która widać na pierwszy raz, to totalna rozbieżność minimów, którezdają 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

Page 43: MSc Ants In The Graph

4.1. WYNIKI DLA SYSTEMU STATYCZNEGO 35

0.10.2

0.51

2510

2050100

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

2000 2100 2200 2300 2400 2500 2600 2700 2800

Bes

t cos

t

CAS best costs

τ0

Test number

Bes

t cos

t

2000 2100 2200 2300 2400 2500 2600 2700 2800

Rysunek 4.15: Wyniki względem parametru τ0 dla CAS.

0.10.2

0.51

2510

2050100

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

1800

1900

2000

2100

2200

2300

2400

Bes

t cos

t

RBAS best costs

τ0

Test number

Bes

t cos

t

1800

1900

2000

2100

2200

2300

2400

Rysunek 4.16: Wyniki względem parametru τ0 dla RBAS.

Page 44: MSc Ants In The Graph

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

AlgorytmCAS RBAS MMAS

α 2 1 1β 1 0, 3 0, 1ρ 0, 2 0, 5 0, 2W — 2 —e — 500 5000τmin — — 5000τmax — — 10000Q 1 — —τ0 0, 5 10 —

Potwierdza się, że dla wielu algorytmów klasy mrówkowej czynnik alfa możebyć 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) — sugerujeto 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.

Page 45: MSc Ants In The Graph

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

(a)

0

1000

2000

3000

4000

5000

6000

7000

8000

0 100 200 300 400 500 600 700 800 900 1000

Cos

ts

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

Dur

atio

n [m

s]

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.

Page 46: MSc Ants In The Graph

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

Cos

ts

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

Dur

atio

n [m

s]

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.

Page 47: MSc Ants In The Graph

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

Cos

ts

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

Dur

atio

n [m

s]

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.

Page 48: MSc Ants In The Graph

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

Cos

ts

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

Dur

atio

n [m

s]

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.

Page 49: MSc Ants In The Graph

4.2. WYNIKI DLA SYSTEMU ZMIENIAJĄCEGO SIĘ DYNAMICZNIE 41

Jak widać, każdy z badanych algorytmów oscylował swoimi osiągami kosztówblisko minimum wytyczanego przez „Dijkstrę”. Największy rozrzut prezentujealgorytm RBAS co oznacza, że jako kandydat jest dobry w próbowaniu nowychrozwiązań. Także tutaj, pokazał swoją wyższość czasową nad CAS oraz MMAS.Piki występujące na wszystkich wykresach czasowych (rysunki (b)) spowodowanesą opóźnieniami aplikacji przez okresowe inne działania sprawdzające graf i nienależ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 dlaalgorytmów mrówkowych były konsekwencją tego, że w danych momentach, niebył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ąpieniatakich 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 2211CAS 2928, 22 19814RBAS 2928, 22 3225MMAS 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 2839CAS 8114, 53 37284RBAS 53864, 63 28194MMAS 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ę tutajna wyniki znacznie gorsze. Widać też, że RBAS okazuje się najlepszy czasowoco jest potwierdzeniem wyników z sekcji dostrajania parametrów.Autor testował jeszcze inne, większe liczby mrówek oraz iteracji. Niestety, były

Page 50: MSc Ants In The Graph

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ówkipokazują 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ówi 161121 krawędzi, odmiana RBAS odnalazła rozwiązanie o koszcie 43021, 16 w 12sekund, 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 razylepsze, ale czasem nie może dorównywać mocy algorytmom mrówkowym. Oczy-wiście im większy graf, tym wyniki dla algorytmu Dijkstry albo jakiegokolwiekinnego 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.

Page 51: MSc Ants In The Graph

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 zawszeznajdzie 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ę algorytmRBAS. 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 kilkusettysięcy wierzchołków. Nie jesteśmy jednak pewni, że przekroczenie tej barieryzmieni w jakiś cudowny sposób wyniki badanych algorytmów. Możemy jedyniebyć pewni z dużą dozą prawdopodobieństwa, że odnajdziemy połączenie o wieleszybciej. 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 jakorównoległych procesów, a prawdopodobnie, oddziaływałoby to na korzyść rodzinyAS. 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 trzyalgorytmy, z czego pierwszy praktycznie jako ciekawostkę. Nie podjęto się tutajimplementacji i sprawdzenia, np. EAS, ACS, DAS, ANT-Q, nowszych odmianMMAS, ANTS (zaproponowanych przez Vittorio Maniezzo w 1999r.), czy np.Hyper-cube AS z roku 2004. Poza tym, trzeba mieć świadomość, że jest to ciąglerozwijana gałąź.Podsumowując dyskusję, autor uważa za raczej egzotyczne zastosowanie prze-

badanych przez niego algorytmów do problemów trasowania, jeżeli nie mamyogromnego grafu (> 100000 wierzchołków) z dużą liczbą połączeń. Po drugie, nienależy się spodziewać niskiego kosztu znalezienia takiego połączenia. Owszem,dla ogromnych sieci jak, np. internet, sukcesem może być sam kontakt w gąszczukabli i fal, ale nie oszukujmy się, dla potrzeb które nie wymagają takiej infra-struktury można z powodzeniem stosować jeszcze algorytmy klasyczne. Autorsugeruje wykorzystanie algorytmów mrówkowych w sztucznej inteligencji raczeji wszędzie tam, gdzie pożądana jest losowość. Tutaj jednak nie zależy nam takbardzo na tej cesze, dlatego autor zaleca pewną dawkę sceptycyzmu jeżeli chodzio próby z wykorzystaniem CAS, RBAS, czy MMAS do tego tematu.

Page 52: MSc Ants In The Graph
Page 53: MSc Ants In The Graph

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ówprzetwarzanych 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 doalgorytmó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 Instituteof Technology, London, 2004. [cytowanie na str. 11, 13, 16]

[8] Kenneth A. Ross and Charles R.B. Wright, Matematyka dyskretna, WydawnictwoNaukowe PWN, Warszawa, 2005. [cytowanie na str. 8, 9]

45

Page 54: MSc Ants In The Graph
Page 55: MSc Ants In The Graph

Dodatki

47

Page 56: MSc Ants In The Graph
Page 57: MSc Ants In The Graph

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. 3AS Ant-system str. 9CAS Cycle AS str. 11DAS Density AS str. 11EAS Elitist AS str. 14QAS Quantity AS str. 11RBAS Rank-based AS str. 13MMAS Min-Max AS str. 9

49

Page 58: MSc Ants In The Graph

Spis rysunków

2.1 Graf prosty oraz skierowany . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Niektóre z możliwych ścieżek . . . . . . . . . . . . . . . . . . . . . . . 13

3.1 Okno główne programu . . . . . . . . . . . . . . . . . . . . . . . . . . 203.2 Miniatura grafu testowego (statyczny) . . . . . . . . . . . . . . . . . . 213.3 Miniatury dużych grafów testowych (dynamiczny) . . . . . . . . . . . 22

4.1 Porównanie kosztów (mrówki/iteracje) CAS . . . . . . . . . . . . . . . 244.2 Porównanie kosztów (mrówki/iteracje) RBAS . . . . . . . . . . . . . . 254.3 Porównanie kosztów (mrówki/iteracje) MMAS . . . . . . . . . . . . . 264.4 Porównanie kosztów (α/β) CAS . . . . . . . . . . . . . . . . . . . . . 274.5 Porównanie kosztów (α/β) RBAS . . . . . . . . . . . . . . . . . . . . 284.6 Porównanie kosztów (α/β) MMAS . . . . . . . . . . . . . . . . . . . . 284.7 Porównanie kosztów (τ) CAS . . . . . . . . . . . . . . . . . . . . . . . 294.8 Porównanie kosztów (τ) RBAS . . . . . . . . . . . . . . . . . . . . . . 304.9 Porównanie kosztów (τ) MMAS . . . . . . . . . . . . . . . . . . . . . . 304.10 Porównanie kosztów (W ) . . . . . . . . . . . . . . . . . . . . . . . . . 314.11 Porównanie kosztów (e) RBAS . . . . . . . . . . . . . . . . . . . . . . 324.12 Porównanie kosztów (e) MMAS . . . . . . . . . . . . . . . . . . . . . . 324.13 Porównanie kosztów (τmin/τmax) . . . . . . . . . . . . . . . . . . . . . 334.14 Porównanie kosztów (Q) . . . . . . . . . . . . . . . . . . . . . . . . . . 344.15 Porównanie kosztów (τ0) CAS . . . . . . . . . . . . . . . . . . . . . . . 354.16 Porównanie kosztów (τ0) RBAS . . . . . . . . . . . . . . . . . . . . . . 354.17 Porównanie (system dynamiczny) algorytmu Dijkstry . . . . . . . . . 374.18 Porównanie (system dynamiczny) CAS . . . . . . . . . . . . . . . . . . 384.19 Porównanie (system dynamiczny) RBAS . . . . . . . . . . . . . . . . . 394.20 Porównanie (system dynamiczny) MMAS . . . . . . . . . . . . . . . . 40

50

Page 59: MSc Ants In The Graph

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. . . 364.2 Wyniki algorytmów dla grafów dużych (graf (a) z rysunku 3.3). . . . 414.3 Wyniki algorytmów dla grafów dużych (graf (b) z rysunku 3.3). . . . 41

51