Cooling schemes

The extendable family of routines for the generation of annealed surrogate data can accomodate a variety of cooling schemes for the simulated annealing procedure. In this version, the only available module implements an exponential schedule.

Exponential cooling

randomize_cost _exp_perm [-T# -a# -S# -s# -z# -C#]
    [
general options] [cost function options] [permutation options] file

-T initial temperature (default: automatic melting)
-a cooling factor (default automatic: try fast cooling, start over if no more improvement)
-S total steps before cooling (default 20000)
-s successful steps before cooling (default 2000)
-z minimal successful steps (default 200)
-C goal value of cost function (default zero)
Starting from the initial temperature -T, the temperature is multiplied by a factor -a whenever either -S steps have been tried or -s accepted changes have been performed. Cooling is finished if the cost has been brought below -C. Generally, considerable experimentation is necessary or at least strongly recommended since annealing can eat an infinite amount of CPU time.

If the initial temperature is not given, the program starts with a fairly low one (whatever that means) and increases it for melting if necessary, that is if, initially, the number of trials exceeds 1.5 times the number of successes.

If no cooling factor is given, the program starts with a fairly fast scheme (factor 0.5). If after complete freezing (less than -z succeses) the goal -C has not been reached, the system is restarted with half the exponential rate (a is replaced by sqrt(a)) and a larger value of -S. This procedure is less than optimal but hoped to eventually converge.

Note: if neither -a nor -C are given, the annealing will keep staring over with slower cooling rates. This may be necessary if good guesses are not available but of course, multiple surrogates will then have to be made by further separate calls.

constrained randomization * Table of Contents * TISEAN home