Studienarbeit. Ameisen und kombinatorische Optimierung

Größe: px
Ab Seite anzeigen:

Download "Studienarbeit. Ameisen und kombinatorische Optimierung"

Transkript

1 Fakultät für Informatik Professur Modellierung und Simulation Studienarbeit Ameisen und kombinatorische Optimierung Erstellt von: Peter Krusche Diplomstudiengang Informatik Betreuer: Prof. Dr. Peter Köchel September 2004

2 2

3 Inhaltsverzeichnis 1 Theoretische Grundlagen Einführung Reale und künstliche Ameisen Die ACO Metaheuristik Definition der Problemklasse Die Heuristik Ameisen und der Traveling Salesman Das Problem Der Grundalgorithmus: Das Ameisensystem Das Max-Min Ameisensystem: MMAS Bessere lokale Suche: AS elite Ameisen und Ranking: AS rank Ant Colony System(ACS) und ANT-Q Weitere Anwendungen für Ameisenalgorithmen Quadratisches Zuordnungsproblem Weitere Probleme Konvergenzergebnisse Implementierung für das Traveling Salesman Problem Der Algorithmus Steuerungsparameter Pheromonupdate Zustandsübergang Experimente Überblick Sucheigenschaften

4 3.3 Einfluss verschiedener Parameter Vergleich der Algorithmen Zusammenfassung und Ausblick 39 A Dokumentation der Software 41 A.1 Überblick A.2 Dokumentation der Benutzerschnittstelle (antgui) A.3 Übersicht über die Quelldateien A.4 Erstellen der Programme B Literatur 47 4

5 1 Theoretische Grundlagen 1.1 Einführung Bereits im Fall der genetischen Algorithmen hatte die Anwendung biologischer Prinzipien zur Lösung komplexer Optimierungsprobleme großen Erfolg. Da in vielen Fällen natürliche Vorgänge auch als Optimierungsprobleme mit sehr großem Suchraum betrachtet werden können, für die die Natur innerhalb von langen Jahren der Evolution Lösungsverfahren geschaffen hat, liegt es nahe, auch an anderer Stelle nach ähnlichen Möglichkeiten zu suchen. Ein recht neuer Ansatz in dieser Richtung ist die Optimierung mit virtuellen Ameisenkolonien. Bei derartigen Algorithmen wird das natürliche Verhalten von Ameisen zum Vorbild genommen, um Multiagentensysteme zur Lösung von verschiedenen kombinatorischen Optimierungsproblemen wie zum Beispiel dem Traveling Salesman Problem zu schaffen. Die Idee dazu resultierte unter anderem aus der Beobachtung, daß Ameisen in einer Kolonie bei der Futtersuche im Allgemeinen sehr schnell den kürzesten Weg zwischen Nest und Nahrungsquelle finden. Dies mag zunächst nicht sehr beeindruckend klingen, ist aber für die Ameisen eine relativ schwierige Aufgabe, da die Umgebung aus ihrer Sicht einem großen Labyrinth gleicht. Weiterhin sind einzelne Ameisen eher einfach strukturiert, ein Sinn für Geometrie oder ausgefeilte Fähigkeiten zur Wegesuche sind bei ihnen eigentlich nicht zu vermuten. Dennoch finden sie erfolgreich kurze Transportrouten für Material und Futter zwischen ihrem Nest und verschiedenen Quellen. Jede Ameise legt dazu auf ihrem Weg eine Pheromonspur, die von ihren Artgenossen wahrgenommen wird und die deren Wegewahl beeinflusst. Wird eine Nahrungsquelle gefunden, kann die Ameise auf dem Rückweg zum Nest eine stärkere Spur legen, was dann zur Ausbeutung der Quelle durch mehrere Arbeiter führt. Findet eine andere Ameise einen kürzeren Weg, dann wird sie über diesen mehr Futter transportieren und damit dort auch öfter Pheromone abgeben - denen dann mehr Arbeiter folgen. 5

6 Ein anderes derartiges Beispiel sind Termiten beim Nestbau. Diese werden durch einen ähnlichen Effekt beeinflusst: sobald nach anfänglich eher zufälliger Bauaktivität in einem bestimmten Bereich eine höhere Konzentration von Erdkügelchen zusammengetragen wurde als in der Umgebung, bilden diese Kügelchen selbst eine Art Stimulus für die Termiten. Diese tragen dann an diesen Stellen mehr Erde zusammen, was zur Entstehung von Säulen und schließlich zur Errichtung eines Termitenbaus führt. Die Idee, diese Vorgänge zu studieren und daraus Verfahren zur computergestützten Lösung von Problemen der kombinatorischen Optimierung zu entwickeln, soll in dieser Studienarbeit vorgestellt werden. Dafür wird zunächst auf das Verhalten realer Ameisen eingegangen, dies dient der Illustration des Mechanismus der Selbstorganisation oder auch Stigmergie, welcher im Wesentlichen für die Fähigkeiten der Ameisen zum Finden der kürzesten Wege verantwortlich ist. Im ersten Kapitel wird erklärt, wie dieses Verhalten einfach simuliert, mit einem Multiagentensystem abgebildet und zur Lösung von von verschiedenen Problemen eingesetzt werden kann. Stellvertretend für die hier betrachtete Klasse von Problemen werden mehrere Algorithmen zur Lösung vom Problem des Traveling Salesman vorgestellt. Diese wurden im Rahmen dieser Arbeit auch implementiert, in Kapitel 2 wird diese Umsetzung mit ihren Möglichkeiten kurz beschrieben. Im dritten Kapitel werden einzelne Versuchsergebnisse präsentiert, die Aufschluss über den Einfluss ausgewählter Parameter und die relative Leistungsfähigkeit der Algorithmen geben. 1.2 Reale und künstliche Ameisen Deneubourg et al. [12] führten 1990 ein Experiment mit einer Ameisenkolonie der Spezies Linepithema humile durch, in dem das Futtersuchverhalten der Ameisen untersucht wurde. Der Experimentaufbau beinhaltete zwei gleichlange Wege, die vom Nest zur Futterquelle und zurück führten (siehe Abbildung 1.1). Die Ameisen mussten sich also bei ihrer Suche nach einem Transportweg für ihr Futter jedes mal zwischen einem der beiden Zweige entscheiden. Im Experiment wurde dann beobachtet und aufgezeichnet, wie viele Ameisen pro Zeiteinheit den oberen oder unteren Zweig wählten. Es zeigte sich, daß nach einer kurzen Übergangsphase die meisten Ameisen den gleichen Weg zur Nahrungsquelle wählten, trotz dem die Wege beide gleich lang waren. In einem weiteren Experiment mit unterschiedlich langen 6

7 Wegen zeigte sich, daß sich die Ameisen ebenfalls nach kurzer Übergangsphase immer für den kürzeren Weg entscheiden (Deneubourg et al. 89, [25]). Abbildung 1.1: Ameisenexperiment, Deneubourg et al. 90 Die Erklärung für dieses Verhalten liegt in der Art, wie die einzelne Ameise sich für einen der beiden Wege entscheidet. Auf dem Weg zwischen Nahrungsquelle und Nest hinterlassen reale Ameisen eine Pheromonspur, die die Wahl des Weges der folgenden Ameisen beeinflusst. Je nachdem wie stark diese Spur ist, folgt eine Ameise ihr mit größerer oder kleinerer Wahrscheinlichkeit. Wenn also der eine Weg kurzfristig von mehr Ameisen benutzt wurde als der andere (was in der Anfangsphase zufällig passieren kann), steigt die Wahrscheinlichkeit, daß die Ameisen auch weiterhin diesen Weg bevorzugen werden. Damit wird die Pheromonspur dort immer stärker und es kommt zu einem Konvergenzverhalten wie rechts in Abbildung 1.1. Dieses Phänomen ist unter dem Namen Stigmergie oder auch Selbstorganisation bekannt. Experimente zeigten weiterhin [2], daß Ameisen in der Lage sind, kürzeste Wege zu finden und sich an Veränderungen der Umgebung anzupassen. Wenn zum Beispiel der gerade Weg zum Futter durch ein Hindernis versperrt wird (siehe Abbildung 1.2), werden die Ameisen, die den kürzeren Weg wählen, zuerst die unter- Abbildung 1.2: Ameisen, Reaktion auf ein Hindernis 7

8 brochene Pheromonspur wieder hergestellt haben. Damit wird es wahrscheinlicher, daß auch alle anderen Ameisen diesen kürzeren Weg wählen. Um dies weiter zu untersuchen, wurde eine Serie von Monte-Carlo Experimenten durchgeführt, deren Ablauf wie folgt ist: Zunächst wird der Fall betrachtet, in dem beide Wege gleich lang sind (Abb. 1.1). Der Weg wird an jedem der beiden Enscheidungspunkte (1 und 2) zufällig entsprechend Gleichung 1.1 ausgewählt. Die Anzahl der Ameisen, die im folgenden den oberen oder unteren Zweig wählen, sei also proportional zur Anzahl derer, die diesen Weg bereits gegangen sind P_1(O) P_1(U) P_2(O) P_2(U) Abbildung 1.3: Resultat des Simulationsexperiments bei gleichlangen Wegen Angenommen m Ameisen haben die Brücke überquert und O m / U m ist die Anzahl der Ameisen, die bisher den oberen/unteren Zweig gewählt haben (m = O m + U m ), so ergeben sich die Wahrscheinlichkeiten für die Wahl der m + 1 ten Ameise wie in Gleichung 1.1. P O (m + 1) = (O m + k) h (O m + k) h + (U m + k) h P U (m + 1) = 1 P O (m) (1.1) Sei nun ψ eine Zufallsvariable, die gleichverteilt im Intervall [0, 1] ist. Die Übergangsregel ist dann mit Gleichung 1.2 gegeben. ψ < P U (m) U m+1 = U m + U m ψ P U (m) O m+1 = O m + O m (1.2) Die Werte für U m und O m werden angenommen mit den Werten aus den Mittelwertgleichungen aus [25]. U 1 = ΦP U,2 (t k) + ΦP U,1 (t) O 1 = ΦP O,2 (t k) + ΦP O,1 (t) (1.3) 8

9 Der Wert k gibt hierbei die Verzögerung an, die durch das Passieren des gewählten Weges entsteht. Erst nach Zeit k hat eine Ameise den Weg von Punkt 1 zu Punkt 2 in Abbildung 1.1 zurückgelegt. Φ soll die mittlere Anzahl der Ameisen, die pro Zeiteinheit auf Nahrungssuche gehen angeben. Aus [2] wurden die Werte k = 20 und h = 2 übernommen, die Simulation liefert die Ergebnisse aus Abbildung 1.3. Man erkennt hier, daß sich die Ameisen nach einer kurzen Einschwingphase nur noch für den unteren Zweig entscheiden. Dieses Experiment kann leicht für den Fall unterschiedlich langer Wege wie in [25] abgewandelt werden, indem man die Mittelwertgleichungen 1.3 zu 1.4 abändert. Hier gibt r das Längenverhältnis zwischen unterem und oberem Weg an. Wie man in Abbildung 1.4 sieht, fällt die Entscheidung nun immer zugunsten des Kürzeren der beiden Wege. U 1 = ΦP U,2 (t k) + ΦP U,1 (t) O 1 = ΦP O,2 (t kr) + ΦP O,1 (t) (1.4) Die Beobachtungen bei diesen Experimenten sind analog zu denen bei realen Ameisen (Experiment: Deneubourg et al. 89, [25], siehe auch Abbildung 1.5) P_1(O) P_1(U) P_2(O) P_2(U) P_1(O) P_1(U) P_2(O) P_2(U) r = 0.8 r = 1.2 Abbildung 1.4: Monte Carlo Experiment: unterschiedlich lange Wege Die Methode der Ameisen soll nun auf Probleme der kombinatorischen Optimierung angewandt werden. Dazu sollen hier nun zuerst einige Eigenschaften der Ameisen festgehalten und die betrachteten Probleme allgemein formuliert werden. Ameisen sind in der Lage, Pheromone an ihrem Aufenthaltsort wahrzunehmen und abzulagern. Dies dient der Kommunikation mit den anderen Ameisen. Abhängig von diesem Informationen bewegen sie sich zufällig, wobei sie Richtungen, in denen mehr Pheromone vorhanden sind bevorzugen. 9

