Zastosowanie algorytmów mrówkowych do rozwiązywania problemu komiwojażera

Podobne dokumenty
Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

Algorytmy mrówkowe. P. Oleksyk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Algorytmy genetyczne

Systemy mrówkowe. Opracowali: Dawid Strucker, Konrad Baranowski

Algorytm genetyczny (genetic algorithm)-

Algorytmy Mrówkowe. Daniel Błaszkiewicz. 11 maja Instytut Informatyki Uniwersytetu Wrocławskiego

Maciej Piotr Jankowski

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

Statystyka i opracowanie danych Podstawy wnioskowania statystycznego. Prawo wielkich liczb. Centralne twierdzenie graniczne. Estymacja i estymatory

1. Opis okna podstawowego programu TPrezenter.

TEORETYCZNE PODSTAWY INFORMATYKI

Problem komiwojażera ACO. Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym.

Droga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykład 4. Droga i cykl Eulera i Hamiltona

Spacery losowe generowanie realizacji procesu losowego

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

Algorytmy mrówkowe (ang. Ant Colony Optimization)

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

Wykład 4. Droga i cykl Eulera i Hamiltona

Problem Komiwojażera - algorytmy metaheurystyczne

Metody przeszukiwania

Wprowadzenie do analizy dyskryminacyjnej

Instrukcja obsługi programu Do-Exp

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce)

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

STATYSTYKA MATEMATYCZNA

Metody Programowania

I. Program II. Opis głównych funkcji programu... 19

1. Instalacja Programu

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Instrukcja obsługi SafeIT - modułu zdalnego sterowania do sterowników kotłów CO firmy Foster v1.0

Rozkład materiału nauczania

Produkcja by CTI. Proces instalacji, ważne informacje oraz konfiguracja

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

Pokaz slajdów na stronie internetowej

Rozkład materiału nauczania

1. Opis. 2. Wymagania sprzętowe:

Programator Kart Master - klient

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Diagnostyka pamięci RAM

Dokąd on zmierza? Przemieszczenie i prędkość jako wektory

Technologia informacyjna Algorytm Janusz Uriasz

S P I S T R E Ś C I. Instrukcja obsługi

Optymalizacja ciągła

Systemy uczące się Lab 4

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

INSTRUKCJA OBSŁUGI microplc STEROWNIK INKUBATORA ver: F1.0

Program dla praktyki lekarskiej

Przewodnik użytkownika (instrukcja) AutoMagicTest

WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu

Rys Wykres kosztów skrócenia pojedynczej czynności. k 2. Δk 2. k 1 pp. Δk 1 T M T B T A

Ruch jednostajnie przyspieszony wyznaczenie przyspieszenia

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce)

Komputery I (2) Panel sterowania:

Sposoby prezentacji problemów w statystyce

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY III

Spis treści. 1 Moduł RFID (APA) 3

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

Funkcja liniowa - podsumowanie

Porównywanie populacji

Mikroekonometria 5. Mikołaj Czajkowski Wiktor Budziński

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym IAI-Shop (plugin dostępny w wersji ecommerce)

8. Neuron z ciągłą funkcją aktywacji.

Algorytmy sztucznej inteligencji

e-sprawdzian instrukcja programu do sprawdzania wiedzy ucznia przy pomocy komputera (WINDOWS & LINUX)

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, Bielsko-Biała

1. FUNKCJE DZIAŁ Z PODRĘCZNIKA L.P. NaCoBeZu kryteria sukcesu w języku ucznia

I. Liczby i działania

Jak przygotować pliki gotowe do publikacji w sieci za pomocą DigitLabu?

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY MATEMATYKA KLASA 8 DZIAŁ 1. LICZBY I DZIAŁANIA

Szkice rozwiązań z R:

Metoda Karnaugh. B A BC A

Instrukcja obsługi programu SWWS autorstwa Michała Krzemińskiego

Testy nieparametryczne

Definicje. Algorytm to:

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

LABORATORIUM 3. Jeśli p α, to hipotezę zerową odrzucamy Jeśli p > α, to nie mamy podstaw do odrzucenia hipotezy zerowej

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań

Podręcznik użytkownika Obieg dokumentów

ROZKŁAD MATERIAŁU NAUCZANIA KLASA 1, ZAKRES PODSTAWOWY

Wyszukiwanie plików w systemie Windows

Wykład 3: Prezentacja danych statystycznych

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Shoper (plugin dostępny w wersji ecommerce)

Rozdział II. Praca z systemem operacyjnym

Opis programu:

pojawianie się na drodze - z prawdopodobieństwem alf a nowe auto pojawia się na początku ulicy z pewną prędkością początkową

Wymagania edukacyjne z matematyki

