Skip to main content

Curriculum-Based Course Timetabling with Student Flow, Soft Constraints, and Smoothing Objectives: an Application to a Real Case Study

Abstract

This paper deals with curriculum-based course timetabling. In particular, we describe the results of a real application at the University of Rome “Tor Vergata.” In this regard, we developed a multi-objective mixed-integer model which attempts to optimize (i) the flow produced by the students enrolled in the lectures, (ii) soft conflicts produced by the possible overlap among compulsory and non-compulsory courses, and (iii) the number of lecture hours per curriculum within the weekdays. The model has been implemented and solved by means of a commercial solver and experiments show that the model is able to provide satisfactory solutions as compared with the real scenario under consideration.

Introduction

The course timetabling problem (CTP) refers to the allocation of courses to a given set of resources being placed in space and in time, so as to satisfy a set of objectives as much as possible [34]. Course timetabling specifically involves assigning courses to classrooms, as well as teachers and time slots. In general, classrooms are always scarce and courses are affected by incompatibility relations based on the curricula they refer to, which complicate the assignment.

Course timetabling has many variants. We can start citing, among the most important ones, the school timetabling problem (STP), also known as class/teacher model. Given a set of classes, a set of teachers, a number of periods, and a non-negative integer matrix (called requirements matrix) whose generic entry is the number of lectures (lessons) given by a teacher in a class, the problem consists in assigning lectures to periods in such a way that no teacher or class is involved in more than one lecture at a time. A pioneer in this field was de Werra [13] who proposed a basic reduced formulation for this problem which was not real but its minimal set of constraints made it a hard problem. The problem was solved by reduction to edge coloring. Successively, Junginger [21] introduced additional constraints defined by the unavailabilities of teachers and classes. These formulations were given as feasibility problems, even though Junginger [21] proposed also to add an objective based on the desirability of an assignment teacher/course. Colorni et al. [12] proposed objectives based on, e.g., spreading the lessons over the whole week or imposing a day-off for each teacher. Beyond several heuristic algorithms, there have been also proposals based on constraints programming (see, e.g., [9]).

Similar to STP but with some specific differences is the University Course Timetabling (UCT) problem which is the problem considered in this paper. It consists in scheduling a set of lectures for each course within a given number of rooms and time periods. The main difference from STP is that university courses can have common students, whereas school classes are disjoint sets of students. If two courses have common students then they conflict, and they cannot be scheduled at the same period. In addition, in UCT, availability of rooms (and their size) plays an important role, whereas in the school problem they are often neglected because, in most cases, we can assume that each class has its own room [29]. The basic problem firstly studied by, e.g., [33] was the following: given are a set of courses each one consisting of a set of lectures. There is a set of curricula which are groups of courses that have common students and such that all the courses in a curriculum must be scheduled at different times. There is a number of periods and a maximum number of lectures that can be scheduled in a given period due to room availability. The basic problem is to find a feasible solution for this problem. Objective functions associated with this set of constraints in the literature typically comprise desirability of the assignments, and the minimization of soft and hard constraints associated with the conflicts among courses (see, e.g., [28]).

In all institutions, UCT has to be solved at least once each academic year, and the administrative personnel spend much time and effort in solving this problem. This is why, in the literature, this problem has been largely studied and has attracted the attention of many researchers. Consequently, there have been several methods and algorithmic approaches to this problem. In this paper, we will concentrate our attention on that part of the literature in which exact methods are proposed based on formulating and solving mathematical programming models. Even if for large problems, it could be difficult to find an optimal solution within reduced computing times since the problem is NP-Hard [11], exact approaches in the literature have been proved to be effective to some extent and have provided optimal solutions to some specific cases. One of the applications of exact methods includes [18] in which it is shown that timetabling problems with data sizes comparable with that of some scenarios have been solved by means of a basic model. Tripathy [32] presented an integer linear program to determine room and time slot allocations for graduate courses by means of a Lagrangian relaxation procedure gathered with sub-gradient optimization. A two-stage binary multi-objective course scheduling model is proposed in [2]. Birbas et al. [6] formulated a binary integer program to determine the weekly timetable for Greek high schools. Dimopoulou and Miliotis [15] and Papoutsis et al. [27] employ a column-generation approach to solve a timetabling problem for Greek schools. Mushi [26] shows the existence of various models for timetabling problem by using integer programming and experimented their proposal on a case study related to the University of Dar es Salaam. Al-Yakoob and Sherali [1] adopted a mixed-integer programming approach experimented on the Kuwait University. Hinkin and Thompson [20] proposed Schedule Expert that is a system that uses a 0–1 mathematical model to schedule courses at the Cornell University School of Hotel Administration. Since the UCT structures are not standard as they vary from institution to institution, most of the presented research address specific case studies (see, also, [10, 30]).

In 2007, the Second International Timetabling Competition (ITC-2007) firstly posed the attention on the curriculum-based course timetabling (CB-CTT) problem. CB-CTT consists of finding the best weekly assignment of university course lectures to rooms and time periods. A feasible schedule must satisfy a set of hard constraints and must also take into account a set of soft constraints. From ITC-2007, many researchers have developed advanced models and methods to solve CB-CTT (see, e.g., [3, 4, 8, 16, 17, 19, 22,23,24, 31]). The survey by [5] is devoted to review the main works on the topic, with focus on mathematical models, lower bounds, and exact and heuristic algorithms. As pointed out by the comments of Lübbecke (2015) referring to the competition induced by the ITC challenges, “the latter certainly stimulated a broad and deep development in timetabling but the theoretical problem definition may be quite far from timetabling reality in the age of complex interdependencies of many interdisciplinary curricula at large universities.” With this paper, we do not aim at competing with ITC-2007 and successive papers on the topic but want to give our experience with CB-CTT in our university. Therefore, the presented research is focused on a particular case study, and deliberately lacks generality. This, in our opinion, tends to go in the direction of the suggestions contained in [25] where the author says that there should be more emphasis on the “dirty” aspects of CB-CTT than only exploring general models which are not completely able to capture real problems. Hence, in this paper, we describe a real-world CB-CTT application referred to the Faculty of Engineering at the University of Rome “Tor Vergata,” for which we proposed a mathematical program with many specific constraints and besides them we concentrated our attention on three objectives: (i) minimizing (weighted) flows produced by the students enrolled in the lectures, weighting flows according to traffic congestion conditions, (ii) minimizing soft conflicts generated by the possible overlap among compulsory and non-compulsory courses of the same curriculum, and (iii) smoothing the number of lesson hours per curriculum within the weekdays. This proposal was shared with people working on this problem in the administrative side of our university and a specific graphical interface was built to let all the components dialog correctly and the results be used easily. The proposed mixed-integer program has been implemented and solved by means of a commercial solver. Experimental findings showed that our modeling proposal is effective in producing satisfactory timetables for the considered applications.

