Obliczenia Naturalne - Algorytmy Mrówkowe

Podobne dokumenty
Algorytmy mrówkowe (ang. Ant Colony Optimization)

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

Obliczenia inspirowane Naturą

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

Wykład 4. Droga i cykl Eulera i Hamiltona

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

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

Techniki optymalizacji

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

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

Algorytmy mrówkowe. Plan. » Algorytm mrówkowy» Warianty» CVRP» Demo» Środowisko dynamiczne» Pomysł modyfikacji» Testowanie

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

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

Problem Komiwojażera - algorytmy metaheurystyczne

Programowanie Współbieżne. Algorytmy

Obliczenia z wykorzystaniem sztucznej inteligencji

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA ALGORYTM MRÓWKOWY (ANT SYSTEM) ALGORYTM MRÓWKOWY. Algorytm mrówkowy

Obliczenia z wykorzystaniem sztucznej inteligencji

Algorytmy mrówkowe wprowadzenie.

Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Algorytmy mrówkowe w dynamicznych problemach transportowych

Strategie Zespołowe (SZ) dr inż. Tomasz Białaszewski

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Obliczenia Naturalne - Algorytmy Mrówkowe cz. 4

Algorytmy Mrówkowe. Daniel Błaszkiewicz 11 maja 2011

Optymalizacja. Przeszukiwanie lokalne

WYKORZYSTANIE ALGORYTMÓW GENETYCZNYCH I MRÓWKOWYCH W PROBLEMACH TRANSPORTOWYCH

Obliczenia Naturalne - Wstęp

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Obliczenia Naturalne - Algorytmy Mrówkowe cz. 4

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

XII International PhD Workshop OWD 2010, October 2010 MODEL TEORETYCZNY ALGORYTMU MRÓWKOWEGO SAS

Algorytmika Problemów Trudnych

Algorytmy stochastyczne laboratorium 03

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

OPTYMALIZACJA W LOGISTYCE

PLANOWANIE TRASY PRZEJŚCIA STATKU Z ZASTOSOWANIEM ALGORYTMU MRÓWKOWEGO

Optymalizacja. Wybrane algorytmy

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Wybrane podstawowe rodzaje algorytmów

Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A

Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Programowanie dynamiczne cz. 2

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

Algorytmy genetyczne

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Teoria obliczeń i złożoność obliczeniowa

Tabu Search (Poszukiwanie z zakazami)

dr inż. Jarosław Forenc

Agnieszka Nowak Brzezińska Wykład III

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

Matematyczne Podstawy Informatyki

a) 7 b) 19 c) 21 d) 34

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Optymalizacja ciągła

Agnieszka Nowak Brzezińska

Wyznaczanie optymalnej trasy problem komiwojażera

Schemat programowania dynamicznego (ang. dynamic programming)

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Planowanie drogi robota, algorytm A*

Agnieszka Nowak Brzezińska Wykład III

Metody Optymalizacji: Przeszukiwanie z listą tabu

Zagadnienie najkrótszej drogi w sieci

Analiza Algorytmów 2018/2019 (zadania na laboratorium)

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA ZADANIE KOMIWOJAŻERA METODY ROZWIĄZYWANIA. Specyfika zadania komiwojażera Reprezentacje Operatory

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Co to jest grupowanie

Wstęp do sieci neuronowych, wykład 9 Sieci rekurencyjne. Autoasocjator Hopfielda

Metoda UCT w stochastycznych problemach transportowych

Złożoność obliczeniowa klasycznych problemów grafowych

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

ZASTOSOWANIE ALGORYTMÓW MRÓWKOWYCH W ROZWIĄZANIU PROBLEMU SZEREGOWANIA ZADAŃ APPLICATION OF ANT COLONY SYSTEMS IN SOLVING OF TASK SCHEDULING PROBLEM

TEORIA GRAFÓW I SIECI

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Ogólne wiadomości o grafach

SZTUCZNA INTELIGENCJA

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Modele całkowitoliczbowe zagadnienia komiwojażera (TSP)

Tworzenie gier na urządzenia mobilne

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

Metody przeszukiwania

Przykłady problemów optymalizacyjnych

Zagadnienie transportowe

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Strategie ewolucyjne (ang. evolu4on strategies)

Elementy modelowania matematycznego

CLUSTERING. Metody grupowania danych

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Wstęp do programowania

Techniki optymalizacji

Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym

Transkrypt:

Plan Literatura Obliczenia Naturalne - Algorytmy Mrówkowe Paweł Paduch Politechnika Świętokrzyska 8 maja 2014 Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 1 z 43

Plan wykładu Plan Literatura 1 Plan Literatura 2 Główne cechy Eksperyment Deneubourg a Wyznaczanie krótszej trasy 3 Główne cechy 4 Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 2 z 43

Literatura Plan Literatura Marco Dorigo, Thomas Stützle - Ant Colony Optimization. Bradford Company, Scituate, MA, USA, 2004 Alberto Colorni, Marco Dorigo, Vittorio Maniezzo - Distributed optimization by ant colonies European Conference on Artificial Life, strony 134 142, 1991. M. Dorigo, V. Maniezzo, A. Colorni - The ant system: An autocatalytic optimizing process. Raport instytutowy 91-016 Revised, Milano, Italy, 1991 Marco Dorigo, V. Maniezzo, Alberto Colorni - Positive feedback as a search strategy. Raport instytutowy, 1991. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 3 z 43

Kolonie mrówek Plan Literatura Algorytmy mrówkowe należą do grupy algorytmów metaheurystycznych. Z powodzeniem stosuje się je do rozwiązywania dyskretnych zadań liniowych. W 1989 Deneubourg wykazał, że mrówki potrafią znaleźć najkrótszą drogę do pożywienia. Mrówki swą zbiorowa inteligencję zawdzięczają wspólnemu działaniu tysięcy jednostek. Fenomen ten był inspiracją do stworzenia grupy algorytmów optymalizujących ACO (ang. Ant Colony Optimization). Jednym z pierwszych badaczy, który spopularyzował ACO był Marco Dorigo. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 4 z 43

Kolonie mrówek Plan Literatura Algorytmami mrówkowymi z powodzeniem rozwiązuje sięs: problem komiwojażera, problem kwadratowego przydziału, harmonogramowania zadań, równoważenia obciążenia łącz komunikacyjnych, grupowania i wyszukiwania. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 5 z 43

Mrówki Główne cechy Eksperyment Deneubourg a Wyznaczanie krótszej trasy charakteryzują się tym że: Są praktycznie ślepe. Mają znikome mózgi. Mają bardzo dobre zmysły węchu. Mrówki maszerując zostawiają na swej drodze feromony. Feromony nieustannie parują. Mrówki podczas decyzji, którą z dróg wybrać kierują się intensywnością zapachu feromonu. Korzystają ze zjawiska stygmergii (zjawisko pośredniej komunikacji poprzez wywoływanie zmian w środowisku i odczytywanie ich). Gdy działają w stadzie potrafią znaleźć najkrótszą drogę pomiędzy pożywieniem a mrowiskiem. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 6 z 43

Eksperyment Deneubourg a Główne cechy Eksperyment Deneubourg a Wyznaczanie krótszej trasy Deneubourg badając argentyńskie mrówki połączył źródło pożywienia z mrowiskiem dwoma mostami o różnej długości. Rozdzielenie drogi było pod kątem 30, by wykluczyć wybór którejś ze ścieżek ze względu na jej lokalny kształt. Po kilku minutach od znalezienia pożywienia większość mrówek maszerowała krótszą trasą. Rysunek: Most w eksperymencie Deneubourg a Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 7 z 43

Eksperyment Deneubourg a Główne cechy Eksperyment Deneubourg a Wyznaczanie krótszej trasy Deneubourg wykazał, że takie zachowanie można wytłumaczyć za pomocą prostego modelu probabilistycznego, w którym każda mrówka decyduje, którą trasę wybrać z pewnym prawdopodobieństwem zależnym od ilości chemicznej substancji zwanej feromonem znajdującej się na trasach. Na podobnej zasadzie mrówki potrafią przebudować feromonowy szlak gdy zostanie on przerwany przez ustawioną przeszkodę. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 8 z 43

Jak mrówki omijają przeszkody? Główne cechy Eksperyment Deneubourg a Wyznaczanie krótszej trasy Mrówki mają ustaloną trasę. Rysunek: Mrówki z wyznaczoną trasą feromonową pomiędzy pożywieniem a mrowiskiem. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 9 z 43

Jak mrówki omijają przeszkody? Główne cechy Eksperyment Deneubourg a Wyznaczanie krótszej trasy Gdy trafią na przeszkodę część pójdzie z jednej strony część z drugiej Rysunek: Przeszkoda na trasie feromonowej, mrówki wybierają dwie alternatywne trasy. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 10 z 43