Wymagania na poszczególne oceny szkolne dla klasy VI. (na podstawie Grażyny Koba, Teraz bajty. Informatyka dla szkoły podstawowej.

Techniki optymalizacji

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:

5.4. Tworzymy formularze

emszmal 3: Automatyczne księgowanie przelewów w menadżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

Rozdział 1 PROGRAMOWANIE LINIOWE

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Transkrypt:

1 1. Wstęp... 2 2. Podstawowe pojęcia... 3 2.1. Sztuczna inteligencja... 3 2.2. Systemy mrówkowe... 4 2.3. Problem komiwojażera... 7 3. Algorytm rozwiązania problemu komiwojażera... 9 3.1. Zakres opracowania... 9 3.2. Algorytm mrówkowy... 9 3.3. Algorytm włączania... 12 4. Program... 14 4.1. Interfejs programu... 14 4.2. Obsługa programu... 16 4.2.1. Funkcje podstawowe... 16 4.2.2. Funkcje konfiguracyjne... 17 4.2.3. Opcje dodatkowe... 19 4.3. Uruchomienie programu... 19 4.4. Możliwości... 21 4.5. Ograniczenia... 21 5. Testy porównawcze... 22 5.1. Wpływ ilości zostawianego feromonu na algorytmy mrówkowe... 22 5.2. Wpływ tempa odparowania feromonu... 26 5.3. Znaczenie ilości feromonu i widoczności miast... 30 5.4. Wpływ wielkości populacji... 34 5.5. Wpływ liczby iteracji... 39 5.6. Wpływ ilości miast na czas działania algorytmów... 43 5.7. Podsumowanie algorytmów... 47 6. Wnioski... 51 Bibliografia:... 53 Załącznik 1 - Biblioteka TSPLIB95... 54 Załącznik 2 Schematy blokowe... 55

2 1. Wstęp Cogito ergo sum (tłum. Myślę więc jestem ) jak powiedział Kartezjusz. Myślenie zawsze było rzeczą ludzką. Jednak wraz z rozwojem technik cyfrowych coraz więcej osób stara się poznać zasady pojmowania i stworzyć maszynę, która podobnie jak człowiek, będzie w stanie podejmować inteligentne decyzje w nowych sytuacjach. Na dzień dzisiejszy sztuczna inteligencja nie stoi jeszcze na zbyt wysokim poziomie (w porównaniu do istot inteligentnych), ale jak każda pionierska dziedzina musi pokonać początkowe trudności, a jej rozwój, mimo że nieznaczny, to jednak ciągle jest wyraźny. Nauka o sztucznym umyśle stara się, na dzień dzisiejszy, rozwiązywać małe problemy, tworząc duże budowle z małych klocków tak, aby może kiedyś w przyszłości wyciągnąć z nich odpowiednie wnioski lub połączyć w kolejny, jeszcze większy model. Takim klockiem niewątpliwie jest dział sztucznej inteligencji zajmujący się algorytmami mrówkowymi. Algorytmami, które swój początek wzięły z obserwacji przyrody i reguł jakie rządzą owadami kolonialnymi. Algorytmy mrówkowe mogą posłużyć do rozwiązywania najróżniejszych problemów. Jednym ze sztandarowych zastosowań może być problem komiwojażera, czyli kogoś, kto ma za zadanie znaleźć najkrótszą marszrutę. Praca ta ma na celu porównanie różnych odmian algorytmu mrówkowego oraz innych algorytmów rozwiązujących problem komiwojażera. Wszystkie próby i porównania zostały przeprowadzone na aplikacji wykorzystującej kilka różnych algorytmów, w tym trzy odmiany algorytmu mrówkowego. W przedstawionej pracy znajdują się w rozdziale 2 podstawowe pojęcia z zakresu sztucznej inteligencji i problemu komiwojażera. Rozdział 3 przybliża problem komiwojażera oraz algorytmy, za pomocą których można ten problem rozwiązać. W rozdziale 4 znajduje się dokładny opis działania programu, rozwiązującego problem komiwojażera za pomocą algorytmów mrówkowych, algorytmu włączania oraz algorytmu losowego. Wyniki doświadczeń wraz z komentarzem znajdują się w rozdziale 5. Rozdział 6 zawiera końcowe wnioski z przeprowadzonych badań.

3 2. Podstawowe pojęcia Do podstawowych pojęć potrzebnych do lepszego zrozumienia problemu, zaliczymy przede wszystkim pojęcie sztucznej inteligencji, definicję algorytmu mrówkowego wraz z jego kilkoma wybranymi typami, jak i zagadnienie problemu komiwojażera. 2.1. Sztuczna inteligencja Dla poprawnego zrozumienia pojęcia sztucznej inteligencji, należy najpierw wyjaśnić, co to takiego jest inteligencja. Inteligencję można zdefiniować na wiele różnych sposobów. Nie istnieje jedna, lepsza, bardziej trafna definicja, którą można się posłużyć, a każdy może przedstawić swoją własną, będącą równie dobrą, co wszystkie pozostałe. Oto kilka przykładów: Inteligencja jest to pewna cecha umysłu, która odpowiada za sprawność w zakresie myślenia i rozwiązywania problemów. Poziom inteligencji zależy od poprawności rozumienia, skuteczności poszukiwania poprawnych rozwiązań problemów oraz sprawności działania w sytuacjach nowych czy nieznanych [4]. Z punktu widzenia biologicznego możemy powiedzieć, że inteligencja jest to obserwowana w warunkach naturalnych lub eksperymentalnych zdolność niektórych zwierząt do szybkiego znalezienia najtrafniejszego postępowania w nowej, nieznanej sytuacji [4]. Istnieje również inna, bardziej ukierunkowana na człowieka definicja inteligencji, która mówi, że inteligencja to zdolność dostosowania się naszego umysłu do zaistniałej sytuacji, a stopień inteligencji zależny jest od czasu jakiego potrzebował nasz umysł aby się do niej dostosować[1i]. Chcąc określić sztuczną inteligencję napotkamy podobna sytuację, jaka miała miejsce powyżej wiele różnych i jednocześnie poprawnych definicji.

4 Sztuczna inteligencja (ang. Artificial Intelligence dalej AI), jest działem informatyki, i jej głównym celem jest badanie reguł rządzących inteligentnymi zachowaniami, tworzenie ich modeli, a przede wszystkim tworzenie systemów komputerowych symulujących te zachowania [4]. Według jednej z encyklopedii sztuczna inteligencja to technologia i kierunek badań informatycznych i psychologicznych. Jej zadaniem jest "konstruowanie maszyn, o których działaniu dałoby się powiedzieć, że są podobne do ludzkich przejawów inteligencji", jak to zostało zdefiniowane przez Johna McCarthy'ego, który w 1955 r. zaproponował ten termin [2i]. Programy komputerowe powstałe na modelach wywodzących się z systemów inteligentnych mają bardzo szeroki zakres zastosowania, począwszy od na przykład rozpoznawania kształtów, poprzez prowadzenie różnego typu gier, do dowodzenia twierdzeń lub komponowania muzyki. Programy te można stosować praktycznie w każdej dziedzinie, w której istnieje potrzeba przeanalizowania pewnego problemu i wymagane jest dostarczenie odpowiedzi szybko i w sposób zautomatyzowany. Sztuczna inteligencja ma również pewne cele. Na dzień dzisiejszy wydaje się, że szczytem, jaki należałoby osiągnąć w rozwijaniu metod AI, byłaby maszyna dorównująca inteligencją człowiekowi, ale że przyszłość jest niewiadomą, prawdopodobnie, jak zwykle, uda jej się nas zaskoczyć. 2.2. Systemy mrówkowe W trakcie ewolucji sztucznej inteligencji powstało wiele algorytmów, które wykorzystując pewne reguły odnajdują rozwiązanie problemu. Możemy do nich zaliczyć algorytmy genetyczne, sieci neuronowe i oczywiście systemy mrówkowe. Algorytmy czy też systemy mrówkowe, powstały między innymi w wyniku obserwowania przyrody i zrozumienia zasady działania owadów społecznych. Owady społeczne (takie jak mrówki, pszczoły czy termity) mają kilka cech, pozwalających na łatwiejsze oprogramowanie ich zachowań. Do najważniejszych należy prostota pojmowania świata przez pojedynczego osobnika. Osobnik nie skupia się na całym problemie on nawet nie musi wiedzieć o jego istnieniu. Nadorganizm, tworzony przez

5 całą populację, ma za zadanie rozwiązanie problemu, a do rozwiązania wykorzystuje wszelkie zajścia społeczne występujące pomiędzy jednostkami [1]. Tak więc mamy nadorganizm, składający się z prostych, nieinteligentnych osobników, przekazujących sobie pewne informacje i reagujących w sposób przypadkowy na bodźce zewnętrzne. W ten sposób powstaje skomplikowany system zależności zrodzony na skutek przypadkowych zajść, ale dążący do rozwiązania pewnego trudnego problemu, którego rozwiązanie przez jeden organizm byłoby niemożliwe [1]. a) b) c) Rys. 1 Reakcja koloni mrówek na pojawienie się przeszkody Pojedyncze organizmy, nazwijmy je mrówkami, mają możliwość porozumiewania się. Nie jest to oczywiście metoda porozumiewania zbliżona do jakiegoś konkretnego typu wymieniania się informacjami. Mrówki podążając po jakimś terenie pozostawiają za sobą ślad zapachowy - tak zwany feromon. Taki ślad wyczuwany jest przez inne mrówki, które podążając za tym śladem wzmacniają go, lub w wypadku wybrania innej drogi wędrówki zostawiają ślad dający kolejnym mrówkom większą szansę na wybór alternatywnego rozwiązania. Kolejne mrówki mają już więcej możliwości, ale zawsze każda z mrówek może wybrać trasę jeszcze nieuczęszczaną w ten sposób w każdej

6 chwili istnieje możliwość rozwiązania problemu w sposób jeszcze nieznany dla populacji [1]. Rzeczywiste mrówki po znalezieniu źródła pożywienia wytyczają po pewnym czasie błądzenia najkrótszą trasę pomiędzy mrowiskiem, a tym źródłem (Rys. 1 a). Ilość feromonu na trasie staje się tak duża, że praktycznie żadna z mrówek nie zbacza z trasy wytyczonej przez całą kolonię. Jednak pojawienie się przeszkody na trasie wymaga od mrówek wytyczenia nowej trasy (Rys. 1 b). W początkowym etapie prawdopodobieństwo, że mrówki wybiorą którekolwiek z rozwiązań jest jednakowe. Na tym etapie mrówki, które przypadkiem wybrały krótszą trasę zostawiły więcej śladu zapachowego (mniej feromonu zdążyło odparować). Następne mrówki z większym prawdopodobieństwem wybiorą krótszą drogę, tym samym wzmacniając feromon. Następuje tutaj zjawisko dodatniego sprzężenia zwrotnego, które w efekcie pozwala mrówkom (nieświadomie dla nich samych) na znalezienie najbardziej optymalnego rozwiązania (Rys. 3 c) [1]. Podstawową różnicą pomiędzy stosowanymi w symulacjach sztucznymi mrówkami, a ich naturalnymi odpowiednikami będzie to, że sztuczne mrówki zostaną obarczone pamięcią, nie będą ślepe (potrafią oceniać odległości), a upływ czasu nie będzie miał relatywnego wpływu na zachowanie mrówek czy tempo odparowywania feromonu. Systemy mrówkowe można zastosować w wielu dziedzinach informatyki oraz życia codziennego. Krishnan Krishnaiyer i S. Hossein Cheraghi w artykule Ant Algorithms: Review and Future Applications przedstawiają kilka takich zastosowań [3]: Szkolenie kierowców autobusów (autor: Forsyth P. i Wren A, 1997), Planowanie przestrzenne (autor: Bland J.A, 1999), Grafika (autor: Tzafestas E.S.,2000), Sieci Peer2Peer (autor: Baboglu O. Meling, H. Montresor A., 2001), Problem lokalizacji przystanków autobusowych (autor: Jong, de J and Wiering, M., 2001), Optymalizacja bioreaktorów (autor: Jayaraman, V.K., Kulkarni, B.D. i Gupta, K., 2001 ).

