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.
>> pumping RATE
>>> SINK: EXT_1
>>>> RANGE: -1E-1 -1E-4
>> TIME: 1 [YEARS]
>> USER specified cost function: Extraction cost
>>> SINK: EXT_1
>>>> NO DATA
>>>> WEIGHT (=specific costs): 1.0
>>> 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