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,
simulannealbnd at the command line using
the objective function in
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.FunctionTolerance. x = -16.1292 -15.8214 fval = 6.9034
x is the final point returned by
fval is the objective function
value at the final point.
To run the minimization using the Optimization app,
Set up your problem as pictured in the Optimization app
Click Start under Run solver and view results:
Your results can differ from the pictured
simulannealbnd uses a random number