7 2.3. Problem komiwojażera Problem komiwojażera jest przykładem problemu optymalizacji kombinatoryjnej. Najbardziej podstawowa wersja tego problemu zakłada, że komiwojażer (ktoś planujący marszrutę) ma za zadanie znaleźć najkrótszą drogę od pewnego miasta startowego poprzez n miast i następnie powrócić do miasta startowego, rys. 2. Gdańsk 304 341 Poznań 486 584 Warszawa 304 280 403 341 299 Wrocław 304 Kraków Rys. 2 Graf ważony o wierzchołkach odpowiadających pięciu miastom polskim [3i] Istnieje wiele odmian tego problemu. Do jednej z nich zaliczamy problem, w którym koszt, czy też wagi połączeń, nie muszą być jednakowe w obu kierunkach. Gdy wagi nie są symetryczne problem nosi nazwę asymetrycznego problemu komiwojażera. Problem komiwojażera występuje w wielu aspektach życia codziennego, jak na przykład zaplanowanie wycieczki rodzinnej z odwiedzeniem konkretnych atrakcji turystycznych, po mniej banalne problemy jak obsługa ramienia robota nitującego [6] lub umieszczającego mikroukłady na płytkach drukowanych. W takich przypadkach kluczowe znaczenie ma koszt (czas i energia potrzebna na wykonanie wszystkich ruchów), jak i prosty i niekosztowny cykl przeprogramowania maszyny dla innych układów miast. Również popularny ostatnio rynek rozrywki komputerowej stawia coraz większy nacisk na podnoszenie poziomu sztucznej inteligencji dla przeciwników komputerowych, gdzie problem komiwojażera (na przykład przeprowadzenie postaci przez lokacje) również często występuje, a czas wykonania całej operacji powinien być jak najbardziej skrócony, przy jednoczesnym zachowaniu wystarczająco dobrego rozwiązania.

8 O rozwiązaniu problemu komiwojażera mówimy jako o problemie NP trudnym. Oznacza to, że ilość obliczeń potrzebna do rozwiązania rośnie w miarę zwiększania liczby miast n. Często przeszukanie całego drzewa stanów dla większej liczby miast byłoby tak czasochłonne, że w praktyce niemożliwe do wykonania. Dla lepszego przedstawienia wzrostu ilości rozwiązań możemy posłużyć się dwoma przykładami: dla 10 i 20 miast. W problemie zawierającym 10 miast ilość rozwiązań wynosi: 9!/2, co jest równe 181.400 rozwiązań. Natomiast dla problemu 20 miast ilość rozwiązań wynosi 19!/2, co jest równe 60.822.550.204.416.000. Na tym prostym przykładzie widać, że zwiększenie liczby miast z 10 do 20 spowodowało olbrzymi wzrost ilości możliwych rozwiązań. Przeszukanie wszystkich możliwych rozwiązań dla problemu 20 czy 30 miast mogłoby zająć na komputerach klasy PC wiele dni, jeśli nie tygodni. Każdy bardziej skomplikowany problem znalazłby się poza mocą obliczeniową nawet najszybszego komputera. Pomocą przy przeszukiwaniu są heurystyki czyli metody wykluczające pewne mniej obiecujące rozwiązania i znajdujące rozwiązania suboptymalne czyli wystarczająco dobre, by można je zaakceptować. Właśnie podczas rozwiązywania problemu komiwojażera posłużymy się metodami heurystycznymi.

9 3. Algorytm rozwiązania problemu komiwojażera W celu rozwiązania problemu komiwojażera, w pracy posłużono się dwoma różnymi algorytmami: algorytmem mrówkowym oraz algorytmem włączania (w celu porównania). 3.1. Zakres opracowania Problem komiwojażera zawężono do miast rozmieszczonych w układzie kartezjańskim, co w praktyce oznacza, że każdemu miastu zostaną przyporządkowane dwie współrzędne: x oraz y. Przyjęto też założenie, że pomiędzy miastami nie występują połączenia (drogi) i z każdego miasta można udać się do każdego innego miasta nie przechodząc przez żadne inne miasto. Ilość miast oraz wszystkie zmienne, takie jak ilość iteracji (liczba przejść całej populacji mrówek) czy wielkość populacji (ilość mrówek w kolonii), są całkowicie dowolne i mogą być dobrane przez użytkownika według uznania. Wynikiem jest całkowita droga jaką mrówka pokona idąc od miasta początkowego, przez wszystkie miasta pozostałe, z powrotem do miasta, z którego rozpoczęła wędrówkę. 3.2. Algorytm mrówkowy Problem komiwojażera jest dany poprzez graf ważony (N, E), gdzie N jest zbiorem miast, a E jest zbiorem łuków pomiędzy tymi miastami [1]. Każda z mrówek w populacji posiada następujące właściwości Pozostawia ślad zapachowy (feromon) na krawędzi pomiędzy miastami. Wybór kolejnego z miast przez mrówkę jest obliczany ze wzoru (1) przy pomocy prawdopodobieństwa, będącego funkcją ilości feromonu zostawionego przez inne mrówki na krawędzi między miastami oraz odległości pomiędzy nimi.

10 Każda mrówka musi tylko raz odwiedzić każde miasto w jednym cyklu [1]. Dla każdej mrówki losowane jest miasto startowe i zarazem końcowe. Mrówka udając się do kolejnego miasta, musi wylosować miasto z pośród miast jeszcze nieodwiedzonych. Do tego celu używana jest tablica TABU, gdzie wpisane są już wszystkie przez nią odwiedzone miasta. Miasta z tablicy TABU nie są uwzględniane podczas losowania. Dla każdego z dozwolonych miast obliczane jest prawdopodobieństwo wyboru za pomocą wzoru: jeżeli j nie należy do tablicy TABU, (1) w innym przypadku, gdzie: i numer miasta, w którym mrówka znajduje się aktualnie, j numer miasta, dla którego obliczamy prawdopodobieństwo, p prawdopodobieństwo, η widoczność (odwrotność odległości) pomiędzy miastami, τ ślad feromonowy, α, β parametry względnej ważności pomiędzy śladem feromonu a widocznością. Gdy obliczone zostanie już prawdopodobieństwo wylosowania dla pozostałych miast, następuje właściwe losowanie. Daje to mrówce możliwość wybrania innej trasy niż jej poprzedniczki, przy czym zazwyczaj wybierze ona trasę najczęściej uczęszczaną. Mrówka po pokonaniu pewnej krawędzi pomiędzy miastami, zostawia pomiędzy nimi feromon. Istnieje kilka odmian algorytmu różniących się warunkiem pozostawienia feromonu. Omówimy trzy z nich: feromon stały, feromon cykliczny oraz zmodyfikowaną wersję feromonu cyklicznego - feromon cykliczny-elitarny. Feromon stały Jest to najprostsza wersja algorytmu. Zakłada, że każda mrówka zawsze zostawia ślad feromonowy. Nieuwzględniane są wyniki rozwiązania problemu.

11 Istnieje pewna odmiana tego rozwiązania, uzależniająca ilość pozostawianego feromonu na krawędzi od odległości pomiędzy miastami. Nosi ona nazwę feromon średni. Feromon cykliczny: Mrówki zostawiają feromon dopiero po przejściu całej trasy. Ilość feromonu obliczana jest ze wzoru: jeżeli k-ta mrówka wybierze krawędź (i,j) w swojej trasie, w innym przypadku, (2) gdzie Q 3 jest stałą, Lκ jest długością trasy k-tej mrówki, a τ ij to ilość dodawanego feromonu na krawędzi (i,j) [1]. Feromon cykliczny-elitarny: W tej wersji algorytmu mrówka która nie odnalazła najkrótszej trasy lub nie wybrała trasy aktualnie uznanej za najlepszą, nie zostawia feromonu. Natomiast mrówka, która odnalazła najkrótszą trasę lub wybrała trasę aktualnie uznawaną za najlepszą zostawia feromon oznacza to, że odległość pomiędzy miastami odbija się bezpośrednio na ilości pozostawianego feromonu. Im mniejsza odległość, tym więcej feromonu zostanie pozostawionego na tym odcinku. Pozwala to na dodatkowe wzmocnienie najkrótszych tras. Podobnie jak to ma miejsce w naturze, feromon pozostawiony przez mrówki nie znajduje się na krawędzi w nieskończoność. Cyklicznie, po przejściu całej populacji, następuje odparowanie feromonu. Stopień odparowania jest zmienną regulowaną przez użytkownika. Zmienna ta odzwierciedla procent feromonu jaki zostanie odparowany. Rozwiązanie takie wyklucza zbytnie kumulowanie się feromonu na krawędziach wykluczonych już z rozwiązania i pozwala bardziej wyeksponować najczęściej uczęszczane trasy. Określenie stopnia odparowania, ilości pozostawianego feromonu, jak i czas trwania całego cyklu są głównymi problemami przy dostrajaniu procesu. Trudnym

