The effectiveness of simulated annealing depends greatly upon the rate at which the temperature is changed, which is known as the annealing (or cooling) schedule. Three annealing schedules have been used in our experiments to update the temperature of the SA algorithm: geometric cooling, adaptive cooling, and reheating as a function of cost.
The first annealing schedule we used is geometric cooling, where the
new temperature of the SA algorithm is computed using
where (
) denotes the cooling factor.
Typically the value of
is chosen in the range 0.90 to 0.99.
This cooling schedule has the advantage of being well understood, having
a solid theoretical foundation, and being the most widely used annealing
schedule. The results obtained from using this standard cooling
schedule can be used as a baseline for comparison with those using
the other two schedules, which allow the rate of cooling to be varied.
The second annealing schedule is the method of reheating as a
function of cost (RFC), which was used for timetabling by Abramson
et al. [3], but the ideas behind it are due to Kirkpatrick
et al. [31, 32] and White [49]. Before introducing
this schedule we first summarize a few relevant points on the concept
of specific heat ( ), which are taken from the principles of
statistical mechanics that are the foundation of the simulated
annealing technique. Specific heat is a measure of the variance of the
energy (or cost) values of states at a given temperature. The higher
the variance, the longer it presumably takes to reach equilibrium, and
so the longer one should spend at the temperature, or alternatively,
the slower one should lower the temperature.
Generally, in combinatorial optimization problems, phase transitions [25, 39] can be observed as sub-parts of the problem are resolved. In some of the work dealing with the traveling salesman problem using annealing [35], the authors observe that the resolution of the overall structure of the solution occurs at high temperatures, and at low temperatures the fine details of the solution are resolved. Applying a reheating type procedure, depending on the phase, should allow the algorithm to spend more time in the low temperature phases, thus reducing the total amount of time required to solve a given problem [3].
In order to calculate the temperature at which a phase transition occurs,
it is necessary to compute the specific heat of the system.
A phase transition occurs at a temperature when
the specific heat is maximal (
), and this triggers the change in
the state ordering. If the best solution found to date has a high
energy or cost then the super-structure may require
re-arrangement. This can be done by raising the temperature to a level
which is higher than the phase transition temperature
.
Generally, the higher the current best cost, the higher the
temperature which is required to escape the local minimum.
To compute the maximum specific heat, we employ the
following steps [3, 47, 40].
At each temperature T, the annealing algorithm generates a set of
configurations .
Let
denote the cost of configuration i, C(T) be the average
cost at temperature T, and
be the standard deviation of the
cost at T. The average cost is just:
where is the probability of obtaining configuration i at
temperature T, and the sum is over all possible configurations.
The Metropolis Monte Carlo update used in SA generates configurations
with a Boltzmann probability distribution [4, 39, 40, 1, 49]:
A particular run of the annealing program will generate (with probability
) a set
of
configurations i at temperature T,
from which an estimate ;SPMlt;C(T);SPMgt; of the average cost can be computed using:
Similarly, the average square cost can be computed as:
The variance of the cost is:
Now, the specific heat is defined as:
The temperature at which the maximum specific heat
occurs, or at which the system undergoes a phase transition, can thus
be found.
Reheating sets the new temperature to be
where K is a tunable parameter and is the current best cost.
Reheating is done when the temperature drops below the phase
transition (the point of maximum specific heat) and there has been no
decrease in cost for a specified number of iterations, i.e. the system
gets stuck in a local minimum. Reheating increases the temperature
above the phase transition (see equation 12), in order to
produce enough of a change in the configuration to allow it to explore
other minima when the temperature is reduced again.
The third cooling schedule we have tried is adaptive cooling.
In this case, a new temperature is computed based on
the standard deviation of all costs obtained at the current temperature,
i.e. the specific heat. The idea here is to keep the system close to
equilibrium, by cooling slower close to the phase transition, where
the specific heat is large. There are many different ways of
implementing this idea, we have chosen the approach taken by Huang
et al. [27], which was shown to yield an efficient cooling
schedule. Let denote the current temperature, at step j of
the annealing schedule. After calculating
from equation
10, the new temperature
is computed using:
where a is a tunable parameter.
Following suggestions by Otten and van Ginneken [40] and Diekmann
et al. [11], is smoothed out in order to avoid any
dependencies of the temperature decrement on statistical fluctuations in the
measurement of the standard deviation
.
The smoothed standard deviation
is given by
where we have set to 0.95.
This smoothing function is used because it follows (from the form of the
Boltzmann distribution) that it preserves the key relationship
Note that reheating can in principle be used in conjunction with any cooling schedule. We have used it with adaptive cooling.