Conclusions

We have successfully applied simulated annealing to the difficult problem of academic scheduling for a large university. Feasible schedules were obtained for real data sets without requiring enormous computational effort. We found that we could only obtain successful results by using a preprocessor to provide a good initial schedule to the annealing program. We used a fairly complex rule-based expert system for the preprocessor, however the type of preprocessor may not be crucial. Other fast heuristics could possibly be used, for example a graph coloring approach, or it may be possible to just utilize the schedule from the same semester for the previous year. Another critical part of the annealing program was the choice of moves. We used techniques that drew from our work on the preprocessor in order to carefully select good moves that have a relatively high probability of acceptance, rather than wasting computational effort on randomly chosen moves, most of which would be rejected. We tested three types of cooling schedules: the standard geometric cooling, adaptive annealing, and reheating based on cost method. The third schedule outperformed the other two on all data sets we dealt with.