Jak mrówki omijają przeszkody? Główne cechy Eksperyment Deneubourg a Wyznaczanie krótszej trasy Mrówki idące krótszą drogą szybciej połączą ślady feromonowe dając jednocześnie sygnał dla pozostałych mrówek, która trasa jest lepsza. Rysunek: Na trasie krótszej ilość feromonu zwiększa się szybciej. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 11 z 43

Jak mrówki omijają przeszkody? Główne cechy Eksperyment Deneubourg a Wyznaczanie krótszej trasy Z czasem mrówki zoptymalizują swoją trasę. Rysunek: Trasa dłuższa odparowuje, pozostaje lepsze, optymalne rozwiązanie. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 12 z 43

Jak mrówki szukają pożywienia? Główne cechy Eksperyment Deneubourg a Wyznaczanie krótszej trasy Mrówki losowo rozchodzą się z mrowiska szukając pożywienia. Te mrówki, które trafią krótszą drogą, szybciej wrócą po swoich śladach. Na krótszych trasach liczba mrówek w jednostce czasu jest większa a więc i odświeżanie śladu feromonowego jest intensywniejsze. Trasy dłuższe, jako rzadziej odwiedzane wyparowują. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 13 z 43

Cechy wirtualnych mrówek Główne cechy Poruszają się w dyskretnej przestrzeni poszukiwań od punktu do punktu w zdefiniowanych grafach. Mogą aktualizować ślad feromonowy nie tylko w trakcie ale i po znalezieniu rozwiązania. Nie muszą zostawiać za sobą identycznego śladu, mogą to robić w zależności od jakości rozwiązania. W szczególności tylko jedna, najlepsza mrówka może zostawić swój ślad. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 14 z 43

Cechy wirtualnych mrówek Główne cechy Mogą widzieć w pewnym ograniczonym zakresie, np. dostrzegając różnicę w długości krawędzi wychodzących z aktualnego węzła, w którym mrówka się znajduje. Mogą być obdarzone pewną dawką inteligencji, np. takiej by wyszukiwały trasy krótsze pomimo tej samej ilości feromonu. Mogą posiadać wewnętrzną pamięć np. w formie list tabu, mówiących o tym, których węzłów należy unikać (bo zostały już odwiedzone). Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 15 z 43

Problem komiwojażera Znalezienie minimalnego cyklu Hamiltona w pełnym grafie ważonym G = (N, E) dla zbioru miast N oraz krawędzi E, to problem komiwojażera (ang. Traveling Salesman Problem - TSP). Jest to klasyczny przypadek problemu NP-trudnego i wiele nowych algorytmów metaheurystycznyh jest testowanych za pomocą TSP. Tak zrobił M. Dorigo w przypadku swojego algorytmu mrówkowego. Jeżeli dystans pomiędzy miastami i oraz j, gdzie i, j N oznaczymy przez d ij oraz d ij d ji, to mamy do czynienia z TSP asymetrycznym. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 16 z 43

Problem komiwojażera Minimalny cykl Hamiltona polega na odwiedzeniu wszystkich n = N miast grafu G dokładnie raz oraz znalezieniu minimum funkcji f (π) danej wzorem: n 1 f (π) = d π(i)π(i+1) + d π(n)π(1) i=1 gdzie: π jest permutacją węzłów o indeksach {1, 2,..., n} Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 17 z 43

Ogólny algorytm mrówkowy wygląda następująco: 1 Wylosuj dla każdej mrówki miasto początkowe. 2 Na podstawie heurystyki oraz lokalnej ilości feromonu wybierz kolejny węzeł/krawędź. 3 Gdy osiągniesz cel uaktualnij ilość feromonu według sprecyzowanych do danego algorytmu zasad. 4 Jeżeli kryterium zatrzymania nie zostało spełnione powtórz czynności. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 18 z 43

Podstawowe założenia W systemie bierze udział m mrówek. Każda mrówka losuje początkowy węzeł, po czym porusza się z miasta i do miasta j po krawędzi E(i, j). Dystans pomiędzy kolejnymi miastami i oraz j o współrzędnych odpowiednio x i, y i oraz x j, y j określony jest odległością euklidesową d ij = (x i x j ) 2 + (y i y j ) 2. Zawartość feromonu na krawędzi E(i, j) w chwili t będzie oznaczona przez τ ij (t). Ilość feromonu τ ij (0) powinna być stosunkowo mała i na każdej krawędzi jednakowa. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 19 z 43

