Obliczenia inspirowane Naturą

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

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

Algorytmy mrówkowe (ang. Ant Colony Optimization)

Obliczenia Naturalne - Algorytmy Mrówkowe

Wykład 4. Droga i cykl Eulera i Hamiltona

Techniki optymalizacji

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

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

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

Problem Komiwojażera - algorytmy metaheurystyczne

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

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

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Obliczenia z wykorzystaniem sztucznej inteligencji

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

Wybrane podstawowe rodzaje algorytmów

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

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

Obliczenia z wykorzystaniem sztucznej inteligencji

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

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

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

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

Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP

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

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

Metody Programowania

TEORIA GRAFÓW I SIECI

Algorytmy mrówkowe w dynamicznych problemach transportowych

Algorytm genetyczny (genetic algorithm)-

Tomasz M. Gwizdałła 2012/13

Techniki optymalizacji

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

Optymalizacja. Wybrane algorytmy

Algorytmika Problemów Trudnych

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Algorytmy mrówkowe wprowadzenie.

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Algorytmy stochastyczne laboratorium 03

Wyznaczanie optymalnej trasy problem komiwojażera

Matematyczne Podstawy Informatyki

Grafy. Jeżeli, to elementy p i q nazywamy końcami krawędzi e. f a b c d e γ f {1} {1,2} {2,3} {2,3} {1,3}

Metody przeszukiwania

Spacery losowe generowanie realizacji procesu losowego

METODY OPTYMALIZACJI. Tomasz M. Gwizdałła 2018/19

Algorytmy metaheurystyczne podsumowanie

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

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

Obliczenia Naturalne - Algorytmy Mrówkowe cz. 4

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

Schemat programowania dynamicznego (ang. dynamic programming)

Problemy z ograniczeniami

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

Rozwiązywanie problemów metodą przeszukiwania

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

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

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe

Znajdowanie wyjścia z labiryntu

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

Algorytmy ewolucyjne 1

Tworzenie gier na urządzenia mobilne

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

Matematyka dyskretna

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

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

Algorytmy zachłanne. dr inż. Urszula Gałązka

OPTYMALIZACJA W LOGISTYCE

Algorytmiczna teoria grafów

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

Matematyczne Podstawy Informatyki

Algorytmy i struktury danych

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

Tabu Search (Poszukiwanie z zakazami)

Programowanie dynamiczne cz. 2

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

Programowanie Współbieżne. Algorytmy

Przykłady problemów optymalizacyjnych

Techniki optymalizacji

Optymalizacja. Algorytmy dokładne

Obiekt. Obiekt sterowania obiekt, który realizuje proces (zaplanowany).

Wykład 10 Grafy, algorytmy grafowe

Graf. Definicja marca / 1

Zadania laboratoryjne i projektowe - wersja β

Obliczenia inspirowane Naturą

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

Suma dwóch grafów. Zespolenie dwóch grafów

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

Obliczenia Naturalne - Algorytmy Mrówkowe cz. 4

Programowanie dynamiczne i algorytmy zachłanne

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

Algorytmy genetyczne

Procesy stochastyczne WYKŁAD 2-3. Łańcuchy Markowa. Łańcuchy Markowa to procesy "bez pamięci" w których czas i stany są zbiorami dyskretnymi.

Ogólne wiadomości o grafach

Uniwersytet Śląski Wydział Informatyki i Nauki o Materiałach Instytut Informatyki

TEORETYCZNE PODSTAWY INFORMATYKI

Digraf. 13 maja 2017

Optymalizacja ciągła

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

Metoda podziału i ograniczeń

ZASTOSOWANIE ALGORYTMU MRÓWKOWEGO DO WYZNACZANIA MAKSYMALNEJ GRUPY WZAJEMNIE POŁĄCZONYCH ELEMENTÓW

Transkrypt:

Obliczenia inspirowane Naturą Wykład 10 - Mrówki w labiryntach Jarosław Miszczak IITiS PAN Gliwice 05/05/2016 1 / 48

Na poprzednim wykładzie 1... 2... 3... 2 / 48

1 Motywacja biologiczna Podstawowe mechanizmy 2 Wyszukiwanie ścieżki w grafie 3 Reprezentacja Dyskretny problem plecakowy 4 3 / 48

