Most of the previous work on academic scheduling has addressed only a subset or simplified version of the problem, such as examination scheduling, or the smaller scale (but still very difficult) problem of high school class scheduling, which does not require dealing with student preferences (for more information, see the reviews by de Werra [9] and Shaerf [43]).
Traditionally, the approach to the timetabling problem in the operations research community has been to use methods such as integer programming and network flow [9]. Another approach is to reduce it to the well-known problem of graph coloring [37, 9, 34]. More recently, a number of non-conventional global optimization techniques such as neural networks [20, 21], simulated annealing [12, 13, 2, 48, 28, 8, 14], genetic algorithms [6], and tabu search [23, 24, 7] have been used to tackle various instances of the timetabling problem, with varying degrees of success.
Simulated annealing has been successfully used for scheduling examinations [13, 28], laboratories [12], conference seminars [14] and high school classes [2, 8], but not to our knowlege for the more complex problem of university class scheduling.