10 Abbildung 1.5: Experimentaufbau reale Ameisen (Deneubourg et al. 89 [25]) Die künstlichen Agenten sollen nun genau wie reale Ameisen eine Kolonie kooperierender Individuen bilden. Dazu folgen sie einer numerisch definierten Pheromonspur, Verändern und Lesen dieser Pheromonspur sind die einzigen Mittel zur Kommunikation. Entsprechend der Stärke der Pheromonspuren werden von den Ameisen benachbarte Zustände im Problemraum durchwandert, optional können problemspezifische Beschränkungen (z.b. Traveling Salesman: ignorieren bereits besuchter Städte) mit eingebracht werden. Man kann diese Übergangsstrategie als stochastisch kurzsichtig (myopic) bezeichnen, lokale Informationen (das Gelände ) und Pheromongehalt bestimmen die Übergangswahrscheinlichkeiten. Da bei vielen Problemen bereits vorher Wissen über die Struktur der Lösung vorhanden ist, liegt es nahe, den künstlichen Ameisen zusätzliche Fähigkeiten zu geben, die ihre natürlichen Vorbilder nicht haben. Künstliche Ameisen leben in einer diskreten und endlichen Welt, sie können daher den gegangenen Weg und gesammelte Informationen in einem internen Zustand speichern. Damit ist es auch möglich, Pheromonspuren erst nachdem eine Lösung gefunden wurde - und dann abhängig von der Lösungsqualität - zu legen. Um vorhandenes Problemwissen und Heuristiken mit einzubeziehen, können weiterhin Fähigkeiten zur lokalen Optimierung, Vorausschau und Backtracking implementiert werden. Die Lokalität der Kommunikation (die Information kann nur an dem Ort ausgelesen werden, wo sie hinterlassen wurde) und ihre Unabhängigkeit vom einzelnen Individuum - wenn sie hinterlassen wurde - prädestinieren solche Algorithmen natürlich auch für eine parallele Implementierung [8, 50]. 10

11 1.3 Die ACO Metaheuristik Definition der Problemklasse Unser Problem bestehe aus einer endlichen Menge von Komponenten C = {c 1, c 2,..., c NC }, deren Anzahl durch N C gegeben ist. Weiterhin sei eine endliche Menge von Verbindungen zwischen diesen Elementen gegeben: L = {l ci,c j (c i, c j ) C C C}, L NC. 2 Für jede dieser Verbindungen existieren Verbindungskosten J ci c j = J(l ci c j, t). Beim Traveling Salesman (TSP) beispielsweise ist die Menge C äquivalent zur Menge der Städte im Graphen, L und J entsprechen den Kanten des Graphen und den ihnen zugeordneten Kosten. Um gültige Lösungen zu beschreiben, existiert eine Menge von Beschränkungen Ω = Ω(C, L, t). Der Parameter t beschreibt hier Abhängigkeiten von der Zeit. Im Beispiel des TSP wird verlangt, daß jede Stadt genau einmal besucht wird und die Tour in der Stadt endet, in der sie begonnen hat (d.h. die gefundene Tour ist ein Hamilton Kreis). Wir können nun die Zustände des Problems als Folgen S = {s =< c i, c j,..., c k >} definieren. Die Teilmenge S S davon enthält die gültigen Folgen. Zwischen diesen Zuständen sei folgende Nachbarschaftsrelation festgelegt: wenn s 1, s 2 S, dann ist s 2 Nachbar von s 1 wenn es in einem Schritt durch Anhängen einer Komponente erreichbar ist (c 1, c 2 C; s 1 =<..., c 1 >; l c1 c 2 L s 2 =< s 1, c 2 >). Damit ergibt sich für jeden Zustand s automatisch die Menge der benachbarten Zustände N s. Einer Lösung ψ S des Problems ordnen wir die Kosten J ψ = f({j ci c j (c i, c j ) gehört zur Lösung ψ}) zu - beim Traveling Salesman wird die Summe der Einzelkosten verwendet. Gesucht wird also eine gültige Lösung mit minimalen Kosten: J = minj ψ ψ 11

12 Abbildung 1.6: Ameise sucht eine Lösung in Form eines Weges im Graphen Die Heuristik Die Ameisenalgorithmen lassen sich formal durch die folgende ACO-Metaheuristik beschreiben, welche hier vereinfacht nach der Variante in [15] wiedergegeben wird. ACO steht für Ant Colony Optimization. Im einfachsten Fall bewegen sich die Ameisen durch einen Graphen (siehe Abbildung 1.6) und die Übergangswahrscheinlichkeit für einen Übergang der Ameise k im Knoten i zum Knoten j ist gegeben durch Gleichung 1.5 (Ni k ist hier die Menge der erlaubten Nachbarknoten, also derer die nicht verhindern, daß eine gültige Lösung konstruiert wird). Pij k = P τ ij (i,k) N k i τ ik 0 sonst wenn j N k i (1.5) Nachdem sie eine Kante passiert hat, wird sie eine Menge τ an Pheromonen auf der gewählten Kante (i, j) deponieren: τ ij (t + 1) τ ij (t) + τ Um Konvergenz auf lokale Optima zu vermeiden, verdunsten die Pheromone exponentiell nach der Regel τ (1 ρ)τ. Dies wird üblicherweise durchgeführt, nachdem alle Ameisen ihre Lösung gefunden haben. Dieser Ansatz lässt sich wie folgt verallgemeinern. Unsere Kolonie enthält m Ameisen. Die k te Ameise habe ein Gedächtnis M k, das zum Rekonstruieren des gegangenen Weges und um gültige Lösungen zu finden eingesetzt werden kann. Befindet sich die Ameise im Zustand s r =< s r 1, i >, kann sie sich in der gültigen Nachbarschaft von s r bewegen: N k i = {j (j N i ); (< s r, j > S)}. Jede Ameise 12

13 bekommt als Startzustand s s k eine Folge zugeordnet, die einen Knoten enthält, der im Allgemeinen zufällig ausgewählt wird. Weiterhin gibt es jeweils eine Menge von Abbruchkriterien {e k }. Es wird nun von jeder Ameise inkrementell eine Lösung des Problems durch Bewegung ausgehend von s s k gesucht, bis ein e k erfüllt ist. Der nächste Zustand j einer Ameise k in i wird zufällig aus Ni k gewählt; die Verteilung wird angegeben durch eine Datenstruktur A i = [a ij ]. Der Wert τ ij gibt den Pheromonwert an der Verbindung (i, j) an. Er kann nach jedem Schritt oder auch erst nachdem eine Lösung gefunden wurde aktualisiert werden. Es ist auch denkbar, Pheromonwerte für Komponenten c i einzuführen, diese Erweiterung wird hier allerdings nicht betrachtet, da sie für die bearbeiteten Probleme nicht relevant ist. Abbildung 1.7 zeigt den grundlegenden Aufbau der meisten Ameisenalgorithmen. Die Durchläufe der while-schleife werden im folgenden Zyklen oder Iterationen genannt. Eine Abbruchbedingung ist meist durch eine maximale Zyklenzahl vorgegeben, alternativ kann ein Test auf Stagnation durchgeführt werden. Diese tritt ein, wenn alle Ameisen den selben Weg gegangen sind und die Pheromonspur dort offenbar so stark geworden ist, daß andere Wege nicht mehr gewählt werden und der Lösungsraum nicht weiter durchsucht wird. Um Stagnation zu vermeiden, kann beispielsweise ein Wert τ max vorgegeben werden, der den maximalen Pheromonwert für eine Verbindung vorgibt (siehe auch Abschnitt zum MMAS). 1: while!abbruch do 2: Ameisen erzeugen und Lösungen finden 3: Pheromone verdunsten lassen 4: Daemon-Actions {z.b. Beste Lösung mit extra Pheromonen belohnen } 5: end while Abbildung 1.7: Die Heuristik Zeile 4 umfasst alle Veränderungen an den Pheromonwerten und Lösungen, die Ameisen nicht selbst durchführen können. Daemons können die Pheromone auf den Kanten der besten Lösung noch einmal zusätzlich verstärken (ähnlich der Eliteselektion bei genetischen Algorithmen) oder die Pheromonspur verdunsten lassen. Es kann außerdem auf diesem Weg Wissen über die Problemstruktur mit eingebracht werden, z.b. heuristische Verbesserung der besten gefundenen Lösung. Zu welchem Zeitpunkt das Pheromonupdate optimal ist, hängt vom Problem ab. Wird es online step-by-step durchgeführt, d.h. für jede Kante genau dann wenn 13

14 sie von einer Ameise passiert wurde, kann die Ameise möglicherweise bereits selbst von den von ihr gesammelten Informationen profitieren. Nachteilig ist hier, daß die Kosten für die Lösung (bzw. ob die Ameise überhaupt eine Lösung findet) noch nicht bekannt sind. Bei online verzögertem Update - bei dem die Ameise ihre Spur legt, nachdem sie eine Lösung konstruiert hat - kann die Qualität der Lösung mit einbezogen werden. Anschaulich verteilt sie dabei eine feste Menge an Pheromonen auf der ganzen Länge des gefundenen Weges. Wenn die Pheromonspur offline durch einen Daemon aktualisiert wird, können die Lösungen dabei relativ zueinander (siehe [7]) oder relativ zur besten gefundenen Lösung bewertet werden. Die Ameisen bewegen sich gleichzeitig und asynchron durch den Graphen, in welcher Form das genau passiert, wird durch die Heuristik nicht vorgegeben. Läuft eine Ameise in eine Sackgasse oder findet keine gültige Lösung, wird sie gelöscht. Wie viele Ameisen erzeugt werden, ist letztendlich eine Frage der vorhandenen Ressourcen. Wie viele sinnvoll sind, hängt von der Art des Pheromonupdate sowie von Problemstruktur und -größe ab. 1: Ameise initialisieren; s = s s k 2: while s e k do 3: P = Übergangswktn(A, M, Ω) 4: n Zustandsänderung(P, Ω) 5: (optional) lokales Update von τ sn ; Update von A 6: s n ; Update von M 7: end while 8: for (i, j) ψ do 9: Update von τ ij ; Update von A {optional} 10: end for Abbildung 1.8: Lebenszyklus einer Ameise 1.4 Ameisen und der Traveling Salesman Das Problem Sei ein vollständig verbundener Graph C = (V, E) mit Knotenmenge V und Kantenmenge E gegeben. Jede Kante hat eine Länge d ij R. Im Fall des symmetrischen TSP ist der Hinweg genauso lang wie der Rückweg (d ij = d ji ). Bei asymmetrischen 14

15 TSP gilt diese Forderung nicht. Gesucht wird eine abgeschlossene Rundreise minimaler Länge. Bedingung ist, daß die Rundreise im selben Knoten endet, in dem sie begonnen hat und jeden Knoten (anschaulich jede Stadt) genau einmal enthält. Die Länge einer Rundreise ergibt sich aus der Summe der Längen der enthaltenen Kanten Der Grundalgorithmus: Das Ameisensystem Das Ameisensystem (Ant System, AS) war der erste Ameisenalgorithmus für das Traveling Salesman Problem und wurde 1996 von Dorigo, Maniezzo und Colorni in [17] vorgestellt. Wie bereits beschrieben, haben wir auch hier m Ameisen. Davon befinden sich V zum Zeitpunkt t b i (t) in der Stadt i (m = b i ). Die Ameise in Stadt i bewegt sich nach j mit Wahrscheinlichkeit Pij, k gegeben durch Gleichung 1.6. Für jede Kante (i, j) gibt der Wert τ ij die Stärke der Pheromonspur an. Bereits besuchte Städte werden in tabu k gespeichert, L k ist Länge der Rundreise von Ameise k. i=1 Die erlaubten Städte beim Zustandsübergang sind also alle, die noch nicht in tabu k gespeichert sind: allowed k = V \ tabu k. Die Sichtbarkeit einer Kante ist der reziproke Wert ihrer Länge: η ij = 1 d ij. Pij(t) k = P [τ ij ] α [η ij ] β κ allowed k [τ iκ ] α [η iκ ] β 0 sonst wenn j allowed k Gute Werte für die Parameter α und β sind 1 und 5 (siehe 3.3). (1.6) Es gibt drei Varianten des Algorithmus: ant-cycle, ant-density und ant-quantity. Bei der ersten Variante wird die Pheromonspur aktualisiert, nachdem alle Ameisen eine Lösung gefunden haben (offline), bei den anderen beiden Varianten nachdem eine Kante passiert wurde (online step-by-step). Die Vorschrift dafür sieht bei ant-cycle wie folgt aus: τ ij (t + 1) = ρτ ij (t) + τ ij (ρ < 1) m τ ij = k=1 τ k ij τ ij (0) = c > 0 z.b. c = 1 ρl NN L NN = RR-Länge der Nearest Neighbor Heuristik 15

