|On this page…|
This section presents an example that shows how to find a local minimum of a function using simulated annealing.
De Jong's fifth function is a two-dimensional function with many (25) local minima:
Many standard optimization algorithms get stuck in local minima. Because the simulated annealing algorithm performs a wide random search, the chance of being trapped in local minima is decreased.
Note: Because simulated annealing uses random number generators, each time you run this algorithm you can get different results. See Reproduce Your Results for more information.
To run the simulated annealing algorithm without constraints, call simulannealbnd at the command line using the objective function in dejong5fcn.m, referenced by anonymous function pointer:
rng(10,'twister') % for reproducibility fun = @dejong5fcn; [x fval] = simulannealbnd(fun,[0 0])
Optimization terminated: change in best function value less than options.TolFun. x = -16.1292 -15.8214 fval = 6.9034
x is the final point returned by the algorithm.
fval is the objective function value at the final point.