Simulated Annealing - Global Optimization Method That Distinguishes Between Different Local Optima

Author: William Goffe

Copyright (c) 1995. William Goffe. All Rights Reserved.

Keywords: simulated annealing, optimization

Reference: This implementation of simulated annealing was used in "Global Optimization of Statistical Functions with Simulated Annealing," Goffe, Ferrier and Rogers, Journal of Econometrics, vol. 60, no. 1/2, Jan./Feb. 1994, pp. 65-100. Briefly, we found it competitive, if not superior, to multiple restarts of conventional optimization routines for difficult optimization problems.

Description: Simulated annealing is a global optimization method that distinguishes between different local optima. Starting from an initial point, the algorithm takes a step and the function is evaluated. When minimizing a function, any downhill step is accepted and the process repeats from this new point. An uphill step may be accepted. Thus, it can escape from local optima. This uphill decision is made by the Metropolis criteria. As the optimization process proceeds, the length of the steps decline and the algorithm closes in on the global optimum. Since the algorithm makes very few assumptions regarding the function to be optimized, it is quite robust with respect to non-quadratic surfaces. The degree of robustness can be adjusted by the user. In fact, simulated annealing can be used as a local optimizer for difficult functions.

Platforms: Fortran

Support: For more information on this routine, contact its author: Bill Goffe, bgoffe@whale.st.usm.edu

By clicking on the links below, you agree that you have read our disclaimer, understand it, and will abide by its terms and conditions.

Archive file: goffe895.zip


  1311 Aug 30 08:00 abstract.txt
   705 Aug 30 08:07 install.txt
 37201 Aug 28 13:16 test.f
204800 Aug 28 13:16 test.out
 15674 Aug 28 15:29 test.run

This test problem was replicated by Harish Chand and David Revelt, 28 August 1995. No errors reported. Test was run on a Sun SPARCstation IPX running SunOS 4.1.3, using Sun's F77 compiler.

Archived by Grace Katagiri, 30 August 1995.