16 Q τij k L = k wenn die k te Ameise (i, j) besucht hat 0 sonst (1.7) Q ist konstant (z.b. Q = 1) und gibt die Menge an Pheromonen an, die die einzelne Ameise dabei hat und auf ihrer Rundreise verteilen kann. Bei ant-density wird jede Kante, die die Ameise benutzt, mit der gleichen Menge an Pheromonen versehen. Q Wenn Ameise k zwischen t und t+1 von i nach j geht τij k = 0 sonst Bei ant-quantity ist die Menge an Pheromonen von der Länge der Kante abhängig (dies macht kürzere Kanten für die folgenden Ameisen interessanter): Q τij k d = ij Wenn Ameise k zwischen t und t+1 von i nach j geht 0 sonst Ant-density und ant-quantity lieferten bei Experimenten schlechtere Resultate als ant-cycle, es sind mehr Zyklen bis zum Finden der optimalen Lösung notwendig [17]. Daher bezieht sich ab jetzt die Bezeichnung Ameisensystem (AS) auf die ant-cycle Variante des Algorithmus Das Max-Min Ameisensystem: MMAS Stützle und Hoos schlugen in [54] einige Änderungen am Grundalgorithmus vor, um die Effektivität von AS zu verbessern. Es wurde beobachtet, daß die Ameisen, wenn nur wenige Intensitäten wirklich hoch sind, sehr wahrscheinlich immer den gleichen Weg gehen werden, was dann möglicherweise zu Stagnation führt. Als erste maßgebliche Änderung wurden für die Stärke τ der Pheromonspur explizite Minima und Maxima vorgegeben. Diese sind in Gleichungen 1.8 und 1.9 angegeben. τ min = const ; ø: durchschnittliche Kantenlänge (1.8) ø n 2 n τ max (t) = ; L min (t): Länge kürzeste RR zum Zeitpunkt t (1.9) L min (t) Die Pheromonwerte aller Kanten werden mit τ max initialisiert, aufgrund des schon bekannten Verdunstungsmechanismus (siehe Gleichung 1.10) werden diese auf selten 16

17 1: BesteRRLänge 2: BesteRR 3: NC 0; t 0 4: τ ij τ 0 (i, j) E 5: Initialisiere Ameisen, startpos k zufällig wählen 6: repeat 7: tabu k = {startpos k } ; pos k startpos k k 8: kanten k = k 9: for k = 1,..., m do 10: while tabu k < V do 11: Wähle Stadt j nach Übergangsregel und füge sie zu tabu k hinzu 12: kanten k = kanten k {(pos k, j)} 13: pos k j 14: end while 15: kanten k = kanten k {(pos k, startpos k )} 16: end for 17: {Beste Ameise suchen} 18: for k = 1,..., m do 19: L k P d ij (i,j) kanten k 20: if L k <BesteRRLänge then 21: BesteRRLänge L k 22: BesteRR kanten k 23: end if 24: end for 25: t t + V 26: {Pheromonspuren aktualisieren} 27: for (i, j) E do 28: for k = 1,..., m do 29: τij k 0 30: if (i, j) kanten k then 31: τij k τ ij k + Q L k 32: end if 33: end for 34: τ ij MAX(tau 0, ρ τ i P j + m τij k ) 35: end for 36: NC NC : until stagnation NC < NC max k=1 Abbildung 1.9: Der AS Algorithmus 17

18 besuchten Kanten immer kleiner werden, aber nie ganz gegen 0 gehen. Dies führt zu explorativerem Verhalten der Ameisen, der Suchraum wird auch weiter erforscht, wenn ein lokales Optimum gefunden wurde. m τ ij (t + 1) ρτ ij (t) + τij(t) k (1.10) k= Bessere lokale Suche: AS elite In [7] wurde eine Variation des Originalalgorithmus vorgestellt, die gewisse Ähnlichkeit mit der von genetischen Algorithmen bekannten Eliteselektion hat. Es wird hierbei eine Anzahl σ von Ameisen vorgegeben, die auf der besten bisher gefundenen Rundreise eine Pheromonspur legen. Die ursprüngliche Regel zum Update der Pheromonspur τ ij (t + 1) = ρτ ij (t) + τ ij (ρ < 1) m τ ij = k=1 τ k ij τ ij (0) = c > 0 Q τij k L = k wenn die k te Ameise (i, j) besucht hat 0 sonst wird nun erweitert zu τ ij (t + 1) = ρτ ij (t) + τ ij + τij (ρ < 1) (1.11) σ Q τij L = wenn die beste gefundene Tour (i, j) enthält 0 sonst (1.12) Dies führt zu Verbesserungen im lokalen Suchverhalten, kann aber auch zu schnellerer Konvergenz auf lokale Optima führen. In [7] wird vorgeschlagen, die gleiche Anzahl Ameisen wie Städte zu verwenden, weiterhin soll noch einmal die gleiche Anzahl von Ameisen den besten bekannten Weg gehen ( V = m = σ) Ameisen und Ranking: AS rank Die in [7] vorgestellte Variante erweitert die Idee der Eliteameisen noch um eine Bewertung der gefundenen Lösungen analog rangbasierter Selektion (Tournament 18

19 Selection). Die m Ameisen werden dazu nach der Länge ihrer gefundenen Rundreise sortiert: L 1 <... < L m. Der Beitrag einer Ameise zum Pheromonupdate auf einer Kante ist abhängig von ihrem Rang µ. Weiterhin werden nur die ω besten Ameisen betrachtet. Der Wert von ω wird auf σ 1 festgelegt (σ: Anzahl der Eliteameisen). Die neue Regel ist in Gleichung 1.13 angegeben. τ ij (t + 1) = ρτ ij (t) + τ ij + τij (ρ < 1) (1.13) Wobei σ 1 τ ij = µ=1 τ µ ij τ ij (0) = c > 0 σ Q τij L = wenn die beste gefundene Tour (i, j) enthält 0 sonst τ µ ij = (σ µ) Q L µ wenn die µ t beste Ameise (i, j) besucht hat 0 sonst Ant Colony System(ACS) und ANT-Q Eine weitere Verbesserung des ursprünglichen Algorithmus sind ANT-Q und das daraus hervorgegangene Ant Colony System [23, 16]. Ähnlich wie auch bei AS elite wird hier die Spur der besten gefundenen Ameise offline verstärkt: (i, j) T + (T + : beste bisher gef. RR) τ ij (t + n) = (1 ρ) τ ij (t) + ρ τ ij (t) τ ij (t) = 1 L + L + : Länge der kürzesten bislang gef. RR Um die Suche bereits während dem aktuellen Zyklus zu unterstützen, hinterlassen die Ameisen bei jedem Schritt eine Spur (online-update der Spur): τ ij (t + 1) = (1 φ) τ ij (t) + φ τ 0 Man beachte, daß die Vorschrift zum Verdunsten der Pheromone anders ist als bei den vorangegangenen Algorithmen, es wird hier eine Gewichtung vorgenommen. Außerdem findet Verdunstung nur auf Kanten statt, die auch von einer Ameise 19

20 besucht wurden. Diese neue Regel führt beim online Update zum Beispiel dazu, daß von einer Ameise besuchte Kanten nicht mehr so ansprechend für die folgenden Ameisen sind und damit zu einer breiteren Erforschung des Suchraumes. Die Übergangsregel zur Wahl der nächsten Stadt s wurde erweitert, es kann nun direkt das Verhältnis zwischen lokaler und globaler Suche angegeben werden. Dazu dient die Zufallsvariable q, die gleichverteilt in [0, 1] ist. Das Verhältnis wird durch den Parameter q 0 [0, 1] angegeben. arg max {[τ ij ] [η ij ] β } wenn q < q 0 (Exploitation/lokale Suche) s = u allowed k S (verteilt wie bei AS) sonst (Exploration/globale Suche) In ANT-Q wurde der Wert von τ 0 festgelegt wie in 1.14, später wurde dann experimentell festgestellt, daß der komplexe Vorhersageterm durch 1.15 ersetzt werden kann. τ 0 = γ max {τ jl } (1.14) l allowed k 1 τ 0 = (1.15) V L nn γ L nn : Parameter : Länge der RR nach Nearest Neighbor Heuristik Dies macht den einzigen Unterschied zwischen ACS und ANT-Q aus. Weitere Verbesserung kann durch Verwendung einer Kandidatenliste für jede Stadt (wenn sich die Ameise in einer Stadt befindet, wird die Auswahl der nächsten Stadt solange wie möglich auf Städte aus dieser Liste beschränkt) zum Einbringen bekannter Informationen über gute Lösungen erreicht werden. Als konkrete Variante für die Kandidatenliste bietet sich beispielsweise die Liste der k nächsten Nachbarn an. Ein weiterer Vorteil der Verwendung einer Kandidatenliste ist der Geschwindigkeitsgewinn beim Berechnen der Übergangswahrscheinlichkeiten für große Probleme. Eine andere Möglichkeit ist die beispielsweise in ACS-3-Opt verwendete Variante, die Rundreisen der Ameisen noch lokal per der 2-Opt/3-Opt oder Lin-Kernighan Heuristik (siehe Abb. 1.10) zu optimieren. Die optimierte Rundreise wird dann auch zum Update der Pheromonspur verwendet. Ameisenalgorithmen mit lokaler Optimierung sind sehr effektiv, da die Ameisen meist eine recht gute Lösung erzeugen, und daher bei 2-Opt/3-Opt weniger Durchläufe erforderlich sind, als bei zufällig erzeugten Rundreisen. 20

21 Original-RR 2-Opt Austausch 3-Opt Austausch C D C D D E C F B A B A B A Eine Rundreise wird durch Austausch von 2 (2-Opt), 3 (3-Opt) oder k (k-opt) Kanten optimiert. Ein Austausch findet statt, wenn die dadurch entstehende Tour kürzer ist, als die vorhandene. Ein k-opt Algorithmus für ein Problem der Dimension n hat die Laufzeit O(n k ). Beim Lin-Kernighan Algorithmus finden mit variabler Tiefe 2,3,... oder k-austauschoperationen statt, bedingt durch eine Heuristik, die angibt wie wahrscheinlich die durch die Austauschoperation erzeugte Rundreise besser ist. Zu Details über die Implementierung, siehe [36, 35, 31]. Die Laufzeit der Algorithmen ist auch abhängig von der verwendeten Datenstruktur zur Darstellung der Rundreise. Verschiedene Varianten davon sind beschrieben in [18]. Ein Vergleich verschiedener Heuristiken für das Traveling Salesman Problem und Implementierungshinweise sind in [34] enthalten. Abbildung 1.10: Lokale Optimierung von Rundreisen 1.5 Weitere Anwendungen für Ameisenalgorithmen Quadratisches Zuordnungsproblem Das Quadratische Zuordnungsproblem (QAP, Quadratic Assignment Problem) ist ein weiteres sehr bekanntes kombinatorisches Optimierungsproblem. Anschaulich kann es durch die Zuordnung von n Fertigungsstätten (FS) zu n Orten beschrieben werden. Die Kosten der Zuordnung ergeben sich dann aus der Summe der Produkte von Abstand und Fluss zwischen den einzelnen Einrichtungen. Mathematisch kann dies wie folgt formuliert werden: Sei Φ = {1, 2,..., n} eine Indexmenge der Fertigungsstätten und Λ = {1, 2,..., n} eine Indexmenge der Orte. Sei weiterhin D = [d ij ], i, j = 1, 2,..., n die Matrix der Abstände zwischen den Orten und F = [f kl ], k, l = 1, 2,..., n die Matrix, die den Fluss zwischen den einzelnen Fertigungsstätten angibt. Schließlich sei C = [c ij ], i, j = 1, 2,..., n die Matrix der 21

