The following is code for simulated annealing minimization. The parameter
space is a box constrained subset of R^d. This code follows the article
Goffe, William L. (1996) "SIMANN: A Global Optimization Algorithm using
Simulated Annealing " Studies in Nonlinear Dynamics & Econometrics, Oct96,
Vol. 1 Issue 3. The code is a translation to Julia of my Octave code, which
has been in the Octave optim package for a number of years. That code was
adapted from previous code for other languages, all of which followed the
original Fortran code that accompanied the referenced article. This general
implementation of SA has been used by many people for quite a while, in
Fortran, Gauss, Ox and Octave versions. The Julia code is new, and little
tested. This code, unlike the SA in Optim.jl, does not do a fixed number of
iterations, it stops when convergence criteria are met, or when the
iteration limit is reached. The search space is contracted using the
Metropolis criterion to keep the number of accepted draws around one half.
It warns if the optimum is on the bounds of the parameter space. To test
the code, run include("samin_test.jl"). Any comments, improvements, etc.
are welcome.
samin.jl
Description: Binary data
samin_test.jl
Description: Binary data
