Simulated Annealing Optimization

This program performs simulated annealing otimization on functions of R^n in R.
3.3K Downloads
Updated 3 Oct 2011

View License

Simulated annealing is an optimization algorithm that skips local minimun. It uses a variation of Metropolis algorithm to perform the search of the minimun. It is recomendable to use it before another minimun search algorithm to track the global minimun instead of a local ones.

Usage: [x0,f0]sim_anl(f,x0,l,u,Mmax,TolFun)

INPUTS:
f = a function handle
x0 = a ninitial guess for the minimun
l = a lower bound for minimun
u = a upper bound for minimun
Mmax = maximun number of temperatures
TolFun = tolerancia de la función

OUTPUTS:
x0 = candidate to global minimun founded
f0 = value of function on x0

Example:

The six-hump camelback function:

camel= @(x)(4-2.1*x(1).^2+x(1).^4/3).*x(1).^2+x(1).*x(2)+4*(x(2).^2-1).*x(2).^2;

has a doble minimun at f(-0.0898,0.7126) = f(0.0898,-0.7126) = -1.0316

this code works with it as follows:

[x0,f0]=sim_anl(camel,[0,0],[-10,-10],[10,10],400)

and we get:
x0=[-0.0897 0.7126]

Cite As

Héctor Corte (2024). Simulated Annealing Optimization (https://www.mathworks.com/matlabcentral/fileexchange/33109-simulated-annealing-optimization), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2010a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired by: General simulated annealing algorithm

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0.0