22 Kosten, die sich jeweils durch Zuordnung von Fertigungsstätte i zu Ort j ergeben und x ij {0, 1} eine binäre Variable, die gleich 1 ist, wenn sich FS i an Ort j befindet. Die Kosten ergeben sich dann wie in Gleichung n n n J QAP = d ih f jk x ij x hk + c ij x ij (1.16) i,j=1h,k=1 i,j=1 Folgende Bedingungen müssen dabei erfüllt sein: n x ij = 1 i=1 n x ij = 1 j=1 j = 1, 2,..., n i = 1, 2,..., n Anschaulich ausgedrückt wird also jeder FS genau ein Ort und anders herum auch jedem Ort genau eine FS zugeordnet. Gesucht wird auch hier eine Zuordnung ψ für die gilt: J ψ = min J ψ Die Kostenfunktion kann auch noch allgemeiner formuliert werden, wenn die Zuordnungskosten in Form einer 4-dimensionalen Kostenmatrix Ξ = [ξ jklm ]; j, k, l, m = 1, 2,..., n gegeben sind: n J QAP = ξ jklm x jk x lm j,k,l,m=1 Ameisenalgorithmen dafür wurden beispielsweise in [39] und [19] vorgestellt, ein weiterer Überblick ist in [15] zu finden. Die Kante (i, j) im Konstruktionsgraphen (d.h. dem Graphen, in dem sich die Ameisen bewegen) des Problems bedeutet hier die Zuordnung von Fertigungsstätte i zu Ort j. In den Algorithmen wird nur diesen Kanten ein Pheromonwert zugeordnet, der folglich als Attraktivität der Zuordnung FS i Ort j interpretiert werden kann. Für die praktische Anwendung wird eine Zuordnungsreihenfolge festgelegt (Ort FS oder FS Ort), die Ameise wählt im ersten Schritt also den Ort und im zweiten Schritt die FS, die dem Ort zugeordnet wird. Wenn alle Ameisen auf diesem Weg eine gültige Lösung erzeugt haben, werden lokale Optimierungen durchgeführt und dann die Pheromonwerte aktualisiert. Im Allgemeinen wird noch ein lokales Suchverfahren verwendet, um die durch das Ameisensystem gefundene Lösung zu verbessern. Da durch die bekannten Stigmer- 22

23 gieeffekte bereits eine recht gute Lösungen vorliegen, werden vom lokalen Optimierungsverfahren weniger Iterationen benötigt. Die Wahl der Zuordnungsreihenfolge wird entweder durch eine Heuristik vorgegeben oder erfolgt zufällig (gleichmäßig verteilt). Der erste Ameisenalgorithmus für das QAP war eine direkte Umsetzung des oben beschriebenen Ameisensystems. Die Übergangswahrscheinlichkeit ergibt sich auch hier wie in 1.18, allerdings wird der Parameter η anders definiert, um heuristische Informationen für das QAP mit einzubringen. Es werden Vektoren d und f berechnet, deren i te Komponente jeweils die Summe der Abstände (d i ) und der Flüsse (f i ) zu allen anderen Orten oder FS n enthält (genannt das Abstands- und Flusspotential des Ortes/der FS). Die Elemente der Matrix E = [e ij ] = f d T (e ij = f i d j ) werden dann zur Bestimmung der Sichtbarkeit η (siehe Gleichung 1.17) benutzt. Pij(t) k = η ij = 1 e ij (1.17) P [τ ij ] α [η ij ] β κ N k i [τ iκ ] α [η wenn j N k iκ ] β i 0 sonst (1.18) Das Update der Pheromonspuren findet dann wie bereits beschrieben statt, allerdings werden jetzt die Kosten J ψ verwendet. der Lösung statt der Länge einer Rundreise Weitere Probleme Die folgende Tabelle gibt einen Überblick über weitere Anwendungen von Ameisenalgorithmen: Problem Autoren Referenzen Jahr Quadrat. Zuordnung Maniezzo, Colorni, Dorigo [39] 1994 Gambardella, Taillard, Dorigo [19] 1998 Maniezzo [37] 1998 Stützle, Hoos [51] 1999 Stützle, Dorigo [52] 1999 Job-shop scheduling Colorni, Dorigo und Maniezzo [9] 1994 Vehicle routing Bullnheimer, Hartl & Strauss [5, 6, 4] 1997, 1999 Gambardella, Taillard, Agazzi [24] 1999 Montemanni, Gambardella, Rizzoli, Donati [42] 2003 Sequential ordering Gambardella, Dorigo [20, 21, 22] 1997,2000 Weiter auf der nächsten Seite... 23

24 ...Fortsetzung von der letzten Seite Problem Autoren Referenzen Jahr Graphen färben Costa, Hertz [11] 1997 Comellas, Ozon [10] 1998 Constraint Satisfaction Probleme Solnon, van Hemert [49, 48] 2000, 2001 Roli, Blum, Dorigo [43] 2001 Solnon, van Hemert [32] 2004 Timetabling Socha, Sampels [46, 47] 2002,2003 Frequency Assignment Maniezzo, Carbonaro [38] 2000 Shortest Common Supersequence Michel, Middendorf [15, 41] 1998 Routing in Schoonderwoerd, Holland, [45, 44] 1996 verbindungsorientierten Netzen Bruten, Rothkrantz White, Pagurek, Oppacher [60] 1998 Bonabeau, Henaux, Guerin, [3] 1998 Snyers, Kuntz, Theraulaz Routing in verbindungs- Di Caro, Dorigo [13, 14] 1998 losen Netzen Subramanian, Druschel, Chen [55] 1997 Heusse, Guerin, Snyers, Kuntz [33] 1998 Van der Put, Rothkrantz [58, 59] 1998, 1999 Matsuo, Mori [40] 2001 Thulasiraman, Thulasiram, Islam [57] 2004 Routing (Überblick) Sum, Shen, Young, Jie Wu, Leung [56] 2003 Tabelle 1.1: Weitere Anwendungen von Ameisenalgorithmen 1.6 Konvergenzergebnisse Beweise für die Konvergenz verschiedener Klassen von Ameisenalgorithmen wurden in Arbeiten von Gutjahr [27, 30, 29] und Stützle/Dorigo [53] vorgestellt. Der erste Beweis [27] bezog sich auf ein graphenbasiertes Ameisensystem. Dieser Name leitet sich ab von der Bezeichnung des Konstruktionsgraphen einer bestimmten Instanz eines Problems. Der Konstruktionsgraph einer Probleminstanz repräsentiert Zustände und gültige Lösungen eines Problems in Form von Wegen ausgehend von einem Startzustand. Für jedes kombinatorische Optimierungsproblem existiert ein Konstruktionsgraph mit einer Anzahl von Knoten, die linear zur der Anzahl der Bits ist, die zum Kodieren der Lösung notwendig sind, und einer Kantenanzahl, die davon quadratisch abhängt. Das graphenbasierte Ameisensystem (GBAS) besitzt einige Einschränkungen gegenüber der allgemeinen ACO Metaheuristik. So können beispielsweise die Kostenfunktionen hier nicht zeitabhängig sein, weiterhin beginnen die Ameisen beim GBAS immer an einem bestimmten Startknoten. Die oben beschriebenen Daemon Actions werden nicht unterstützt, außerdem muss das Update der Pheromonspuren offline erfolgen. 24

25 Der verwendete Algorithmus ist im wesentlichen identisch zum oben beschriebenen Ameisensystem für das Traveling Salesman Problem, allerdings wird der Parameter α auf 1 festgelegt. Die Sichtbarkeitswerte η können hier allgemein als heuristische Schätzwerte für das Enthaltensein der Kante im Weg zur optimalen Lösung angesehen werden. Gutjahr bewies, daß unter bestimmten Bedingungen die Wahrscheinlichkeit für die Konvergenz der durch das Ameisensystem generierten Lösungen gegen das Optimum beliebig nahe an 1 herangebracht werden kann. Die Bedingungen dafür sind wie folgt: 1. Es gibt genau eine optimale Lösung. Diese kann nur durch genau einen Durchlauf durch den Konstruktionsgraphen dargestellt werden. 2. Auf allen Kanten dieses optimalen Weges gilt η > 0 3. Nur bei Kanten auf Wegen, die genauso gut oder besser als der bisher beste gefundene Weg sind, werden Pheromone hinzugefügt ( τ > 0). Dies entspricht gewissermaßen der Elitestrategie aus AS elite. Genauer wurde unter diesen Bedingungen folgendes gezeigt: Sei P m die Wahrscheinlichkeit, daß eine bestimmte Ameise in Zyklus m den optimalen Weg findet. Für ein ɛ > 0 und festgelegte Parameter β (Gewichtung der heuristischen Parameter η bei der Übergangswahrscheinlichkeit) und ρ (Verdunstungsrate) kann eine (entsprechende große) Anzahl von Ameisen S gefunden werden, so daß P m 1 ɛ für alle m m 0 gilt (mit einer von ɛ abhängigen ganzen Zahl m 0 ). Für ein ɛ > 0 und festgelegte Parameter S (Anzahl der Ameisen) und β kann eine Verdunstungsrate ρ gewählt werden, so daß P m 1 ɛ für alle m m 0 (mit einer von ɛ abhängigen ganzen Zahl m 0 ). In der Arbeit von Stützle und Dorigo [53] wurden ähnliche Eigenschaften für ACO gb,τmin, eine vereinfachte Variante der ACO Metaheuristik bewiesen. Hier steht gb für global best, d.h. nur die Pheromonspur der bisher besten Ameise wird verstärkt. Weiterhin wird ein Mindestwert τ min für die Pheromonwerte vorgegeben. Es kann hier auch mehrere optimale Wege geben, außerdem ist die Stadt nicht mehr festgelegt, in der die Ameisen ihre Suche beginnen. 25

26 Sei P m die Wahrscheinlichkeit, daß eine bestimmte Ameise in Zyklus m einen optimalen Weg findet. Für einen beliebig kleinen Wert ɛ gibt es einen (entsprechend großen) Wert von m mit P m 1 ɛ. Asymptotisch gilt lim n P m = 1 Sei m die Iteration, in der die erste Ameise eine optimale Lösung findet. Dann gibt es einen Wert m 0, so daß wenn m > m + m 0 = m + (1 ρ)/ρ : τ ij > τ kl für alle Kanten (i, j) der optimalen Lösung und (k, l), die nicht in der optimalen Lösung enthalten sind gilt. Es wurde eine untere Schranke für die Wahrscheinlichkeit der Konstruktion einer optimalen Lösung in Iteration m angegeben. Man beachte, daß auch in diesem Beweis keinerlei Aussage über die benötigte Anzahl von Iterationen getroffen wird. Die Hauptaussage ist eher, daß (a) der Algorithmus die Möglichkeit, eine optimale Lösung zu finden, nie ganz ausschließt (d.h. er nicht endgültig auf ein lokales Optimum konvergieren kann) und (b) wenn eine optimale Lösung gefunden wurde, die Pheromonwerte auf deren Kanten gegen einen Maximalwert konvergieren, während alle anderen durch Verdunstung zum Minimalwert zurückkehren. Gutjahrs Beweis ist stärker, es wird dort gezeigt, daß Konvergenz zu einer Situation hin vorliegt, in der die optimale Lösung immer wieder generiert wird. Der Beweis von Dorigo und Stützle hingegen gilt für eine größere Klasse von ACO Algorithmen, in [53] zeigen sie, daß die Ergebnisse beispielsweise auf ACS und MMAS zutreffen. Das GBAS hingegen ist ein Algorithmus, für den keine experimentellen Daten verfügbar sind. Die allgemeinsten und stärksten Konvergenzresultate basieren auf Verallgemeinerungen des GBAS (stochastische kombinatorische Optimierung, beliebige Anzahl optimaler Lösungen) und wurden von Gutjahr in [28, 30, 29] vorgestellt. 26

27 2 Implementierung für das Traveling Salesman Problem 2.1 Der Algorithmus Die in 1.4 beschriebenen Algorithmen für das Traveling Salesman Problem wurden im Rahmen dieser Studienarbeit implementiert. Als Grundlage dient der in Abbildung 1.9 angegebene Algorithmus mit entsprechenden Erweiterungen. Durch geeignete Parameterwahl kann jeder der vorgestellten Algorithmen abgebildet werden. Im folgenden werden diese Parameter und deren Werte für die einzelnen Varianten der Ameisenalgorithmen beschrieben. Dabei wird zuerst der Name des Parameters in der.settings Datei (und im Quelltext) angegeben, gefolgt von seinem Typ, dem Wertebereich und einer kurzen Beschreibung. 2.2 Steuerungsparameter NC [int : 0 MAXINT ]: Anzahl der Iterationen/Zyklen. Nach jeder Iteration haben NA Ameisen eine vollständige Runreise erzeugt und es finden die offline und offline best Updates der Pheromonspur statt. Der Standardwert ist 100. NA [int : 0 MAXINT ]: Anzahl der Ameisen. Der Standardwert ist 10. ranked ants [int : 0 NA]: Anzahl ω (siehe 1.4.5) der Ameisen, die für das rangbasierte Pheromonupdate verwendet werden. Der Standardwert ist 0 (Ranking ausgeschaltet). max as [int : 0, 1]: Aktualisierung von τ max wie in Der Standardwert ist 0 (kein MMAS). stagnationcheck [int : 0, 1]: Test auf Stagnation (alle Ameisen gehen den gleichen Weg) ein oder ausschalten. Der Standardwert ist 1 (Test ein). 27