The reminder of the paper is organized as follows: in Section 2, we describe the timetabling problem we are dealing with; in Section 3, the mathematical program is presented and discussed. Section 4 presents the description of the case study and Section 5 reports experimental results. Finally, in Section 6, we draw some conclusions and future research directions.

The Timetable Problem Definition

We consider a set of curricula (or degree programs), each one lasting a given number of years, divided in two semesters, and whose courses are taught in a number of lectures (lessons) delivered during given semesters of given years. A course is taught by one or more teachers and belongs to a given year of one or more curricula. The courses of a curriculum are grouped into compulsory and non-compulsory courses: the lectures of two compulsory courses for the same curriculum and of the same year cannot be delivered simultaneously, i.e., during the same time slot (hour) of the same weekday of the same semester (hard time-constraints), while overlapping between the lessons of a compulsory course and of a non-compulsory course is allowed albeit it is preferable to avoid this situation (soft time-constraints). Moreover, also the lessons of pairs of courses sharing a teacher cannot be delivered simultaneously.

A set of rooms of distinct capacities is used for delivering courses. Rooms are assumed to be available during each time slot of a day and cannot be assigned to more than one course at a time. Course lessons are delivered on a week basis, that is, during a semester, they are delivered in the same hours and weekdays as well as in the same room. Therefore, it is assumed that the timetable is organized in week days (from Monday to Saturday), where each day is divided into a set of lesson hours (time slots), including a break of one hour (lunch time) between the morning and the afternoon lessons. Saturday can be used for delivering lessons only for a subset of courses.

Each course requires a given number of weekly lesson hours that have to be delivered according to some requirements: the duration (number of consecutive hours) of a course lesson belongs to a given range, and during each day the total number of lesson hours of the same course cannot be greater than a maximum number. Course lessons cannot be delivered during the break hour, unless this is explicitly requested and motivated by a teacher: in this case, if a course lesson is delivered during the break hour then the lesson must last at least two hours and cannot be delivered during both the hours before and after the break. Courses with a very large number of students (as compared with room capacities) are split into what we call “channels”; for instance, if a course has 400 students and room capacities are not larger that 100 seats, then this course may be split into 4 identical courses (the channels of the course) of 100 students each. The lessons of all the channels of a course require to be delivered simultaneously in distinct rooms and each lesson hour of each course channel requires exactly one room whose capacity is not less than the number of the students enrolled in the course channel; moreover, if the lesson lasts more than one hour then the same room should be assigned to the (channel) course lesson for its entire duration.

Three criteria are considered to define the timetable: Student flows, Soft conflicts, and Smoothing. The first criterion is achieved by minimizing the total (weighted) incoming and leaving student flow produced by the students attending lectures. In particular, student flows are weighted according to the estimated time-dependent traffic congestion level of the road network nearby the campus. The second criterion is obtained by minimizing the number of soft incompatibilities produced by the possible overlap among the lessons of compulsory and non-compulsory courses. Finally, the third criterion is achieved by balancing the number of lecture hours per curriculum within the weekdays. Next, we provide the mathematical formulation of the problem.

The Mathematical Model

In this section, we provide a mixed-integer programming formulation of our CB-CTT problem. Tables 123, and 4 list the notations and definitions of sets, parameters, binary variables, and continuous variables, respectively. In particular, parameters \(b_{cc^{\prime }}\) represent the type of conflict between any couple \((c, c^{\prime })\) of distinct courses. We assume \(b_{cc^{\prime }} = 1\) (hard time-conflict) if there exists a channel h ∈{1,…, chc} of course cC and a channel \(h^{\prime } \in \{1, \ldots , {ch}_{c^{\prime }}\}\) of course \(c^{\prime } \in C\) sharing a teacher, i.e., \(Q_{ch} \cap Q_{c^{\prime }{\prime }} \neq \emptyset \). In addition, we also assume \(b_{cc^{\prime }} = 1\) if both c and \(c^{\prime }\) are courses of the same year for a curriculum p and are both compulsory for the latter: that is, there exist a curriculum pP such that \( {year}_{cp} = {year}_{c^{\prime }p} \neq 0\) and \( {obl}_{cp} = {obl}_{c^{\prime }p} = 1\). We assume \(b_{cc^{\prime }} = 2\) (soft time-conflict) when there is no hard time-conflict between courses c and \(c^{\prime }\) and there exists a curriculum p for which \( {year}_{cp} = {year}_{c^{\prime }p} \neq 0\) and exactly one of the two courses is compulsory for p. In all the other cases, courses c and \(c^{\prime }\) are considered non-conflicting (in time) and it is assumed \(b_{cc^{\prime }} = 0\). Each couple \((c, c^{\prime })\) of courses that are hard time-conflicting (\(b_{cc^{\prime }} = 1\)) cannot be delivered simultaneously; this can occur for two soft-conflicting courses (i.e., when \(b_{cc^{\prime }} = 2\)) but, as previously said, it could be preferable to avoid it.

Table 1 Notations and definitions of sets
Table 2 Notations and definitions of parameters
Table 3 Notations and definitions of binary variables
Table 4 Notations and definitions of continuous variables

The three criteria Student flows, Smoothing, and Soft conflicts are modeled by considering the following three objective functions.