12 zadaniem jest określenie, czy ilość przejść całej populacji (liczba iteracji) powinna być uzależniona od faktu nie znalezienia korzystniejszego rozwiązania niż x iteracji wcześniej, czy powinna to być wartość z góry założona przez użytkownika. Podczas procesu testowania może się jednak okazać, że lepsza będzie ta druga metoda, gdyż umożliwi ona dokładniejsze przetestowanie skuteczności algorytmu. 3.3. Algorytm włączania Algorytm włączania [6], za pomocą którego rozwiązuje się problem komiwojażera, należy do rodziny algorytmów przybliżonych. Oznacza to, że nie następuje przeszukanie całego drzewa stanów, a wynik nie musi być optymalny. W początkowym etapie wybierane jest (losowane) dowolne miasto, po czym według jednego z kilku możliwych do zastosowania kryteriów, dobierane jest kolejne miasto (z pozostałych n-1) i włączane do cyklu. Tak więc, cały algorytm składa się z dwóch kroków: kroku wyboru gdzie określa się, które miasto będzie dołączane, kroku włączania gdzie określa się miejsce w cyklu, w którym zostanie umieszczone miasto. Istnieje wiele sposobów wyboru miasta, które zostanie wybrane w pierwszym z powyższych kroków. Do najprostszych należy zwykłe wylosowanie miasta z pośród miast jeszcze nieodwiedzonych, można posłużyć się również metodą włączania miasta, leżącego najbliżej lub najdalej cyklu. Każdy może tutaj zastosować własną metodę, ponieważ wszystkie mają swoje plusy jak i minusy i wybór miasta jest w tym wypadku po prostu kwestią pewnego kompromisu. W programie zastosowano heurystykę najdalszego wierzchołka, jako że została ona uznana za jedną z najbardziej skutecznych. Najdalszy wierzchołek zostaje określony w dwóch etapach. Pierwszy etap wyszukuje dla każdego miasta z tablicy TABU (miasta już odwiedzone) takie miasto, które nie znajdując się w tej tablicy (nie zostało odwiedzone) leży najbliżej i zapisuje je do tablicy najbliższych miast. Następnie z tej tablicy wyszukiwane jest to, które leży najdalej z pośród tych najbliższych. W ten sposób znajdywane jest to jedno miasto, leżące najdalej od cyklu.

13 Gdy wiadomo już, który wierzchołek zostanie dołączony do cyklu, następuje kolejny etap, czyli wybranie pozycji w cyklu. Zakładamy, że bieżący cykl zawiera k wierzchołków i następnym do włączenia jest wierzchołek f. Badamy łuk (i,j) cyklu i określamy koszt włączenia miasta f pomiędzy miasto i oraz j: C ij = ω if + ω fj - ω ij, (3) gdzie: ω xy - koszt pomiędzy miastami x oraz y, C ij całkowity koszt włączenia. Spośród wszystkich kosztów włączenia do cyklu wybierany jest ten najmniejszy i w tym miejscu umieszczone zostanie nowe miasto f. Uzupełniana jest tablica TABU i kontynuowania jest włączanie następnego miasta. Metoda ta pozwala na szybkie (tylko raz przechodzi cały cykl) określenie rozwiązania nawet dla dużej liczby miast. Wynik w pewnym sensie jest losowy, ponieważ pierwszy element cyklu wybierany jest w taki sposób. Przeprowadzane próby wykazały jednak, iż mimo że dwa rozwiązania mogą się różnić, to całkowity koszt zawsze jest zbliżony.

14 4. Program Podstawowym celem pracy było napisanie programu, który wykorzystując algorytmy mrówkowe, pozwoli na rozwiązanie problemu komiwojażera. Program miał przedstawić graficznie problem, jego rozwiązanie i pozwolić na przeprowadzanie testów porównawczych dla różnych konfiguracji algorytmu mrówkowego oraz dla innych algorytmów. Jak już to zostało wcześniej powiedziane algorytmem alternatywnym będzie algorytm włączania. 4.1. Interfejs programu Struktura graficzna aplikacji została ograniczona do jednego funkcjonalnego okna, na którym można obserwować rozmieszczenie miast w układzie kartezjańskim. W oknie 21 4 3 5 16 17 18 1 7 8 6 19 20 22 9 10 11 12 2 14 13 15 Rys. 3 Interfejs użytkownika

15 tym znajdują się przyciski do wszystkich funkcji sterujących pracą programu oraz dostrajające algorytm. Opis interfejsu: 1 miasto; punkt określony przez dokładne współrzędne, 2 pole, na którym mogą znajdować się miasta, 3 przycisk uruchamiający obliczanie trasy, 4 przycisk do generowania losowego miast, 5 przycisk wczytania miast z pliku zewnętrznego, 6 zapis współrzędnych aktualnie prezentowanych miast do pliku typu TSP [5], 7 zdeklarowana / wczytana liczba miast, 8 wielkość populacji mrówek, 9 ilość przejść koloni lub liczba losowań przy algorytmie losowym, 10 całkowita ilość feromonu pozostawiana przez mrówkę na całej trasie, 11 procent feromonu który odparowuje po przejściu całej populacji, 12 stosunek współczynników znaczenia feromonu i odległości pomiędzy miastami, 13 wybór algorytmu, 14 informacje na temat aktualnego działania programu, 15 pasek postępu, 16 wyjście z programu, 17 podgląd dotychczasowych przebiegów programu za pomocą Notatnika, 18 chwilowe wstrzymanie wykonywania obliczeń, 19 opcja wyświetlania numeracji miast, 20 zapis dodatkowych informacji do plików tymczasowych, 21 połączenie dwóch miast znalezione przez program, 22 połączenie dwóch miast wczytane z pliku zewnętrznego. Interfejs programu został zaprojektowany z myślą o prostym i wygodnym użytkowaniu. Ułożenie wszystkich opcji na głównym pulpicie wraz z oknem graficznej prezentacji działań programu, ma za zadanie ułatwić użytkownikowi obserwowanie

16 zależności pomiędzy ustawieniami a działaniem. Pozwala to też na szybsze orientowanie się w ustawieniach. 4.2. Obsługa programu 4.2.1. Funkcje podstawowe Podstawowe funkcje programu realizowane są za pomocą grupy przycisków (nr:3,4,5,6,16,17,18) umieszczonych w górnym prawym rogu programu. Przycisk nr 3 Start przycisk służy do uruchomienia wybranego algorytmu. Od momentu jego wywołania program zaczyna wykonywanie algorytmu z uwzględnieniem wszystkich parametrów (w tym współrzędnych miast). Zakończenie działania algorytmu może nastąpić samoczynnie lub poprzez wyłączenie programu. Przycisk pozostaje tak długo nieaktywny, jak długo nie zostaną wygenerowane (lub wczytane z pliku) miasta. Przycisk nr 4 Generuj jest to przycisk uruchamiający funkcję automatycznego losowego wygenerowania miast. Liczba wygenerowanych miast jest określona przez użytkownika w polu nr 7. Od tego momentu można uruchomić algorytm główny przyciskiem Start. Przycisk nr 5 Z pliku uruchamia funkcję pozwalającą na wczytanie współrzędnych miast z pliku zewnętrznego. Obsługiwane są tylko pliku typu TSP [5]. Wszystkie wczytywane współrzędne podlegają skalowaniu, przez co są równomiernie rozłożone na panelu. Przycisk nr 6 Zapis funkcja ta pozwala na zapisanie do pliku typu TSP współrzędnych miast aktualnie przedstawianych na panelu graficznym. Pozwala to na przywrócenie miast wcześniej wygenerowanych losowo. Funkcja pozwala także na zapisanie miast wczytanych z zewnętrznego pliku TSP.

