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

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

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

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

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

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

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

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

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

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

Seminar Komplexe Objekte in Datenbanken

Seminar Komplexe Objekte in Datenbanken Seminar Komplexe Objekte in Datenbanken OPTICS: Ordering Points To Identify the Clustering Structure Lehrstuhl für Informatik IX - Univ.-Prof. Dr. Thomas Seidl, RWTH-Aachen http://www-i9.informatik.rwth-aachen.de

Mehr

Dokumentation ANTS ON CRACK. Der Ameisenalgorithmus als Lösung für das Problem des Handlungsreisenden

Dokumentation ANTS ON CRACK. Der Ameisenalgorithmus als Lösung für das Problem des Handlungsreisenden !! Dokumentation ANTS ON CRACK Der Ameisenalgorithmus als Lösung für das Problem des Handlungsreisenden Jonathan Wiens, Nico Smeenk, Benjamin Pfeiffer, Christian Gebauer, Sebastian Große! Berlin,(der(25.10.2011(

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

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

Perzentile mit Hadoop ermitteln

Perzentile mit Hadoop ermitteln Perzentile mit Hadoop ermitteln Ausgangspunkt Ziel dieses Projektes war, einen Hadoop Job zu entwickeln, der mit Hilfe gegebener Parameter Simulationen durchführt und aus den Ergebnissen die Perzentile

Mehr

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir Effiziente Algorithmen Lösen NP-vollständiger Probleme 289 Branch-and-Bound Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir 1.

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

Vorlesung 3 MINIMALE SPANNBÄUME

Vorlesung 3 MINIMALE SPANNBÄUME Vorlesung 3 MINIMALE SPANNBÄUME 72 Aufgabe! Szenario: Sie arbeiten für eine Firma, die ein Neubaugebiet ans Netz (Wasser, Strom oder Kabel oder...) anschließt! Ziel: Alle Haushalte ans Netz bringen, dabei

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

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Aufabe 7: Baum-Welch Algorithmus

Aufabe 7: Baum-Welch Algorithmus Effiziente Algorithmen VU Ausarbeitung Aufabe 7: Baum-Welch Algorithmus Florian Fest, Matr. Nr.0125496 baskit@generationfun.at Claudia Hermann, Matr. Nr.0125532 e0125532@stud4.tuwien.ac.at Matteo Savio,

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

Seminararbeit für das SE Reine Mathematik- Graphentheorie

Seminararbeit für das SE Reine Mathematik- Graphentheorie Seminararbeit für das SE Reine Mathematik- Graphentheorie Der binäre Rang, der symplektische Graph, die Spektralzerlegung und rationale Funktionen Vortrag am 24.01.2012 Heike Farkas 0410052 Inhaltsverzeichnis

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

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

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

Optimierung I. 1 Einführung. Luise Blank. Wintersemester 2012/13. Universität Regensburg

Optimierung I. 1 Einführung. Luise Blank. Wintersemester 2012/13. Universität Regensburg Universität Regensburg Wintersemester 2012/13 1 Einführung Anwendungen Finanzwirtschaft: maximale Gewinnrate unter Beschränkungen an das Risiko; Portfolio von Investments Produktion: maximiere Gewinn bei

Mehr

Multivariate Statistik

Multivariate Statistik Hermann Singer Multivariate Statistik 1 Auflage 15 Oktober 2012 Seite: 12 KAPITEL 1 FALLSTUDIEN Abbildung 12: Logistische Regression: Geschätzte Wahrscheinlichkeit für schlechte und gute Kredite (rot/blau)

Mehr

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems

13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung

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

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet

Mehr

Laufzeit und Komplexität

Laufzeit und Komplexität Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen

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

(2) (x 2 1 + x 2 2 + + x 2 n)(y 2 1 + y 2 2 + + y 2 n) = z 2 1 + z 2 2 + + z 2 n

(2) (x 2 1 + x 2 2 + + x 2 n)(y 2 1 + y 2 2 + + y 2 n) = z 2 1 + z 2 2 + + z 2 n Über die Komposition der quadratischen Formen von beliebig vielen Variablen 1. (Nachrichten von der k. Gesellschaft der Wissenschaften zu Göttingen, Mathematisch-physikalische Klasse, 1898, S. 309 316.)

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

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

OPERATIONS-RESEARCH (OR)

OPERATIONS-RESEARCH (OR) OPERATIONS-RESEARCH (OR) Man versteht darunter die Anwendung mathematischer Methoden und Modelle zur Vorbereitung optimaler Entscheidungen bei einem Unternehmen. Andere deutsche und englische Bezeichnungen:

Mehr

Verfahren zur Berechnung von Routen zur Gewährleistung von Ende-zu-Ende QoS

Verfahren zur Berechnung von Routen zur Gewährleistung von Ende-zu-Ende QoS Verfahren zur Berechnung von Routen zur Gewährleistung von Ende-zu-Ende QoS Dezember 007 Dipl.-Ing. Stefan Abu Salah Dipl.-Ing. Achim Marikar QoS (Quality of Service): Sicherstellung der Qualität Zeitkritische

Mehr

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

Evaluation von Optimierungsalgorithmen zur Tourplanung im Hamburger Hafen

Evaluation von Optimierungsalgorithmen zur Tourplanung im Hamburger Hafen Diplomarbeit Evaluation von Optimierungsalgorithmen zur Tourplanung im Hamburger Hafen von Cheng Wang November 2011 Betreut von Prof. Dr. Sibylle Schupp Rainer Marrone Technische Universität Hamburg-Harburg

Mehr

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren 4: Stromchiffren Zwei Grundbausteine der symmetrischen Kryptographie: Stromchiffren Verschlüsseln beliebig langer Klartexte, interner Zustand Blockchiffren Verschlüsseln von Blocks einer festen Größe,

Mehr

Synthese Eingebetteter Systeme. 16 Abbildung von Anwendungen: Optimierung mit DOL

Synthese Eingebetteter Systeme. 16 Abbildung von Anwendungen: Optimierung mit DOL 12 Synthese Eingebetteter Systeme Sommersemester 2011 16 Abbildung von Anwendungen: Optimierung mit DOL 2011/06/24 Michael Engel Informatik 12 TU Dortmund unter Verwendung von Foliensätzen von Prof. Lothar

Mehr

Netzwerkmodelle. Seminar Netzwerkanalyse. Sommersemester 2005 Jasmine Metzler

Netzwerkmodelle. Seminar Netzwerkanalyse. Sommersemester 2005 Jasmine Metzler Netzwerkmodelle Seminar Netzwerkanalyse Sommersemester 2005 Jasmine Metzler 1 Grundlegende Modelle Das Graph Modell (G n,p ) Definition Verschiedene Modelle Small World Modell Lokale Suche Power Law Modelle

Mehr

Algorithmische Methoden für schwere Optimierungsprobleme

Algorithmische Methoden für schwere Optimierungsprobleme Algorithmische Methoden für schwere Optimierungsprobleme Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund

Mehr

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4 Arbeiten mit s Eine effiziente Programmierung mit PHP ohne seine s ist kaum vorstellbar. Diese Datenstruktur muss man verstanden haben, sonst brauchen wir mit weitergehenden Programmiertechniken wie der

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

Numerisches Programmieren

Numerisches Programmieren Technische Universität München SS 2012 Institut für Informatik Prof Dr Thomas Huckle Dipl-Inf Christoph Riesinger Dipl-Math Alexander Breuer Dipl-Math Dipl-Inf Jürgen Bräckle Dr-Ing Markus Kowarschik Numerisches

Mehr

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

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

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)

Mehr

Entwicklung eines Scheduling-Verfahrens zur Optimierung der Reihenfolge von Prototypentests. Masterarbeit

Entwicklung eines Scheduling-Verfahrens zur Optimierung der Reihenfolge von Prototypentests. Masterarbeit Entwicklung eines Scheduling-Verfahrens zur Optimierung der Reihenfolge von Prototypentests Masterarbeit zur Erlangung des akademischen Grades Master of Science (M.Sc.) im Masterstudiengang Wirtschaftswissenschaft

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

Genetische Algorithmen

Genetische Algorithmen Genetische Algorithmen zur Lösung kombinatorischer Optimierungsprobleme aus dem Bereich Produktion und Logistik S. Häckel, S. Lemke TU Chemnitz Fakultät für Wirtschaftswissenschaften Professur für Produktionswirtschaft

Mehr

Bisher angenommen: jeder Spieler kennt alle Teile des Spiels. - Diskontfaktor des Verhandlungspartners

Bisher angenommen: jeder Spieler kennt alle Teile des Spiels. - Diskontfaktor des Verhandlungspartners 1 KAP 15. Spiele unter unvollständiger Information Bisher angenommen: jeder Spieler kennt alle Teile des Spiels seine Gegenspieler, deren Aktionen, deren Nutzen, seinen eigenen Nutzen etc. Oft kennt man

Mehr

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK Mastermind mit dem Android SDK Übersicht Einführungen Mastermind und Strategien (Stefan) Eclipse und das ADT Plugin (Jan) GUI-Programmierung (Dominik) Mastermind und Strategien - Übersicht Mastermind Spielregeln

Mehr

Messsystemanalyse (MSA)

Messsystemanalyse (MSA) Messsystemanalyse (MSA) Inhaltsverzeichnis Ursachen & Auswirkungen von Messabweichungen Qualifikations- und Fähigkeitsnachweise Vorteile einer Fähigkeitsuntersuchung Anforderungen an das Messsystem Genauigkeit

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten

Mehr

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Steinerbäume Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Verfasser Flamur Kastrati Betreuer Prof. Dr. habil. Thomas

Mehr

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY Data Cube On-line Analytical Processing (OLAP). Einführung Ziel: Auffinden interessanter Muster in großen Datenmengen 2. Aggregation in SQL, GROUP BY 3. Probleme mit GROUP BY 4. Der Cube-Operator! Formulierung

Mehr

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015 Abstrakt zum Vortrag im Oberseminar Graphdatenbanken Gero Kraus HTWK Leipzig 14. Juli 2015 1 Motivation Zur Darstellung komplexer Beziehungen bzw. Graphen sind sowohl relationale als auch NoSQL-Datenbanken

Mehr

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

Statistik. R. Frühwirth. Statistik. fru@hephy.oeaw.ac.at. VO 142.090 http://tinyurl.com/tu142090. Februar 2010. R. Frühwirth Statistik 1/536

Statistik. R. Frühwirth. Statistik. fru@hephy.oeaw.ac.at. VO 142.090 http://tinyurl.com/tu142090. Februar 2010. R. Frühwirth Statistik 1/536 fru@hephy.oeaw.ac.at VO 142.090 http://tinyurl.com/tu142090 Februar 2010 1/536 Übersicht über die Vorlesung Teil 1: Deskriptive Teil 2: Wahrscheinlichkeitsrechnung Teil 3: Zufallsvariable Teil 4: Parameterschätzung

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Absolute Stetigkeit von Maßen

Absolute Stetigkeit von Maßen Absolute Stetigkeit von Maßen Definition. Seien µ und ν Maße auf (X, Ω). Dann heißt ν absolut stetig bezüglich µ (kurz ν µ ), wenn für alle A Ω mit µ(a) = 0 auch gilt dass ν(a) = 0. Lemma. Sei ν ein endliches

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

Sortieren. Eine Testmenge erstellen

Sortieren. Eine Testmenge erstellen Sortieren Eine der wohl häufigsten Aufgaben für Computer ist das Sortieren, mit dem wir uns in diesem Abschnitt eingeher beschäftigen wollen. Unser Ziel ist die Entwicklung eines möglichst effizienten

Mehr

Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern

Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern Björn Burow SE Mustererkennung in Bildern und 3D-Daten Lehrstuhl Graphische Systeme BTU Cottbus Inhaltsübersicht

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

IT-Sicherheit Kapitel 3 Public Key Kryptographie

IT-Sicherheit Kapitel 3 Public Key Kryptographie IT-Sicherheit Kapitel 3 Public Key Kryptographie Dr. Christian Rathgeb Sommersemester 2013 1 Einführung In der symmetrischen Kryptographie verwenden Sender und Empfänger den selben Schlüssel die Teilnehmer

Mehr

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

Monte Carlo Simulationen

Monte Carlo Simulationen Monte Carlo Simulationen Erkenntnisse durch die Erschaffung einer virtuellen Welt Stefan Wunsch 31. Mai 2014 INSTITUT FÜR EXPERIMENTELLE KERNPHYSIK (IEKP) KIT Universität des Landes Baden-Württemberg und

Mehr

Kapitel 3. Zufallsvariable. Wahrscheinlichkeitsfunktion, Dichte und Verteilungsfunktion. Erwartungswert, Varianz und Standardabweichung

Kapitel 3. Zufallsvariable. Wahrscheinlichkeitsfunktion, Dichte und Verteilungsfunktion. Erwartungswert, Varianz und Standardabweichung Kapitel 3 Zufallsvariable Josef Leydold c 2006 Mathematische Methoden III Zufallsvariable 1 / 43 Lernziele Diskrete und stetige Zufallsvariable Wahrscheinlichkeitsfunktion, Dichte und Verteilungsfunktion

Mehr

Monte Carlo Simulation (Grundlagen)

Monte Carlo Simulation (Grundlagen) Der Titel des vorliegenden Beitrages wird bei den meisten Lesern vermutlich Assoziationen mit Roulette oder Black Jack hervorrufen. Allerdings haben das heutige Thema und die Spieltische nur den Namen

Mehr

Black-Hat Search Engine Optimization (SEO) Practices for Websites

Black-Hat Search Engine Optimization (SEO) Practices for Websites Beispielbild Black-Hat Search Engine Optimization (SEO) Practices for Websites Damla Durmaz - 29. Januar. 2009 Proseminar Technisch Informatik Leitung: Georg Wittenburg Betreuer: Norman Dziengel Fachbereich

Mehr

Neuerungen Analysis Services

Neuerungen Analysis Services Neuerungen Analysis Services Neuerungen Analysis Services Analysis Services ermöglicht Ihnen das Entwerfen, Erstellen und Visualisieren von Data Mining-Modellen. Diese Mining-Modelle können aus anderen

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Friedrich-Alexander-Universität Erlangen-Nürnberg Ausgewählte Kapitel eingebetteter Systeme Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Sven Kerschbaum 1. Einführung Bei einem eingebetteten

Mehr

Rekursionen (Teschl/Teschl 8.1-8.2)

Rekursionen (Teschl/Teschl 8.1-8.2) Rekursionen (Teschl/Teschl 8.1-8.2) Eine Rekursion kter Ordnung für k N ist eine Folge x 1, x 2, x 3,... deniert durch eine Rekursionsvorschrift x n = f n (x n 1,..., x n k ) für n > k, d. h. jedes Folgenglied

Mehr

Ameisenkolonien und evolutionäre Algorithmen zur Lösung logistischer Probleme

Ameisenkolonien und evolutionäre Algorithmen zur Lösung logistischer Probleme Ameisenkolonien und evolutionäre Algorithmen zur Lösung logistischer Probleme Prof. Dr. Thomas Bousonville Hochschule für Technik und Wirtschaft des Saarlandes - Saarland University of Applied Sciences

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Computerviren, Waldbrände und Seuchen - ein stochastisches Modell für die Reichweite einer Epidemie

Computerviren, Waldbrände und Seuchen - ein stochastisches Modell für die Reichweite einer Epidemie Computerviren, Waldbrände und Seuchen - ein stochastisches für die Reichweite einer Epidemie Universität Hildesheim Schüler-Universität der Universität Hildesheim, 21.06.2012 Warum Mathematik? Fragen zum

Mehr

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

PageRank-Algorithmus

PageRank-Algorithmus Proseminar Algorithms and Data Structures Gliederung Gliederung 1 Einführung 2 PageRank 3 Eziente Berechnung 4 Zusammenfassung Motivation Motivation Wir wollen eine Suchmaschine bauen, die das Web durchsucht.

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Wintersemester 07/08 Übungsblatt 5 08.01.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1:

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

4. Relationen. Beschreibung einer binären Relation

4. Relationen. Beschreibung einer binären Relation 4. Relationen Relationen spielen bei Datenbanken eine wichtige Rolle. Die meisten Datenbanksysteme sind relational. 4.1 Binäre Relationen Eine binäre Relation (Beziehung) R zwischen zwei Mengen A und B

Mehr

Irrfahrten. Und ihre Bedeutung in der Finanzmathematik

Irrfahrten. Und ihre Bedeutung in der Finanzmathematik Irrfahrten Und ihre Bedeutung in der Finanzmathematik Alexander Hahn, 04.11.2008 Überblick Ziele der Finanzmathematik Grundsätzliches zu Finanzmarkt, Aktien, Optionen Problemstellung in der Praxis Der

Mehr

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

Mehr

Seminar aus maschinellem Lernen MCTS und UCT

Seminar aus maschinellem Lernen MCTS und UCT Seminar aus maschinellem Lernen MCTS und UCT 26. November 2014 TU Darmstadt FB 20 Patrick Bitz 1 Übersicht Historisches zu MCTS MCTS UCT Eigenschaften von MCTS Zusammenfassung 26. November 2014 TU Darmstadt

Mehr

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x

Mehr

RSA Verfahren. Kapitel 7 p. 103

RSA Verfahren. Kapitel 7 p. 103 RSA Verfahren RSA benannt nach den Erfindern Ron Rivest, Adi Shamir und Leonard Adleman war das erste Public-Key Verschlüsselungsverfahren. Sicherheit hängt eng mit der Schwierigkeit zusammen, große Zahlen

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

Scheinaufgabe im Fach Web Engineering

Scheinaufgabe im Fach Web Engineering Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Verteilte Systeme Scheinaufgabe im Fach Web Engineering Thomas Thüm 07. August 2006 Matrikel: 171046 Lehrveranstaltung: Web

Mehr

Approximation in Batch and Multiprocessor Scheduling

Approximation in Batch and Multiprocessor Scheduling Approximation in Batch and Multiprocessor Scheduling Tim Nonner IBM Research Albert-Ludwigs-Universität Freiburg 3. Dezember 2010 Scheduling Zeit als Ressource und Beschränkung Formaler Gegeben sind Jobs

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr