<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Simulierte_Abk%C3%BChlung</id>
	<title>Simulierte Abkühlung - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Simulierte_Abk%C3%BChlung"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Simulierte_Abk%C3%BChlung&amp;action=history"/>
	<updated>2026-06-08T06:50:38Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Simulierte_Abk%C3%BChlung&amp;diff=182988&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Simulierte_Abk%C3%BChlung&amp;diff=182988&amp;oldid=prev"/>
		<updated>2026-01-06T15:11:54Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Die &amp;#039;&amp;#039;&amp;#039;simulierte Abkühlung&amp;#039;&amp;#039;&amp;#039; ({{EnS|simulated annealing}}, auch &amp;#039;&amp;#039;simuliertes [[Tempern]]&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;simulierte [[Vergüten (Metallbearbeitung)|Vergütung]]&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{Literatur |Autor=Raúl Rojas |Titel=Theorie der neuronalen Netze: eine systematische Einführung |Auflage=4., korrigierter Nachdr |Verlag=Springer |Ort=Berlin Heidelberg |Datum=1996 |Reihe=Springer-Lehrbuch |ISBN=978-3-540-56353-2 |Abruf=2025-07-02}}&amp;lt;/ref&amp;gt; genannt) ist ein [[Heuristik|heuristisches]] [[Approximationsalgorithmus|Approximationsverfahren]]. Sie wird zum Auffinden einer Näherungslösung von [[Optimierungsproblem]]en eingesetzt, die durch ihre hohe Komplexität das vollständige Ausprobieren aller Möglichkeiten und mathematische [[Optimierung (Mathematik)|Optimierungsverfahren]] ausschließen.&lt;br /&gt;
