Simulated Annealing

Simulated annealing (SA), see Figure~#SAalgorithm#378>, has been widely used for tackling different combinatorial optimization problems, particularly academic scheduling [#3##1#, #4##1#, #39##1#]. 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 as well as the method of geometric reheating based on cost [#2##1#]. A comprehensive discussion of the theoretical and practical details of SA is given in [#17##1#, #57##1#]. 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 #tex2html_wrap_inline1672#, where T is the temperature, if it would increase the cost by #tex2html_wrap_inline1676#. Also, in Figure ~#SAalgorithm#382>, s is the current schedule and #tex2html_wrap_inline1680# is a neighboring schedule obtained from the current neighborhood space (#tex2html_wrap_inline1682#) by swapping two classes in either time or/and 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.

#figure386#
Figure: The Simulated Annealing Algorithm

The SA algorithm has some advantages as well as some disadvantages. Among its advantages are the relative ease of implementation, the applicability to almost any combinatorial optimization problem, depending on the cooling schedule(s) used it usually provides reasonable solutions, and it can easily 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, to obtain good results the annealing runs often require a great deal of computer time which is one of the major drawbacks of the algorithm. In summary, depending on the given problem, SA appears competitive with many of the best local optimization methods.