28 sequentialmovement [int : 0, 1]: Entscheidet, wie die Bewegung der Ameisen stattfindet. Bei einem Wert von 1 werden die Ameisen nacheinander Ihre Lösung suchen (die nächste Ameise startet erst, wenn die letzte Ameise eine vollständige Lösung hat), bei einem Wert von 0 finden die Bewegungen der Ameisen quasi parallel statt. Standardwert ist 0. localopt [int : 0, 1, 2]: Gibt die Art der verwendeten lokalen Optimierungsheuristik an: 0 lokale Optimierung aus (Standard) 1 2-Opt 2 3-Opt nn localopt [int : 1, 1 Anz.derStaedte]: Anzahl der nächsten Nachbarn, die bei der lokalen Optimierung mit einbezogen werden sollen. Ein Wert von 1 bedeutet, daß alle Nachbarn geprüft werden. Standardwert ist Pheromonupdate Es können zu drei Zeitpunkten Änderungen an der Pheromonspur stattfinden: Beim Zustandsübergang einer Ameise (online), nachdem eine Ameise eine Lösung gefunden hat (online delayed) und am Ende der aktuellen Iteration (offline). Die Pheromonwerte werden mit tau0 initialisiert und befinden sich immer zwischen taumin und taumax. Weiterhin kann für alle drei Arten des Pheromonupdate festgelegt werden, ob eine Mischungs- (siehe Gleichung 2.1) oder eine additive Vorschrift (siehe Gleichung 2.2) verwendet wird. τ(t + 1) = (1 ρ)τ(t) + ρ τ (2.1) τ(t + 1) = (1 ρ)τ(t) + τ (2.2) Der Wert von τ einer Kante berechnet sich für die einzelnen Zeitpunkte wie folgt (immer vorausgesetzt die Ameise k hat die Kante besucht, ansonsten ist τ = 0); L k sei die Länge der Rundreise der Ameise k und ind[k] gebe die Position der k t besten Ameise an. Weiterhin sei L die Länge der kürzesten gefundenen Rundreise: 28

29 τ online = Q online (γ 0 max {τ jl } + γ 1 ) l allowed k (2.3) τ onlinedelayed = Q onlinedelayed /L k (2.4) τ offline = NA k=1 ranked Q offline ants + L k w=1 (ranked ants w) Q best L ind[k] + Q best L (2.5) Die Parameter sind in der Einstellungsdatei wie folgt benannt: tau0 [double : 0 + ɛ MAX]: Initialer Pheromonwert auf allen Kanten. Sollte nicht 0 sein, da dann die Übergangswahrscheinlichkeiten für alle Städte auch 0 werden. Standardwert: 10 6 taumin [double : 0 M AX]: Minimaler Pheromonwert. Standardwert: 0. taumax [double : 0 MAX]: Maximaler Pheromonwert. Standardwert: online update [double : MAX MAX]: Entspricht Q online. Standardwert: 0. online delayed update [double : MAX MAX]: Entspricht Q onlinedelayed. Standardwert: 0. global offline update [double : MAX MAX]: Entspricht Q offline. Standardwert: 1. global best update [double : MAX MAX]: Entspricht Q best. Standardwert: 0. rho online [double : 0 1]: Entspricht ρ beim online Update. Standardwert: 0. rho onlinedelayed [double : 0 1]: Entspricht ρ beim online delayed Update. Standardwert: 0. rho globaloffline [double : 0 1]: Entspricht ρ beim offline Update. Standardwert: 0.1. rho globalbest [double : 0 1]: Entspricht ρ beim offline Update, verwendet bei Updates durch Ranking und durch die beste Ameise. Standardwert: 0. 29

30 convolute online [int : 0, 1]: Gibt an, ob beim online Update die Mischungsoder Additionsvorschrift verwendet wird. Standardwert: 0. convolute onlinedelayed [int : 0, 1]: Gibt an, ob beim online delayed Update die Mischungs- oder Additionsvorschrift verwendet wird. Standardwert: 0. convolute globaloffline [int : 0, 1]: Gibt an, ob beim offline Update die Mischungs- oder Additionsvorschrift verwendet wird. Standardwert: 0. convolute globalbest [int : 0, 1]: Gibt an, ob beim offline Update ( Updates durch Ranking und durch die beste Ameise) die Mischungs- oder Additionsvorschrift verwendet wird. Standardwert: 0. gamma0 [double : MAX MAX]: Entspricht γ 0. Standardwert: 0. gamma1 [double : MAX MAX]: Entspricht γ 1. Standardwert: Zustandsübergang Der Zustandsübergang erfolgt wie in beschrieben. Durch Setzen von q0 = 0 kann ein Zustandsübergang wie beim AS/MMAS erzwungen werden. Der Startort wird zufällig ermittelt, wenn weniger oder genauso viele Ameisen wie Städte vorhanden sind, wird jeder Stadt maximal eine Ameise zugeordnet. q0 [double : 0 1]: Verhältnis Lokale Suche/Exploration. Standardwert: 0. alpha [double : 0 1]: Entspricht α in 1.6. Standardwert: 1. beta [double : 0 1]: Entspricht β in 1.6. Standardwert: 5. nn ants [int : 1, 1 Anz.derStaedte]: Anzahl der nächsten Nachbarn, die in der Kandidatenliste (siehe 1.4.6) enthalten sind. Ein Wert von 1 bedeutet, daß die Kandidatenliste gleich der Liste der erlaubten Städte ist. Standardwert ist 1. 30

31 3 Experimente 3.1 Überblick Als Eingabe für die Experimente dienten verschiedene Probleme aus der TSPLIB Bibliothek, zu finden ist diese bei Laenge beste gefundene RR 670 ACS-2-Opt - Abweichungen Iterationen Abbildung 3.1: eil101: Lösungsqualität und deren Abhängigkeit vom Zufall Es wurden zunächst Tests mit dem AS Algorithmus und verschiedenen Parameterwerten für α, β und ρ durchgeführt. Der Einfluss der Anzahl der verwendeten Ameisen wurde ebenfalls untersucht und für die Varianten AS, ACS und AS rank verglichen. Es wurden außerdem Vergleiche zwischen den verschiedenen Varianten des Algorithmus mit und ohne lokale Optimierung durchgeführt. Die verwendeten Problemgrößen waren 29 (bays29) und 101 (eil101) Städte. Für beide Probleme sind die Ameisen in der Lage, die (bekannten) optimalen Lösungen zu finden, wenn lokale Optimierung (2-Opt oder 3-Opt) verwendet wird, dann bestenfalls sogar in weniger als 3 (bays29) bzw. 20 Iterationen (eil101). Da die Leistung der Algorithmen auch vom Zufall abhängig ist, wurden zu jedem Experiment 50 Durchläufe durchgeführt und die Ergebnisse gemittelt. Das verwendete Makefile (Unix/Linux) und ein Skript zum Mitteln der Daten (Perl) bei mehreren Versuchen, sowie die verwendeten Einstellungsdateien sind mit im Archiv der Software enthalten. Wie stark die Resultate im Beispiel von ACS vom Zufall abhängen können, zeigt Abbildung 3.1. Dort ist die Länge durchschnittlichen gefundenen Lösung über der Anzahl der Zyklen dargestellt. Die Fehlerbalken zeigen die 31

32 Standardabweichung dieser Länge nach 50 Versuchen. Verwendet wurde ACS mit 2-Opt. 3.2 Sucheigenschaften Abbildung 3.2 zeigt Werte, die bei einem typischen Lauf von AS mit dem Problem bays29 entstanden sind. Wie man sieht, wird sehr schnell eine recht gute Lösung (das Optimum liegt bei 2020) generiert, die dann folgenden Verbesserungsschritte sind kleiner. Die Standardabweichung der Weglänge der gefundenen Lösungen bleibt dabei etwa in der selben Größenordnung, was auf eine weitere Erforschung des Suchraumes schließen lässt. ACS und MMAS zeigen hier ein anderes Verhalten. Bei beiden ist die Standardabweichung der Lösungsqualität in einem Zyklus höher, d.h. der Suchraum wird ein wenig breiter abgesucht. Bei MMAS nimmt die Qualität der gefundenen Lösungen im Mittel zu, bei ACS findet keine solche Verbesserung statt (da hier aufgrund des online Updates der Pheromone sehr viele verschiedene Lösungen untersucht werden). Am größten ist die Standardabweichung der Längen der gefundenen Rundreisen bei ACS bays29 - beste Rundreise bays29 - durchschnittliche Rundreise bays29 - Standardabweichung Weglaenge Weglaenge Iterationen Iterationen Abbildung 3.2: Eigenschaften: bays29, AS 3.3 Einfluss verschiedener Parameter Alle Parameter außer den jeweils Variierten wurden gesetzt wie in Tabelle 3.1. Es wurden zwei Versuche durchgeführt, das Ergebnis des ersten in Abbildung 3.5 zeigt die Abhängigkeit von AS, AS rank und ACS von der Anzahl der verwendeten Ameisen. Im zweiten Versuch wurden bei ACS verschiedene Parameterkombinationen für α 32

33 bays29 - beste Rundreise bays29 - durchschnittliche Rundreise bays29 - Standardabweichung 300 Weglaenge Weglaenge Iterationen Iterationen Abbildung 3.3: Eigenschaften: bays29, MMAS bays29 - beste Rundreise bays29 - durchschnittliche Rundreise bays29 - Standardabweichung Weglaenge Weglaenge Iterationen Iterationen Abbildung 3.4: Eigenschaften: bays29, ACS und β verwendet. Schließlich wurden für AS und ACS noch verschiedene Werte des Parameters ρ (Verdunstungsfaktor) getestet (siehe Abb. 3.6). Beim Vergleich des Einflusses der Anzahl der Ameisen zeigt sich, daß diese beim AS-Algorithmus geringere Auswirkungen hat, als bei AS rank und ACS. Dies war zu erwarten, da bei AS rank auch die Informationen über die relative Qualität der Lösung der Ameise mit in die Pheromonspur eingehen, was bei mehr Ameisen das Suchverhalten verbessert und die Gefahr der Stagnation verringert. Auch ACS profitiert von einer höheren Anzahl Ameisen, da dann durch das online Update der Pheromonspur eine breitere Erforschung des Suchraumes stattfindet. Beim der Variation der Parameterwerte für α und β zeigt sich, daß die Werte 1 und 5 recht gut sind. Wenn β zu klein ist, wird der Kantenlänge weniger Gewicht beigemessen, was am Anfang zu häufigerer Nutzung von längeren Kanten und damit zu späterer Konvergenz auf bessere Lösungen führt. Variation des Parameters ρ zeigt im Fall von AS, daß solange die Pheromone nicht zu schnell verdunsten (d.h. großer Wert von ρ) kein großer Einfluss erkennbar ist. Wird ρ zu klein, ist schneller Stagnation möglich. Bei ACS ist ein Wert von

34 Weglaenge bays29 - AS, 20 Ameisen bays29 - AS, 30 Ameisen bays29 - ASrank, 20 Ameisen bays29 - ASrank with lines, 30 Ameisen bays29 - ACS, 20 Ameisen bays29 - ACS, 30 Ameisen Weglaenge alpha=2, beta=1 alpha=5, beta=1 alpha=0.5, beta=2 alpha=1, beta=1 alpha=1, beta=2 alpha=1, beta=5 alpha=1, beta= Iterationen Iterationen Abbildung 3.5: bays29: links Variation der Ameisenanzahl, rechts von α und von β optimal, d.h. die Stärke neuen und der alten Pheromonspur werden zu gleichen Teilen mit eingebracht. Wenn ρ zu klein oder zu groß wird, behindert dies den Lernprozess, da dann nur noch der eine oder der andere Teil in die Bewertung mit eingeht. 3.4 Vergleich der Algorithmen bays29, keine lokale Optimierung Für die hier nicht angegebenen Parameter wurde der für den Algorithmus angegebene Standardwert verwendet. Zum Einsatz kamen 10 Ameisen, wobei zu den Resultaten von AS rank und AS elite anzumerken ist, daß in [7] vorgeschlagen wurde, dort die Anzahl der Ameisen gleich der der Städte zu setzen. Um Vergleichbarkeit im Bezug auf die verwendete Rechenzeit herzustellen, wurden überall 10 Ameisen verwendet, von denen bei AS rank alle bis auf die schlechteste bewertet wurden (ranked ants = 10). Da in keinem der Algorithmen ein online delayed Update der Pheromonspuren stattfand, wurden die entsprechenden Parameter auf 0 gesetzt. Die AS, rho=0.5 AS, rho=0.1 AS, rho=0.05 AS, rho= ACS, rho=0.5 ACS, rho=0.1 ACS, rho=0.05 ACS, rho= Weglaenge Weglaenge Iterationen Iterationen Abbildung 3.6: bays29: Variation des Verdunstungsfaktors ρ 34

