A timetabling problem is a setting with four parameters:
- a finite set of time-slots
- a finite set of resources
- a finite set of meetings
- a finite set of constraints
The aim is to assign time-slots and resources to the meetings so as to satisfy the constraints as much as possible.
Let us consider a set E of exams, to be scheduled during an examination period at the end of the semester, and a set S of students. Each student is enrolled in a subset of exams, at least one. The examination period is divided in tmax ordered time-slots.
By law, conflicting exams (i.e. having enrolled students in common) cannot take place during the same time-slot. Moreover, to incentive universities at creating timetables more sustainable for the students, the Ministry of Education assigns a penalty for each couple of conflicting exams scheduled up to 5 time-slots apart. More precisely, given the number Ne,e' of students enrolled in both conflicting exams e and e', which are scheduled 'i' time-slots apart, the penalty is calculated as 2^(5-i)Ne,e'/|S|.
The Examination Timetabling Problem (ETP) aims at assigning each exam to a specific time-slot ensuring that:
- each exam is scheduled once during the period,
- two conflting exams are not scheduled in the same time-slot.
The objective is to minimize the total penalty resulting from the created timetable.
Assumptions:
- during each time-slot there is always a number of available rooms greater than the total number of exams;
- rooms have enough capacity with respect to the number of enrolled students.
-
instanceXX.exm: defines the total number of students enrolled per exam. Format: 1 line per exam. Each line has the format
INT1 INT2
where INT1 is the exam ID and INT2 is the number of enrolled students in INT1.
-
instanceXX.slo: defines the length of the examination period. Format: a single value in the format
INT
where INT is the number of available time-slots tmax. Hence, time-slots will have numeric IDs {1, 2, ..., tmax}.
-
instanceXX.stu: defines the exams in which each student is enrolled. Format: 1 line for each enrollment. Each line has the format
sINT1 INT2
where INT1 is the student ID and INT2 is the ID of the exam in which student INT1 is enrolled.