![Page 1: Ameisenalgorithmus und Simulated Annealing Robert Wild](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/1.jpg)
Ameisenalgorithmus und Simulated Annealing
Robert Wild
![Page 2: Ameisenalgorithmus und Simulated Annealing Robert Wild](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/2.jpg)
Warum das ganze?
• Viele wichtige Probleme sind NP-Hart
• Beispiele:– TSP– KNAPSACK– HAMILTONIAN CIRCUIT
![Page 3: Ameisenalgorithmus und Simulated Annealing Robert Wild](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/3.jpg)
TSP - Anwendungsbeispiele
• Routenplanung von Speditionen o.ä.• Layout integrierter Schaltkreise• Steuerung von Fertigungsrobotern• DNA-Sequenzierung
![Page 4: Ameisenalgorithmus und Simulated Annealing Robert Wild](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/8.jpg)
PM aktualisieren
• Pheromon verdunstet nach Verdunstungsgrad α
• PM wird aktualisiert nach:
![Page 9: Ameisenalgorithmus und Simulated Annealing Robert Wild](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/9.jpg)
Pseudocode
![Page 10: Ameisenalgorithmus und Simulated Annealing Robert Wild](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/12.jpg)
Simulated Annealing
• Erweiterung der lokalen Suche
• Problem: findet nur lokales Minimum
![Page 13: Ameisenalgorithmus und Simulated Annealing Robert Wild](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/13.jpg)
Simulated Annealing
![Page 14: Ameisenalgorithmus und Simulated Annealing Robert Wild](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/15.jpg)
Implementierung Simulated Annealing
![Page 16: Ameisenalgorithmus und Simulated Annealing Robert Wild](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062404/55204d7249795902118c5c99/html5/thumbnails/18.jpg)
Fazit
• Achtung! Achsen sind nicht linear!