Class AnnealingMinimizer minimizes a multivariable function using the simulated annealing method.

Namespace:  CenterSpace.NMath.Analysis
Assembly:  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.

Inheritance Hierarchy

System..::.Object
  CenterSpace.NMath.Analysis..::.AnnealingMinimizer

See Also