$$ {of}_{1} = \sum\limits_{p \in P} \sum\limits_{\tau = 1}^{ {ny}_{p}} \sum\limits_{s \in \{1,2\}} \sum\limits_{d \in D} \sum\limits_{t \in T} q_{p\tau}^{s} ({fw}_{dt} \cdot z_{p\tau dt}^{Ss} + {fw}_{d,t+1} \cdot z_{p\tau dt}^{Es}), $$
(1)
$$ {of}_{2} = \sum\limits_{p \in P} \sum\limits_{\tau = 1}^{ {ny}_{p}} \sum\limits_{s \in \{1,2\}} \gamma_{p\tau}^{s}, $$
(2)
$$ {of}_{3} = \frac{1}{2} \sum\limits_{p \in P} \sum\limits_{\tau = 1}^{ {ny}_{p}} \sum\limits_{s \in \{1,2\}} \sum\limits_{ \begin{array}{c} (c, c^{\prime}) \in \widehat{C}^{s}_{p\tau} \times \widehat{C}^{s}_{p\tau}: \\ c \neq c^{\prime}, b_{cc^{\prime}} = 2 \end{array}} \sum\limits_{d \in D} \sum\limits_{t \in T} \delta_{cc^{\prime}dt}^{s}, $$
(3)

where \(\widehat {C}^{s}_{p\tau } = \{c \in \widetilde {C}^{s} : {year}_{cp} = \tau \}\), with pP, τ ∈{1,…, nyp}, and s ∈{1,2}, are the sets of courses of curriculum p taught in semester s of year τ.

(1) Objective function of1 is the sum of the total weighted students incoming flow and the total weighted students leaving flow, calculated over the sets of curricula, years, semesters, weekdays, and day time slots, where flow weight fwdt represents the level of road traffic congestion nearby the university during time slot t of day d. In particular, incoming and leaving student flows are evaluated on the basis of the number of students enrolled in the first and the last daily lesson hours, respectively, of compulsory courses; it is assumed that students leave the campus during the next time slot (hour) after the end of the last lecture: this is why variable \(z_{p\tau dt}^{Es}\) is weighted by fwd,t+ 1. By minimizing of1 we minimize Student flows. Objective function of2 (2) is the sum of the maximum number of day lesson hours during the week, calculated over the sets of curricula, years, and semesters: minimizing of2 leads to a balanced timetable with respect to the number of daily lesson hours, that is to Smoothing. Finally, by minimizing objective function of3 (3), being the total number of soft conflicts, we minimize Soft conflicts.

The mathematical model contains many constraints and for the sake of clearness they are grouped and then presented according to the following groups:

  • Room assignment constraints: allow to assign rooms to course channels for each time slot (hour) when course lessons are delivered, by linking variables vchrdt with variables \(x_{cdt}^{s}\). Room assignment is done while respecting room capacities and assuring the assignment of the same room to a course channel for the whole course lesson duration.

  • Slot preset and lunch time hour constraints: allow to avoid delivering courses in forbidden time slots (hours). Moreover, they allow to deliver course lesson during the lunch time (break hour), for the courses for which this is allowed, only if the course lesson lasts at least two hours and avoiding to deliver it both before and after the lunch time hour. In addition, these constraints also allow to avoid delivering lessons on Saturday for the courses for which this is forbidden.

  • Course weekly and daily hours assignment constraints: allow to assign lesson hours (time slots) to courses both on a daily and weekly basis, taking into account the number of weekly course lesson hours to be delivered and the course lesson requirements on a daily basis: for each course, the total number of daily lesson hours cannot exceed a given maximum value and the duration (number of consecutive hours) of each single lesson must be between given minimum and maximum durations.

  • Hard and soft time-conflict constraints: avoid to deliver simultaneously the lessons of couples of hard time-conflicting courses, and allow the identification of soft time-conflicts among course lessons, necessary for the calculation of Soft conflicts objective function of3 (3).

  • Starting and ending hours of compulsory course constraints: allow to find for each day when the first compulsory course starts and when the last compulsory course ends (if any), for each semester of each year of each curriculum. This information is necessary for the calculation of Student flows objective function of1 (1).

  • First and last lesson time slots constraints: are useful to calculate the values of variables \(\alpha _{cd}^{Fs}\), \(\alpha _{cd}^{Ls}\), and the values of variables \({\upbeta }_{p\tau d}^{Fs}\), \({\upbeta }_{p\tau d}^{Ls}\). In addition, these constraints allow to calculate the values of variables \(\gamma _{p\tau }^{s}\), representing the maximum number of daily lesson hours of year τ of curriculum p during semester s. The latter variables are used for the calculation of Smoothing objective function of2 (2).

  • Daily lecture delivering constraints: allow to link variables \(y_{cd}^{s}\) with variables \(x_{cdt}^{s}\), and to combine the former also with variables \(w_{p\tau d}^{s}\).

The Room assignment constraints are:

$$ \begin{array}{@{}rcl@{}} && \sum\limits_{r \in R} v_{chrdt} = x_{cdt}^{s}, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, h \in \{1, \ldots, {ch}_{c}\}, d \in D, t \in T, \end{array} $$
(4)
$$ \begin{array}{@{}rcl@{}} && \sum\limits_{c \in \widetilde{C}^{s}}\sum\limits_{h=1}^{ {ch}_{c}} v_{chrdt} \leq 1, \forall s \in \{1,2\}, r \in R, d \in D, t \in T, \end{array} $$
(5)
$$ \begin{array}{@{}rcl@{}} && x_{cdt}^{s} + x_{cd,t+1}^{s} + v_{chrdt} \leq 2 + v_{chrd,t+1}, \\ && \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, h \in \{1, \ldots, {ch}_{c}\}, r \in R, d \in D, t \in T \backslash \{|T|\}, \\ \end{array} $$
(6)
$$ \begin{array}{@{}rcl@{}} && d_{c} \cdot v_{chrdt} \leq u_{r}, \forall c \in C, h \in \{1, \ldots, {ch}_{c}\}, r \in R, d \in D, t \in T. \end{array} $$
(7)

Constraint (4) imposes the assignment of exactly one (distinct) room to each channel of a course only during each week-daily hour of a semester when the course is taught. Constraint (5) assures that each room can be assigned to at most one course channel during each week-daily hour of each semester. Constraint (6) assures assigning the same room to a course channel during each hour of a course lesson if its duration is greater than one hour. Constraint (7) avoids assigning (small) rooms to (crowded) course channels if the room capacity is less than the number of students enrolled in that course channel.

