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

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

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

Mehr

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

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

Mehr

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

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

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

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

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

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Das Briefträgerproblem

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

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Ant Colony Optimization (ACO)

Ant Colony Optimization (ACO) Ant Colony Optimization (ACO) Daniel Blum 24.4.2003 Projektgruppe 431 Metaheuristiken Lehrstuhl 11, Fachbereich Informatik, Universität Dortmund 1 Übersicht Vorbild Natur Übertragung der Ideen Beispiele

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

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

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

Mehr

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über Güte von s Grundlegendes zum Konzept der Güte Ableitung der Gütefunktion des Gauss im Einstichprobenproblem Grafische Darstellung der Gütefunktionen des Gauss im Einstichprobenproblem Ableitung der Gütefunktion

Mehr

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3 Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen

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

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

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

SEPA Lastschriften. Ergänzung zur Dokumentation vom 27.01.2014. Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299

SEPA Lastschriften. Ergänzung zur Dokumentation vom 27.01.2014. Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299 SEPA Lastschriften Ergänzung zur Dokumentation vom 27.01.2014 Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299 www.workshop-software.de Verfasser: SK info@workshop-software.de

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

Lineare Gleichungssysteme

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

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

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

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 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/ws0809

Mehr

Statistische Untersuchungen zu endlichen Funktionsgraphen

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

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data Mining: Einige Grundlagen aus der Stochastik Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN Karlsruhe, April 2015 Verwendung dichte-basierter Teilrouten Stellen Sie sich vor, in einem belebten Gebäude,

Mehr

Bestimmung einer ersten

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

Mehr

Bilder Schärfen und Rauschen entfernen

Bilder Schärfen und Rauschen entfernen Bilder Schärfen und Rauschen entfernen Um alte Bilder, so wie die von der Olympus Camedia 840 L noch dazu zu bewegen, Farben froh und frisch daherzukommen, bedarf es einiger Arbeit und die habe ich hier

Mehr

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen. Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems

Mehr

Algorithmen & Datenstrukturen 1. Klausur

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

Mehr

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt Methoden und Techniken an Beispielen erklärt Georg Anegg 5. November 009 Beispiel. Die Folge {a n } sei wie folgt definiert (a, d, q R, q ): a 0 a, a n+ a n q + d (n 0) Man bestimme eine explizite Darstellung

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

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

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

Mehr

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Basis und Dimension Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Definition. Sei V ein K-Vektorraum und (v i ) i I eine Familie von Vektoren

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.2 Scan-Konvertierung (Scan Conversion) 6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster

Mehr

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

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

Mehr

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

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Berechnungen in Access Teil I

Berechnungen in Access Teil I in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer

Mehr

Künstliches binäres Neuron

Künstliches binäres Neuron Künstliches binäres Neuron G.Döben-Henisch Fachbereich Informatik und Ingenieurwissenschaften FH Frankfurt am Main University of Applied Sciences D-60318 Frankfurt am Main Germany Email: doeben at fb2.fh-frankfurt.de

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Generelle Einstellungen

Generelle Einstellungen Wie in fast jedem Programm sind auch in work4all ganz grundlegende Einstellungen und Programm- Anpassungen möglich. In diesem Kapitel gehen wir auf die verschiedenen Konfigurationsmöglichkeiten innerhalb

Mehr

Beispiel 48. 4.3.2 Zusammengesetzte Zufallsvariablen

Beispiel 48. 4.3.2 Zusammengesetzte Zufallsvariablen 4.3.2 Zusammengesetzte Zufallsvariablen Beispiel 48 Ein Würfel werde zweimal geworfen. X bzw. Y bezeichne die Augenzahl im ersten bzw. zweiten Wurf. Sei Z := X + Y die Summe der gewürfelten Augenzahlen.

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 1. Software installieren 2. Software starten Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 3. Auswahl 1. Neues Fotobuch erstellen oder 2. ein erstelltes, gespeichertes Fotobuch laden und bearbeiten.

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

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

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Anwendungshinweise zur Anwendung der Soziometrie

Anwendungshinweise zur Anwendung der Soziometrie Anwendungshinweise zur Anwendung der Soziometrie Einführung Die Soziometrie ist ein Verfahren, welches sich besonders gut dafür eignet, Beziehungen zwischen Mitgliedern einer Gruppe darzustellen. Das Verfahren

