A Branch-and-cut Procedure for the Udine Course Timetabling Problem
|Original title:||A Branch-and-cut Procedure for the Udine Course Timetabling Problem|
|Authors:||Edmund Burke, Jakub Mareček, Andrew Parkes, Hana Rudová|
|Type:||Article in Periodical|
|Keywords:||Integer programming; Branch-and-cut; Cutting planes; Soft constraints; Educational timetabling; University course timetabling|
Abstract A branch-and-cut procedure for the Udine Course Timetabling problem is described. Simple compact integer linear programming formulations of the problem employ only binary variables. In contrast, we give a formulation with fewer variables by using a mix of binary and general integer variables. This formulation has an exponential number of constraints, which are added only upon violation. The number of constraints is exponential. However, this is only with respect to the upper bound on the general integer variables, which is the number of periods per day in the Udine Course Timetabling problem. A number of further classes of cuts are also introduced, arising from: enumeration of event/free-period patterns; bounds on the numbers of days of instruction; the desire to exploit integrality of the objective function value; the graph colouring component; and also from various implied bounds. An implementation of the corresponding branch-and-cut procedure is evaluated on the instances from Track 3 of the International Timetabling Competition 2007.