17 Przycisk nr 16 Cancel przycisk wyjścia z programu. Pozwala na zakończenie pracy z programem (również podczas działania algorytmu). Przycisk nr 17 Notatnik program posiada automatyczną funkcję zapisu wyników swojego działania do pliku tekstowego out.txt, który zapisywany jest w katalogu z programem. Przycisk Notatnik pozwala na szybkie otwarcie tego pliku poprzez program wchodzący w skład systemu operacyjnego Windows Notatnik (notepad.exe). Pozwala to na podejrzenie wyników oraz towarzyszących im ustawień programu. Przycisk nr 18 Pauza ten przycisk jest aktywny tyko podczas wykonywania obliczeń przez program. Pozwala na chwilowe wstrzymanie wykonywania obliczeń. Gdy program znajduje się w stanie pauzy, można przywrócić go do wykonywania obliczeń lub zakończyć program. 4.2.2. Funkcje konfiguracyjne Są to wszystkie ustawienia pozwalające skonfigurować algorytm, dobrać liczbę miast oraz dokładność obliczeń. Pole nr 7 Ilość miast w tym polu podajemy liczbę miast dla jakiej chcemy przeprowadzać obliczenia. Liczba musi być całkowita i nie mniejsza niż 3. Domyślna wartość wynosi 10. Po ręcznym wprowadzeniu tej wartości należy ponownie wygenerować miasta. W przypadku wczytania miast z pliku, liczba automatycznie ustawiana jest na liczbę miast pobranych z pliku. Pole nr 8 Populacja w tym polu podawana jest liczba mrówek w jednej populacji. Liczba musi być całkowita i większa od 0. Pole jest uwzględniane tylko dla algorytmów mrówkowych przy pozostałych zostaje pomijane. Pole nr 9 Iteracje czyli ilość przejść całej populacji lub liczba prób dla algorytmu losowego. Liczba musi być całkowita i większa od 0. Iteracje to także wskaźnik stopnia zaawansowania algorytmu czego graficznym odpowiednikiem jest pasek postępu (nr 15). Można powiedzieć, że liczba iteracji odpowiada liczbie powtórzeń algorytmu.

18 Pole nr 10 Ilość feromonu jest to całkowita ilość feromonu pozostawionego przez jedną mrówkę na całej trasie. Ilość feromonu pozostawionego na konkretnym odcinku jest zależna od długości tego odcinka. Suma feromonu na wszystkich odcinkach dla jednej trasy pokonanej przez mrówkę jest zawsze taka sama od początku działania algorytmu i równa jest wartości podanej w tym polu. Liczba może przyjmować dowolną wartość nie większą niż 100 i nie mniejszą niż 0. Pole nr 11 Odparowanie feromonu jest to procentowa wartość feromonu jaki zostanie odparowany na końcu każdej iteracji. Takie rozwiązanie uniemożliwia całkowity zanik śladu, dlatego gdy ilość feromonu na odcinku spadnie poniżej 0,1 ślad jest zerowany. Liczba w tym polu nie może być mniejsza niż 0 i nie większa niż 100. Suwak nr 12 Znaczenie fer/dys suwak pozwala na regulowanie znaczenia jaki wywierają ślad feromonowy i odległość pomiędzy miastami na decyzje podejmowane przez mrówkę. Zastosowanie suwaka pozwala na zachowanie pewnych proporcji pomiędzy wartościami alfa (znaczenie feromonu) i beta (znaczenie dystansu). Alfa i beta mogą przyjmować wartości z przedziału od 0,1 do 3,9 z krokiem 0,1. Obie te wartości są od siebie zależne, a w ich właściwym ustawieniu pomaga suwak. Nie ma możliwości zmiany znaczeń inaczej niż poprzez przesuwanie suwaka. Pole wyboru nr 13 Algorytm to pole określa jakim algorytmem chcemy się posłużyć przy rozwiązywaniu problemu komiwojażera. Użytkownik ma do wyboru: Algorytm mrówkowy z feromonem cyklicznym-elitarnym, Algorytm mrówkowy z feromonem cyklicznym, Algorytm mrówkowy z feromonem stałym, Algorytm losowy, Algorytm włączania. Domyślnym wyborem jest pierwszy z tych algorytmów. Różne algorytmy wymagają różnych parametrów z konfiguracji. Aby pomóc użytkownikowi w określeniu, która funkcja wymagana jest przez który algorytm, następuje zmiana koloru etykiet pól niewymaganych przez dany algorytm. Zmiana algorytmu nie pociąga za sobą

19 konieczności wczytania nowych miast. Pozwala to na przeprowadzenie eksperymentów z różnymi algorytmami na tych samych miastach. 4.2.3. Opcje dodatkowe Opcje dodatkowe nie są istotne dla przeprowadzanych prób. Mają one znaczenie pomocnicze. Pole nr 19 Liczby w tym polu włączamy/wyłączamy wypisywanie kolejnych numerów miast. Są to kolejne numery określające kolejność generowania lub wczytania z pliku. Te same numery określają miasta w pliku wyjściowym out.txt. Numery poszczególnych miast wypisane są przy odpowiadającym im mieście na panelu graficznym. Włączać/wyłączać liczby można również w czasie wykonywania algorytmu, ale numery pojawią się dopiero przy kolejnym odświeżeniu panelu. Pole nr 20 Log funkcja włączania/wyłączania dodatkowego logowania działań programu. Logi te pozwalają dokładniej skontrolować poprawność (lub niepoprawność) działania programu. W zależności od zastosowanego algorytmu mogą to być różne pliki tekstowe: temp.txt, temp2.txt, pp.txt. Funkcja ta nie ma praktycznego zastosowania bez dokładnej znajomości kodu programu. 4.3. Uruchomienie programu Program zaraz po uruchomieniu automatycznie ustawia wszystkie parametry na wartości domyślne. Nie są to bynajmniej wartości optymalne. Pierwszym krokiem jaki należy podjąć podczas pracy z programem jest wczytanie miast z pliku lub wygenerowanie losowej liczby miast. Podczas losowego generowania miast uwzględniana jest liczba miast podana przez użytkownika. Następnie należy zdecydować się na jeden z pięciu dostępnych algorytmów. Od wyboru algorytmu zależy, które parametry będą uwzględniane. Nie trzeba więc ustawiać parametrów dla algorytmu, który ich nie wykorzystuje. Gdy już mamy miasta, wybrany algorytm i ustawione parametry możemy przystąpić do testu. Należy zwrócić w tym miejscu uwagę na dużą ilość obliczeń

20 potrzebnych do uzyskania rozwiązania. Ustawienie zbyt dużej liczby miast, iteracji lub populacji może spowodować iż obliczenia będą trwały wiele godzin lub dni. Program w trakcie obliczeń na bieżąco informuje nas o postępie działania, aktualnie najlepszym rozwiązaniu oraz graficznie prezentuje to rozwiązanie. Wyjątkiem jest algorytm włączania, gdzie jest tylko jedno przejście algorytmu i jednorazowa prezentacja rozwiązania. W trakcie wykonywania obliczeń mamy do dyspozycji możliwość czasowego zawieszenia działania. Może zaistnieć sytuacja, w której chcemy odciążyć procesor na rzecz innego zadania, a nie chcemy kończyć obliczeń dla problemu komiwojażera. W tym celu istnieje funkcja Pause, która zawiesza wątek odpowiedzialny za obliczenia. Wątek można przywrócić do stanu normalnego poprzez ponowne użycie funkcji Pause. Mankamentem użycia tej funkcji jest przekłamanie w całkowitym czasie trwania obliczeń. Program nie uwzględnia czasu spędzonego w stanie przerwy. Program po zakończeniu obliczeń poinformuje o tym fakcie użytkownika odpowiednim nagłówkiem w Pasku Stanu oraz narysuje graficzną postać rozwiązania na panelu graficznym. Dodatkowo program dopisze informacje do pliku out.txt o wyniku przeprowadzonego doświadczenia. W skład takiej informacji wchodzą między innymi: zastosowany algorytm, liczba miast, wszystkie użyte przez algorytm parametry, rozwiązanie (odnaleziona kolejność miast oraz długość trasy komiwojażera), czas początkowy, czas końcowy, różnica tych czasów mierzona w setnych sekundy. Dodatkowo program wykonuje automatyczny zapis obrazu wykreślonego na panelu graficznym do pliku zrzut.jpg. Plik ten jest nadpisywany każdorazowo przy kończeniu pracy algorytmu. Program umożliwia także zapis współrzędnych miast do pliku. Funkcja ta ma sens podczas pracy na miastach wygenerowanych losowo. Pozwala na przywrócenie układu miast po wyłączeniu programu oraz stworzenie swojej bazy z przykładami problemu komiwojażera. W przypadku wczytania miast z pliku istnieje możliwość pobrania trasy optymalnego rozwiązania z innego pliku. W tym celu plik z rozwiązaniem zapisany zgodnie ze standardem TSP powinien znajdować się w tym samym katalogu co plik ze

