Algorithms - Simulated Annealing
The OSTRICH simulated annealing optimization algorithm
The following optional group will configure the continuous variable Simulated Annealing algorithm and will be processed if [ProgramType] is set to “SimulatedAnnealing”.
|
|
---|
Figure 1: General Format (left) and Example (right) of the Continuous Variable Simulated Annealing Group
Where BeginSimulatedAlg and EndSimulatedAlg are parsing tags that wrap the following set of algorithm configuration variables:
- NumInitialTrials: This is the number of uphill moves that are attempted in the melting process. Larger values will result in more accurate estimates of the initial temperature, but at the expense of additional model runs. The default value is 100.
- TemperatureScaleFactor: After each (outer) iteration, the temperature is reduced by multiplying by this value. This value should be less than 1.00. The default value is 0.90.
- OuterIterations: This is the number of iterations in the overall algorithm, where one outer iteration corresponds to one temperature reduction. The default value is 20.
- InnerIterations: This is the number of iterations in each temperature equilibration, where one inner iteration corresponds to a single transitional move. The default value is 10.
- ConvergenceVal: This is the convergence value for the algorithm. If the relative difference between the current minimum and the median of the latest series of equilibration moves is less than or equal to this value, the algorithm will halt. The default value is 0.001.
- FinalTemperature: This variable can be used to set a specific value for the final temperature in the SA algorithm. The temperature scale factor will be adjusted to achieve the desired temperature. Alternatively, OSTRICH supports two options for dynamically pre-computing the final temperature. These dynamic options are based on the methods of Vanderbilt and Louie (1984) and Ben-Ameur (2004), respectively. Set the FinalTemperature to “computed-vanderbilt” to select the Vanderbilt-Louie approach. Set the FinalTemperature to “compute-ben-ameur” to select the Ben-Ameur approach. If a final temperature option or value is not specified, the final temperature will be determined from the initial temperature, temperature scale factor, and number of outer iterations.
- TransitionMethod: This variable selects the method used to compute randomized parameter perturbations during the transition phase of the SA algorithm. Set this variable to “Uniform” to sample from a uniform distribution, or use a value of “Gauss” to select a Gaussian (i.e. normal) distribution. The default value is “Gauss”.
References
Ben-Ameur, W. 2004. Computing the Initial Temperature of Simulated Annealing. Computational Optimization and Applications 29, 369-385.
Dougherty, D. E.,Marryott, R. A. 1991. Optimal groundwater management: 1. Simulated annealing. Water Resources Research 27, 2493-2508.
Kirkpatrick, S., Gelatt, C. D., Jr.,Vecchi, M. P. 1983. Optimization by Simulated Annealing. Science 220, 671-680.
Marryott, R. A., Dougherty, D. E.,Stollar, R. L. 1993. Optimal groundwater management: 2. Application of simulated annealing to a field-scale contamination site. Water Resources Research 29, 847-860.