35 Einstellungen für die Mischungsvorschriften wurden entsprechend der Vorgabe des Algorithmus übernommen. Weiterhin wurden die Werte α = 1 und β = 5 verwendet (die sich in 3.3 und auch in [17] als gut erwiesen haben). Bei ANT-Q wurde für γ der Wert 0.05 benutzt, die Größe der Kandidatenliste betrug 20 Städte. Für AS, 1 AS elite und AS rank wurde τ 0 auf den Wert ρ L NN eine Tabelle der übrigen Parameterwerte. = gesetzt. Es folgt nun Algorithmus Q offline ρ offline Q online ρ online Q best ρ best q 0 γ 0 γ 1 AS MMAS ACS e-05 ANT-Q AS elite AS rank Tabelle 3.1: Übersicht über die verwendeten Einstellungen Laenge beste gefundene RR AS MMAS ACS ANT-Q ASelite ASrank ASrank (30 Ameisen) Optimum Iterationen Abbildung 3.7: bays29: Vergleich der Algorithmen Ohne den Einsatz lokaler Optimierungsverfahren kann die Anzahl der benötigten Iterationen bis zum Finden des Minimums recht hoch werden. Wichtig ist hier eine gute Auswahl der Parameter und eventuell das Durchführen mehrerer Versuche. Beispielsweise ACS findet unter Umständen die optimale Rundreise innerhalb von 200 Iterationen, in anderen Fällen wird ein lokales Optimum gefunden und sehr 35

36 lange beibehalten. Im Vergleich verhalten sich erwartungsgemäß ACS und ANT-Q relativ ähnlich, allerdings ist bei ANT-Q die richtige Wahl des Parameters γ notwendig. Ist dieser nicht klein genug, kann dies die Leistungsfähigkeit des Algorithmus negativ beeinflussen. Ebenfalls recht erfolgreich ist hier das MMAS, das ähnliche Ergebnisse wie ACS/ANT-Q liefert. Weniger effektiv sind das original-as und AS elite, die zwar beide am Anfang recht gute Lösungen finden, dann aber meist bei einem lokalen Optimum stagnieren. AS rank profitiert von einer größeren Anzahl an Ameisen, ist aber mit der gleichen Anzahl nicht so effektiv wie ACS/ANT-Q oder MMAS. ACS findet im Mittel nach etwa Iterationen (50 Versuche, Standardabweichung ca , d.h. die Suche kann auch sehr viel länger dauern) das Optimum. bays29, lokale Optimierung per 2-Opt Laenge beste gefundene RR Iterationen ACS-2-Opt Optimum Lokale Optimierung der Rundreisen führt hier sehr schnell zum Ziel, die von den Ameisen erzeugte Rundreise ist meist bereits nach dem ersten Durchlauf von 2- Opt optimal. Im Durchschnitt nach 50 Versuchen findet ACS-2-Opt die optimale Lösung innerhalb von 2.38 Iterationen (mit einer Standardabweichung von 2.43). Die Versuche mit 3-Opt führten in jedem Fall bereits in der ersten Iteration zur optimalen Lösung. eil101 Es wurden die gleichen Einstellungen wie bei bays29 bis auf Ausnahmen aufgrund unterschiedlicher Nearest Neighbor Rundreise und Problemgröße (zur Bestimmung der Parameter τ 0 und γ 0 ) verwendet. Außerdem wurden hier 30 Ameisen genutzt, von denen bei AS rank die 29 besten in die Bewertung mit einbezogen wurden. Die optimale Rundreise hat eine Länge von 629. Es zeigt sich hier ein ähnliches Bild wie bei bays29. Führend sind wieder ACS und ANT-Q, gefolgt von MMAS und AS elite. AS elite und AS rank setzen sich hier deutlicher vom AS ab, offenbar ist deren etwas zielgerichtetere Suche (d.h. die Orientierung an relativ besseren Lösungen) hier von Vorteil, da die Ameisen beim AS sich unter 36

37 Laenge beste gefundene RR AS MMAS ACS ANT-Q ASelite ASrank Optimum Iterationen Abbildung 3.8: eil101: Vergleich der Algorithmen ohne lokale Optimierung Umständen gleichmäßig auf ähnlich gute Lösungen verteilen können (wodurch die Suche dann länger dauert), wohingegen bei AS elite /AS rank eine oder mehrere gute Ameisen gewissermaßen eine Richtung angeben können. Die Algorithmen mit lokaler Optimierung finden auch bei diesem Problem immer das Optimum, bei 2-Opt werden dafür erwartungsgemäß mehr Zyklen benötigt. Verwendung von 3-Opt führt hier üblicherweise innerhalb der ersten 40 Zyklen zum Erfolg (siehe Abbildung 3.9). 37

38 Laenge beste gefundene RR ACS-2-Opt ACS-3-Opt ANTQ-2-Opt ANTQ-3-Opt Optimum Iterationen Abbildung 3.9: eil101: Resultate mit 2-Opt/3-Opt 38

39 4 Zusammenfassung und Ausblick Im Rahmen dieser Studienarbeit wurde die Idee der Ameisenoptimierung zunächst allgemein vorgestellt. Ein kurzer Überblick über Anwendungen wurde in 1.5 gegeben. Verschiedene Algorithmen für das Traveling Salesman Problem wurden dann detaillierter dargestellt und experimentell untersucht. Es wurden dabei Versuche mit Probleminstanzen einer maximalen Größe von 101 Städten durchgeführt. Für die Untersuchung viel größerer Probleme ist die für diese Studienarbeit erstellte Software nur bedingt geeignet. Zum Ersten enthält die Implementierung Geschwindigkeitsoptimierungen auf Kosten von Speicherplatz. Es wird immer eine vollständige Abstands-, Pheromon- und Heuristikmatrix gespeichert, deren Größe sich jeweils quadratisch zur Problemgröße verhält. Um sehr große Probleme betrachten zu können, wäre es zunächst notwendig, an dieser Stelle eine speichereffizientere Lösung zu finden. Weiterhin ist eine parallele Implementierung der Algorithmen möglich, Ansätze dafür sind beispielsweise in [8, 50] beschrieben. Verbesserungen der Performance sind auch bei der verwendeten Implementierung der 2-Opt und 3-Opt Algorithmen möglich. Diese verwenden eine Array-Darstellung für die Rundreise, für große Probleme sind hier andere Datenstrukturen effektiver [18]. Es könnte außerdem eine Implementierung der Lin-Kernighan Heuristik [36] hinzugefügt werden, deren effektive Umsetzung in [31] diskutiert wird. Die Versuche für die verwendeten (recht kleinen) Problemgrößen zeigten dennoch, daß speziell die Verfahren mit lokaler Optimierung sehr effektiv optimale Lösungen finden. Am erfolgreichsten ohne lokale Optimierung waren ACS/Ant-Q und MMAS. AS rank ist ähnlich effektiv, allerdings war hier immer eine größere Anzahl Ameisen - und damit auch ein größerer Rechenaufwand - nötig, um mit ACS vergleichbare Ergebnisse zu erzielen. Alle der Erweiterungen des Ameisensystems (AS) sind leistungsfähiger und erreichen auch ohne lokale Optimierung bereits sehr gute oder optimale Lösungen. Die Versuchsreihen zeigten außerdem, daß die Anzahl der Iterationen bis zur Konvergenz auf das Optimum mitunter recht stark vom Zufall abhängen kann. Abhilfe schaffen hier beispielsweise mehrere Durchläufe mit unterschiedlichem Startwert für den Zufallsgenerator. Die Implementierung eines 39

40 Neustart-Mechanismus, der mit neu initialisierten Pheromonwerten auf den Kanten, aber der in einem vorherigen Durchlauf gefundenen suboptimalen Lösung arbeitet, ist ebenfalls denkbar. Bisher am gründlichsten wurden die Eigenschaften von ACO-Algorithmen für bekannte Probleme wie das TSP oder das QAP untersucht. Weitere Forschung ist meiner Ansicht nach bei der Anwendung auf andere Probleme wie zum Beispiel das Vehicle Routing Problem, sowie der effektiven Implementierung auf Parallelrechnern möglich. Insgesamt stellt sich die Ameisenoptimierung als ein sehr erfolgreicher Ansatz zur Lösung der betrachteten Klasse von kombinatorischen Optimierungsproblemen dar, der bereits sehr breite Anwendung gefunden hat. Speziell zusammen mit lokalen Optimierungsheuristiken gehören diese Algorithmen meist zu den effektivsten Lösungsmöglichkeiten. 40

41 A Dokumentation der Software A.1 Überblick Es wurden folgende vier Programme erstellt: 1. antsim: Hiermit wurden die Daten für Abbildungen 1.3 und 1.4 erzeugt. Es handelt sich um ein Kommandozeilenprogramm, als Kommandozeilenparameter kann das Verhältnis r zwischen den Längen des unteren und oberen Zweiges angegeben werden. Die Ausgabe des Programms sind Tab-getrennte Werte auf der Standardausgabe (siehe Abb. A.1). 2. tourcheck: Dient zum Überprüfen der generierten Rundreisen. Gibt die Länge der Rundreise zurück und meldet, wenn die Tour fehlerhaft ist (zu lang/zu kurz/einige Städte mehrmals besucht). Kommandozeilenparameter sind die Dateinamen der.tsp Datei und der Tour, beide im TSPLIB Format: $ tourcheck bays29.tsp bays29.opt.tour Tour dimension: 29 Tour OK, length: 2020 # Zeit t 6 O 1 (t) / O 1 (t) + U 1 (t) 2 P O,1 (t) 7 U 1 (t) / O 1 (t) + U 1 (t) 3 P U,1 (t) 8 O 2 (t) / O 2 (t) + U 2 (t) 4 P O,2 (t) 9 U 2 (t) / O 2 (t) + U 2 (t) 5 P U,2 (t) Abbildung A.1: Ausgabe von antsim 41

42 # rho (global offline) =0 # Q (global best) =1... # Convolute online delayed off # NC Best Mean Var Fails SumFails I taumax e e Abbildung A.2: Ausgabe von antcycle 3. antcycle: Die Kommandozeilenvariante des Programms zur Ameisenoptimierung. Der erste Parameter muß den Dateinamen einer.tsp Datei enthalten. Danach folgen optional verschiedene weitere Parameter: -NC=[x] x = Anzahl Iterationen -NA=[x] x = Anzahl Ameisen -f=[dateiname] Einstellungen aus [Dateiname] lesen. -runs=[x] x = Anzahl der Versuche -o=[x] x = das Optimum, nach dessen Erreichen abgebrochen wird +r Random Seed wird per Systemzeit quasi zufällig ermittelt Wenn keine Einstellungen angegeben werden, verwendet das Programm die Standardwerte für das Ameisensystem. Ausgegeben werden nach Abarbeitung der angegebenen Anzahl Iterationen die kürzeste gefundene Rundreise (bei Eingabe von bays29.tsp als Datei bays29.tsp.tour) und Informationen über den Verlauf der Optimierung (hier z.b. in der Datei bays29.tsp.dat). Ein Beispiel für das Format dieser Daten befindet sich in Abbildung A.2. Es werden dort zunächst alle Werte der verwendeten Parameter aufgeführt. Dann folgen die Spalten mit den Resultaten. NC ist hier die Anzahl der Zyklen/Iterationen, Best die beste Länge der besten gefundenen Rundreise, Mean der Mittelwert über die Lösungen im aktuellen Zyklus und Var die Varianz. Fails und SumFails geben an, wie viele Ameisen keine gültige Lösung produzieren konnten (SumFails: Summe bis zum aktuellen Zyklus). I ist die Anzahl der betrachteten Lösungen. taumax gibt beim MMAS den Wert von τ max an. 4. antgui: Grafische Benutzeroberfläche zur vereinfachten Parametereingabe und Erzeugung von Einstellungsdateien für antcycle. 42