Aktualizacja feromonu Z każdą iteracją obliczeń stężenie feromonu jest aktualizowane według wzoru: τ ij (t + 1) = ρ τ ij (t) + τ ij (t, t + 1), (1) gdzie: ρ - współczynnik z przedziału < 0, 1 >, który określa jaka część feromonu ma pozostać (0 - wyparuje wszystko, 1 - nic nie wyparuje). By uniknąć nieograniczonego odkładania się feromonu oraz pozwolić słabszym trasom zaniknąć, ρ powinno (0, 1). τ ij (t, t + 1) = m k=1 τij k (t, t + 1) τij k (t, t + 1) jest ilością feromonu na każdą jednostkę długości krawędzi (i, j) rozkładanego przez k-tą mrówkę w czasie pomiędzy t a t + 1. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 20 z 43

Lista tabu By spełnić założenie komiwojażera, że można odwiedzić każde miasto jeden raz, wprowadzono listę tabu, w której pamiętane są odwiedzone miasta. Gdy mrówki odwiedzą wszystkie miasta, lista jest czyszczona i w kolejnej iteracji zapełniana od nowa. tabu k (s) oznacza element s wektora tabu k dla k-tej mrówki (czyli, w którym mieście s znajduje się mrówka k w bieżącej trasie). Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 21 z 43

Wybór kolejnego miasta Prawdopodobieństwo wyboru kolejnego miasta j dla k-tej mrówki stojącej w mieście i dane jest wzorem: (τ ij ) α (η ij ) β p ij (t) = c i,l Ω (τ c il ) α (η il ) β i,l Ω (2) 0 c i,l / Ω, gdzie: l - możliwe miasto, Ω - dopuszczalne rozwiązania (pozostałe nieodwiedzone miasta, nienależące do tabu k ), η ij - wartość lokalnej funkcji kryterium, w tym przypadku odwrotność odległości pomiędzy węzłami η = 1 d ij, (visibility) α - parametr regulujący wpływ τ ij, β - parametr regulujący wpływ η ij. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 22 z 43

Trzy rodzaje AS W zależności od tego jak jest wyliczana τij k (t, t + 1) oraz kiedy uaktualniać τ ij możemy wyróżnić 3 algorytmy, które zaproponował Dorigo w swoim systemie mrówkowym AS. Algorytm Cykliczny (ang. ant-cycle CAS) Algorytm Gęstościowy (ang. ant-density DAS) Algorytm Ilościowy (ang. ant-quantity QAS) Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 23 z 43

Aktualizacja feromonu W algorytmie gęstościowym za każdym razem gdy mrówka przechodzi po krawędzi (i, j), na każdą jednostkę jej długości rozkładana jest stała ilość feromonu Q 1. τij k (t, t + 1) = Q 1 jeżeli k-ta mrówka przechodzi z i do j w czasie pomiędzy t a t + 1 0 dla pozostałych. (3) Ilość feromonu jest zawsze stała i niezależna od długości krawędzi czy całej trasy. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 24 z 43

Algorytm DAS - Krok 1 Algorytm 1 Algorytm DAS - Krok 1 1: {Krok 1 Inicjalizacja} 2: t := 0 {licznik czasu} 3: for all krawędzi (i, j) do 4: ustaw początkową wartość τ ij (t) oraz τ ij (t, t + 1) := 0 5: end for 6: Wstaw b i (t) w każdym węźle i {b i (t) oznacza liczbę mrówek w węźle i w czasie t} 7: s:=1 {s jest indeksem w tablicy tabu} 8: for i:=1 to n do 9: for k:=1 to b i (t) do 10: tabu k (s) = i {Pierwszy element tablicy to miasto startowe} 11: end for 12: end for Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 25 z 43

Algorytm DAS - Krok 2 Algorytm 2 Algorytm DAS - Krok 2 13: repeat{krok 2 będzie powtarzany n 1 razy} 14: s:=s+1 15: for i:=1 to n do 16: for k:=1 to b i (t) do 17: wybierz kolejne miasto j według prawdopodobieństwa p ij danego wzorem 2 18: k-ta mrówka idzie do miasta j {Tworzymy nową wartość b j (t +1)} 19: dodaj miasto j do tabu k (s) 20: τ ij (t, t + 1) = τ ij (t, t + 1) + Q 1 21: end for 22: end for 23: for all krawędzi (i, j) do 24: Oblicz τ ij (t + 1) według wzoru 1 25: end for 26: until lista tabu nie będzie pełna Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 26 z 43