The Slot preset and lunch time hour constraints are:

$$ \begin{array}{@{}rcl@{}} && \sum\limits_{d \in D} x_{cdt}^{s} = 0, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}: a_{ct} = 0, t \in T, \end{array} $$
(8)
$$ \begin{array}{@{}rcl@{}} && \sum\limits_{t = {pause}-1}^{ {pause}+1} x_{cdt}^{s} \leq 2, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}: a_{c, {pause}} = 1, d \in D, \end{array} $$
(9)
$$ \begin{array}{@{}rcl@{}} && x_{cd, {pause}}^{s} \leq x_{cd, {pause}-1}^{s} + x_{cd, {pause}+1}^{s}, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}: a_{c, {pause}} = 1, \\ && \qquad\qquad\quad d \in D, \end{array} $$
(10)
$$ \begin{array}{@{}rcl@{}} && \sum\limits_{t \in T} x_{c,{\texttt Saturday},t}^{s} = 0, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}: {sat}_{c} = 0. \end{array} $$
(11)

Constraint (8) avoids delivering courses during courses forbidden time slots (hours). For the courses that may be delivered also during the lunch time (pause) hour, constraints (9) and (10) allow one to deliver course lesson during the lunch time hour only if the course lesson is also delivered during the previous or successive hour, but not in both. Constraint (11) does not allow one to deliver course lessons on Saturday for the courses for which this is forbidden.

The course weekly and daily hours assignment constraints are:

$$ \begin{array}{@{}rcl@{}} && \sum\limits_{d \in D}\sum\limits_{t \in T} x_{cdt}^{s} = {wh}_{c}, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, \end{array} $$
(12)
$$ \begin{array}{@{}rcl@{}} && \sum\limits_{t \in T} x_{cdt}^{s} \leq {dh}_{c}^{tot}, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, d \in D, \end{array} $$
(13)
$$ \begin{array}{@{}rcl@{}} && \sum\limits_{\theta=t}^{t+ {dh}_{c}^{max}} x_{cd\theta}^{s} \leq {dh}_{c}^{max}, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, d \in D, \\ &&\qquad\qquad\qquad t \in \{1, \ldots, |T|- {dh}_{c}^{max}\}, \end{array} $$
(14)
$$ \begin{array}{@{}rcl@{}} && {dh}_{c}^{min} \cdot x_{cd1}^{s} \leq \sum\limits_{\theta=1}^{ {dh}_{c}^{min}} x_{cd\theta}^{s}, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, d \in D, \end{array} $$
(15)
$$ \begin{array}{@{}rcl@{}} && {dh}_{c}^{min} (x_{cdt}^{s}-x_{cd,t-1}^{s}) \leq \sum\limits_{\theta=t}^{\min(|T|,t + {dh}_{c}^{min} - 1)} x_{cd\theta}^{s}, \\ && \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, d \in D, t \in T\backslash\{1\}. \end{array} $$
(16)

Constraint (12) assures that the total lesson hours assigned to each course must be equal to the number of weekly lesson hours required for the course. For each day, constraint (13) imposes that the number of total lesson hours assigned to a course cannot be greater than the maximum daily lesson hours for the course, while constraints (14), (15), and (16) impose upper and lower bounds on the number of hours to each course lesson.

The Hard and soft time–conflict constraints are:

$$ \begin{array}{@{}rcl@{}} && x_{cdt}^{s} + x_{c^{\prime}dt}^{s} \leq 1, \forall s \in \{1,2\}, (c, c^{\prime}) \in \widetilde{C}^{s} \times \widetilde{C}^{s} : c \neq c^{\prime} \text{ and } b_{cc^{\prime}} = 1, \\ && \qquad\qquad\qquad d \in D, t \in T, \end{array} $$
(17)
$$ \begin{array}{@{}rcl@{}} && \delta_{cc^{\prime}dt}^{s} \leq x_{cdt}^{s}, \forall s \in \{1,2\}, (c, c^{\prime}) \in \widetilde{C}^{s} \times \widetilde{C}^{s} : c \neq c^{\prime} \text{ and } b_{cc^{\prime}} = 2,\\ && \qquad\qquad\qquad d \in D, t \in T, \end{array} $$
(18)
$$ \begin{array}{@{}rcl@{}} && \delta_{cc^{\prime}dt}^{s} \leq x_{c^{\prime}dt}^{s}, \forall s \in \{1,2\}, (c, c^{\prime}) \in \widetilde{C}^{s} \times \widetilde{C}^{s} : c \neq c^{\prime} \text{ and } b_{cc^{\prime}} = 2,\\ && \qquad\qquad\qquad d \in D, t \in T, \end{array} $$
(19)
$$ \begin{array}{@{}rcl@{}} && \delta_{cc^{\prime}dt}^{s} \geq x_{cdt}^{s} + x_{c^{\prime}dt}^{s} - 1, \forall s \in \{1,2\}, (c, c^{\prime}) \in \widetilde{C}^{s} \times \widetilde{C}^{s} : c \neq c^{\prime} \text{ and } b_{cc^{\prime}} = 2,\\ && \qquad\qquad\qquad d \in D, t \in T, \end{array} $$
(20)
$$ \begin{array}{@{}rcl@{}} && \delta_{cc^{\prime}dt}^{s} = \delta_{c^{\prime}cdt}^{s}, \forall s \in \{1,2\}, (c, c^{\prime}) \in \widetilde{C}^{s} \times \widetilde{C}^{s} : c \neq c^{\prime} \text{ and } b_{cc^{\prime}} = 2,\\ && \qquad\qquad\qquad d \in D, t \in T. \end{array} $$
(21)

Constraint (17) does not allow one to deliver simultaneously the lessons of couples of courses for which this is forbidden (hard time-conflict): that is, for two compulsory courses of the same curriculum that are delivered during the same year and semester. Constraints (18)–(21) allow one to detect soft time-conflict occurrences between a compulsory course and a non-compulsory course, of the same year for a certain curriculum, that are taught during the same semester.

The Starting and ending hours of compulsory course constraints are:

$$ \begin{array}{@{}rcl@{}} && \sum\limits_{\theta = 1}^{t} z_{p\tau d\theta}^{Ss} \geq \sum\limits_{c \in \widehat{C}^{s}_{p\tau}} {obl}_{cp} \cdot x_{cdt}^{s}, \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\},\\ && \qquad\qquad\quad d \in D, t \in T, \end{array} $$
(22)
$$ \begin{array}{@{}rcl@{}} && z_{p\tau dt}^{Ss} \leq \sum\limits_{c \in \widehat{C}^{s}_{p\tau}} {obl}_{cp} \cdot x_{cdt}^{s}, \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\},\\ && \qquad\quad\quad d \in D, t \in T, \end{array} $$
(23)
$$ \begin{array}{@{}rcl@{}} && \sum\limits_{t \in T} z_{p\tau dt}^{Ss} \leq 1, \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\}, d \in D, \end{array} $$
(24)
$$ \begin{array}{@{}rcl@{}} && \sum\limits_{\theta = t}^{|T|} z_{p\tau d\theta}^{Es} \geq \sum\limits_{c \in \widehat{C}^{s}_{p\tau}} {obl}_{cp} \cdot x_{cdt}^{s}, \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\},\\ && \qquad\qquad\quad d \in D, t \in T, \end{array} $$
(25)
$$ \begin{array}{@{}rcl@{}} && z_{p\tau dt}^{Es} \leq \sum\limits_{c \in \widehat{C}^{s}_{p\tau}} {obl}_{cp} \cdot x_{cdt}^{s}, \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\},\\ && \qquad\quad\quad d \in D, t \in T, \end{array} $$
(26)
$$ \begin{array}{@{}rcl@{}} && \sum\limits_{t \in T} z_{p\tau dt}^{Es} \leq 1, \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\}, d \in D. \end{array} $$
(27)

Constraints (22)–(24) and constraints (25)–(27) allow one to detect, for each semester and for each weekday, the first and last time slots when the lesson of a compulsory course of year τ for curriculum p is delivered, respectively.

The first and last lesson time slots constraints are:

$$ \begin{array}{@{}rcl@{}} && t x_{cdt}^{s} + |T|(1 - x_{cdt}^{s}) \geq \alpha_{cd}^{Fs}, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, d \in D, t \in T, \end{array} $$
(28)
$$ \begin{array}{@{}rcl@{}} && t x_{cdt}^{s} \leq \alpha_{cd}^{Ls}, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, d \in D, t \in T, \end{array} $$
(29)
$$ \begin{array}{@{}rcl@{}} && \alpha_{cd}^{Fs} \leq \alpha_{cd}^{Ls}, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, d \in D, \end{array} $$
(30)
$$ \begin{array}{@{}rcl@{}} && \alpha_{cd}^{Ls} - \alpha_{cd}^{Ss} \leq |T| - 1, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, d \in D, \end{array} $$
(31)
$$ \begin{array}{@{}rcl@{}} && \alpha_{cd}^{Ls} \leq |T| \cdot y_{cd}^{s}, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, d \in D, \end{array} $$
(32)
$$ \begin{array}{@{}rcl@{}} && {\upbeta}_{p\tau d}^{Fs} \leq \alpha_{cd}^{Fs} + |T|(1 - y_{cd}^{s}), \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\},\\ && \qquad\quad c \in \widehat{C}^{s}_{p\tau}, d \in D, \end{array} $$
(33)
$$ \begin{array}{@{}rcl@{}} && {\upbeta}_{p\tau d}^{Ls} \geq \alpha_{cd}^{Ls} + |T|(1 - y_{cd}^{s}), \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\},\\ && \qquad\qquad c \in \widehat{C}^{s}_{p\tau}, d \in D, \end{array} $$
(34)
$$ \begin{array}{@{}rcl@{}} && {\upbeta}_{p\tau d}^{Fs} \leq {\upbeta}_{p\tau d}^{Ls}, \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\}, d \in D, \end{array} $$
(35)
$$ \begin{array}{@{}rcl@{}} && {\upbeta}_{p\tau d}^{Ls} - {\upbeta}_{p\tau d}^{Fs} \leq |T| - 1, \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\}, d \in D, \end{array} $$
(36)
$$ \begin{array}{@{}rcl@{}} && {\upbeta}_{p\tau d}^{Ls} \leq |T| \cdot w_{p\tau d}^{s}, \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\}, d \in D, \end{array} $$
(37)
$$ \begin{array}{@{}rcl@{}} && {\upbeta}_{p\tau d}^{Ls} - {\upbeta}_{p\tau d}^{Fs} + w_{p\tau d}^{s} \leq \gamma_{p\tau}^{s}, \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\}, d \in D. \\ \end{array} $$
(38)

Constraints (28)–(32) allow one to calculate, for each weekday of a semester and for each course taught during the semester, when the first lesson of the course starts and when the last lesson of the same course ends, according to the assignment of time slots to the course; in particular, constraint (32), together with (31), forces the last and first time slots to be null (the relative variables are set to 0) if the course is not taught on that day during the semester. Similarly, constraints (33)–(37) allow one to calculate, for each weekday of a semester and for each year of each curriculum, when the first lesson starts and when the last lesson ends if there is at least one lesson for the given year and semester of the given curriculum. The calculations are respectively done by taking the minimum among the starting hours and the maximum among the ending hours of the course lessons of the specific year of the curriculum delivered on the specific day of the semester; also in this case, constraint (37), together with (36), forces the last and first time slots to be null (the relative variables are set to 0) if no lesson is delivered on that day for the semester of the specific year of the curriculum. Finally, constraint (38) allows the calculation of the maximum number of daily lesson hours over the weekdays, for each given year of each curriculum and during each semester.

The daily lecture delivering constraints are:

$$ \begin{array}{@{}rcl@{}} && \sum\limits_{t \in T} x_{cdt}^{s} \leq |T| \cdot y_{cd}^{s}, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, d \in D, \end{array} $$
(39)
$$ \begin{array}{@{}rcl@{}} && \sum\limits_{t \in T} x_{cdt}^{s} \geq y_{cd}^{s}, \forall s \in \{1,2\}, c \in \widetilde{C}^{s}, d \in D, \end{array} $$
(40)
$$ \begin{array}{@{}rcl@{}} && \sum\limits_{c \in \widehat{C}_{p\tau}^{s}} y_{cd}^{s} \leq |\widehat{C}_{p\tau}^{s}| \cdot w_{p\tau d}^{s}, \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\}, d \in D, \\ \end{array} $$
(41)
$$ \begin{array}{@{}rcl@{}} && \sum\limits_{c \in \widehat{C}_{p\tau}^{s}} y_{cd}^{s} \geq w_{p\tau d}^{s}, \forall s \in \{1,2\}, p \in P, \tau \in \{1, \ldots, {ny}_{p}\}, d \in D. \end{array} $$
(42)

