Main Content

Simulated Annealing Terminology

Objective Function

The objective function is the function you want to optimize. Global Optimization Toolbox algorithms attempt to find the minimum of the objective function. Write the objective function as a file or anonymous function, and pass it to the solver as a function handle. For more information, see Compute Objective Functions and Create Function Handle.


The temperature is a parameter in simulated annealing that affects two aspects of the algorithm:

Temperature can be a vector with different values for each component of the current point. Typically, the initial temperature is a scalar.

Temperature decreases gradually as the algorithm proceeds. You can specify the initial temperature as a positive scalar or vector in the InitialTemperature option. You can specify the temperature as a function of iteration number as a function handle in the TemperatureFcn option. The temperature is a function of the Annealing Parameter, which is a proxy for the iteration number. The slower the rate of temperature decrease, the better the chances are of finding an optimal solution, but the longer the run time. For a list of built-in temperature functions and the syntax of a custom temperature function, see Temperature Options.

Annealing Parameter

The annealing parameter is a proxy for the iteration number. The algorithm can raise temperature by setting the annealing parameter to a lower value than the current iteration. (See Reannealing.) You can specify the temperature schedule as a function handle with the TemperatureFcn option.


Annealing is the technique of closely controlling the temperature when cooling a material to ensure that it reaches an optimal state. Reannealing raises the temperature after the algorithm accepts a certain number of new points, and starts the search again at the higher temperature. Reannealing avoids the algorithm getting caught at local minima. Specify the reannealing schedule with the ReannealInterval option.

See Also

Related Topics