Algorytm DAS - Krok 3 Algorytm 3 Algorytm DAS - Krok 3 27: Zapamiętaj najkrótszą trasę ze wszystkich m mrówek 28: if LC < LC min lub (wszystkie mrówki nie poszły tą samą drogą) then 29: {LC - liczba cykli} 30: Wyczyść wszystkie listy tabu 31: s:=1 32: for i:=1 to n do 33: for k:=1 to b i (t) do 34: tabu k (s) = i {znowu każda k-ta mrówka jest w początkowym mieście} 35: end for 36: end for 37: t = t + 1 38: for all krawędź (i, j) do 39: τ ij (t, t + 1) = 0 40: end for 41: Idź do kroku 2 42: else 43: Wypisz najkrótszą trasę i się zatrzymaj 44: end if Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 27 z 43

Opis algorytmu Mrówki są ustawiane w różnych miastach Inicjowana jest początkowa ilość feromonu na krawędziach Pierwszy element listy tabu jest jednocześnie miastem startowym. Mrówki wychodząc z miasta i wybierają miasto docelowe j na podstawie prawdopodobieństwa danego wzorem 2, w którym są dwa parametry ustawiane przez użytkownika α - steruje w jakim stopniu mrówka kieruje się doświadczeniem poprzednich pokoleń (wartość τ ij - niesie ze sobą informację jak wiele mrówek przeszło tą trasą w niedalekiej przeszłości). β - określa chęć wybrania miasta na podstawie jego odległości (η ij - określa stopień widoczności miasta j z miasta i). Jeżeli parametr α = 0 mrówki działają jak w stochastycznym algorytmie zachłannym startującym z wielu punktów. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 28 z 43

Opis algorytmu Za każdym razem, gdy mrówka przechodzi po krawędzi (i, j) zostawia feromon, który jest sumowany z feromonem pozostawionym na tej krawędzi w przeszłości. Kiedy wszystkie mrówki wykonają swój ruch, z każdej krawędzi jest odparowywana część feromonu według wzoru 1. Po n 1 ruchach listy tabu są wypełnione. Obliczana i zapamiętywana jest najkrótsza trasa znaleziona przez m mrówek. Następnie listy tabu są zerowane. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 29 z 43

Opis algorytmu - warunek zakończenia proces jest powtarzany przez LC iteracji podanych przez użytkownika lub do momentu, kiedy wszystkie mrówki wybiorą identyczną trasę. Przypadek taki nazywano zachowaniem jedno-ścieżkowym (ang. uni-path behavior). Oznacza on, że mrówki zaprzestały wyboru alternatywnych tras. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 30 z 43

QAS Model ilościowy systemu mrówkowego różni się tym od gęstościowego, że stała ilość feromonu Q 2 jest dzielona przez długość krawędzi d ij. τij k (t, t + 1) = Q 2 d ij jeżeli k-ta mrówka przechodzi z i do j w czasie pomiędzy t a t + 1 0 dla pozostałych. Uzależnienie ilości feromonu od odwrotności długości krawędzi d ij powoduje, że mrówki wybierają chętniej krótsze krawędzie. (4) Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 31 z 43

Różnica w aktualizacji feromonu W algorytmie cyklicznym systemu mrówkowego wprowadzono jedną istotną zmianę. τi,j k nie jest obliczana w każdym kroku ale po skończonej całej trasie (n-krokach). Wartość τi,j k dana jest wzorem 5: τ k ij (t, t+n) = Q 3 L k jeżeli k-ta mrówka użyła krawędzi ij w swojej trasie 0 dla pozostałych, gdzie Q 3 jest stałe a L k jest długością trasy znalezionej przez k-tą mrówkę. (5) Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 32 z 43

Aktualizacja feromonu Wartość feromonu jest aktualizowana po n krokach według wzoru: gdzie τ ij (t + n) = ρ 1 τ ij (t) + τ ij (t, t + n), (6) τ ij (t, t + n) = m k=1 τ k ij (t, t + n), ρ 1 jest nieco inne, gdyż uaktualnienie nie następuje po każdym kroku, a dopiero po dojściu mrówki do celu. Jest on niemal identyczny ze wzorem 1 z tą różnicą, że uaktualnianie jest po n krokach. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 33 z 43

