ameisenalgorithmus und simulated annealing robert wild

18
Ameisenalgorithmus und Simulated Annealing Robert Wild

Upload: annelie-gear

Post on 05-Apr-2015

116 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Ameisenalgorithmus und Simulated Annealing Robert Wild

Ameisenalgorithmus und Simulated Annealing

Robert Wild

Page 2: Ameisenalgorithmus und Simulated Annealing Robert Wild

Warum das ganze?

• Viele wichtige Probleme sind NP-Hart

• Beispiele:– TSP– KNAPSACK– HAMILTONIAN CIRCUIT

Page 3: Ameisenalgorithmus und Simulated Annealing Robert Wild

TSP - Anwendungsbeispiele

• Routenplanung von Speditionen o.ä.• Layout integrierter Schaltkreise• Steuerung von Fertigungsrobotern• DNA-Sequenzierung

Page 4: Ameisenalgorithmus und Simulated Annealing Robert Wild

Grundsätzliches

• Sämtliche Testergebnisse beziehen sich auf meine Implementierungen in Ruby mit dem Datensatz XQF131 von www.tsp.gatech.edu

• Für praktische Belange wäre natürlich eine Implementierung in C sinnvoller aber hier geht es nur ums Prinzip

Page 5: Ameisenalgorithmus und Simulated Annealing Robert Wild

Ameisenalgorithmus - Vorbild

• Simuliert Ameisen bei der Futtersuche• Einzelne Ameise findet Weg zufällig• Ameisen sondern Pheromonspur ab, andere

folgen dieser• Kürzere Strecke -> Ameise kann öfter in der

gleichen Zeit laufen -> intensivere Spur -> Ameisenstrasse

• Findet gute Lösung, aber nicht optimal

Page 6: Ameisenalgorithmus und Simulated Annealing Robert Wild

Objekte

• µ Ameisen– Kennen ihre besuchten Knoten– Haben zufälligen Startpunkt

• Pheromonmatrix (PM)– Speichert die Pheromonmenge für jede Kante, im

Gegensatz zur Natur gerichtet– Wird mit einem sehr Wert initialisiert (0.000001)

Page 7: Ameisenalgorithmus und Simulated Annealing Robert Wild

Wegfindung der Ameisen

• Nächster Knotenpunkt wird durch Zufallsexperiment gewählt (Gleichung 1):

• Tau := Pheromonmenge auf der Kante• d := Kehrwert der Kantenlänge• β := Kantengewicht

Page 8: Ameisenalgorithmus und Simulated Annealing Robert Wild

PM aktualisieren

• Pheromon verdunstet nach Verdunstungsgrad α

• PM wird aktualisiert nach:

Page 9: Ameisenalgorithmus und Simulated Annealing Robert Wild

Pseudocode

Page 10: Ameisenalgorithmus und Simulated Annealing Robert Wild

Stellschrauben

Der Ameisenalgorithmus bietet dem Benutzer ein paar Einstellmöglichkeiten (Empfohlene Werte in Klammern):

• Anzahl der Ameisen (10)• Kantengewicht β (2-4)• Verdunstungsgrad α (0,6-0,9)• Explorationsregler theta (0,2-0,9)

Page 11: Ameisenalgorithmus und Simulated Annealing Robert Wild

Testergebnisse (ANT)

• Lösungen die 10%-15% über dem Optimum liegen werden schon nach wenigen Iterationen gefunden

• Nach sehr langer Zeit Lösungen <10% über Optimum

• Schwankende Ergebnisse, mehrere Durchläufe sinnvoll

• Stellschrauben haben keine nennenswerten Auswirkungen

Page 12: Ameisenalgorithmus und Simulated Annealing Robert Wild

Simulated Annealing

• Erweiterung der lokalen Suche

• Problem: findet nur lokales Minimum

Page 13: Ameisenalgorithmus und Simulated Annealing Robert Wild

Simulated Annealing

Page 14: Ameisenalgorithmus und Simulated Annealing Robert Wild

Vorbild aus der Natur

• Abkühlungsprozess von Metallen• Moleküle wollen in energiearme Zustände• Temperatur = Bewegung der Moleküle• Bei hoher Temperatur können Moleküle auch

aus niedrigen Energiezuständen ausbrechen• Mit sinkender Temperatur nur noch aus

höheren Energiezuständen

Page 15: Ameisenalgorithmus und Simulated Annealing Robert Wild

Implementierung Simulated Annealing

Page 16: Ameisenalgorithmus und Simulated Annealing Robert Wild

Implementierung Simulated Annealing

• 2 Vorschläge für ÄNDERE():– (a) Zufälliges Teilstück der Route ausschneiden

und zwischen zwei zufälligen Knoten einfügen– (b) Reihenfolge in zufälligem Teilstück reversieren

• In meinen Versuchen liefert (b) deutlich bessere Ergebnisse

Page 17: Ameisenalgorithmus und Simulated Annealing Robert Wild

Testergebnisse (SA)

• Variante (a) liefert Ergebnisse 10%-15% über Optimum

• Variante (b) findet Lösungen 1%-6% über Optimum

• Beide Varianten nähern sich nur langsam an die Lösung an

• Schwankende Ergebnisse, mehrere Durchläufe sinnvoll

Page 18: Ameisenalgorithmus und Simulated Annealing Robert Wild

Fazit

• Achtung! Achsen sind nicht linear!