2013-02-07 22 views
6

Die Autoren von "Numerical Recipes" geben in Ch. 10 eine Implementierung des Simulated-Annealing-Algorithmus, der das "klassische" simulierte Annealing mit der Nelder-Mead-Downhill-Simplex-Methode kombiniert.Wie sicher/ausgereift ist der Simulated Annealing Algorithmus in Numerical Recipes?

Was ich mag über diesen Algorithmus die Art und Weise ist es zu einer klassischen Abfahrts Suche konvergiert, da die Glühtemperaturen 0 jedoch erreicht, ich habe nie eine andere Bezugnahme auf diesen Algorithmus gefunden; Ist es eine sichere, ausgereifte Variante des Simulated-Annealing-Algorithmus (d. h. produktionsbereit) oder sollte es als eine experimentelle Idee betrachtet werden, die ins Buch geworfen wird?

Antwort

3

Nein, nicht sicher, garantiert Herpes zu geben.

Als jemand, der professionell mit KI und intelligenten Systemen arbeitet, kann ich Ihnen sagen, dass sehr wenige solcher Algorithmen als ausgereift gelten. Aufgrund ihrer Natur neigen fortgeschrittene Algorithmen dazu, einen experimentellen Aspekt zu haben. Zum Beispiel müssen Sie beim simulierten Glühen einen Kühlplan erstellen. Wie Sie dies tun, ist sehr problemspezifisch und erfordert, dass Sie mit dem Algorithmus experimentieren und ihn optimieren. Der NR-Code ist ein vernünftiger Ausgangspunkt dafür.

+0

Mit Problem spezifisch: meinst du Use-Case-spezifische oder datensatzspezifische? Ich hatte Erfolg mit der Feinabstimmung von SAs Starttemperatur für 1 Anwendungsfall, der gut für andere Datensätze funktionierte, die ich darauf warf. Ich stelle die Kühlplanung basierend auf der Löserzeit automatisch ein. –

+1

In einer SA-Implementierung gibt es mehrere verschiedene Parameter, einschließlich der Energiefunktion, der Anzahl der Status und so weiter. Der beste Kühlplan hängt von all diesen Parametern ab und es gibt keine Möglichkeit zu wissen, welcher Kühlplan für eine bestimmte Problemkonfiguration am besten ist. Das lässt Sie experimentieren. –

+0

... wo Sie etwas Neues in Ihrem Chemielabor versuchen würden: Heizen, Kühlen, nicht ganz, versuchen Sie es noch einmal, ... –