Die simulierte Abkühlung (Englisch simulated annealing) ist ein heuristisches Optimierungsverfahren des Operations Research. Das Verfahren wird für Optimierungsprobleme eingesetzt, die durch ihre hohe Komplexität das vollständige Ausprobieren aller Möglichkeiten und einfache mathematische Verfahren ausschließen. Benutzt wird dieses Verfahren zum Beispiel beim Floorplanning im Laufe eines Chipentwurfs.
Grundidee ist die Nachbildung eines Abkühlungsprozesses, etwa beim Glühen in der Werkstoffkunde. Nach Erhitzen eines Metalls sorgt die langsame Abkühlung dafür, dass die Moleküle ausreichend Zeit haben, sich zu ordnen und stabile Kristalle zu bilden. Dadurch wird ein energiearmer Zustand, nahe am Optimum erreicht.
Übertragen auf das Optimierungsverfahren entspricht die Temperatur einer Akzeptanzschwelle unterhalb derer sich ein Zwischenergebnis der Optimierung auch verschlechtern darf. Der Metropolisalgorithmus ist die Grundlage der simulierten Abkühlung. Im Gegensatz zum Bergsteigeralgorithmus (hill climbing) kann das Verfahren ein lokales Optimum wieder verlassen und ein besseres finden.
Inhaltsverzeichnis |
Gegeben sei der Wertebereich D und die Fitness-Funktion
.
Gesucht ist ein globales Minimum von f über D, d.h. ein
für das gilt,
für alle
.
Wähle eine Initiallösung
. Wähle die Temperatur T und die Kühlungskonstante α < 1. Startzeit t: = 0.
Wähle einen Nachbarn
von x.
, setze x: = y.
, setze x: = y mit Wahrscheinlichkeit
.Ist die Abbruchbedingung nicht erfüllt, beginne im nächsten Zeittakt t: = t + 1 wieder mit einer lokalen Veränderung.
Wie ein Nachbar gewählt wird, hängt von dem vorliegenden Problem ab. In der Informatik ist häufig der Wertebereich D = {0,1}n und
wird als Bit–Vektor betrachtet. Ein Nachbar y von x kann z.B. durch das flippen (invertieren) eines oder mehrerer Bits gewählt werden (siehe Wegener 2005).
Es sind verschiedene Abbruchbedingungen denkbar. Zum Beispiel wird nur eine maximale Anzahl von Durchläufen erlaubt, eine ausreichende Fitness definiert oder eine Untergrenze für die Abkühlung festgelegt.
Ingo Wegener: Simulated Annealing Beats Metropolis in Combinatorial Optimization. In: Lecture Notes in Computer Science. 3580, Springer, Berlin/Heidelberg 2005, ISBN 978-3-540-27580-0, S. 589-601 (doi:10.1007/11523468 ; Für ein einfach zu beschreibendes Problem wird gezeigt, dass, unabhängig von der Temperatur, die simulierter Abkühlung effizienter ist als der Metropolisalgorithmus.).