21 współrzędnymi i mieć taką samą nazwę. Jego rozszerzenie powinno natomiast mieć postać:.opt.tour. Plik zostanie automatycznie znaleziony, a trasa zostanie narysowana na panelu kolorem zielonym. W wypadku gdy program znajdzie odcinek trasy taki sam jak pobrany z pliku, wówczas kolor trasy na tym odcinku będzie rysowany tylko kolorem niebieskim (standardowym kolorem trasy). 4.4. Możliwości Program daje możliwość przetestowania działania trzech różnych typów algorytmu mrówkowego, wzajemnego ich porównania oraz porównanie z dwoma innymi, znacznie różniącymi się algorytmami. Pozwala na manipulowanie parametrami i badanie jak każdy z nich wpływa na skuteczność oraz prędkość działania algorytmu. Dodatkowo program pozwala na wykorzystanie i porównywanie wyników przeprowadzonych na innych, bardziej profesjonalnych programach poprzez możliwość korzystania z bibliotek TSP. Prostota obsługi oraz interpretacji wyników pozwala na szybie dokonywanie doświadczeń. 4.5. Ograniczenia Program jest tylko i wyłącznie symulatorem. Wykorzystanie go w jakiejkolwiek innej dziedzinie niż doświadczenia na algorytmach mrówkowych nie jest możliwe. Wyniki przeprowadzanych doświadczeń (prędkość obliczeń) są silnie uzależnione od wydajności matematycznej maszyny na której program działa.

22 5. Testy porównawcze Testy algorytmów mają na celu sprawdzenie i porównanie różnych typów algorytmu mrówkowego oraz ich skuteczność w konfrontacji z innymi algorytmami. Możliwość dostrajania algorytmów mrówkowych do konkretnego problemu pozwala na zweryfikowanie jak poszczególne stałe wpływają na wyniki. Optymalne ustawienie wszystkich zmiennych pozwoli także na porównanie skuteczności oraz czasu działania wszystkich (zaprogramowanych w aplikacji) typów algorytmu mrówkowego, algorytmu włączania oraz algorytmu losowego. Jako że badane algorytmy są algorytmami stochastycznymi, dlatego wszystkie przeprowadzone testy mają również stochastyczny charakter. Chcąc uzyskać wiarygodne wyniki, wszystkie próby zostały powtórzone pięciokrotnie, a pod uwagę brana jest średnia arytmetyczna wszystkich pięciu prób. 5.1. Wpływ ilości zostawianego feromonu na algorytmy mrówkowe Test ten ma na celu sprawdzenie jak wpływa ilość pozostawianego feromonu na jakość znalezionego połączenia. W teście posłużono się próbką 35 miast ich liczba oraz układ jest jednakowy dla wszystkich algorytmów. Stałe ustawienia algorytmów: Miasta: 35 Populacja: 35 Iteracje: 30 Odparowanie feromonu: 25 % Znaczenie feromonu (alfa): 2 Znaczenie odległości (beta): 2

23 Wyniki: 1. ALGORYTM MRÓWKOWY z feromonem cyklicznym-elitarnym Ilość Próby dystans całkowity feromonu 1 2 3 4 5 średnia 0,05 2767,79 2883,84 3359,85 3312,44 2722,69 3009,32 0,1 2799,85 2712,10 2843,54 3125,21 2883,56 2872,85 0,5 2866,97 2822,42 2930,99 2796,27 3148,82 2913,09 1 3055,22 3084,72 3125,39 2746,12 2972,55 2996,80 2 3354,84 2964,29 2897,79 2862,28 2811,46 2978,13 3 3022,80 2823,72 2724,67 3081,44 2867,51 2904,03 5 3151,63 3114,62 2891,03 2793,05 3219,71 3034,01 10 2937,65 2949,83 3064,07 3162,45 3226,47 3068,09 Tablica 1 3100 3050 3000 2950 2900 2850 0 2 4 6 8 10 z feromonem cyklicznym-elitarnym ilość feromonu Wykres 1

24 2. ALGORYTM MRÓWKOWY z feromonem cyklicznym Ilość Próby dystans całkowity feromonu 1 2 3 4 5 średnia 0,1 4490,84 4394,24 4192,12 4234,95 4134,29 4289,29 0,2 4228,05 4837,92 4628,46 4354,83 4795,49 4568,95 0,5 4050,58 4653,85 4460,04 4762,20 4527,02 4490,74 1 4541,97 4038,33 4181,39 4396,83 4241,71 4280,04 2 4713,72 4630,88 4728,30 4560,67 4658,83 4658,48 3 4601,21 3978,98 4678,28 4676,51 4393,55 4465,71 5 4687,19 4575,32 4607,80 4413,90 4814,09 4619,66 10 3776,95 4991,11 4722,33 4528,39 4114,77 4426,71 15 4801,72 4504,49 4538,78 4547,13 4338,61 4546,15 Tablica 2 4700 4650 4600 4550 4500 4450 4400 4350 4300 4250 0 2 4 6 8 10 12 14 16 z feromonem cyklicznym ilość feromonu Wykres 2

25 3. ALGORYTM MRÓWKOWY z feromonem stałym Ilość Próby dystans całkowity feromonu 1 2 3 4 5 średnia 0,01 4739,21 4473,28 4477,91 4298,03 4331,00 4463,89 0,05 4382,32 4564,35 4335,98 4144,08 4688,22 4422,99 0,1 4540,79 4564,11 4665,11 4548,48 4118,16 4487,33 0,2 4768,39 4493,95 4409,88 4516,77 4946,18 4627,04 0,5 4525,42 4893,63 4729,36 4589,46 4606,70 4668,91 1 4455,90 4833,53 4267,04 4748,81 4081,53 4477,36 2 4569,45 4083,09 4525,40 4838,43 4664,31 4536,14 3 4331,66 5150,97 4200,82 4458,10 4790,05 4586,32 5 4154,56 4451,44 4283,52 4695,57 5217,58 4560,53 10 4640,07 4540,69 4561,31 4864,36 4494,90 4620,27 Tablica 3 4700 4650 4600 4550 4500 4450 4400 0 2 4 6 8 10 z feromonem stałym ilość feromonu Wykres 3 Na wykresach (Wykresy 1-3), które zostały wykreślone na podstawie odpowiadających im tabel, widać zależność długości trasy, jaka została znaleziona, do ilości pozostawianego przez mrówki feromonu. Wyraźnie są minima lokalne dla każdego z wykresów. Dostrzegalny jest również stopniowy wzrost znalezionej odległości w miarę

26 zwiększania ilości pozostawianego feromonu. Można wysnuć wniosek, że przy takiej konfiguracji dla feromonu cyklicznego-elitarnego i feromonu stałego ilość pozostawianego feromonu powyżej 5 nie przynosi już lepszych rezultatów. Dla feromonu cyklicznego moment ten występuje później i ostateczny próg można szacować na 10 jednostek pozostawianego feromonu. Najlepsze rezultaty zostały uzyskane: Feromon cykliczny-elitarny: w przedziale od 0,1 do 0,5 jednostek, Feromon cykliczny: w przedziale od 0,5 do 2 jednostek, Feromon stały: w przedziale od 0,01 do 0,1 jednostek. W kolejnych testach, mających na celu uzyskanie jak najlepszego wyniku dla danego algorytmu, zostaną wzięte pod uwagę wyniki tego testu, tak aby wyrównać szanse tych algorytmów i uzyskać bardziej wiarygodne wyniki. 5.2. Wpływ tempa odparowania feromonu W tym teście badamy jak wpływa tempo (ilość) odparowywania feromonu na skuteczność trzech typów algorytmów mrówkowych. Jako, że ilość odparowywanego feromonu jest wartością dyskretną, ustalono procentową wartość o jaką ilość feromonu na krawędzi ma zostać obniżona. Próby przeprowadzono na tym samym układzie miast co w teście pierwszym. Stałe ustawienia algorytmów: Miasta: 35 Populacja: 35 Iteracje: 30 Znaczenie feromonu (alfa): 2 Znaczenie odległości (beta): 2 Ilość pozostawianego feromonu jest zależna od zastosowanego algorytmu, a do jej określenia posługujemy się wynikami z testu pierwszego.

