Zum Inhalt springen

Simulierte Abkühlung

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 22. Februar 2007 um 13:23 Uhr durch Brosenne (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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.

Algorithmus

Problemstellung

Gegeben sei der Wertebereich und die Fitness-Funktion .

Gesucht ist ein globales Minimum von über , d.h. ein für das gilt, für alle .

Initialisierung

Wähle Temperatur und Kühlungskonstante . Startzeit .

Lokale Veränderung

Wähle einen Nachbarn von .

Selection

  • Gilt , setze .
  • Gilt , setze mit Wahrscheinlichkeit .

Abbruch oder Weiter

Ist die Abbruchbedingung nicht erfüllt, beginne im nächsten Zeittakt wieder mit einer lokalen Veränderung.

Erläuterungen

Wie ein Nachbarn gewählt wird, hängt von dem vorliegenden Problem ab. In der Informatik ist häufig der Wertebereich und wird als BitVektor betrachtet. Ein Nachbar von 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.

Siehe

Schwellenakzeptanz (threshold Accepting)
Deterministic Annealing
Sintflutalgorithmus

Literatur

Ingo Wegener: Simulated Annealing Beats Metropolis in Combinatorial Optimization. In: Lecture Notes in Computer Science. Band 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 gezeigt wird, dass, unabhängig von der Temperatur, die simulierter Abkühlung effizienter ist als der Metropolisalgorithmus.).