Constraints (39)–(42) combine together decision variables \(x_{cdt}^{s}\), \(y_{cd}^{s}\), and \(w_{p\tau d}^{s}\), in order to derive from the former, representing the assignment of lesson hours (time slot) to courses (\(x_{cdt}^{s}\)), the decisions of delivering respectively lessons of distinct courses (\(y_{cd}^{s}\)) and lessons of specific years of distinct curricula (\(w_{p\tau d}^{s}\)), during a certain weekday of a semester.

Therefore, the whole mathematical model of our CB-CTT problem is the following multi-objective mixed-integer problem:

$$ \begin{array}{@{}rcl@{}} \min && {of}_{i}, \forall i \in \{1, \ldots, 3\}, \\ s.t.&& \text{(4)--(42)}, \\ && \text{binary variables of Table~3 in \{0,1\}}, \\ && \text{non-negative variables of Table~4 in the specified range.} \end{array} $$

Before concluding this section, we note that in the CB-CTT literature (see, e.g., [7, 14], and [23]), there are similar constraints; in order to give an immediate idea of which constraints are new and which are the same as in the literature, in Fig. 1, we report a comparison between the (hard and soft) constraints reported in this paper and those from the literature (in particular in the curriculum-based course timetabling problem as treated in the international competition).

Fig. 1
figure1

Comparison between the constraints in our model and those in the literature

The Case Study

We applied our timetable model to timetabling a subset of the courses of a two semesters academic year of our faculty (the Faculty of Engineering at the University of Rome “Tor Vergata,” Rome, Italy). The case study is related to a project of our University in which the goal was to consider both traffic congestion due to student flow and quality of the timetable. The case study considers 5 bachelor degree curricula in Management Engineering, each one organized in three years and two semesters per year, a set of 55 courses, and the availability of a set of 34 rooms of different size (capacity). Table 5 lists rooms availability with related capacities.

Table 5 Number of rooms of distinct capacities

Both curricula and courses have different amount of student enrolled. In particular, we consider a curriculum with many students enrolled (large size), two medium size curricula and other two of small size. Table 6 lists the number of students enrolled in each curriculum, for each semester and for each year.

Table 6 Number of students enrolled in the given curricula

In general, a course is taught for more than one curriculum, and the courses with a large number of students (greater than 200) are subdivided into a set of channels, each one followed by at most 200 students (typically such courses serve also other curricula besides those considered in our case study): two courses are subdivided into six channels, one course into three channels and one into two channels, while all the other courses have only one channel. Recall that all the channels of a course require their lessons to be delivered simultaneously on distinct rooms. Table 7 lists the number of courses with respect to the students enrolled.

Table 7 Number of courses per courses per enrolled student range

Courses also differ in compulsory and non-compulsory, delivering period, and according to lesson hours per week. Table 8 lists the number of courses with respect to the curricula and Table 9 shows the number of courses based on the other characteristics. Typically, the lessons of courses with 8 or 6 lesson hours per week have durations of two or three (consecutive) hours, while lessons of the courses with 4 hours per week last exactly two hours; only two (laboratory) courses of 4 hours per week are in exception with lessons’ duration of four hours (i.e., for these two courses, there is only one lesson of 4 consecutive hours per week). For each course, the maximum number of lesson hours per day is equal to the largest possible duration of its lessons, and this (along with the minimum durations of course lessons) implies that there will be at most one lesson per day for each course.

Table 8 Number of courses per curriculum
Table 9 Courses characteristics

Finally, congestion flow weights are evaluated for each time slot of a weekday, according to the estimations of different travel times of a typical trip traversing portion of the road network nearby the location of the campus, in relation to different traffic congestion conditions during each hour of a weekday. Congestion flow weights are scaled in a range between 0 and 10 (the higher is the congestion level and the larger is the flow weight). Lessons can be delivered during the first ten time slots of a weekday. The last (number 11) time slot are considered to weight the outflow of students enrolled in the very last lectures of a day, assuming that each day the students leave the campus after the end of last followed lecture. Table 10 reports the considered congestion flow weights for each time slot (hour) of a weekday. In particular, the larger values (greater than 7 over 10) are concentrated in the first two time slot of each day (with the exception of Saturday), where typically we register the traffic congestion peak hour, while we have the smallest values during the two time slots (hours) before lunch time (time slot 6). Another traffic congestion peak period is located after 5:00pm.

Table 10 Congestion flow weights

We note that the considered case study can be decomposed for the two semesters, but the model can handle the more general case of annual courses.

Experimental Results

In this section, we show the findings of our experimental campaign. Tests were conducted on a PC with processor Inter Core i5 AMD Atlon with 2.4GHz and 2GB VRAM. The mathematical model described in the previous section has been implemented in the AMPL language and solved by means of the CPLEX solver version 12.3.0.1.

We solved the mathematical model both in a single-objective version using proper weights for the objectives, i.e., 1 for the target objective (e.g., Student Flow) and 0 otherwise, and in a multi-objective version to evaluate the capability of the model to reconstruct the Pareto front.

We set a time limit for the computation equal to 3 h.

Single-objective analysis :

In the left part of Fig. 2, we report the values of the three objectives when Student Flow is minimized (for ease of presentation, here and through the values of the objective functions are normalized to 1). The best value obtained for the latter objective within the time limit is 0.15 and is the lowest than the other two objective values which are 0.45 and 0.48 for the Soft Conflicts and Smoothing objectives, respectively. In the right part of Fig. 2, we show the trend of the Student Flow objective over time. We note that the solver is able to improve the solution value from 0.71 to 0.15 in about 2 h while in the remaining hour it was not able to provide further best solutions. The optimality gap at the time limit was 2.4%.