43 A.2 Dokumentation der Benutzerschnittstelle (antgui) Alle Parameter können auch per antgui gesetzt werden, dort sind auch Vorgaben für verschiedene Algorithmen vorhanden. Die Bedienung sollte weitestgehend intuitiv sein, alle beschriebenen Parameter können hier eingegeben und dann per Menüpunkt Settings Load/Save Settings geladen und gespeichert werden (siehe Abbildung A.3). Diese Dateien können dann auch von antcycle im Batchbetrieb verarbeitet werden. 1 problemfile: bays29.tsp 2 randseed: 1 3 localopt: 1 4 NCmax: ranked_ants: 0 6 nn_ants: -1 7 N: 10 8 alpha: 1 9 beta: 2 10 gamma0: 0 11 gamma1: e q0: tau0: e taumin: 0 15 taumax: 1e global_best_update: 1 rho_globalbest: global_offline_update: 0 18 rho_globaloffline: 0 19 online_update: 1 20 rho_online: online_delayed_update: 0 22 rho_onlinedelayed: 0 23 convolute_globalbest: 1 24 convolute_globaloffline: 0 25 convolute_online: 1 26 convolute_onlinedelayed: 0 27 nn_localopt: stagnationcheck: 0 29 max_as: 0 30 sequentialmovement: 1 31 EOF 32 Abbildung A.3: Beispiel einer Einstellungsdatei Im ersten Panel ( Control ) befindet sich eine Auswahlbox, mit der die Einstellungen für bestimmte Algorithmen automatisch erzeugt werden können (siehe Abbildung A.4). Zu beachten ist hierbei, daß diese Einstellungen meist problemspezifisch sind (z.b. τ 0 bei MMAS) und beim Laden eines neuen Problems noch einmal überprüft werden müssen. Im Panel Control sind drei Buttons zum Starten, Stoppen und zurücksetzen des Optimierungslaufes vorhanden. Start Optimization beginnt den Lauf oder setzt ihn nach einem Stop fort. Stop Optimization hält die Simulation an. Bei Klick auf Reset Optimizatigegebenen Einstellungen Abbildung A.4: antgui: Auswahl von voron werden alle bis jetzt gefundenen Ergebnisse gelöscht und die Simulation startet beim nächsten Klick auf Start Optimi- 43

44 zation wieder bei Zyklus 0. Diese Funktionen sind auch über das Menü Optimization erreichbar. Weiterhin gibt es in der Windows-Version folgende Tastaturshortcuts: F5: Start, F6: Pause und Shift-F5: Reset. In den Panels Pheromone und State Transition sind Eingabeboxen für die übrigen Parameter zu finden. Zu beachten ist hier, daß die Boxen nicht leer sind und sinnvolle Werte enthalten, da sonst der Optimierungsprozess kaum gute Lösungen liefern kann (siehe Abbildung A.5). Abbildung A.5: antgui: Parametereingabe Im Panel Status kann der Fortschritt der Optimierung beobachtet werden. Angezeigt werden die Anzahl Iterationen, die Anzahl der Zustandsübergänge der Ameisen ( Ant Moves, wird jedes mal inkrementiert, wenn sich eine Ameise von Stadt zu Stadt bewegt), die Anzahl der Individuen, die eine Lösung konstruiert haben und die Länge der besten bisher gefundenen Rundreise. Im Panel Log werden Meldungen über den Verlauf der Optimierung ausgegeben. Hier finden sich auch Zwischenergebnisse und Fehlermeldungen. Bei Details befinden sich schließlich einige vorberechnete Werte zum Problem, die per Kopieren und Einfügen in die entsprechenden Parameterfelder übertragen werden können. Der Wert 1/(n*Lnn) beispielsweise liefert im Allgemeinen einen guten Wert für τ 0, n/lnn wird für τ 0 und τ max beim MMAS verwendet. Per Menü File können die Ergebnisse und die gefundene Rundreise im oben beschriebenen Textformat gespeichert werden. Dies funktioniert erst, wenn die Optimierung abgeschlossen wurde und ein Ergebnis verfügbar ist. Die Daten einer teilweise abgeschlossenen Optimierung können nur bei der Kommandozeilenvariante ausgelesen werden. 44

45 Abbildung A.6: antgui: Status-, und Detailinformationsfenster A.3 Übersicht über die Quelldateien Alle Anwendungen außer antgui sind Kommandozeilenanwendungen und benötigen keine weiteren Bibliotheken (außer den Standardbibliotheken des Compilers). Antgui verwendet die wxwidgets Bibliothek für plattformunabhängige graphische Oberflächen von Datei(en) Klasse Kommentar Quelltexte des Ameisenalgorithmus graph.h CGraph Vorlagenklasse für Graphen und TS-Probleme tour.h CTour Klasse für Repräsentation der Rundreise ant.(cpp h) CAnt Basisklasse für Ameisenagenten acs ant.(cpp h) CACSAnt Klasse für Ameisenagenten mit ACS Zustandsübergang antcycle.(cpp h) CAntCycle Implementierung des verallgemeinerten AS Algorithmus optmain.h COptMain Klasse für Optimierungs-Hauptschleife und Datenausgabe Quelltexte der lokalen Optimierung localopt.(cpp h) CLocalOpt Basisklasse lokales Optimierungsverfahren 2opt.(cpp h) C2Opt Implementierung 2-Opt 3opt.(cpp h) C3Opt Implementierung 3-Opt LinKernighan.(cpp h) CLinKernighan Lin-Kernighan Algorithmus (unvollständig) Verwaltung der Einstellungen presets.(cpp h) CPresets wxcombobox-erweiterung zur Auswahl von Einstellungsvorlagen settings.(cpp h) CSettings Ein- und Ausgabe von Einstellungsdateien ANTGUI antframe.h wxantframe Klassendefinition der Hauptfensterklasse antgui.cpp wxantframe, wxantapp Implementierung Hauptfenster und Applikation antthread.(cpp h) wxantthread Implementierung Berechnungsthread antgui.rc - Ressourcendatei (Windows) Weiter auf der nächsten Seite... 45

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Nichtlineare Optimierung ohne Nebenbedingungen

Nichtlineare Optimierung ohne Nebenbedingungen Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt

Mehr

Bestimmung einer ersten

Bestimmung einer ersten Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,

Mehr

Praktikum Algorithmische Anwendungen WS 2006/2007

Praktikum Algorithmische Anwendungen WS 2006/2007 Praktikum Algorithmische Anwendungen WS 2006/2007 Traveling Salesman Problem Team A_gelb_Ala0607 Roman Pyro 11042289 ai821@gm.fh-koeln.de Markus A. Müller 11043150 ai820@gm.fh-koeln.de René Hilger 11043210

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

PROSEMINAR ONLINE ALGORITHMEN

PROSEMINAR ONLINE ALGORITHMEN PROSEMINAR ONLINE ALGORITHMEN im Wintersemester 2000/2001 Prof. Dr. Rolf Klein, Dr. Elmar Langetepe, Dipl. Inform. Thomas Kamphans (Betreuer) Vortrag vom 15.11.2000 von Jan Schmitt Thema : Finden eines

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

Mehr

Rechnerische Komplexität

Rechnerische Komplexität Proseminar Effiziente Algorithmen SS 2002 Rechnerische Komplexität Ulrike Krönert (34180) 0. Inhalt 1. Einführung 2. Algorithmen und Komplexität 2.1. Algorithmen 2.2. Laufzeitabschätzung 2.3. Polynomialzeit

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Teil II. Nichtlineare Optimierung

Teil II. Nichtlineare Optimierung Teil II Nichtlineare Optimierung 60 Kapitel 1 Einleitung In diesem Abschnitt wird die Optimierung von Funktionen min {f(x)} x Ω betrachtet, wobei Ω R n eine abgeschlossene Menge und f : Ω R eine gegebene

Mehr

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

Mehr

Teil II Optimierung. Peter Buchholz 2016. Modellgestützte Analyse und Optimierung Kap. 9 Einführung Optimierung

Teil II Optimierung. Peter Buchholz 2016. Modellgestützte Analyse und Optimierung Kap. 9 Einführung Optimierung Teil II Optimierung Gliederung 9 Einführung, Klassifizierung und Grundlagen 10 Lineare Optimierung 11 Ganzzahlige und kombinatorische Optimierung 12 Dynamische Optimierung Literatur: zu 10-12: Neumann,

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

5. Lokale Suchverfahren. Beispiel TSP: k-change Nachbarschaft. Nachbarschaft. k-opt Algorithmus

5. Lokale Suchverfahren. Beispiel TSP: k-change Nachbarschaft. Nachbarschaft. k-opt Algorithmus 5. Lokale Suchverfahren Lokale Suche 5. Lokale Suchverfahren Beispiel TSP: k-change Nachbarschaft Optimale Lösungen können oft nicht effizient ermittelt werden. Heuristiken liefern zwar zulässige Lösungen,

Mehr

Heuristiken im Kontext von Scheduling

Heuristiken im Kontext von Scheduling Heuristiken im Kontext von Scheduling Expertenvortrag CoMa SS 09 CoMa SS 09 1/35 Übersicht Motivation Makespan Scheduling Lokale Suche Weitere Metaheuristiken Zusammenfassung Literatur CoMa SS 09 2/35

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

Dynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206

Dynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206 Kapitel 4 Dynamische Optimierung Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206 Inhalt Inhalt 4 Dynamische Optimierung Allgemeiner Ansatz und Beispiele Stochastische dynamische

Mehr

Grundlagen der Monte Carlo Simulation

Grundlagen der Monte Carlo Simulation Grundlagen der Monte Carlo Simulation 10. Dezember 2003 Peter Hofmann Inhaltsverzeichnis 1 Monte Carlo Simulation.................... 2 1.1 Problemstellung.................... 2 1.2 Lösung durch Monte

Mehr

TEILWEISE ASYNCHRONE ALGORITHMEN

TEILWEISE ASYNCHRONE ALGORITHMEN TEILWEISE ASYNCHRONE ALGORITHMEN FRANK LANGBEIN Literatur: D. Berseas, J. Tsitsilis: Parallel and distributed computatoin, pp. 48 489 URI: http://www.langbein.org/research/parallel/ Modell teilweiser asynchroner

Mehr

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Tardos Janick Martinez Esturo jmartine@techfak.uni-bielefeld.de xx.08.2007 Sommerakademie Görlitz Arbeitsgruppe 5 Gliederung

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Verbesserungsheuristiken

Verbesserungsheuristiken Verbesserungsheuristiken Bestandteile der Lokalen Suche Für schwierige Optimierungsaufgaben haben Verbesserungsheuristiken eine große praktische Bedeutung. Sie starten mit Ausgangslösungen, die von z.b.

Mehr

Optimalitätskriterien

Optimalitätskriterien Kapitel 4 Optimalitätskriterien Als Optimalitätskriterien bezeichnet man notwendige oder hinreichende Bedingungen dafür, dass ein x 0 Ω R n Lösung eines Optimierungsproblems ist. Diese Kriterien besitzen

Mehr

9. Schätzen und Testen bei unbekannter Varianz

9. Schätzen und Testen bei unbekannter Varianz 9. Schätzen und Testen bei unbekannter Varianz Dr. Antje Kiesel Institut für Angewandte Mathematik WS 2011/2012 Schätzen und Testen bei unbekannter Varianz Wenn wir die Standardabweichung σ nicht kennen,

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Numerisches Programmieren

Numerisches Programmieren Technische Universität München WS /3 Institut für Informatik Prof Dr Hans-Joachim Bungartz Dipl-Inf Christoph Riesinger Dipl-Inf Dipl-Math Jürgen Bräckle Numerisches Programmieren Programmieraufgabe: Polnominterpolation,

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

3. Entscheidungsbäume. Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002)

3. Entscheidungsbäume. Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002) 3. Entscheidungsbäume Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002) (aus Wilhelm 2001) Beispiel: (aus Böhm 2003) Wann sind Entscheidungsbäume

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Unterscheidung: Workflowsystem vs. Informationssystem

Unterscheidung: Workflowsystem vs. Informationssystem 1. Vorwort 1.1. Gemeinsamkeiten Unterscheidung: Workflowsystem vs. Die Überschneidungsfläche zwischen Workflowsystem und ist die Domäne, also dass es darum geht, Varianten eines Dokuments schrittweise

Mehr

Schwierige Probleme in der Informatik Informationen für die Lehrperson