27 1. ALGORYTM MRÓWKOWY z feromonem cyklicznym-elitarnym (ilość pozostawianego feromonu: 1) Tempo Próby dystans całkowity parowania % 1 2 3 4 5 średnia 5 3180,59 3413,34 3264,11 2678,55 3072,92 3121,90 10 2936,67 2934,19 3260,70 2893,34 3178,64 3040,71 15 2894,11 2798,22 2915,16 3280,85 3015,14 2980,70 25 3230,94 2923,55 2767,63 3264,20 3103,28 3057,92 35 3171,25 3124,88 3055,65 2676,46 2799,67 2965,58 50 3005,05 2822,06 3063,94 3189,27 2884,75 2993,01 75 2726,72 3029,69 3055,58 3280,04 3163,08 3051,02 95 3409,54 3048,30 2919,02 3258,64 3097,10 3146,52 100 3809,67 3891,16 4174,76 4420,14 4127,56 4084,66 Tablica 4 4300 4100 3900 3700 3500 3300 3100 2900 2700 5 25 45 65 85 z feromonem cyklicznym-elitarnym Wykres 4 %

28 2. ALGORYTM MRÓWKOWY z feromonem cyklicznym (ilość pozostawianego feromonu: 0,5) Tempo Próby dystans całkowity parowania % 1 2 3 4 5 średnia 5 4420,41 4311,91 4084,22 4067,01 4214,50 4219,61 10 4075,92 3864,20 4021,82 4213,83 4320,62 4099,28 15 4317,71 4469,34 4140,64 4453,97 4315,93 4339,52 25 5165,66 4657,92 4538,33 4374,93 4795,62 4706,49 35 4581,66 4869,34 4609,62 4767,36 4610,03 4687,60 50 5019,17 5149,11 5002,31 4653,09 5260,17 5016,77 75 5110,63 4989,78 4603,09 4662,26 3993,59 4671,87 95 5423,13 4840,72 4277,07 4818,16 5400,18 4951,85 100 4406,28 4713,77 4783,11 4574,60 4814,61 4658,47 Tablica 5 5100 4900 4700 4500 4300 4100 3900 3700 5 25 45 65 85 z feromonem cyklicznym Wykres 5 %

29 3. ALGORYTM MRÓWKOWY z feromonem stałym (ilość pozostawianego feromonu: 0,05) Tempo Próby dystans całkowity parowania % 1 2 3 4 5 średnia 5 3568,32 3767,17 3816,45 4144,25 4298,97 3919,03 10 4644,57 4291,25 3585,55 4142,57 4265,94 4185,98 15 4682,92 4298,46 4011,44 4521,62 4011,31 4305,15 25 4342,28 4383,87 4687,31 4983,75 4414,58 4562,36 35 4682,55 4460,70 4873,94 4626,32 4695,82 4667,87 50 4671,53 4922,00 4894,52 4566,04 5230,09 4856,83 75 4730,72 3954,56 4629,30 4807,50 5062,81 4636,98 95 4347,59 4763,41 5011,53 5073,26 4627,20 4764,60 100 4671,08 5050,24 5215,18 5107,28 4875,82 4983,92 Tablica 6 5100 4900 4700 4500 4300 4100 3900 3700 5 25 45 65 85 z feromonem stałym Wykres 6 % Przeprowadzone badania wyraźnie wskazują na wpływ tempa parowania feromonu dla feromonu stałego i feromonu cyklicznego na jakość połączenia. Już niewielki wzrost może spowodować znaczną poprawę lub znaczne pogorszenie otrzymanych wyników. W przypadku feromonu cyklicznego-elitarnego nagłe pogorszenie

30 jakości następuje po przekroczeniu 90% tempa parowania. Dla mniejszych prędkości parowania uzyskane wyniki były bardzo podobne. Można zatem określić pewne dopuszczalne przedziały dla takiej konfiguracji i rozkładu miast: feromon cykliczny-elitarny: przedział od 5 do 85 %, feromon cykliczny: przedział od 5 do 15 %, feromon stały: przedział: od 5 do 15%. Wnioski z przeprowadzenia tego badania, podobnie jak miało to miejsce w przypadku testu pierwszego, zostaną uwzględnione w późniejszych doświadczeniach. 5.3. Znaczenie ilości feromonu i widoczności miast Ten test ma na celu przebadanie jak wpłyną na jakość znalezionego połączenia parametry alfa i beta, czyli znaczenie feromonu oraz znaczenie widoczności miast, na trzy typy algorytmów mrówkowych. Znaczenie feromonu i znaczenie widoczności są ze sobą ściśle powiązane gdy znaczenie feromonu wzrasta to proporcjonalnie maleje znaczenie widoczności. Badania przeprowadzone zostały na tym samym układzie 35 miast. Różnice w ilości pozostawianego feromonu jak i w tempie jego parowana wynikają z badań przeprowadzonych wcześniej. Stałe ustawienia programu: Miasta: 35 Populacja: 35 Iteracje: 30

31 1. ALGORYTM MRÓWKOWY z feromonem cyklicznym-elitarnym (ilość pozostawianego feromonu: 1, tempo odparowywania feromonu: 15%) Znaczenie Próby dystans całkowity alfa beta 1 2 3 4 5 średnia 0,1 3,9 2580,00 2713,39 2661,02 2623,61 2626,27 2640,86 0,5 3,5 2531,37 2480,35 2531,75 2503,45 2639,27 2537,24 1 3 2810,62 2872,28 2639,20 2816,11 2833,83 2794,41 1,5 2,5 2890,99 2736,32 2997,64 3060,33 3050,53 2947,16 2 2 3347,23 2931,96 2808,77 3162,22 2854,85 3021,01 2,5 1,5 2921,41 3126,87 3120,81 2967,25 3221,20 3071,51 3 1 3388,71 3647,69 3221,83 3849,33 3236,36 3468,78 3,5 0,5 3880,16 3122,64 3935,37 3823,68 3858,86 3724,14 3,9 0,1 3816,39 3926,87 4044,49 3827,11 3984,73 3919,92 Tablica 7 3900,00 3700,00 3500,00 3300,00 3100,00 2900,00 2700,00 2500,00 0 0,5 1 1,5 2 2,5 3 3,5 4 alfa z feromonem cyklicznym-elitarnym Wykres 7

32 2. ALGORYTM MRÓWKOWY z feromonem cyklicznym (ilość pozostawianego feromonu: 0,5, tempo odparowywania feromonu: 10%) Znaczenie Próby dystans całkowity alfa beta 1 2 3 4 5 średnia 0,1 3,9 2531,75 2646,24 2759,68 2669,76 2810,06 2683,50 0,5 3,5 3129,36 2876,99 3031,76 3094,62 3092,52 3045,05 1 3 3237,83 3056,04 3318,66 3351,17 3133,29 3219,40 1,5 2,5 3704,20 3518,35 3521,71 3671,41 3562,38 3595,61 2 2 4208,61 4183,72 4104,54 3975,46 4177,96 4130,06 2,5 1,5 4714,88 5001,19 4968,63 4860,76 4632,57 4835,61 3 1 5261,34 5365,73 5670,97 5569,60 5649,34 5503,40 3,5 0,5 6341,00 7107,95 6338,21 6757,85 6484,94 6605,99 3,9 0,1 6915,05 7233,82 6788,77 7087,69 6507,38 6906,54 Tablica 8 7000,00 6500,00 6000,00 5500,00 5000,00 4500,00 4000,00 3500,00 3000,00 2500,00 0 0,5 1 1,5 2 2,5 3 3,5 4 alfa z feromonem cyklicznym Wykres 8

33 3. ALGORYTM MRÓWKOWY z feromonem stałym (ilość pozostawianego feromonu: 0,05, tempo odparowywania feromonu: 7%) Znaczenie Próby dystans całkowity alfa beta 1 2 3 4 5 średnia 0,1 3,9 2855,20 2772,34 2708,53 2841,52 2850,48 2805,61 0,5 3,5 2700,58 3015,79 3238,27 3272,23 3035,01 3052,38 1 3 3231,88 3035,98 3134,67 3229,69 3362,68 3198,98 1,5 2,5 3592,17 3481,85 3366,35 3651,03 3403,64 3499,01 2 2 3403,64 4255,75 3730,85 3632,35 4489,24 3902,37 2,5 1,5 5118,39 4848,96 4769,98 4727,49 4546,02 4802,17 3 1 5799,35 5968,34 5820,53 5697,45 5581,10 5773,35 3,5 0,5 6545,64 6014,73 5897,66 6542,16 6304,22 6260,88 3,9 0,1 6593,89 7468,41 7410,30 7342,14 6576,01 7078,15 Tablica 9 7000,00 6500,00 6000,00 5500,00 5000,00 4500,00 4000,00 3500,00 3000,00 2500,00 0 0,5 1 1,5 2 2,5 3 3,5 4 alfa z feromonem stałym Wykres 9 Z przeprowadzonych badań jasno wynika jak duży wpływ ma dobre dobranie parametrów alfa i beta na jakość uzyskanego wyniku. W feromonie cyklicznym-elitarnym parametr alfa po przekroczeniu wartości 1 zaczyna w znaczny sposób pogarszać uzyskiwane wyniki. Podobnie sytuacja ma się dla feromonu stałego i cyklicznego. Dla

