You are here

A Two-Phase Constraint Programming Model for Examination Timetabling at University College Cork


Begum Genc, Barry O'Sullivan

Publication Type: 
Refereed Conference Meeting Proceeding
Examination timetabling is a widely studied NP-hard problem. An additional challenge to the complexity of the problem are many real-world requirements that can often prevent the relaxation of some constraints. We report on a project focused on automating the examination timetabling process of University College Cork (UCC) to enhance the examination schedules so that they are fairer to student, as well as being less resource intensive to generate from an administrative point of view. We work with a formulation developed in collaboration with the institution and real data that it provided to us. We propose a two-phase constraint programming approach to solving UCC ’s examination timetabling problem. The first phase considers the timing of examinations while the second phase considers their allocation to rooms. Both phases are modelled using bin-packing constraints and, in particular, an interesting variant in which items can be split across multiple bins. This variant is known as bin packing with fragmentable items. We investigate the tightly linked constraints and difficulties in decomposing the centralised model. We provide empirical results using different search strategies, and compare the quality of our solution with the existing UCC schedule. Constraint programming allows us to easily modify the model to express additional constraints or remove the pre-existing ones. Our approach generates significantly better timetables for the university, as measured using a variety of real-world quality metrics, than those prepared by their timetabling experts, and in a reasonable timeframe.
Conference Name: 
CP 2020 - The 26th International Conference on Principles and Practice of Constraint Programming
Digital Object Identifer (DOI): 
Publication Date: 
Conference Location: 
National University of Ireland, Cork (UCC)
Open access repository: