# Manual Page for Command >>> ANNEAL

Syntax
>>> ANNEAL

Parent Command
>> OPTION

Subcommand
>>>> ITERATION
>>>> LIST
>>>> SCHEDULE
>>>> STEP
>>>> TEMPERATURE

Description
This command invokes Simulated Annealing to minimize the objective function S. The following steps are performed by iTOUGH2, controlled by a number of fourth-level commands:

(1) Define the range of possible parameter values using command >>>> RANGE in block > PARAMETER.

(2) Define an initial value of the control parameter tau using command >>>> TEMPERATURE.

(3) iTOUGH2 generates random perturbations delta(p) of the parameter vector p. The probability density function of the perturbation is either Gaussian or uniform; the initial standard deviations of these distributions are given by command >>>> DEVIATION (p).

(4) The objective function S(pk+1) for the new parameter set pk+1 = pk + delta(p) is evaluated.

(5) If the objective function is decreased (i.e., delta(S)=S(pk+1) – S(pk) < 0), the change is retained. If the objective function is increased (i.e., delta(S) > 0), the perturbation is accepted with probability P=exp(-delta(S)/tau)

(6) After a sufficient number of perturbations have been accepted (see command >>> STEP (a)), tau is lowered according to the annealing schedule (see command >>>> SCHEDULE).

(7) Steps (3) through (6) are repeated until the maximum number of temperature reductions (see command >>>> ITERATION (a)) is reached.

This scheme of always taking a downhill step and sometimes taking an uphill step with probability P depending on tau is known as the Metropolis algorithm. Simulated Annealing may be especially useful for the minimization of a discontinuous cost function in order to optimize operational parameters.

Example
> PARAMETER
>> pumping RATE
>>> SINK: EXT_1
>>>> RANGE: -1E-1 -1E-4
>>>> LOGARITHM
<<<<
<<<
<<

> COMPUTATION
>> TIME: 1 [YEARS]
2.0

>> USER specified cost function: Extraction cost
>>> SINK: EXT_1
>>>> NO DATA
>>>> WEIGHT (=specific costs): 1.0
<<<<
<<<
<<

> COMPUTATION
>> OPTION
>>> a cost function is minimized using L1-ESTIMATOR
>>> perform minimization using Simulated ANNEALing
>>>> initial TEMPERATURE : -0.05 (=5 % of initial cost)
>>>> update after maximum : 100 STEPS
>>>> annealing SCHEDULE: 0.95
>>>> Simulated Annealing ITERATIONS: 50
<<<<
<<<
<<