34 tych dwóch typów feromonu również obserwujemy gwałtowne pogorszenie wyników. Zmienne określające znaczenie feromonu i widoczności miast służą do wyważenia niewielkiej ilości feromonu pozostawianego na trasie oraz dużej odległości pomiędzy miastami. Każdy problem należy rozpatrywać indywidualnie z uwzględnieniem skali w jakiej rozwiązywany jest problem. 5.4. Wpływ wielkości populacji W tym teście zostało sprawdzone, jak na jakości znalezionego połączenia odbija się wielkość populacji mrówek użytych w doświadczeniu. Dodatkowym aspektem jest wzrost czasu wykonywania obliczeń i próba określenia gdzie przebiega granica sensownej wielkości populacji. Próby zostały przeprowadzone na tym samym układzie 35 miast i liczbie iteracji: 30 dla wszystkich trzech typów algorytmu mrówkowego. 1. ALGORYTM MRÓWKOWY z feromonem cyklicznym-elitarnym, (ilość pozostawianego feromonu: 1, tempo odparowywania feromonu: 15%, znaczenie feromonu: 2, znaczenie odległości <widoczności>: 2) Populacja Próby dystans całkowity Czas 1 2 3 4 5 średnia [s*10 2 ] 5 3527,19 3762,53 3174,04 3859,12 3122,19 3489,02 198 10 3275,17 2996,78 3102,51 3264,10 3566,42 3240,99 338 20 2833,56 2961,95 3367,12 3137,75 3208,77 3101,83 599 35 3063,33 3093,96 3024,38 3096,09 2726,19 3000,79 1024 60 2810,27 2763,90 2887,33 2891,60 2964,08 2863,44 1662 100 2725,33 2957,88 3003,62 2854,83 2658,03 2839,94 2636 150 2658,70 2787,53 2608,67 2678,96 2887,02 2724,18 3919 Tablica 10

35 3500 3400 3300 3200 3100 3000 2900 2800 2700 0 20 40 60 80 100 120 140 160 z feromonem cyklicznym-elitarnym - dystans populacja Wykres 10 3650 3150 2650 2150 1650 1150 650 150 0 20 40 60 80 100 120 140 160 z feromonem cyklicznym-elitarnym - czas [s*0.01] populacja Wykres 11 2. ALGORYTM MRÓWKOWY z feromonem cyklicznym (ilość pozostawianego feromonu: 0,5, tempo odparowywania feromonu: 10%, znaczenie feromonu: 1, znaczenie odległości <widoczności>: 3)

36 Próby dystans całkowity Czas Populacja 1 2 3 4 5 średnia [s*10 2 ] 5 3964,89 3759,82 3882,87 4064,48 3355,06 3805,42 140,00 10 4091,24 3867,01 3767,70 3240,12 3796,79 3752,57 287,00 20 3634,09 3693,84 3661,73 3378,79 3569,76 3587,64 545,00 35 2989,01 3243,71 3502,54 3455,82 3245,20 3287,25 927,00 60 2892,32 3143,93 3216,98 3026,46 3196,72 3095,28 1563,00 100 3065,43 2916,97 2853,21 2824,59 3097,33 2951,51 2537,00 150 2819,24 2896,89 2746,41 2823,68 2769,37 2811,12 3839,00 Tablica 11 3900 3700 3500 3300 3100 2900 2700 0 20 40 60 80 100 120 140 160 z feromonem cyklicznym - dystans populacja Wykres 12 3630 3130 2630 2130 1630 1130 630 130 0 20 40 60 80 100 120 140 160 z feromonem cyklicznym - czas [s*0.01] populacja Wykres 13

37 3. ALGORYTM MRÓWKOWY z feromonem stałym (ilość pozostawianego feromonu: 0,05, tempo odparowywania feromonu: 7%, znaczenie feromonu: 1, znaczenie odległości <widoczności>: 3) Próby dystans całkowity Czas Populacja 1 2 3 4 5 średnia [s*10 2 ] 5 3679,27 3764,86 3805,56 3568,69 3912,51 3746,18 140,00 10 3449,48 3856,61 4041,13 3771,97 3573,78 3738,60 282,00 20 3752,05 3692,27 3799,61 3268,34 3285,20 3559,49 544,00 35 3411,35 3468,95 3362,65 3133,25 3205,06 3316,25 925,00 60 3005,50 3083,74 3075,26 3064,10 3091,81 3064,08 1547,00 100 2957,38 3012,56 2904,48 2999,50 2821,82 2939,15 2569,00 150 2927,15 2764,13 2787,60 2699,00 3016,58 2838,89 3792,00 Tablica 12 3900 3700 3500 3300 3100 2900 2700 0 20 40 60 80 100 120 140 160 z feromonem stałym - dystans populacja Wykres 14

38 3630 3130 2630 2130 1630 1130 630 130 0 20 40 60 80 100 120 140 160 z feromonem stałym - czas [s*0.01] populacja Wykres 15 Przeprowadzone badania dają wyraźny obraz tego, w jak znacznym stopniu wielkość populacji mrówek wpływa na czas i dokładność działania algorytmu. Dla wszystkich trzech badanych typów algorytmu zależność pomiędzy wielkością populacji a czasem działania była funkcją liniową, różniącą się tylko nieznacznie kątem pochylenia względem osi czasu. Można wnioskować, że różnica ta jest spowodowana częstością dodawania feromonu w tablicy feromonu, jak i może zależeć od zmiennych alfa oraz beta (w doświadczeniu feromon cykliczny-elitarny ma inne parametry dla tych zmiennych) jako, że funkcja odpowiedzialna za podnoszenie wartości do potęgi wykonuje się szybciej gdy potęga jest równa jeden. Ponadto algorytm z feromonem cyklicznym-elitarnym jest bardziej skomplikowany. W tym przypadku większa ilość obliczeń skutkuje lepszym znalezionym rozwiązaniem. Natomiast z przebiegu zależności pomiędzy wielkością populacji a skutecznością działania algorytmu widać wyraźnie, że większa liczba mrówek radzi sobie lepiej z rozwiązaniem problemu, niż mniej liczne populacje. Sytuacja ta zachodzi dla trzech badanych typów algorytmu. Optymalna liczba mrówek dla badanego problemu jest równa w przybliżeniu podwojonej liczbie miast. Dla takiej liczby znalezione rozwiązanie jest już dobre, przy jednocześnie akceptowalnie długim czasie obliczeń.

39 5.5. Wpływ liczby iteracji Doświadczenie to ma na celu pokazanie jaki wpływ na jakość uzyskanego rozwiązania ma liczba iteracji czyli liczba przebiegów całej populacji mrówek. Dodatkowym aspektem badania jest czas potrzebny na wykonanie wszystkich zaprogramowanych iteracji oraz określenie pewnego optymalnego ustawienia dla problemu komiwojażera dla stałej próbki 35 miast. W tym doświadczeniu zastosowana została większa niż w dotychczas przeprowadzanych doświadczeniach populacja (50 mrówek), przez co także inne ustawienia uległy pewnym nieznacznym modyfikacjom. Wszystkie zmiany miały na celu zwiększenie dokładności wykonywanego doświadczenia. 1. ALGORYTM MRÓWKOWY z feromonem cyklicznym-elitarnym (ilość pozostawianego feromonu: 1, tempo odparowywania feromonu: 15%, znaczenie feromonu: 2, znaczenie odległości <widoczności>: 2) Iteracje Próby - dystans całkowity Czas 1 2 3 4 5 średnia [s*10 2 ] 5 3240,15 3207,62 3287,00 3099,34 3504,67 3267,75 307 10 3202,50 3382,50 3187,95 3156,49 3183,00 3222,49 536 20 3175,59 2946,48 2637,67 3185,26 3199,69 3028,94 1044 50 2708,86 2989,33 2850,61 2594,43 2824,35 2793,52 2473 75 2821,59 2867,80 2555,29 2661,24 2708,16 2722,81 3549 100 2760,12 2709,30 2720,81 2671,64 2670,10 2706,40 4722 150 2756,38 2582,13 2993,84 2450,55 2580,30 2672,64 6956 Tablica 13