Algorytm CAS - krok 1 Algorytm 4 Algorytm CAS (krok 1) 1: {Krok 1 Inicjacja} 2: t := 0 {licznik czasu} 3: for all krawędzi (i, j) do 4: ustaw początkową wartość τ ij (t) oraz τ ij (t, t + n) := 0 5: end for 6: Wstaw b i (t) mrówek w każdym węźle i {b i (t) oznacza liczbę mrówek w węźle i w czasie t} 7: s:=1 {s jest indeksem w tablicy tabu} 8: for i:=1 to n do 9: for k:=1 to b i (t) do 10: tabu k (s) = i {Pierwszy element tablicy to miasto startowe} 11: end for 12: end for Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 34 z 43

Algorytm CAS - krok 2 Algorytm 5 Algorytm CAS (krok 2) 13: {Krok 2 będzie powtarzany n 1 razy} 14: repeat 15: s:=s+1 16: for i:=1 to n do 17: for k:=1 to b i (t) do 18: wybierz kolejne miasto j według prawdopodobieństwa p ij danego wzorem 2 19: k-ta mrówka idzie do miasta j {Tworzymy nową wartość b j (t + 1)} 20: dodaj miasto j do tabu k (s) 21: end for 22: end for 23: until lista tabu nie będzie pełna Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 35 z 43

Algorytm CAS - kroki 3-4 Algorytm 6 Algorytm CAS (kroki 3-4) 24: {Krok 3} 25: for k := 1 to m do 26: (h, l) := (tabu k (s), tabu k (s + 1)) {(h, l) - jest krawędzią łączącą miasto (s, s + 1) w liście tabu dla k-tej mrówki } 27: τ hl (t + n) = τ hl (t + n) + Q3 L k 28: end for 29: {Krok 4} 30: for all krawędzi (i, j) do 31: Oblicz τ ij (t + n) według wzoru 6 32: end for 33: t = t + n 34: for all krawędzi (i, j) do 35: τ ij (t, t + n) := 0 36: end for Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 36 z 43

Algorytm CAS - krok 5 Algorytm 7 Algorytm CAS (krok 5) 37: {Krok 5} 38: Zapamiętaj najkrótszą trasę do tej pory 39: if LC < LC max lub (wszystkie mrówki nie poszły tą samą drogą) then 40: {LC - liczba cykli} 41: Wyczyść wszystkie listy tabu 42: s:=1 43: for i:=1 to n do 44: for k := 1 to b i (t) do 45: tabu k (s) = i {znowu każda k-ta mrówka jest w początkowym mieście} 46: end for 47: end for 48: Idź do kroku 2 49: else 50: Wypisz najkrótszą trasę i się zatrzymaj 51: end if Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 37 z 43

Złożoność obliczeniowa Złożoność obliczeniowa algorytmu cyklicznego wynosi O(LCn 2 m). Dorigo wraz z zespołem znalazł liniową zależność pomiędzy liczbą miast a liczbą mrówek. Ostatecznie można więc uznać, że złożoność obliczeniowa to O(LCn 3 ). Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 38 z 43

Tablice decyzyjne W celu usprawnienia działania algorytmu często można spotkać w implementacji tablice decyzyjne A i = [a ij (t)] Ni. Obliczane są za każdym razem gdy startuje nowe pokolenie mrówek na nowej zmodyfikowanej mapie feromonowej. Każde miasto i ma taką tablice policzoną. Elementy a ij tablicy wyznaczamy: a ij (t) = [τ ij (t)] α [η ij (t)] β l N i [τ il (t)] α [η il (t)] β j N i Gdzie: N i - zbiór możliwych połączeń wychodzących z i. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 39 z 43

Prawdopodobieństwo wybrania węzła Używając tablic decyzyjnych prawdopodobieństwo wyboru kolejnego miasta j Ni k z bieżącego węzła i dla danej mrówki k dane jest wzorem: pij k a ij (t) (t) = a il (t) l N k i Przy czym Ni k N i jest zestawem sąsiednich miast jeszcze nie odwiedzonych. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 40 z 43

Zalecane parametry W AS Dorigo zaleca następujące parametry: α = 1 β od 2 do 5 ρ = 0, 5 m = n, gdzie m liczba mrówek a n liczba miast τ 0 = m C nn, gdzie C nn jest oszacowaną długością trasy np. algorytmem najbliższy sąsiad (ang. nearest-neighbor). Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 41 z 43

Pytania? Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 42 z 43

koniec Dziękuję Państwu za uwagę. Paweł Paduch Obliczenia Naturalne - Algorytmy Mrówkowe 43 z 43