| Metaheuristiken lassen sich in verschiedene Klassen unterteilen. Beispielsweise gibt es die Klasse der Algorithmen, die mit Populationen arbeiten. Auf die obige Grafik bezogen heißt das, dass man nicht nur an einem Ort anfängt, und dann auf einem Pfad das Gelände erkundet, sondern man sendet verschiedene Akteure aus, die dann größtenteils unabhängig voneinander nach Lösungen suchen. Untereinander kommunizieren diese Akteure nur minimal, um sich gegenseitig über Fortschritte zu informieren. Im Fall des Ameisenalgorithmus (auf Englisch „ant colony optimization“, kurz „ACO“) sind diese Akteure Ameisen. Der Algorithmus ist bewusst der Natur nachempfunden, da man hier eine interessante Entdeckung gemacht hat. Ameisen schaffen es, ein ihnen unbekanntes Territorium sehr effizient für die Futtersuche zu erkunden, und das, obwohl Ameisen so gut wie blind sind und scheinbar ziellos durch die Gegend irren. Der Schlüssel zum Erfolg liegt in der Kommunikation mittels hormoneller Lockstoffe, Pheromone, die jede Ameise kontinuierlich aussendet. Eine Ameise, die auf ihrer Suche zufällig auf eine Futterquelle stößt, wird den gekommenen Weg zum Bau zurückgehen, um Nahrung zurückzubringen. Dabei orientiert sie sich an ihrer eigenen auf dem Hinweg gelegten Pheromonspur. Je näher die Ameise dem Bau kommt, desto stärker wird die Ansammlung von Pheromon, die Ameise findet also leicht zurück. Besser noch: Andere Ameisen, die das Gelände ebenfalls zufällig abgrasen, werden mit einiger Wahrscheinlichkeit auf die frisch gelegte Pheromonspur der Ameise eins stoßen und ihr folgen (nicht umsonst spricht man von „Lockstoff“). Dadurch finden auch andere Ameisen die Futterquelle und tragen ihren Teil der Beute zum Ameisenhügel zurück. Je mehr Ameisen dies tun, desto stärker werden die Routen zur Nahrung ausgeprägt, bis schließlich immer mehr Ameisen der Route folgen – und zwar nicht irgendeiner Route, sondern der kürzesten, weil der hinterlassene Lockstoff nämlich nach einiger Zeit verfliegt und daher nur auf den vielbenutzten Strecken zurückbleibt. | Abbildung 3: Wegsuche der Ameisen. 1: Die erste Ameise findet einen Weg vom Nest („N“) zum Futter („F“) und hinterlässt eine Pheromonspur. 2: Andere Ameisen folgen der Spur und prägen mehrere Wege aus. 3: Durch Verblassen ungünstiger Pheromonspuren nehmen nahezu alle Ameisen den kürzesten Weg. Das Ganze lässt sich mathematisch modellieren, indem man mehrere Akteure (Ameisen) instanziert und sie das Problem lösen lässt. Dabei lösen sie Teilprobleme und bauen daraus eine komplette Lösung zusammen. Die jeweiligen Teillösungen werden aus einer Menge möglicher Teillösungen gezogen. Dabei wird zufällig vorgegangen, allerdings ist jede Teillösung mit einem Pheromonniveau markiert. Je höher das jeweilige Niveau, desto höher die Wahrscheinlichkeit, dass sich eine Ameise für eine bestimmte Teillösung entscheidet: Abbildung 4 Die Formel sieht auf den ersten Blick sehr kompliziert aus, das ist sie aber eigentlich gar nicht. P bezeichnet eine Wahrscheinlichkeit. Der Term in Klammern dahinter bedeutet lediglich die Wahrscheinlichkeit, dass sich eine Ameise (sa), die im Moment die Teillösung cl hat, sich im nächsten Schritt für die Teillösung cr entscheidet. Mit anderen Worten, wir berechnen die (bedingte) Wahrscheinlichkeit dafür, dass sich die Ameise für eine gewisse Teillösung entscheidet, ausgehend von der aktuellen Teillösung. Am Beispiel der Futtersuche könnte eine Teillösung einen Pfad-Abschnitt darstellen. J ist dabei die Menge der wählbaren Teillösungen. Wenn sich eine Ameise also an einer Kreuzungsstelle befände, dann enthielte diese Menge den Weg nach vorne, nach links und nach rechts, nicht aber nach hinten, denn da kommt sie ja gerade her. Wir berechnen jetzt für jeden der möglichen Wege die Wahrscheinlichkeit, als nächstes gewählt zu werden. Der Term dahinter besagt: für jede Teillösung außerhalb der Menge der möglichen Teillösungen ist die Wahrscheinlichkeit, ausgewählt zu werden, gleich 0. Dadurch sind unmögliche Lösungen nicht wählbar. Ansonsten entspricht die Wahrscheinlichkeit dem Bruch. Über dem Bruchstrich werden zwei Faktoren miteinander multipliziert: Eta (η ) und Tau (τ ). Der Index r deutet an, dass sich die beiden Werte auf die potentielle Teillösung beziehen. Bei τ handelt es sich um den Pheromonwert der jeweiligen Teillösung. η ist ein Parameter, der je nach Problemstellung variiert, denn Metaheuristiken beschreiben, wie erwähnt, ein allgemeines Verfahren, welches problemspezifisch implementiert werden muss, und das wird unter anderem durch diesen Parameter erreicht. Ähnliches gilt für die Parameter α und β , mit denen η und τ potenziert werden. Im Nahrungssuche-Beispiel könnte η beispielsweise für die Länge eines Teilpfads stehen. Da wir lange Pfade natürlich vermeiden wollen, müsste α in diesem Fall negativ sein; dadurch würde die Wahrscheinlichkeit für einen Teilpfad kleiner werden, je länger dieser Teilpfad ist. Kommen wir nun zum Teil unter dem Bruchstrich. Hier steht fast dasselbe wie oben, nur dass wir diesmal nicht eine einzige Teillösung herausgreifen sondern die Summe über alle Teillösungs-Faktoren errechnen. Dadurch erhalten wir mit dem Bruch für jede Teillösung die relative Wahrscheinlichkeit, als nächstes gewählt zu werden. Damit hängt die Wahrscheinlichkeit, dass eine Teillösung ausgewählt wird, also von einem speziellen Gütekriterium und ihrem Pheromonniveau ab. Am Ende eines Durchgangs des Algorithmus werden diese Niveaus nun aktualisiert: Zuerst einmal findet die Verdunstung statt: jedes Pheromonniveau verringert sich um einen festen prozentualen Anteil. Dann bekommen alle Ameisen, die eine gültige Lösung des Problems gefunden haben, die Möglichkeit, Pheromon auf ihren Teillösungen zu hinterlassen. Der neue Pheromonwert für jede Komponente j berechnet sich also wie folgt: Abbildung 5 Hierbei ist ρ der konstante Verdunstungsfaktor zwischen 0 und 1. A ist die Menge aller Ameisen, die erfolgreich eine Lösung erarbeitet haben, und das Delta-Tau (= die Pheromon-„Belohnung“) berechnet sich wie folgt: Abbildung 6 Mit anderen Worten: jede Teillösung wird genau dann mit einem Pheromonanstieg honoriert, wenn sie Teil der Lösung für die aktuelle Ameise ist. Oder anders gesagt: nur die von der Ameise besuchten Teillösungen bekommen Pheromon ab. Wieviel das ist, berechnet die Funktion F, die wieder abhängig von der Problemstellung ist. In unserem Beispiel wäre es sinnvoll, kurze Strecken zu honorieren, d. h. für Ameisen, die eine kurze Strecke genommen haben, wäre der Wert groß, für andere wäre er klein. Nun können wir einen Pseudocode für den Ameisenalgorithmus aufschreiben, und er ist denkbar einfach: - Versuche, das Problem durch n Ameisen lösen zu lassen
- Führe die Pheromon-Aktualisierung durch
- Wenn die Terminationsbedingungen noch nicht erfüllt sind, gehe zu Schritt 1
Nur: Was sind die Terminationsbedingungen? Leider erben Metaheuristiken dieses Problem von den Heuristiken: Es gibt keine in Stein gemeißelte Methode, um festzustellen, wie gut unsere Lösung ist. Welchen Vorteil haben Metaheuristiken dann? Nur diesen einen: Heuristiken geben sich mit der ersten besten Lösung zufrieden (lokales Minumum). Metaheuristiken hingegen bewegen sich sehr viel dynamischer durch den Lösungsraum und können dadurch lokale Minima überwinden. Letztendlich sind Metaheuristiken eine sehr fragile Angelegenheit, und ihre Nützlichkeit hängt stark von den gewählten Parametern und Terminationsbedingungen ab. Zu allem Überfluss scheint es nicht einmal gute Methoden zu geben, um all diese Parameter allgemeingültig festzulegen. Eine oft verwendete Abbruchbedingung ist, zu prüfen, ob und wie sehr sich die beste bisher gefundene Lösung verändert: Wenn z. B. in den letzten 20 Iterationen keine Verbesserung erzielt worden ist, wird abgebrochen. Doch allgemein hilft hier nur viel Herumprobieren, bis ein gut funktionierender Parametersatz gefunden wurde. Dies ist auch der Grund, aus dem viele theoretische Informatiker eine gewisse Abneigung gegen Metaheuristiken hegen: die theoretische Basis ist recht dünn und vieles ist der Willkür überlassen. Doch in der Praxis funktionieren diese Methoden oft sehr gut und finden auch dort Lösungen, wo der „klassische“ Ansatz versagt. |