Examination timetabling problem
The problem consists in assigning a period and a location (a room) to each course, satisfying the hard and soft constraints explained in the following paragraphs.
Courses: For each course, we must schedule exactly one exam.
Rooms: Each exam requires one or more rooms. Rooms are classified as small, medium, or large, and for each exam we set the number and the type of rooms requested.
Days, Timeslots, & Periods: The session is divided in days and each day in divided in timeslots, with the same number of timeslots for each day. Each pair day/timeslot represents a period of the session.
Curricula: A curriculum is a set of courses that have students in common, which might enroll in the corresponding exams. The set of courses of a curriculum is split into primary courses, that are the ones taught in the current semester, and the secondary ones, that have been taught in the previous semester, but such that some students might still have to undertake them.
Hard Constraint - RoomRequest: for each course, type and number of the rooms assigned must be correct.
Hard Constraint - RoomOccupation: in one period, a room can be used by at most one course.
Hard Constraint – Conflicts: Two events in hard conflict cannot be scheduled in the same period. Two events are in hard conflict in the following cases: They are part of courses that are both primary courses of one curriculum. They have the same teacher.
Soft Constraint Conflicts: Two events in soft conflict should not be scheduled in the same period. Two events are in soft conflicts if they belong to courses that are in the same curriculum, either as primary and secondary or both as secondary.
Soft Constraint Distances: Same curriculum: if two courses belong to the same curriculum, there should be a separation between the exams. The amount of separation depends on the type of the two (primary or secondary) memberships.