Mehr

Korrigenda Handbuch der Bewertung

Korrigenda Handbuch der Bewertung Korrigenda Handbuch der Bewertung Kapitel 3 Abschnitt 3.5 Seite(n) 104-109 Titel Der Terminvertrag: Ein Beispiel für den Einsatz von Future Values Änderungen In den Beispielen 21 und 22 ist der Halbjahressatz

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Algorithmische Mathematik

Algorithmische Mathematik Algorithmische Mathematik Wintersemester 2013 Prof. Dr. Marc Alexander Schweitzer und Dr. Einar Smith Patrick Diehl und Daniel Wissel Übungsblatt 6. Abgabe am 02.12.2013. Aufgabe 1. (Netzwerke und Definitionen)

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen:

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

Mehr

Berechnung der Erhöhung der Durchschnittsprämien

Berechnung der Erhöhung der Durchschnittsprämien Wolfram Fischer Berechnung der Erhöhung der Durchschnittsprämien Oktober 2004 1 Zusammenfassung Zur Berechnung der Durchschnittsprämien wird das gesamte gemeldete Prämienvolumen Zusammenfassung durch die

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

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

Kompetitive Analysen von Online-Algorithmen

Kompetitive Analysen von Online-Algorithmen Kompetitive Analysen von Online-Algorithmen jonas echterhoff 16. Juli 004 1 Einführung 1.1 Terminologie Online-Algorithmen sind Algorithmen, die Probleme lösen sollen, bei denen Entscheidungen getroffen

Mehr

Übungsklausur. Bitte wählen Sie fünf Aufgaben aus! Aufgabe 1. Übungsklausur zu Mathematik I für BWL und VWL (WS 2008/09) PD Dr.

Übungsklausur. Bitte wählen Sie fünf Aufgaben aus! Aufgabe 1. Übungsklausur zu Mathematik I für BWL und VWL (WS 2008/09) PD Dr. Übungsklausur zu Mathematik I für BWL und VWL (WS 2008/09) PD Dr. Gert Zöller Übungsklausur Hilfsmittel: Taschenrechner, Formblatt mit Formeln. Lösungswege sind stets anzugeben. Die alleinige Angabe eines

Mehr

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Bedienungsanleitung für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Matthias Haasler Version 0.4 Webadministrator, email: webadmin@rundkirche.de Inhaltsverzeichnis 1 Einführung

Mehr

Dokumentation zum Projekt Multimediale Lehre Fluidmechanik an der Technischen Universität Graz

Dokumentation zum Projekt Multimediale Lehre Fluidmechanik an der Technischen Universität Graz Dokumentation zum Projekt Multimediale Lehre Fluidmechanik an der Technischen Universität Graz Andreas Aigner email: andreasa@sbox.tu-graz.ac.at. Januar 00 Inhaltsverzeichnis Theorie. Stromfunktion...........................

