Three annealing schedules have been used in our experiments to update the temperature of the SA algorithm in Figure 2: geometric cooling, adaptive cooling, and adaptive reheating as a function of cost.
The first schedule we have 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. Our results obtained from using this standard cooling
schedule will 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 we used 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. [20, 21]
and White [31].
Before introducing this schedule we first summarize a few relevant
points on the concept of specific heat ( ). Specific heat is a
measure of the variance of the cost (or energy) 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 [14, 24] can be observed as sub-parts of the problem are resolved. In some of the work dealing with the traveling salesman problem using annealing [22], the authors often 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. As reported in [3], applying a reheating type procedure, depending on the phase, would 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.
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 aforementioned maximum specific heat, we employ the
following steps [3, 30, 25].
At each temperature T, the annealing algorithm generates a set of
configurations .
Let
denote the cost of configuration i, C(T) is the average
cost at temperature T, and
is the standard deviation of the
cost at T.
At temperature T, the probability distribution for configurations is:
The average cost is computed as:
Therefore, the average square cost is:
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 specific heat, i.e.
the standard deviation of all costs obtained at the current T.
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. [16],
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 as follows:
where a is a tunable parameter.
Following suggestions by Otten and van Ginneken [25] and Diekmann
et al. [6], is smoothed out in order to avoid any
dependencies of the temperature decrement on large changes in the
standard deviation
.
We used the following standard method to provide a smoothed standard
deviation
:
and set to 0.95.
This smoothing function is used because it follows (from the form of the
Boltzmann distribution, see [31]) that it preserves the key
relationship:
Note that reheating can be used in conjunction with any cooling schedule. We have used it with adaptive cooling.