Simulated annealing

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Simulierte Abkühlung)
Wechseln zu: Navigation, Suche

Simulated annealing (simulierte Abkühlung) ist ein heuristisches Optimierungsverfahren. Das Verfahren wird zum Auffinden einer approximativen Lösung von Optimierungsproblemen 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 Atome 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 Wahrscheinlichkeit, mit der sich ein Zwischenergebnis der Optimierung auch verschlechtern darf. Der Metropolisalgorithmus ist die Grundlage der simulierten Abkühlung. Im Gegensatz zu einem Lokale-Suche-Algorithmus kann das Verfahren ein lokales Optimum wieder verlassen und ein besseres finden.

Motivation[Bearbeiten]

Der Algorithmus des simulated annealing kann leicht anhand physikalischer Überlegungen motiviert werden.[1] Gesucht sei ein energetisch günstigster Zustand eines Systems, welches mithilfe der Boltzmann-Statistik beschrieben werden kann. Gemäß der Boltzmann-Statistik ist die Wahrscheinlichkeit einen Mikrozustand mit Energie E_j anzutreffen gegeben durch die Wahrscheinlichkeitsverteilung

p(E_j) \propto \exp \left( -\frac{E_j}{k_B T} \right),

wobei k_B die Boltzmann-Konstante und T die Temperatur ist. Die Energie des energetisch günstigsten Zustandes sei E_0, also kann man folgende Gleichung aufstellen:

p(E_j) \propto \exp \left(- \frac{E_j}{k_B T} \right) \cdot \underbrace{\exp \left(-\frac{1}{k_B T}(E_0-E_0) \right)}_{=1} \propto \exp \left(- \frac{(E_j-E_0)}{k_B T} \right)

Da E_0 der energetisch günstigste Zustand ist, gilt E_j-E_0>0. Da k_B>0 und T\ge 0 gilt somit, dass für kleiner werdende Temperaturen der absolute Betrag des Exponent größer wird. Unter Berücksichtigung des negativen Vorzeichens des Exponenten sinkt daher die Wahrscheinlichkeit für kleinere Temperaturen einen angeregten Energiezustand E_j zu finden. Senkt man somit die Temperatur des Systems langsam ab, so wird der energetisch günstigste Zustand mit immer größerer Wahrscheinlichkeit angetroffen.

Algorithmus[Bearbeiten]

Problemstellung[Bearbeiten]

Gegeben sei der Wertebereich D, eine Fitness-Funktion f \colon D \rightarrow \mathbb{R}, ein Umgebungsbegriff U(x) und ein Abbruchkriterium.

Gesucht ist eine approximative Lösung des globalen Minimums von f über D.

Initialisierung[Bearbeiten]

Wähle eine Startlösung x \in D. Wähle eine monoton gegen Null fallende Temperaturfolge T_t, t \in \N und eine Folge N_i, i \in \N, die angibt, wie viele Schritte eine Temperatur T_t beibehalten wird. Startzeiten t = 0 und i = 1.

Lokale Veränderung[Bearbeiten]

Falls i \le N_t: Wähle einen Nachbarn y \in D aus der Umgebung U(x), sonst setze i=1 und t=t+1 und suche wieder einen Nachbarn.

Selektion[Bearbeiten]

  • Gilt f(y) \le f(x), setze x = y und, falls f(y) \le f(x_\text{approx}), setze x_\text{approx}=y
  • Gilt f(y) > f(x)\,, setze x = y nur mit Wahrscheinlichkeit \exp \left( -\frac{f \left( y \right) - f \left( x \right)}{T_t} \right).

Abbruch oder weiter[Bearbeiten]

Wurde das x nicht durch y ersetzt, setze i=i+1 und beginne wieder mit einer lokalen Veränderung.

Sonst, falls die Abbruchbedingung zudem nicht erfüllt und damit die approximative Lösung x_\text{approx} gefunden ist, beginne im nächsten Zeittakt t = t + 1 wieder mit einer lokalen Veränderung und setze i = 1.

Erläuterungen[Bearbeiten]

Die Wahrscheinlichkeit \exp \left( -\frac{f (y) - f (x)}{T_t} \right), dass ein schlechteres y akzeptiert wird, ist wegen f (y) - f(x) für geringere Verschlechterungen größer und, weil T_t eine monoton fallende Folge ist, am Anfang des Verfahrens ebenfalls wahrscheinlicher.

Wie ein Nachbar gewählt werden sollte, hängt von dem vorliegenden Problem ab. In der Informatik ist häufig der Wertebereich D = \{0,1\}^n und x = (x_1, x_2, \dotsc, x_n) 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, eine Untergrenze für die Abkühlung festgelegt oder eine Anzahl t von Zeitpunkten definiert, über die x sich nicht mehr geändert hat.

Graphische Verdeutlichung[Bearbeiten]

Graphische Darstellung einer Landschaft, in der ein globales Minimum gefunden werden soll.

Das Problem des simulierten Ausglühens kann man sich graphisch verdeutlichen. [2]

Angenommen, man sucht in einer zweidimensionalen Landschaft den (global) tiefsten Punkt. Die Landschaft selbst besteht aus vielen unterschiedlich tiefen Dellen. Die einfache Suchstrategie (suche den nächsten tiefsten Punkt) entspricht dem Verhalten einer Kugel, welche in dieser Landschaft ausgesetzt wird. Sie rollt zum nächsten lokalen Minimum und bleibt dort. Bei der simulierten Abkühlung wird der Kugel immer wieder ein Stoß versetzt, der mit zunehmender „Abkühlung“ schwächer wird. Dieser ist idealerweise stark genug, um die Kugel aus einer flachen Delle (lokales Minimum) zu entfernen, reicht aber nicht aus, um aus dem globalen Minimum zu fliehen.

Einzelnachweise[Bearbeiten]

  1. JP Dr. A. Arnold, Universität Stuttgart, Institut für Computerphysik, Skript zur Vorlesung Physik auf dem Computer (PDF; 3,5 MB) S. 181 ff.
  2. Google TechTalk Vortrag Eine kurze, aber sehr verständliche Erklärung zum Thema findet man ab Minute 35.

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

Literatur[Bearbeiten]

  •  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 simulierte Abkühlung effizienter ist als der Metropolisalgorithmus.).