&lt;br /&gt;
Grundidee ist die Nachbildung eines Abkühlungsprozesses, wie er etwa beim [[Glühen]] in der [[Metallurgie]] stattfindet: Nach dem 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. Wie viele andere [[Lokale Suche|Lokale-Suche]]-Algorithmen kann das Verfahren dadurch ein [[Extremwert|lokales Optimum]] wieder verlassen, um ein besseres zu finden. Vom [[Metropolis-Algorithmus]] in [[Monte-Carlo-Simulation]]en unterscheidet sich das Verfahren durch das Absenken der Temperatur im Verlauf der [[Iteration]].&lt;br /&gt;
&lt;br /&gt;
Der Algorithmus wird beispielsweise beim [[Floorplanning]] im Laufe eines [[Chipentwurf]]s oder für die Standort- und Routenplanung verwendet.&amp;lt;ref&amp;gt;Bogatzki, A.: Fabrikplanung: Verfahren zur Optimierung von Maschinenaufstellung. Diss. Universität Wuppertal (1998). Roderer 1998. ISBN 978-3-89073-234-3&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In den 1990er Jahren wurden Quantenversionen der simulierten Abkühlung (mit Tunnelung zwischen den Minima) eingeführt.&amp;lt;ref&amp;gt;T. Kadowaki, H. Nishimori, &amp;#039;&amp;#039;Quantum annealing in the transverse Ising model&amp;#039;&amp;#039;, Phys. Rev. E, Band 58, 1998, S. 5355&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;A. B. Finilla, M. A. Gomez, C. Sebenik, J. D. Doll, &amp;#039;&amp;#039;Quantum annealing: A new method for minimizing multidimensional functions&amp;#039;&amp;#039;, Chem. Phys. Lett., Band 219, 1994, S. 343&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Der Algorithmus der simulierten Abkühlung ist durch physikalische Überlegungen motiviert.&amp;lt;ref&amp;gt;JP Dr. A. Arnold, Universität Stuttgart, Institut für Computerphysik, [http://www.icp.uni-stuttgart.de/~icp/mediawiki/images/1/13/SS_2013_PadC.pdf Skript zur Vorlesung Physik auf dem Computer] (PDF; 3,3&amp;amp;nbsp;MB) S. 181 ff.&amp;lt;/ref&amp;gt; Gesucht sei ein energetisch günstigster Zustand eines Systems, welches mithilfe der [[Boltzmann-Statistik]] beschrieben werden kann.&lt;br /&gt;
Gemäß der Boltzmann-Statistik ist die Wahrscheinlichkeit, einen Mikrozustand mit Energie &amp;lt;math&amp;gt;\ge E_j&amp;lt;/math&amp;gt; anzutreffen, gegeben durch die Wahrscheinlichkeitsverteilung&lt;br /&gt;
:&amp;lt;math&amp;gt;p(E_j) \propto \exp \left( -\frac{E_j}{k_\mathrm B T} \right),&amp;lt;/math&amp;gt;&lt;br /&gt;
wobei &amp;lt;math&amp;gt;k_\mathrm B&amp;lt;/math&amp;gt; die [[Boltzmann-Konstante]] und &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; die Temperatur ist. Die Energie des energetisch günstigsten Zustandes sei &amp;lt;math&amp;gt;E_0&amp;lt;/math&amp;gt;. Die obige Proportionalität bleibt bestehen bei Multiplikation mit einem von &amp;lt;math&amp;gt;E_j&amp;lt;/math&amp;gt; unabhängigen Faktor:&lt;br /&gt;
:&amp;lt;math&amp;gt;p(E_j) \propto \exp \left(- \frac{(E_j-E_0)}{k_\mathrm B T} \right) &amp;lt;/math&amp;gt;&lt;br /&gt;
Da &amp;lt;math&amp;gt;E_0&amp;lt;/math&amp;gt; der energetisch günstigste Zustand ist, gilt &amp;lt;math&amp;gt;E_j-E_0 \ge 0&amp;lt;/math&amp;gt;. Weiterhin ist &amp;lt;math&amp;gt;k_\mathrm B&amp;gt;0&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;T &amp;gt; 0&amp;lt;/math&amp;gt;. Somit ist der Exponent negativ, und mit abnehmender Temperatur wird sein Betrag größer, wodurch die Wahrscheinlichkeit sinkt, einen angeregten Energiezustand mit mindestens &amp;lt;math&amp;gt;E_j&amp;lt;/math&amp;gt; zu finden. Senkt man somit die Temperatur des Systems langsam ab, so wird der energetisch günstigste Zustand mit immer größerer Wahrscheinlichkeit angetroffen.&lt;br /&gt;
&lt;br /&gt;
== Problemstellung ==&lt;br /&gt;
Gegeben sei der Lösungsraum &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;, eine [[Fitnessfunktion]] &amp;lt;math&amp;gt;f \colon D \rightarrow \mathbb{R}&amp;lt;/math&amp;gt;, die jeder Lösung in &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; einen Wert zuweist, und ein Abbruchkriterium.&lt;br /&gt;
&lt;br /&gt;
Gesucht ist eine approximative Lösung des globalen Minimums von &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; über &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt;, also ein &amp;lt;math&amp;gt;x \in D&amp;lt;/math&amp;gt; mit möglichst kleinem Wert &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;. Sollte ein &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; mit möglichst großem Wert gesucht sein (Maximierungsproblem), kann man dies durch Negieren von &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; einfach auf den vorigen Fall zurückführen.&lt;br /&gt;
&lt;br /&gt;
Außerdem wird ein [[Umgebung (Mathematik)|Umgebungsbegriff]] &amp;lt;math&amp;gt;U \colon D \rightarrow \mathcal P(D)&amp;lt;/math&amp;gt; benötigt (wobei &amp;lt;math&amp;gt;\mathcal P(D)&amp;lt;/math&amp;gt; die [[Potenzmenge]] von &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; bezeichnet), um zu gegebenem &amp;lt;math&amp;gt;x \in D&amp;lt;/math&amp;gt; eine benachbarte Lösung &amp;lt;math&amp;gt;y \in U(x)&amp;lt;/math&amp;gt; zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
== Algorithmus ==&lt;br /&gt;
&lt;br /&gt;
# Initialisierung:&lt;br /&gt;
#* wähle eine Startlösung &amp;lt;math&amp;gt;x \in D&amp;lt;/math&amp;gt;&lt;br /&gt;
#* setze &amp;lt;math&amp;gt;x_\mathrm{approx} = x&amp;lt;/math&amp;gt;&lt;br /&gt;
#* wähle eine [[Monotone Abbildung|monoton]] gegen Null fallende [[Folge (Mathematik)|Folge]] von positiven Temperaturwerten &amp;lt;math&amp;gt;(T_t)_{t \in \N}&amp;lt;/math&amp;gt;&lt;br /&gt;
#* Setze &amp;lt;math&amp;gt;t = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
# lokale Veränderung:&lt;br /&gt;
#* wähle zu &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; einen Nachbarn &amp;lt;math&amp;gt;y \in U(x)&amp;lt;/math&amp;gt; zufällig aus&lt;br /&gt;
# Selektion:&lt;br /&gt;
#* wenn &amp;lt;math&amp;gt;f(y) \le f(x)&amp;lt;/math&amp;gt;, setze &amp;lt;math&amp;gt;x = y&amp;lt;/math&amp;gt;&lt;br /&gt;
#* anderenfalls setze &amp;lt;math&amp;gt;x = y&amp;lt;/math&amp;gt; nur mit Wahrscheinlichkeit &amp;lt;math&amp;gt;\exp \left( -\frac{f \left( y \right) - f \left( x \right)}{T_t} \right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Bisher beste Lösung aktualisieren:&lt;br /&gt;
#* wenn &amp;lt;math&amp;gt;f(x) &amp;lt; f(x_\text{approx})&amp;lt;/math&amp;gt;, setze &amp;lt;math&amp;gt;x_\text{approx}=x&amp;lt;/math&amp;gt;&lt;br /&gt;
# Inkrementiere:&lt;br /&gt;
#* setze &amp;lt;math&amp;gt;t = t+1&amp;lt;/math&amp;gt;&lt;br /&gt;
# Abbruch oder weiter:&lt;br /&gt;
#* wenn die [[Abbruchbedingung]] nicht erfüllt ist, gehe zu Schritt 2.&lt;br /&gt;
&lt;br /&gt;
=== Erläuterungen ===&lt;br /&gt;
Die Wahrscheinlichkeit &amp;lt;math&amp;gt;\exp \left( -\frac{f (y) - f (x)}{T_t} \right)&amp;lt;/math&amp;gt;, dass &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; durch ein schlechteres &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; ersetzt wird, ist umso kleiner, je größer die Verschlechterung &amp;lt;math&amp;gt;f(y) - f(x)&amp;lt;/math&amp;gt; ist. Weil &amp;lt;math&amp;gt;T_t&amp;lt;/math&amp;gt; eine monoton fallende Folge ist, nimmt die Wahrscheinlichkeit außerdem während eines Programmlaufs immer mehr ab. Das Verfahren verhält sich mit abnehmendem &amp;lt;math&amp;gt;T_t&amp;lt;/math&amp;gt; mehr und mehr wie ein [[Bergsteigeralgorithmus]].&lt;br /&gt;
&lt;br /&gt;
Wie ein Nachbar &amp;lt;math&amp;gt;y \in U(x)&amp;lt;/math&amp;gt; gewählt werden sollte, hängt von dem vorliegenden Problem ab. In der Informatik ist häufig der Wertebereich &amp;lt;math&amp;gt;D = \{0,1\}^n&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;x = (x_1, x_2, \dotsc, x_n)&amp;lt;/math&amp;gt; wird als [[Bit]]-[[Vektor]] betrachtet. Ein Nachbar &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; von &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; kann dann z.&amp;amp;nbsp;B. durch das Flippen (Invertieren) von einem oder von wenigen Bits erzeugt werden (siehe Wegener 2005).&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; von Zeitpunkten definiert, über die &amp;lt;math&amp;gt;x_\mathrm{approx}&amp;lt;/math&amp;gt; sich nicht mehr geändert hat.&lt;br /&gt;
&lt;br /&gt;
=== Graphische Verdeutlichung ===&lt;br /&gt;
[[Datei:SimAnnealingLandschaft.png|mini|Graphische Darstellung einer Landschaft, in der ein globales Minimum gefunden werden soll.]]&lt;br /&gt;
Die Idee des simulierten Abkühlens kann man sich graphisch verdeutlichen.&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=e7M2l-jzRG8&amp;amp;t=33m49s Google TechTalk Vortrag] Eine kurze, aber sehr verständliche Erklärung zum Thema findet man ab Minute 35.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Hill Climbing with Simulated Annealing.gif|mini|Simulierte Abkühlung bei der Suche nach einem Maximum. Die zahlreichen lokalen Maxima werden durch die bei noch hoher „Temperatur“ starke Rausch-Bewegung der Temperatursimulation schnell wieder verlassen. Das globale Maximum wird aber zuverlässig gefunden, da der fallende „Temperatur“-Wert zum Ende nicht mehr ausreicht, es zu verlassen. Das erbringt bessere Resultate als ein einfacher [[Bergsteigeralgorithmus]].|500px]]&lt;br /&gt;
{{Absatz}}&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Schwellenakzeptanz]] (&amp;#039;&amp;#039;threshold accepting&amp;#039;&amp;#039;)&lt;br /&gt;
* [[Deterministic Annealing]]&lt;br /&gt;
* [[Stochastisches Tunneln]]&lt;br /&gt;
* [[Sintflutalgorithmus]]&lt;br /&gt;
* [[Metropolisalgorithmus]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
 |Autor = [[Ingo Wegener]]&lt;br /&gt;
 |Titel = Simulated Annealing Beats Metropolis in Combinatorial Optimization&lt;br /&gt;
 |Sammelwerk = Lecture Notes in Computer Science&lt;br /&gt;
 |Band = 3580&lt;br /&gt;
 |Verlag = Springer&lt;br /&gt;
 |Ort = Berlin/Heidelberg&lt;br /&gt;
 |Jahr = 2005&lt;br /&gt;
 |Seiten = 589–601&lt;br /&gt;
 |ISBN = 978-3-540-27580-0&lt;br /&gt;
 |DOI = 10.1007/11523468&lt;br /&gt;
 |Kommentar = Für ein einfach zu beschreibendes Problem wird gezeigt, dass unabhängig von der Temperatur die simulierte Abkühlung effizienter ist als der [[Metropolisalgorithmus]].&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Webarchiv|url=http://www.heatonresearch.com/fun/tsp/anneal|wayback=20150313202204|text=Interaktives JavaScript zur Demonstration}}&lt;br /&gt;
* [http://www-i1.informatik.rwth-aachen.de/~algorithmus/algo41.php Interaktive Demonstration zum Ausprobieren]&lt;br /&gt;
* [https://www.mycsharp.de/wbb2/thread.php?threadid=78641 C#-Implementierung und Anwendung zur Minimierung und auf das Problem des Handelsreisenden]&lt;br /&gt;
* Simulated Annealing in C++ Optimierungs-Bibliothek cppOpt [https://github.com/I3ck/cppOpt cppOpt] bzw. [https://github.com/I3ck/cppOpt/blob/master/inc/OptSimulatedAnnealing.h OptSimulatedAnnealing.h]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Optimierungsalgorithmus]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>