Mehr

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN CHRISTIAN HARTFELDT. Zweiter Mittelwertsatz Der Mittelwertsatz Satz VI.3.4) lässt sich verallgemeinern zu Satz.. Seien f, g : [a, b] R auf [a,

Mehr

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße 30 45289 Essen Telefon 0201 47091505 Telefax 0201 54502360

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße 30 45289 Essen Telefon 0201 47091505 Telefax 0201 54502360 FastBill GmbH Holteyer Straße 30 45289 Essen Telefon 0201 47091505 Telefax 0201 54502360 FastBill Automatic Dokumentation Versand 1 Inhaltsverzeichnis: 1. Grundlegendes 2. Produkteinstellungen 2.1. Grundeinstellungen

Mehr

impact ordering Info Produktkonfigurator

impact ordering Info Produktkonfigurator impact ordering Info Copyright Copyright 2013 veenion GmbH Alle Rechte vorbehalten. Kein Teil der Dokumentation darf in irgendeiner Form ohne schriftliche Genehmigung der veenion GmbH reproduziert, verändert

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

3. Zusammenhang. 22 Andreas Gathmann

3. Zusammenhang. 22 Andreas Gathmann 22 Andreas Gathmann 3. Zusammenhang Eine der anschaulichsten Eigenschaften eines topologischen Raumes ist wahrscheinlich, ob er zusammenhängend ist oder aus mehreren Teilen besteht. Wir wollen dieses Konzept

Mehr

Tutorial: Homogenitätstest

Tutorial: Homogenitätstest Tutorial: Homogenitätstest Eine Bank möchte die Kreditwürdigkeit potenzieller Kreditnehmer abschätzen. Einerseits lebt die Bank ja von der Vergabe von Krediten, andererseits verursachen Problemkredite

Mehr

Modellbildungssysteme: Pädagogische und didaktische Ziele

Modellbildungssysteme: Pädagogische und didaktische Ziele Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und

Mehr

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

Mehr

Der Kalender im ipad

Der Kalender im ipad Der Kalender im ipad Wir haben im ipad, dem ipod Touch und dem iphone, sowie auf dem PC in der Cloud einen Kalender. Die App ist voreingestellt, man braucht sie nicht laden. So macht es das ipad leicht,

Mehr

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik Abitur 8 II. Insektenpopulation LA/AG In den Tropen legen die Weibchen einer in Deutschland unbekannten Insektenpopulation jedes Jahr kurz vor Beginn der Regenzeit jeweils 9 Eier und sterben bald darauf.

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775, Aufgabenpool für angewandte Mathematik / 1. Jahrgang V B, C, D Drinks Ein gastronomischer Betrieb kauft 300 Dosen Energydrinks (0,3 l) und 400 Liter Flaschen Mineralwasser und zahlt dafür 50, Euro. Einen

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

GEVITAS Farben-Reaktionstest

GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest Inhalt 1. Allgemeines... 1 2. Funktionsweise der Tests... 2 3. Die Ruhetaste und die Auslösetaste... 2 4. Starten der App Hauptmenü... 3 5. Auswahl

Mehr

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt. Gentlemen", bitte zur Kasse! Ravensburger Spiele Nr. 01 264 0 Autoren: Wolfgang Kramer und Jürgen P. K. Grunau Grafik: Erhard Dietl Ein Gaunerspiel für 3-6 Gentlemen" ab 10 Jahren Inhalt: 35 Tresor-Karten

Mehr

1. Einschränkung für Mac-User ohne Office 365. 2. Dokumente hochladen, teilen und bearbeiten

1. Einschränkung für Mac-User ohne Office 365. 2. Dokumente hochladen, teilen und bearbeiten 1. Einschränkung für Mac-User ohne Office 365 Mac-User ohne Office 365 müssen die Dateien herunterladen; sie können die Dateien nicht direkt öffnen und bearbeiten. Wenn die Datei heruntergeladen wurde,

Mehr

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Universität Bonn 28. Juli 2010 Fachbereich Rechts- und Wirtschaftswissenschaften Statistische Abteilung Prof. Dr. A. Kneip. KLAUSUR Statistik B

Universität Bonn 28. Juli 2010 Fachbereich Rechts- und Wirtschaftswissenschaften Statistische Abteilung Prof. Dr. A. Kneip. KLAUSUR Statistik B Universität Bonn 28. Juli 2010 Fachbereich Rechts- und Wirtschaftswissenschaften Statistische Abteilung Prof. Dr. A. Kneip Sommersemester 2010 KLAUSUR Statistik B Hinweise zur Bearbeitung: Bei allen Teilaufgaben

Mehr

Herzlich Willkommen bei der BITel!

Herzlich Willkommen bei der BITel! Herzlich Willkommen bei der BITel! Damit Sie auch unterwegs mit dem iphone Ihre E-Mails abrufen können, zeigen wir Ihnen Schritt für Schritt wie Sie Ihr BITel-Postfach im iphone einrichten. Los geht's:

Mehr

R ist freie Software und kann von der Website. www.r-project.org

R ist freie Software und kann von der Website. www.r-project.org R R ist freie Software und kann von der Website heruntergeladen werden. www.r-project.org Nach dem Herunterladen und der Installation von R kann man R durch Doppelklicken auf das R-Symbol starten. R wird

Mehr

Stammdatenanlage über den Einrichtungsassistenten

Stammdatenanlage über den Einrichtungsassistenten Stammdatenanlage über den Einrichtungsassistenten Schritt für Schritt zur fertig eingerichteten Hotelverwaltung mit dem Einrichtungsassistenten Bitte bereiten Sie sich, bevor Sie starten, mit der Checkliste

Mehr