Fig. 2
figure2

Objective function values when student flow is minimized

In Fig. 3, we report a chart related to the best values of the three objectives when, in turn, they are minimized.

Fig. 3
figure3

Best objective function values when minimizing them individually

Bi-objective analysis :

In the following, we report our analysis on bi-objective scenarios. Among the three pairs of objectives, in this analysis, we took into account Student Flow in association with one of the remaining two objectives. Under this hypothesis, in Fig. 4, we report the Pareto curves obtained by considering Soft Conflicts vs Student Flow (left chart) and Smoothing vs Student Flow objectives (right chart), respectively. The values of the objectives reported in the charts have been obtained as follows. Each bi-objective problem has been solved 100 times by specific instantiations of the convex combination between the two target (normalized) objectives. In particular, we firstly set to 0 and to 1, respectively, the weights of the two objectives and then iteratively increased the former and decreased the latter by an amount of 0.01, respectively. For each test, we stored the values of the two objectives and drawn a chart in which the \(\mathbb {R}^{2}\) vectors so obtained have been represented in the Cartesian plane.

Fig. 4
figure4

Pareto curves obtained by considering Soft Conflicts vs Student Flow (left chart) and Smoothing vs Student Flow objectives (right chart), respectively

By the charts, one can note that there is a conflicting behavior of the two pairs of objectives. In the left chart, we see that the Student Flow values range from 0.15 to 0.23 while the Soft Conflicts values range from 0.16 to 0.45. The ideal point with coordinates [0.15,0.16] has an Euclidean distance from the curve equal to 0.13. The rationale behind the obtained results is that trying to diminish the effect of the soft time-conflicts—which means trying to obtain a schedule where the set of non-compulsory courses is not in conflict with the set of compulsory courses as much as possible—tends to spread the flow of students in quite a large number of different daily time slots (hours) and with a consequent increase of the (congested weighted) Student Flow values. In fact, spreading the student flows on a larger set of time periods implies the arrival of part of the students at the university during more congested time periods, i.e., with larger flow weights, and similarly for their return home from the university. Conversely, as soon as one reduces the weight of the former objective function, the model tends to produce a timetable that allows the students to arrive and leave the campus during less congested time slots, therefore decreasing the value of Student Flow.

As for the right chart, the Smoothing values range from 0.17 to 0.48. The ideal point with coordinates [0.15,0.17] has an Euclidean distance from the curve equal to 0.18. We can borrow from the previous chart the same analysis: indeed, for increasing weights of Smoothing, the model tends to generate a timetable with more or less the same number of lesson hours during all the weekdays with a consequent increase of the student flow on more congested time slots in place of a schedule which tries to minimize the (congested weighted) Student Flow. The latter situation happens when one reduces the weight associated with Smoothing and, consequently, increases that of Student Flow objective function.

Comparison with the Real Practical Timetable

The proposed model is able to provide satisfactorily solutions as compared with the real scenario under consideration. In fact, its affectiveness can be appreciated calculating the objective values of the solution currently adopted at our University; this can be done by running the model after having properly fixed decision variables vchrdt and \(x^{s}_{cdt}\). The results say that the current timetable, i.e., before the introduction of such a tool, produces a Student Flow value equal to 0.40, a Soft Constraints value equal to 0.48, and a Smoothing value equal to 0.50. These values, compared with the results obtained in the previous section, show the benefits of the introduction of our model.

Conclusions and Further Research

In this paper, we tackled a curriculum-based university course timetabling problem. A real-world application associated with the scenario of the Faculty of Engineering at the University of Rome “Tor Vergata” has stimulated the definition of a mathematical program with many specific constraints and a three-objective function aiming at (i) minimizing the (weighted) flow produced by the students enrolled in the lectures, (ii) minimizing soft conflicts generated by the possible overlap among compulsory and non-compulsory courses of the same curriculum, and (iii) smoothing the number of lecture hours per curriculum within the weekdays. The proposed mixed-integer program has been implemented and solved by means of a commercial solver and the experimental findings showed that our modeling proposal is effective in producing satisfactorily timetables for the considered application. Future research will be devoted to enlarge the pool of objectives taking into account the desiderata of students and teachers by distributing questionnaires to the latter and producing an AHP analysis from which one can derive proper weights for the objectives and experiment with the associated scalarized objective function. Also, we plan to formalize the analysis on the transportation aspects related to the local flow of students generated by the course timetable considering the impact on the traffic jam in a more comprehensive area comprising also trajectories of vehicles directed to the university and coming from further places.

