Class AnnealingMinimizer minimizes a multivariable function using
the simulated annealing method.
Namespace:
CenterSpace.NMath.AnalysisAssembly: NMath (in NMath.dll) Version: 5.1.0.0
Syntax
| C# |
|---|
[SerializableAttribute] public class AnnealingMinimizer : IMultiVariableMinimizer, ICloneable |
| Visual Basic (Declaration) |
|---|
<SerializableAttribute> _ Public Class AnnealingMinimizer _ Implements IMultiVariableMinimizer, ICloneable |
| Visual C++ |
|---|
[SerializableAttribute] public ref class AnnealingMinimizer : IMultiVariableMinimizer, ICloneable |
Remarks
Simulated annealing is based on an analogy from materials science, where
to produce a solid in a low energy state (such as a perfect crystal), you
first heat the system to a high temperature, then cool it gradually. In
the computational analogy of this method, a function is iteratively minimized
with an added random temperature term. The temperature is gradually
decreased according to an annealing schedule as more optimizations
are applied, increasing the likelihood of avoiding entrapment in local
minima, and of finding the global minimum of the function. The annealing
schedule governs the choice of initial temperature, how many iterations
are performed at each temperature, and how much the temperature is
decremented at each step as cooling proceeds.
AnnealingScheduleBase is the abstract base class for annealing schedules. Two concrete implementations are provided: LinearAnnealingSchedule and CustomAnnealingSchedule.
For help optimizing the annealing schedule for a particular function, set the KeepHistory property to true. There is a cost in memory and execution to keeping the history, but the history contains lots of useful information that can be used to alter the annealing schedule. The history is accessed by the AnnealingHistory property.
AnnealingScheduleBase is the abstract base class for annealing schedules. Two concrete implementations are provided: LinearAnnealingSchedule and CustomAnnealingSchedule.
For help optimizing the annealing schedule for a particular function, set the KeepHistory property to true. There is a cost in memory and execution to keeping the history, but the history contains lots of useful information that can be used to alter the annealing schedule. The history is accessed by the AnnealingHistory property.