Schwierige Probleme in der Informatik Informationen für die Lehrperson Schwierige Probleme in der Informatik Informationen für die Lehrperson Thema, Adressaten,... Das Thema dieses Moduls sind NP-vollständige Probleme, also schwierige Probleme in der Informatik. GraphBench

Mehr

Lineare Programmierung

Lineare Programmierung Lineare Programmierung WS 2003/04 Rolle der Linearen Programmierung für das TSP 1954: Dantzig, Fulkerson & Johnson lösen das TSP für 49 US-Städte (ca. 6.2 10 60 mögliche Touren) 1998: 13.509 Städte in

Mehr

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1 Lösungen zu den Übungsaufgaben im Kapitel 4 des Lehrbuches Operations Research Deterministische Modelle und Methoden von Stephan Dempe und Heiner Schreier Aufgabe 1: Berechnen Sie für den in Abbildung

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesungen 5 und 6 Programm

Mehr

Statische Versuchsplanung (DoE - Design of Experiments)

Statische Versuchsplanung (DoE - Design of Experiments) Statische Versuchsplanung (DoE - Design of Experiments) Übersicht Bei der statistischen Versuchsplanung wird die Wirkung von Steuerparametern unter dem Einfluss von Störparametern untersucht. Mit Hilfe

Mehr

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling Approximationsalgorithmen: Klassiker I Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling VO Approximationsalgorithmen WiSe 2011/12 Markus Chimani

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

Mehr

Wiederholung zu Flüssen

Wiederholung zu Flüssen Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:

Mehr

2. Optimierungsprobleme 6

2. Optimierungsprobleme 6 6 2. Beispiele... 7... 8 2.3 Konvexe Mengen und Funktionen... 9 2.4 Konvexe Optimierungsprobleme... 0 2. Beispiele 7- Ein (NP-)Optimierungsproblem P 0 ist wie folgt definiert Jede Instanz I P 0 hat einen

Mehr

Statistische Untersuchungen zu endlichen Funktionsgraphen

Statistische Untersuchungen zu endlichen Funktionsgraphen C# Projekt 1 Name: Statistische Untersuchungen zu endlichen Funktionsgraphen Aufgabe: Basierend auf dem Abschnitt 2.1.6. Random mappings, Kap.2, S 54-55, in [1] sollen zunächst für eine beliebige Funktion

Mehr

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Ein 5.55-Approximationsalgorithmus für das VPND-Problem Lars Schäfers Inhalt Einführung:

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Präsenzübungsaufgaben zur Vorlesung Elementare Sachversicherungsmathematik

Präsenzübungsaufgaben zur Vorlesung Elementare Sachversicherungsmathematik Präsenzübungsaufgaben zur Vorlesung Elementare Sachversicherungsmathematik Dozent: Volker Krätschmer Fakultät für Mathematik, Universität Duisburg-Essen, WS 2012/13 1. Präsenzübung Aufgabe T 1 Sei (Z 1,...,

Mehr

Ohne Mathematik undenkbar!

Ohne Mathematik undenkbar! Die tägliche - Suche: Ohne Mathematik undenkbar! Dipl.-Wirt.Math. Jan Maruhn FB IV - Mathematik Universität Trier 29. März 2006 29. März 2006 Seite 1 Gliederung Einleitung und Motivation Das Internet als

Mehr

Stackelberg Scheduling Strategien

Stackelberg Scheduling Strategien Stackelberg Scheduling Strategien Von Tim Roughgarden Präsentiert von Matthias Ernst Inhaltsübersicht Einleitung Vorbetrachtungen Stackelberg Strategien Ergebnisse Seminar Algorithmische Spieltheorie:

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

Mehr

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:

Mehr

Wissensbasierte Systeme

Wissensbasierte Systeme WBS3 Slide 1 Wissensbasierte Systeme Sebastian Iwanowski FH Wedel Kap. 3: Algorithmische Grundlagen der KI WBS3 Slide 2 Suchstrategien Warum sind Suchstrategien so wichtig in Wissensbasierten Systemen?

Mehr

Einführung in Heuristische Suche

Einführung in Heuristische Suche Einführung in Heuristische Suche Beispiele 2 Überblick Intelligente Suche Rundenbasierte Spiele 3 Grundlagen Es muss ein Rätsel / Puzzle / Problem gelöst werden Wie kann ein Computer diese Aufgabe lösen?

Mehr

Kapitel 4: Netzplantechnik Gliederung der Vorlesung

Kapitel 4: Netzplantechnik Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Netzplantechnik 5. Minimal spannende Bäume 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

Periodische Fahrpläne und Kreise in Graphen

Periodische Fahrpläne und Kreise in Graphen Periodische Fahrpläne und Kreise in Graphen Vorlesung Algorithmentechnik WS 2009/10 Dorothea Wagner Karlsruher Institut für Technologie Eisenbahnoptimierungsprozess 1 Anforderungserhebung Netzwerkentwurf

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet 22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet Autor Volker Claus, Universität Stuttgart Volker Diekert, Universität Stuttgart Holger Petersen, Universität Stuttgart

Mehr

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen:

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen: 1 Parallele Algorithmen Grundlagen Parallele Algorithmen Grundlagen Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen: Dekomposition eines Problems in unabhängige Teilaufgaben.

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

Binäre lineare Optimierung mit K*BMDs p.1/42

Binäre lineare Optimierung mit K*BMDs p.1/42 Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der

Mehr

f h c 7 a 1 b 1 g 2 2 d

f h c 7 a 1 b 1 g 2 2 d ) Man bestimme mit Hilfe des Dijkstra-Algorithmus einen kürzesten Weg von a nach h: c 7 a b f 5 h 3 4 5 i e 6 g 2 2 d Beim Dijkstra-Algorithmus wird in jedem Schritt von den noch unmarkierten Knoten jener

Mehr

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel Ausarbeitung zum Proseminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn zum Thema Simulation des Anlagenpreismodels von Simon Uphus im WS 09/10 Zusammenfassung

Mehr

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung 1 Einleitung 1.1 Motivation und Zielsetzung der Untersuchung Obgleich Tourenplanungsprobleme zu den am häufigsten untersuchten Problemstellungen des Operations Research zählen, konzentriert sich der Großteil

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)

Mehr

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von. HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis

Mehr

Vorlesung Theoretische Informatik

Vorlesung Theoretische Informatik Vorlesung Theoretische Informatik Automaten und Formale Sprachen Hochschule Reutlingen Fakultät für Informatik Masterstudiengang Wirtschaftsinformatik überarbeitet von F. Laux (Stand: 09.06.2010) Sommersemester

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung. Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines

Mehr

Traveling Salesman Problem (TSP)

Traveling Salesman Problem (TSP) Traveling Salesman Problem (TSP) Das Traveling Salesman Problem (TSP) ist ein bekanntes Optimierungsproblem. Ein Handlungsreisender soll in einer Rundreise (auch Tour genannt) n vorgegebene Städte besuchen.

Mehr

Hochschule Darmstadt

Hochschule Darmstadt Hochschule Darmstadt - Fachbereich Informatik - Ameisenalgorithmen zur Routenerzeugung in der embedded Fahrzeugnavigation Abschlussarbeit zur Erlangung des akademischen Grades Master of Science (M.Sc.)

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

7. Transitive Hülle. Kante des Graphen. Zusatz-Kante der transitiven Hülle

7. Transitive Hülle. Kante des Graphen. Zusatz-Kante der transitiven Hülle In Anwendungen ist es oft interessant zu wissen, ob man überhaupt von einem Knoten v zu einem Knoten w gelangen kann, ganz gleich wie lang der Weg auch ist. Gegeben sei dabei ein gerichteter Graph G =

Mehr

Kapitel 15. Lösung linearer Gleichungssysteme

Kapitel 15. Lösung linearer Gleichungssysteme Kapitel 15. Lösung linearer Gleichungssysteme Lineare Gleichungssysteme Wir befassen uns nun mit der Lösung im allgemeinen nichthomogener linearer Gleichungssysteme in zweifacher Hinsicht. Wir studieren

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Maximizing the Spread of Influence through a Social Network

Maximizing the Spread of Influence through a Social Network 1 / 26 Maximizing the Spread of Influence through a Social Network 19.06.2007 / Thomas Wener TU-Darmstadt Seminar aus Data und Web Mining bei Prof. Fürnkranz 2 / 26 Gliederung Einleitung 1 Einleitung 2

Mehr

Vorlesung. Funktionen/Abbildungen 1

Vorlesung. Funktionen/Abbildungen 1 Vorlesung Funktionen/Abbildungen 1 1 Grundlagen Hinweis: In dieser Vorlesung werden Funktionen und Abbildungen synonym verwendet. In der Schule wird eine Funktion häufig als eindeutige Zuordnung definiert.

Mehr

MINT-Circle-Schülerakademie

MINT-Circle-Schülerakademie 1 Einführung MINT-Circle-Schülerakademie Kurze Einführung, was Maple ist, wozu es dienen kann, wo es verwendet wird. Zur Einführung die folgenden Aufgaben bearbeiten lassen. Aufgabe 1. Gib unter Maple

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Makespan-Scheduling Kapitel 4: Approximationsalgorithmen (dritter Teil) (weitere Beispiele und Illustrationen an der Tafel) Hilfreiche Literatur: Vazarani: Approximation Algorithms, Springer Verlag, 2001.

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 22. Constraint-Satisfaction-Probleme: Kantenkonsistenz Malte Helmert Universität Basel 14. April 2014 Constraint-Satisfaction-Probleme: Überblick Kapitelüberblick

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Toleranzbasierte Algorithmen für das Travelling Salesman Problem. Gerold Jäger

Toleranzbasierte Algorithmen für das Travelling Salesman Problem. Gerold Jäger Toleranzbasierte Algorithmen für das Travelling Salesman Problem Gerold Jäger (Zusammenarbeit mit Jop Sibeyn, Boris Goldengorin) Institut für Informatik Martin-Luther-Universität Halle-Wittenberg gerold.jaeger@informatik.uni-halle.de

Mehr

Algorithms for Regression and Classification

Algorithms for Regression and Classification Fakultät für Informatik Effiziente Algorithmen und Komplexitätstheorie Algorithms for Regression and Classification Robust Regression and Genetic Association Studies Robin Nunkesser Fakultät für Informatik

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Optimierung für Nichtmathematiker

Optimierung für Nichtmathematiker Optimierung für Nichtmathematiker Typische Prüfungsfragen Die folgenden Fragen dienen lediglich der Orientierung und müssen nicht den tatsächlichen Prüfungsfragen entsprechen. Auch Erkenntnisse aus den

Mehr

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Faktorisierung ganzer Zahlen mittels Pollards ρ-methode (1975)

Faktorisierung ganzer Zahlen mittels Pollards ρ-methode (1975) Dass das Problem, die Primzahlen von den zusammengesetzten zu unterscheiden und letztere in ihre Primfaktoren zu zerlegen zu den wichtigsten und nützlichsten der ganzen Arithmetik gehört und den Fleiss

Mehr

Algorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer

Algorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer Algorithmen und Datenstrukturen Große Übung vom 29.10.09 Nils Schweer Diese Folien Braucht man nicht abzuschreiben Stehen im Netz unter www.ibr.cs.tu-bs.de/courses/ws0910/aud/index.html Kleine Übungen

Mehr

Grundlagen und Basisalgorithmus

Grundlagen und Basisalgorithmus Grundlagen und Basisalgorithmus Proseminar -Genetische Programmierung- Dezember 2001 David König Quelle: Kinnebrock W.: Optimierung mit genetischen und selektiven Algorithmen. München, Wien: Oldenbourg

Mehr

Ant Colony Optimization (ACO)

Ant Colony Optimization (ACO) Ant Colony Optimization (ACO) Daniel Blum PG Meta-Heuristiken Universität Dortmund 6. Mai 2003 Inhaltsverzeichnis 1 Biologischer Hintergrund 2 2 Von der Natur zum Algorithmus 2 3 Allgemeines Konzept für

Mehr

Wie findet man den optimalen Weg zum Ziel? Klassische Probleme der Kombinatorischen Optimierung

Wie findet man den optimalen Weg zum Ziel? Klassische Probleme der Kombinatorischen Optimierung Wie findet man den optimalen Weg zum Ziel? Klassische Probleme der Kombinatorischen Optimierung Teilnehmer/innen: Markus Dahinten, Graf Münster Gymnasium Bayreuth Robert Fay, Herder Gymnasium Berlin Falko

Mehr