References

  1. 1.

    Al-Yakoob SM, Sherali HD (2007) A mixed-integer programming approach to a class timetabling problem: a case study with gender policies and traffic considerations. Eur J Oper Res 180(3):1028–1044

    Article  Google Scholar 

  2. 2.

    Badri MA (1996) A two-stage multi-objective scheduling model for faculty-course time assignments. Eur J Oper Res 94:16–28

    Article  Google Scholar 

  3. 3.

    Bellio R, Ceschia S, Di Gaspero L, Schaerf A, Urli T (2013) A simulated annealing approach to the curriculum-based course timetabling problem. In: Proceedings of the 6th multidisciplinary international conference on scheduling: theory and applications, MISTA 2013, Belgium, pp 314–317

  4. 4.

    Bellio R, Ceschia S, Di Gaspero L, Schaerf A, Urli T (2014) Feature-based tuning of simulated annealing applied to the curriculum-based course timetabling problem. arXiv:1409.7186

  5. 5.

    Bettinelli A, Cacchiani V, Roberti R, Toth P (2015) An overview of curriculum-based course timetabling. TOP 23:313–349

    Article  Google Scholar 

  6. 6.

    Birbas T, Daskalaki S, Housos E (1997) Timetabling for Greek high schools. J Oper Res Soc 48:1191–1200

    Article  Google Scholar 

  7. 7.

    Bonutti A, De Cesco F, Di Gaspero L, Schaerf A (2012) Benchmarking curriculum-based course timetabling: formulations, data formats, instances, validation, visualization, and results. Ann Oper Res 194(1):59–70

    Article  Google Scholar 

  8. 8.

    Cacchiani V, Caprara A, Roberti R, Toth P (2013) A new lower bound for curriculum-based course timetabling. Comput Oper Res 40(10):2466–2477

    Article  Google Scholar 

  9. 9.

    Cambazard H, Demazeau F, Jussien N, David P (2005) Interactively solving school timetabling problems using extensions of constraint programming. In: Burke E, Trick M (eds) LNCS, vol 3616, pp 190–207

  10. 10.

    Carter MW (2001) A comprehensive course timetabling and student scheduling system at the University of Waterloo. In: Burke E, Erben W (eds) LNCS, vol 2079. Springer, Berlin, pp 64–82

  11. 11.

    Costa D (1994) A tabu search algorithm for computing an operational timetable. Eur J Oper Res 76:98–110

    Article  Google Scholar 

  12. 12.

    Colorni A, Dorigo M, Maniezzo V (1992) A genetic algorithm to solve the timetable problem, Technical Report 90-060 revised, Politecnico di Milano Italy

  13. 13.

    de Werra D (1985) An introduction to timetabling. Eur J Oper Res 19:151–162

    Article  Google Scholar 

  14. 14.

    Di Gaspero L, McCollum B, Schaerf A (2007) The second international timetabling competition (ITC-2007): curriculum-based course timetabling (track 3). Technical report, School of Electronics, Electrical Engineering and Computer Science, Queens University, Belfast (UK), (site: http://www.cs.qub.ac.uk/itc2007/)

  15. 15.

    Dimopoulou M, Miliotis P (2001) Implementation of a university course and examination timetabling system. Eur J Oper Res 130:202–213

    Article  Google Scholar 

  16. 16.

    Geiger MJ (2009) Multi-criteria curriculum-based course timetabling—a comparison of a weighted sum and a reference point based approach. In: Ehrgott M, Fonseca CM, Gandibleux X, Hao JK, Sevaux M (eds) Proceedings of the 5th International Conference on Evolutionary Multi-criterion Optimization, EMO 2009, LNCS, vol 5467. Springer, pp 290–304

  17. 17.

    Geiger MJ (2012) Applying the threshold accepting metaheuristic to curriculum based course timetabling. Ann Oper Res 194(1):189–202

    Article  Google Scholar 

  18. 18.

    Gunawan A, Ng KM, Poh KL (2006) A mathematical programming model for a timetabling problem. In: Proceedings of the International Conference on Scientific Computing, Navade, USA

  19. 19.

    Hao JK, Benlic U (2011) Lower bounds for the ITC-2007 curriculum-based course timetabling problem. Eur J Oper Res 212(3):464–472

    Article  Google Scholar 

  20. 20.

    Hinkin R, Thompson MG (2002) Schedulexpert: scheduling courses in the Cornell University School of Hotel Administration. Interfaces 32(6):45–57

    Article  Google Scholar 

  21. 21.

    Junginger W (1986) Timetabling in Germany: a survey. Interfaces 16:66–74

    Article  Google Scholar 

  22. 22.

    Kiefer A, Hartl R, Schnell A (2014) Adaptive large neighborhood search for the curriculum-based course timetabling problem. Technical report UNIVIE-PLIS-2014-001 University of Vienna

  23. 23.

    Lach G, Lübbecke M (2012) Curriculum based course timetabling: new solutions to Udine benchmark instances. Ann Oper Res 194(1):255–272

    Article  Google Scholar 

  24. 24.

    Lü Z, Hao JK, Glover F (2011) Neighborhood analysis: a case study on curriculum-based course timetabling. J Heuristics 17(2):97–118

    Article  Google Scholar 

  25. 25.

    Lübbecke M (2015) Comments on: an overview of curriculum-based course timetabling. TOP 23(2):359–361

    Article  Google Scholar 

  26. 26.

    Mushi AR (2004) Mathematical programming formulations for the examinations timetable problem, the case of the university of Dar es salaam. African Journal Science and Technology, Science and Engineering Series 5:34–40

    Google Scholar 

  27. 27.

    Papoutsis K, Valouxis C, Housos E (2003) A column generation approach for the timetabling problem of Greek high schools. J Oper Res Soc 54:230–238

    Article  Google Scholar 

  28. 28.

    Rudová H, Murray K (2003) University course timetabling with soft constraints. In: Burke E, De Causmaecker P (eds) LNCS, vol 2740. Springer, Berlin, pp 310–328

  29. 29.

    Schaerf A (1999) A survey of automated timetabling. Artif Intell Rev 13 (2):87–127

    Article  Google Scholar 

  30. 30.

    Schimmelpfeng K, Helber S (2007) Application of a real-world university-course timetabling model solved by integer programming. OR Spectr 29(4):783–803

    Article  Google Scholar 

  31. 31.

    Tarawneh HY, Ayob M, Ahmad Z (2013) A hybrid simulated annealing with solutions memory for curriculum-based course timetabling problem. J Appl Sci 13:262–269

    Article  Google Scholar 

  32. 32.

    Tripathy A (1984) School timetabling, a case in large binary integer linear programming. Manag Sci 30:1473–1489

    Article  Google Scholar 

  33. 33.

    Tripathy A (1992) Computerised decision aid for timetabling - a case analysis. Discret Appl Math 35(3):313–323

    Article  Google Scholar 

  34. 34.

    Wren A (1996) Scheduling, timetabling and rostering, a special relationship?. LNCS 1153:46–75. Springer, Berlin

    Google Scholar 

Download references

Funding

This study has been supported by the University of Rome “Tor Vergata” under grant TRAN.S.S.UM.: Transportation Sustainability and Students’ Urban Mobility: A Multicriteria Approach Through Class Timetabling Optimization.

Author information

Affiliations

Authors

Corresponding author

Correspondence to Massimiliano Caramia.

Ethics declarations

Conflict of Interest

The authors declare that they have no conflict of interest.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Caramia, M., Giordani, S. Curriculum-Based Course Timetabling with Student Flow, Soft Constraints, and Smoothing Objectives: an Application to a Real Case Study. SN Oper. Res. Forum 1, 11 (2020). https://doi.org/10.1007/s43069-020-0013-x

Download citation

Keywords

  • Timetabling
  • MIP model
  • Multi-objective optimization
  • Case study