Simulated annealing (SA) has been widely used for tackling different combinatorial optimization problems, particularly academic scheduling [4, 7, 8]. The basic algorithm is described in Figure 2. The results obtained depend heavily on the cooling schedule used. We initially used the most commonly known and used schedule, which is the geometric cooling, but later tried adaptive cooling, as well as the method of geometric reheating based on cost [3].
A comprehensive discussion of the theoretical and practical details of
SA is given in [1, 30]. It suffices here to say that the elementary
operation in the Metropolis method for a combinatorial problem such as
scheduling is the generation of some new candidate configuration,
which is then automatically accepted if it lowers the cost (C), or
accepted with probability , where T is the
temperature, if it would increase the cost by
. Also, in
Figure 2, s is the current schedule and
is
a neighboring schedule obtained from the current neighborhood space
(
) by swapping two classes in time and/or space.
Thus the technique is essentially a generalization of the local optimization strategy, where, at non-zero temperatures, thermal excitations can facilitate escape from local minima.
Figure 2: The Simulated Annealing Algorithm
The SA algorithm has advantages and disadvantages compared to other global optimization techniques. Among its advantages are the relative ease of implementation, the applicability to almost any combinatorial optimization problem, the ability to provide reasonably good solutions for most problems (depending on the cooling schedule and update moves used), and the ease with which it can be combined with other heuristics, such as expert systems, forming quite useful hybrid methods for tackling a range of complex problems. SA is a robust technique, however, it does have some drawbacks. To obtain good results the update moves and the various tunable parameters used (such as the cooling rate) need to be carefully chosen, the runs often require a great deal of computer time, and many runs may be required.
Depending on the problem to which it is applied, SA appears competitive with many of the best heuristics, as shown in the work of Johnson et al. [19].