Ameisenkolonien (1) Idee: Von M. Dorigo, 1992 Verhalten von Ameisen bei der Futtersuche Ameisen hinterlassen Pheromon-Spur (Chem. Substanz) Pfade mit hoher Pheromon-Konzentration werden bevorzugt Indirekte Kommunikation durch Pheromone Ameisen lösen kollektiv das Problem des kürzesten Pfades Reale Ameisen: Idee basierend auf Experimenten von Goss et al. 1989 mit argentinischen Ameisen Folie 198
Ameisenkolonien (2) Kürzeste Pfade: Kollektives Finden des kürzesten Pfades vom Futter zum Nest bei vorhanden sein eines Hindernisses Nest Nahrung 1 2 Nest 3 Folie 199 Nest Nahrung Hindernis Nahrung Hindernis Nest 4 Nahrung Hindernis
Ameisenkolonien (3) Historische Entwicklung: Ant System AS (M. Dorigo, 1992) Ant Colony System ACS (M. Dorigo und L. M. Gambardella, 1997) Ant Colony Optimization Meta-Heuristic ACO (Dorigo und DiCaro, 1999) AS und ACS: Ursprünglich entwickelt fürs TSP Übertragen auf viele weitere COP Folie 200
Ant System fürs TSP Ant Sytem fürs TSP: Ameisen konstruieren Touren Kanten mit höherer Pheromon-Konzentration t werden mit höherer Wahrscheinlichkeit gewählt v? t(s,v) t(s,u) u s t(s,r) r t(s,t) t Jede Ameise hinterlegt Pheromonspur nachdem Tour komplett ist Hinterlegte Pheromonmenge ist umgekehrt proportional zur Länge der Tour der Ameise Duftspur verflüchtigt sich mit der Zeit Folie 201
Ant Sytem - Übergangsregel Ant System fürs TSP: Ameisen sind Tour-Konstruktoren: Jede Ameise erzeugt eine Tour Wahrscheinlichkeit für Ameise k von Stadt r nach s zu gehen: β τ(r,s) η(r,s), wenn s J () r β k p ( rs, ) = τ(r,u) η(r,u) k u Jk ( r) 0, sonst τ :Pheromon-Konzentration η(, rs) = 1/ drs (, ): Heuristische Information J(): r Menge der noch nicht besuchten Städte k Folie 202
Ant System Update-Regel Globale Lernregel: Pheromon-Update: τ(, rs) (1 α) τ(,) rs + τ (,) rs τ k k = 1 1, wenn( rs, ) T (,) rs = Lk 0, sonst m k k T L k k :Tour von Ameise k :Länge der Tour von Ameise k α :Verflüchtigung der Pheromone Folie 203
Ant Colony System Übergangsregel State Transition Rule: Pseudo-zufälliger Zustandsübergang: argmax u J {(, ) (, ) }, wenn k r τ ru η ru q q s = S, sonst β ( ) 0 q :Zufallsvariable gleichverteilt in [0,1] q 0 :Explorationsparameter S: Zufallsvariable nach p (, rs) aus AS k Folie 204
Ant Colony System Update-Regeln (1) Globale Lernregel: ACS Global Update Rule: τ(,) rs (1 α) τ(,) rs + α τ(,) rs 1, wenn( rs, ) T τ(, rs) = Lbest 0, sonst best T L best best :Tour der besten Ameise :Länge der besten Tour α :Verflüchtigung der Pheromone Folie 205
Ant Colony System Update-Regeln (2) Lokale Lernregel: ACS Local Update Rule: τ(,) rs (1 ρ) τ(, rs) + ρ τ(, rs) τ(, rs) = γ max τ( sz, ) (Variante 1) 0 z J k ( s) τ(, rs) = τ (Variante 2) τ (, rs) = 0 (Variante 3) ρ :Parameter (0,1] γ :Q-Learning Parameter [0,1) τ 0 :Initialer Pheromonlevel Folie 206
ACS - Pseudocode Procedure ACS-TSP; begin Initialisierung; repeat Jede Ameise wird in einem Startknoten positioniert repeat foreach Ameise do Ameise wendet Zustandsübergangsregel an Ameise wendet lokale Update-Regel an endforeach; until Lösungen komplett; Globale Update-Regel wird angewendet until Ende-kriterium; end; Folie 207
ACS - Parameterwahl Parameter: Einfluss der heuristischen Information β=2 Exploration q 0 =0.9 Pheromon-Evaporation α=ρ=0.1 Initialer Pheromonwert τ 0 = 1/(n L nn ) L nn : Länge der Lösung der Nearest-Neighbor-Heuristik Anzahl Ameisen: m=10 Folie 208
ACS - Varianten Ergebnisse eines Vergleichs: ACS mit lokalem Update besser als ohne Lokales Update: Variante 1 und 2 besser als Variante 3 Heuristische Information wichtig β>0 Igonorieren der Pheromonwerte schlechte Performance ACS im Vergleich zu anderen Meta-Heuristiken relativ schlecht Verwendung lokaler Suche ACS + 3-opt (TSP): 3-opt lokale Suche vor globalem Update Ergebnisse deutlich besser, aber schlechter als MA (1st International Contest on Evolutionary Optimization) Folie 209
Min-Max Ant System Idee: Von Stützle und Hoos, 1997 Verbesserung des AS Unterschiede zu AS: Nur beste Ameise (global Beste oder Iterationsbeste) darf Pheromonspur aktualisieren Pheromonwerte werden auf ein Intervall [τ min,τ max ] festgelegt Pheromonwerte werden mit τ max initialisiert Verwendung von lokaler Suche Folie 210
Fast Ant System FANT: (QAP) Von Taillard und Gambardella, 1997 Nur eine Ameise Lokale Suche nach Konstruktion einer Lösung Pheromone verflüchtigen sich nicht Pheromonwerte werden mit 1 initialisiert Pheromon-Update: τ τ + r τ + r τ gb ij ij ij ij τ τ ij gb ij : 1, wenn (, ij) Element der aktuellen Lösung ist : 1, wenn (, ij) Element der besten Lösung ist rr, : Parameter Folie 211
Ant Colony Optimization ACO Meta-Heuristik: Von Dorigo und DiCaro, 1999 Verallgemeinerung des ACS Framework erlaubt Integration von lokaler Suche Anwendung: Diskrete Optimierungsprobleme (kombinatorische Optimierungsprobleme) mit bestimmten Eigenschaften Problemdarstellung als Graph, Wahl einer Lösungskomponente wird durch Kante im Graph dargestellt Folie 212
ACO Optimierungsprobleme (1) Voraussetzungen: Endliche Menge C von Komponenten C={c 1,c 2,...,c n } Endliche Menge L von möglichen Verbindungen/Übergängen zwischen den Elementen von C, L={l ij (i,j) C x C}, L n 2 Für jedes l ij L Verbindungkosten J ij (l ij,t), möglicherweise zeitabhängig Eine endliche Menge von Nebenbedingungen Ω(L,C,t) Folie 213
ACO Optimierungsprobleme (2) Weitere Voraussetzungen: Die Zustände des Problems ausgedrückt als Sequenzen s=<c i,c j,...,c k > über den Elementen von C, S sei die Menge aller möglichen Sequenzen und S* die Menge der gültigen Sequenzen bezüglich Ω(L,C,t) Eine Nachbarschaftsstruktur, d.h. s 1 und s 2 sind Nachbarn, wenn s 1 =<...,c 1 > und s 2 =<s 1,c 2 > S, c 1, c 2 C und l c1,c2 L Eine Lösung x S* mit einer Kostenfunktion f(x,l,t) abhängig von den Kosten l ij der Lösung Folie 214
ACO Problembespiele (1) Aufgabe: Pfad im Graphen G=(C,L) Beispiel TSP: C : Menge der Städte / Knoten L : Menge der Verbindungen / Kanten Verbindungkosten J ij (l ij,t) = d ij Ω(L,C,t) : Jede Stadt darf nur einmal besucht werden Die Zustände des Problems: Städtefolge s=<c i,c j,...,c k > Eine Nachbarschaftsstruktur: alle Städte sind benachbart Lösung x S*: gültige Tour Kostenfunktion f(x,l,t): Tourlänge Folie 215
ACO Problembespiele (2) Beispiel binäres Problem: Schrittweises Festlegen der Bits von links nach rechts Graph: S 0 1 0 1 0 1 0 1 0 1 E Lösung: 0 1 1 0 0 Folie 216
ACO - Datenstrukturen Gedächtnis M: Jede Ameise hat ein Gedächtnis Wichtig für Erzeugung gültiger Lösungen Verwendet zur Evaluation einer Lösung Benötigt zum Rückverfolgen des Pfades Routing-Tabelle A: Gewichtet Kanten im Graph durch Kombination der Pheromonkonzentration und der heuristischen Information Benötigt zur Berechnung der Zustandsübergangswahrscheinlichkeiten Folie 217
ACO - Pseudocode procedure ACO; begin repeat schedule antsgenerationandactivity(); pheromoneevaporation(); daemonactions(); end schedule; until Ende-kriterium; end; procedure antsgenerationandactivity; begin repeat schedulecreationnewant(); newactiveant(); until noresources(); end; procedure newactiveant; begin initializeant(); M = updateantmemory(); repeat A = readlocalantroutingtable(); P = computetransitionprobabilities(a,m,ω); nextstate = applyantdecisionpolicy(p, Ω); movetonextstate(nextstate); if (onlinestepbysteppheromoneupdate()) depositpheromoneonvisitedarc(); updateantroutingtable(); end if; M = updateinternalstate(); until currentstate == targetstate; if (onlinedelayedpheromoneupdate()) foreach arc in x do depositpheromoneonvisitedarc(); updateantroutingtable(); end foreach; endif; end; Folie 218
QAP: ACO und andere Meta-Heuristiken QAP: Vergleich Meta-Heuristiken Zahlen: Abweichung von besten Lösung in % Instanz MA-1 MA-2 Ro-TS Re-TS FANT MMAS SA t/sec tai60a 1.314 1.597 1.313 0.794 2.577 1.159 3.199 90 tai80a 1.106 1.305 1.023 0.482 2.525 0.768 3.298 180 tai100a 1.089 1.252 0.909 0.385 2.569 0.728 1.848 300 sko100a 0.096 0.127 0.191 0.397 0.474 0.195 2.942 300 tai60b 0.000 0.000 1.898 0.929 0.213 0.075 1.760 90 tai80b 0.191 0.004 2.929 1.602 0.821 0.718 5.092 180 tai100b 0.076 0.038 2.373 1.469 0.360 0.328 6.696 300 tai150b 0.361 0.397 2.851 1.775 1.176 1.167 3.787 600 tho150 0.151 0.202 0.548 0.488 0.765 0.395 2.939 600 tai256c 0.070 0.099 0.326 0.266 0.273 0.067 0.370 1200 Ro-TS, Re-TS: Robust/Reactive Tabu Search FANT, MMAS: Ant Colony Optimization: Fast Ant System, Min-Max Ant System SA: Simulated Annealing Folie 219