The timetabling problem we have studied can be summarized as follows. Given data sets of classes and their days, hours, enrollments, and instructors; rooms and their capacities, types, and locations; distances between buildings; priorities of each building for different departments; and students and their class preferences; the problem is to construct a feasible academic class schedule satisfying all the hard constraints and minimizing the medium and soft constraints.
If the procedure used cannot assign certain classes to rooms and timeslots, i.e. cannot find a feasible schedule for all classes, these classes are left out of the final schedule and must be assigned manually, or else the input variables must be changed. In some cases there may be no feasible schedule for the given constraints, and the problem must be reformulated to allow a solution. However our goal is to provide a feasible schedule of better quality (i.e. lower cost), and in less time, than that provided using current techniques.
We have adopted a multi-phase approach to tackle the the timetabling problem [43, 46]. In the first phase a partial solution (a feasible schedule for a subset of the classes) is found using a rule-based expert system. In the second phase this partial schedule is improved to obtain a final schedule, using simulated annealing. Simulated annealing is a very time-consuming, computationally intensive procedure, so it is a good practice to start at a good point in the search space or with a partial solution. A good starting point allows the annealing to begin at a lower temperature, provides faster convergence, and usually a better final solution. Using a rule-based preprocessor is a way of quickly providing such a starting point for the annealing process.
Our multi-phase approach is similar to that of Thomson and Dowsland [46] to the problem of exam scheduling, in which they use a rule-based system to solve the hard constraints, and then use simulated annealing to minimize the cost of the soft constraints, while continuing to satisfy the hard constraints. Solving the hard constraints is much more difficult for the course scheduling problem, and we are only able to obtain a partial solution using the rule-based system in the initial phase (the preprocessor). We have also used a variant of the rule-based system to choose the new trial states for the annealing algorithm. This rule-based system only selects trial states that satisfy the hard constraints, while the annealing algorithm takes care of the optimization of the medium and soft constraints. In effect, we are continuing the multi-phase approach at each iteration of the annealing algorithm.
To use simulated annealing effectively, it is crucial to use a good cooling schedule, to allow the temperature to be reduced as quickly as possible while keeping the system close to equilibrium, and also to use a good method for choosing new trial states, in order to efficiently sample the search space. We have experimented with different approaches in both these areas, and these are discussed in section 4.1.