Motywacja biologiczna Na poprzednim wykładzie Motywacja biologiczna Podstawowe mechanizmy Marco Dorigo, 1991 algorytmy mrówkowe zostały zaproponowane w jego pracy doktorskiej. Pomysł opiera się na obserwacji mrówek szukających pożywienia dla swojej koloni i stąd nazwa ant colony optimization algorithm (ACO). Algorytmy oparte na zasadach ACO stały się bardzo popularne do rozwiązywania problemów związanych optymalizacji dyskretnej, szczególnie związanych z wyszukiwaniem ścieżek w grafach. 4 / 48

Motywacja biologiczna Na poprzednim wykładzie Motywacja biologiczna Podstawowe mechanizmy Społeczeństwa mrówek (i innych owadów) stanowią przykłady bardzo złożonych systemów. Pomimo, iż możliwości pojedynczej mrówki są bardzo ograniczone, dzięki współpracy potrafią one na tworzenie bardzo skomplikowanych zachowań i struktur. Społeczne zachowania owadów Około 2% wszystkich owadów wykazuje zachowania społeczne. Połowa owadów które tworzą struktury społeczne to mrówki. Mrówki kolonizują Ziemię od 100 milionów lat. 5 / 48

Motywacja biologiczna Na poprzednim wykładzie Motywacja biologiczna Podstawowe mechanizmy Inside the ant colony - Deborah M. Gordon (http://ed.ted.com/lessons/inside-the-ant-colony-deborah-m-gordon) 6 / 48

Podstawowe mechanizmy Motywacja biologiczna Podstawowe mechanizmy Przy budowaniu modelu zachowania mrówek ważne jest zauważenie, iż: owady są niemal całkowicie ślepe; komunikacja między mrówkami odbywa się na zasadzie stygmergi (ang. stigmergy), czyli modyfikowania swojego środowiska/otoczenia; praca wykonywana przez kolonię mrówek znacznie przekracza możliwości każdego osobnika z osobna. 7 / 48

Podstawowe mechanizmy Motywacja biologiczna Podstawowe mechanizmy Stygmergia Sposób porozumiewania się poprzez wprowadzanie zmian w środowisku, np. poprzez pozostawianie feromonów przez mrówki, tworzenie przez zwierzęta ścieżek do wodopoju lub wyznaczania drogi na skróty. Pierre-Paul Grassé, 1959 Stimulation of workers by the performance they have achieved. 8 / 48

Na poprzednim wykładzie Motywacja biologiczna Podstawowe mechanizmy Podstawowe mechanizmy (Zdjęcie: J.A. Miszczak) 9 / 48

Na poprzednim wykładzie Motywacja biologiczna Podstawowe mechanizmy Podstawowe mechanizmy (Zdjęcie: J.A. Miszczak) 10 / 48

Wyszukiwanie ścieżki w grafie Mrówki wyszukujące drogi między punktami A (punk decyzyjny 1) i C (punkt decyzyjny 2). B 1?? A C B 2 (Rysunek mrówki: https://openclipart.org/user-detail/firkin) 11 / 48

Wyszukiwanie ścieżki w grafie Każda mrówka ma do wyboru drogi B 1 (dłuższa) i B 2 (krótsza). Wybór drogi działa na zasadzie dodatniego sprzężenia zwrotnego. Jeżeli mrówka wybierze krótszą drogę, to jej ślad feromonowy przyczyni się do zwiększenia atrakcyjności tej ścieżki (krótsza droga = częstsze odświeżanie śladu). Jeżeli mrówka wybierze dłuższą, to jej ślad feromonowy zdąży bardziej wyparować. 12 / 48

Wyszukiwanie ścieżki w grafie Zasada działania algorytmów mrówkowych opiera się na odtworzeniu średniego zachowania owadów. Ilość feromonu jest proporcjonalna do ilości mrówek. Ilość feromonu na ścieżce w chwili t w punkcie i zależy od wybrania tej ścieżki w chwili t t s w punkcie j oraz od wybrania tej ścieżki w chwili t w punkcie i. 13 / 48

Wyszukiwanie ścieżki w grafie Oznaczamy przez p ia prawdopodobieństwo, że mrówka przybywająca do punktu decyzyjnego i {1, 2} wybierze drogę a {s, l}. Dłuższa ścieżka ma długość r-razy większą niż ścieżka krótsza. W ciągu sekundy trasę przebywa ψ mrówek stały przepływ. 14 / 48

Wyszukiwanie ścieżki w grafie Prawdopodobieństwo wybrania krótszej drogi wynosi p is (t) = (k + φ is (t)) α (k + φ is (t)) α + (k + φ il (t)) α gdzie zarówno wartości α = 2 oraz k = 20, jaki i postać równania zostały dobrane na podstawie eksperymentów. (J.-L. Deneubourg et al., The self-organizing exploratory pattern of the Argentine ant. J. Insect Behav., 3:159 168, 1990. DOI: 10.1007/BF01417909.) 15 / 48

Wyszukiwanie ścieżki w grafie Równania różniczkowe opisujące ewolucję systemu mają postać dφ is (t) = ψp js (t t s ) + ψp is (t) dt (i = 1, j = 2; i = 2, j = 1) dφ il (t) = ψp jl (t rt s ) + ψp il (t) dt (i = 1, j = 2; i = 2, j = 1) gdzie ψ to przepływ mrówek, przyjmowany jako stały, a r = l l /l s wprowadza opóźnienie wynikające z długości dłuższej ścieżki. 16 / 48

Wyszukiwanie ścieżki w grafie W modelu dyskretnym interesuje nas średnie zachowanie mrówek; liczba mrówek jest liczbą naturalną; system jest opisany równaniami różnicowymi. 17 / 48

Wyszukiwanie ścieżki w grafie Prawdopodobieństwa wyboru ścieżki, p is (t) oraz p il (t), są funkcjami ilości zdeponowanego feromonu. i = 1, 2. p is (t) = (φ is (t)) α (φ is (t)) α + (φ il (t)) α, p il (t) = 1 p is (t), 18 / 48

Wyszukiwanie ścieżki w grafie Wyszukiwanie ścieżki w grafie START META 19 / 48

Wyszukiwanie ścieżki w grafie Wyszukiwanie ścieżki w grafie W realnych zastosowaniach grafy które chcemy przeszukiwać są o wiele bardziej złożone niż graf ilustrujący zachowanie prawdziwych mrówek. Algorytmy mrówkowe to metaheurystyka zachowanie mrówek daje tylko ogólne wytyczne, które służą do konstrukcji algorytmów. 20 / 48

Wyszukiwanie ścieżki w grafie Wyszukiwanie ścieżki w grafie Realne problemy W grafach o złożonej strukturze mrówki są podatne na wpadanie w pętle. Poprzez dodatnie sprzężenie zwrotne pętle stają się coraz bardziej atrakcyjne. Eliminacja śladu dla jednego kierunku nie jest rozwiązaniem. 21 / 48

Wyszukiwanie ścieżki w grafie (Simple Ant Colony Optimization) Zwiększenie możliwości mrówek (agentów) poprzez dodanie pamięci. Wykorzystanie parowania śladu feromonowego do eliminacji słabych rozwiązań. 22 / 48

Wyszukiwanie ścieżki w grafie W S-ACO: rozwiązanie budowane jest losowo; aktualizacja śladu odbywa się deterministycznie. 23 / 48

Wyszukiwanie ścieżki w grafie S-ACO działa na grafie (N, A) gdzie N to wierzchołki, a A to krawędzie. Z każdą krawędzią powiązana jest wielkość τ ij śladu feromonowego. Mrówki mogą odczytywać i zapisywać τ ij. 24 / 48

Wyszukiwanie ścieżki w grafie Pierwszym etapem jest budowanie rozwiązań: W S-ACO każdy z agentów (czyli mrówek) jest w jednym z dwóch stanów: poszukiwania (inaczej forward) lub powrotu (inaczej backward). W trybie poszukiwania mrówka: porusza się od startu do mety; nie pozostawia śladu feromonowego. Ścieżka jest wybierana poprzez losowy wybór następnego węzła z uwzględnieniem śladu feromonowego. Mrówka przechodzi do stanu powrotu po dotarciu do węzła końcowego. 25 / 48

Wyszukiwanie ścieżki w grafie Początkowe wartości śladu feromonowego są ustalane jako τ ij = 1. W węźle i mrówka wybiera następny węzeł jako j z prawdopodobieństwem p (k) ij = τ α ij l N (k) i τil α, gdzie N (k) i to sąsiedztwo węzła i, z wyłączeniem węzła poprzednio odwiedzonego przez mrówkę. 26 / 48

Wyszukiwanie ścieżki w grafie W drugim etapie mrówka aktualizuje ślad feromonu: Mrówka wraca po zapamiętanej ścieżce przechodzi do trybu powrotu (backward). Trasa powrotna jest tworzona po wyeliminowaniu pętli. W trybie powrotu mrówka aktualizuje ślad feromonowy. Ilość pozostawionego feromonu jest zależna od jakości rozwiązania im krótsza ścieżka, tym więcej feromonu. 27 / 48

Wyszukiwanie ścieżki w grafie Podczas powrotu k-ta mrówka zmienia stan śladu feromonowego według zależności τ ij = τ ij + τ (k). Sposób wyboru τ (k) jest ważny dla działania algorytmu. 28 / 48

Wyszukiwanie ścieżki w grafie W S-ACO dochodzi do parowania pozostawionego śladu feromonowego. Parowanie może być ustalone jako stały zanik w czasie. Zanikanie śladu pozwala na uniknięcie zbyt szybkiej zbieżności i eliminację słabych rozwiązań. Zanik śladu nie jest kluczowy dla działania prawdziwych mrówek. 29 / 48

Wyszukiwanie ścieżki w grafie W każdej iteracji algorytmu ślad feromonowy jest zmniejszany zgodnie z regułą τ ij = (1 ρ)τ ij dla wszystkich krawędzi grafu, (i, j) A, z ρ (0, 1]. 30 / 48

Reprezentacja Dyskretny problem plecakowy Algorytmy ACO mogą być stosowane do wielu zagadnień optymalizacji kombinatorycznej. Zadaniem optymalizacji kombinatorycznej jest znalezienie w zbiorze skończonym obiektu optymalnego. Zadania takie są często łatwe do sformułowania ale okazują się trudne do rozwiązania. Kluczowe w zastosowaniu ACO jest znalezienie odpowiedniej reprezentacji problemu. 31 / 48

Reprezentacja Dyskretny problem plecakowy Przykłady Znalezienie najkrótszego cyklu Hamiltona w grafie tzw. problem komiwojażera (ang. Traveling Salesman Problem (TSP)). (optymalizacja jest NP-trudna, problem decyzyjny jest NP-zupełny) Problem pakowania plecaka (ang. knapsack problem) mając skończony zbiór obiektów, zapakuj plecak o zadanej objętości tak, żeby zmaksymalizować wartość pakunku. (NP-trudny) 32 / 48

Reprezentacja Dyskretny problem plecakowy Instancją problemu optymalizacji kombinatorycznej nazywamy trójkę (S, f, Ω), gdzie S to zbiór rozwiązań, f : S R to funkcja celu, Ω to zbiór ograniczeń. Zadaniem minimalizacji jest znalezienie s S takiego, że f (s ) f (s) dla s S. 33 / 48

Reprezentacja Dyskretny problem plecakowy Każdy problem optymalizacji dyskretnej ma wersję decyzyjną. Wersja decyzyjna Czy dla zadanego parametru ρ istnieje rozwiązanie s takie że f (s) ρ? 34 / 48

Reprezentacja Dyskretny problem plecakowy Algorytm dokładny gwarantuje znalezienie optymalnego rozwiązania. Algorytm przybliżony rezygnujemy z optymalności na rzecz wydajności. 35 / 48

Reprezentacja Reprezentacja Dyskretny problem plecakowy Problem Przedstawienie problemu w sposób przystosowany do zasad działania mrówek. 36 / 48

Reprezentacja Reprezentacja Dyskretny problem plecakowy Reprezentacja na potrzeby ACO ma następujące składniki: Skończony zbiór komponentów C = {c 1, c 2,..., c Nc }. Stany określone jako skończone ciągi elementów zbioru C. Zbiór wszystkich stanów oznaczamy przez X. Zbiór rozwiązań S X i zbiór dopuszczalnych rozwiązań X X, czyli takich które spełniają warunki Ω. Niepusty zbiór rozwiązań optymalnych S X. Funkcja kosztu zdefiniowana dla każdego s S. 37 / 48

Reprezentacja Reprezentacja Dyskretny problem plecakowy W algorytmach ACO, mrówki to procedury, które probabilistycznie budują rozwiązania problemu poruszając się po grafie pełnym G C = (C, E), gdzie E to krawędzie łączące wszystkie wierzchołki. Informacja heurystyczna W wielu wypadkach oprócz śladu feromonowego mówki korzystają z informacji heurystycznej, η ij, która wpływa na wybór ścieżki. Czasem pozwala się, żeby mrówki budowały niedopuszczalne rozwiązania. 38 / 48

Reprezentacja Dyskretny problem plecakowy Znalezienie minimalnego cyklu Hamiltona w pełnym grafie ważonym G = (N, E) dla zbioru miast N oraz krawędzi E. Waga jest tu interpretowana jako odległość między miastami. Wagi są wykorzystywane do konstrukcji rozwiązań mrówki chętniej wybierają bliższe miasta. 39 / 48

Reprezentacja Dyskretny problem plecakowy Każdy z n = G węzłów grafu ma być odwiedzony tylko raz. Funkcja n 1 f (π) = d π(i)π(i+1) + d π(n)π(1) i=1 ma być minimalizowana. 40 / 48

Reprezentacja Dyskretny problem plecakowy Graf dla problemu jest grafem pełnym. Komponentami są węzły grafu. Stanem jest ciąg odwiedzanych miast. 41 / 48

Reprezentacja Dyskretny problem plecakowy Ograniczenia na zbiór dozwolonych rozwiązań: każdy węzeł ma być odwiedzony dokładnie raz. W węźle i mrówka wybiera następny węzeł jako j z prawdopodobieństwem gdzie η ij = 1 d ij. p (k) ij = τ α ij ηβ ij l N (k) i τ α il ηβ ij, 42 / 48

Reprezentacja Dyskretny problem plecakowy Warunek jednokrotnego odwiedzenia miast jest zachowany poprzez przechowywanie listy odwiedzonych miast lista tabu. Po odwiedzeniu wszystkich miast lista jest czyszczona. 43 / 48

Reprezentacja Dyskretny problem plecakowy Aktualizacja śladu feromonowego może być wykonywana na różne sposoby: model gęstościowy każda mrówka pozostawia stałą ilość feromonu, τ ij τ ij + Q 1. model ilościowy ilość pozostawionego feromony zależy jest odwrotnie proporcjonalna do długości krawędzi, τ ij τ ij + Q 2 d ij ; model cykliczny ilość feromony jest odwrotnie proporcjonalna od długości trasy przebytej do tej pory przez mrówkę. 44 / 48

Dyskretny problem plecakowy Reprezentacja Dyskretny problem plecakowy Mamy do dyspozycji zbiór obiektów {x 1, x 2,..., x N } oraz plecak o pojemności B. Każdy obiekt ma swoją wielkość w i oraz wartość c i. Zadaniem jest maksymalizacja przy założeniu c i x i i w i p(x i ) B, i gdzie p(x i ) {0, 1} (czyli każdy obiekt może być spakowany najwyżej raz). 45 / 48

Dyskretny problem plecakowy Reprezentacja Dyskretny problem plecakowy Komponentami są pakowane przedmioty, Graf konstrukcyjny to graf zupełny. Prawdopodobieństwa przejścia są postaci p ij = µ α ij τ β ij j N i µ α ij τ β ij 46 / 48

Dyskretny problem plecakowy Reprezentacja Dyskretny problem plecakowy Informacja heurystyczna może być określona na różne sposoby µ i = z j w j /B c, gdzie B c to dostępna objętość plecaka, µ i = z j w j /B, µ i = z j w 2 j (K. Schiff, Ant colony opimization algorithm for the 0-1 knapsack problem, Czasopismo Techniczne. Automatyka 2013 tom R. 110, z. 3-AC 39 52) 47 / 48

Na poprzednim wykładzie Oprogramowanie i inne zasoby związane z ACO: http://www.aco-metaheuristic.org/ Wykład Paweła Paducha, Obliczenia Naturalne, Politechnika Świętokrzyska, 2014 (http://achilles.tu.kielce.pl/members/ ppaduch/wyk142ady/obliczenia-naturalne/) Marco Dorigo, Thomas Stützle, Ant Colony Optimization, MIT Press, 2003. 48 / 48