Der Begriff ,,Simulated Annealing`` steht für ein aus der Natur abgeschautes Verfahren, um globale Minima oder Maxima einer Funktion zu finden. Während andere Verfahren zum großen Teil in lokalen Minima ,,hängen`` bleiben können, ist es eine besondere Stärke des Algorithmus aus diesen wieder herauszufinden. Die am Ende gefundene Lösung stellt bei unendlicher Abkühlzeit mit Sicherheit das globale Minimum oder Maximum dar, während dies bei endlicher Abkühlzeit nicht immer der Fall ist.
Beim langsamen Abkühlen eines Metallstückes ordnen sich die einzelnen Atome so an, daß sie einen Zustand möglichst niedriger Energie einnehmen. Tritt allerdings eine zu schnelle Abkühlung auf, so haben die Atome nicht die Zeit das tatsächliche Minimum zu finden, das System bleibt in einem lokalen Minimum ,,hängen``. Ein niedriger Energiezustand ist in diesem Fall gleichbedeutend mit einem stabilen Endzustand, also einem sehr stabilen Werkstück.
Diese Grundidee hat man nun verwendet, um bei mathematischen Funktionen
das Minimum oder äquivalent das Maximum (dazu nehme man das negative der
Funktion) zu finden. Sei eine Funktion gegeben. Analog zu einem
Teilchen in einem Werkstück betrachtet man einen Vektor
, dessen
Komponenten anfangs zufällig im jeweiligen Intervall bestimmt werden. Nun
wird eine zufällige Verschiebung
ausgelost; ist der neue
Funktionswert
kleiner als der alte
,
so wird die neue Position verwendet. Diese Vorschrift stellt bereits einen
vollständigen Algorithmus zur Suche nach einem Minimum dar; allerdings mit
dem gravierenden Nachteil, daß der Algorithmus sich aus einem lokalen
Minimum nicht mehr befreien kann. Es geht stets nur zu niedrigeren
Funktionswerten. Um dieses Problem zu lösen ist beim Simulated Annealing
auch ein Sprung zu höheren Funktionswerten möglich. Dieser wird aber nur
mit einer bestimmten Wahrscheinlichkeit p ausgeführt. Diese berechnet
sich nach folgender Formel:
Der Kontroll-Parameter T stellt dabei das Analogon zur Temperatur T bei
einem Werkstück dar. Für hohe T-Werte ist p nahezu 1, d.h. fast jede
Verschiebung von wird ausgeführt. Läßt man T nun gegen 0 gehen,
so wird die Wahrscheinlichkeit für einen Sprung auf ein höheres Niveau
immer geringer, wobei auch die Differenz
eine Rolle spielt. Für kleine Werte von
ist p
wiederum fast 1,
kann also in seiner näheren Umgebung (im Fall
stetiger Funktionen) noch frei verändert werden, dagegen für große
Werte von
ist ein Sprung zwar möglich, aber sehr
unwahrscheinlich.
Mathematisch ist es bewiesen [VLAu87] daß das System für den Fall unendlich kleiner Temperaturänderungen immer das globale Minimum findet. In der Praxis möchte man jedoch meist nach endlicher Zeit ein Ergebnis sehen, so daß man die Temperatur in größeren Schritten heruntersetzen muß. Wann man nun die Temperatur weiter heruntersetzt und wann man noch wartet, ist das eigentliche Problem. Es gibt im Prinzip zwei Ansätze:
Der Algorithmus läßt sich dann so schreiben:
,5cm
Eine bedeutende Anwendungsmöglichkeit dieses Verfahrens ist das sogenannte TSP (Traveling Salesman Problem): Ein Handlungsreisender soll n Städte bereisen und dabei den kürzesten Weg finden. Bei diesem Problem gibt es ausgeprägte Nebenmaxima, weshalb andere Algorithmen häufig versagen. Simulated Annealing findet zwar auch hier nicht immer das globale Minimum, jedoch liegen die erreichten Werte meist nur unwesentlich (1-10%) über dem Idealwert und sind damit für die Praxis oft völlig ausreichend.