Skip to main content
Log in

Flow formulations for curriculum-based course timetabling

  • Original Research
  • Published:
Annals of Operations Research Aims and scope Submit manuscript

Abstract

In this paper we present two mixed-integer programming formulations for the curriculum based course timetabling problem (CTT). We show that the formulations contain underlying network structures by dividing the CTT into two separate models and then connect the two models using flow formulation techniques. The first mixed-integer programming formulation is based on an underlying minimum cost flow problem, which decreases the number of integer variables significantly and improves the performance compared to an intuitive mixed-integer programming formulation. The second formulation is based on a multi-commodity flow problem which in general is NP-hard, however, we prove that it suffices to solve the linear programming relaxation of the model. The formulations show competitiveness with other approaches based on mixed-integer programming from the literature and improve the currently best known lower bound on one data instance in the benchmark data set from the second international timetabling competition. Regarding upper bounds, the formulation based on the minimum cost flow problem performs better on average than other mixed integer programming approaches for the CTT.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

References

  • Ahuja, R. K., Magnanti, T. L., & Orlin, J. B. (1993). Network flows: Theory, algorithms, and applications. Upper Saddle River, NJ: Prentice-Hall Inc.

    Google Scholar 

  • Bagger, N., Kristiansen, S., Sørensen, M., & Stidsen, T. (2015). Flow formulation-based model for the curriculum-based course timetabling problem. In Proceedings of the 7th multidisciplinary international conference on scheduling: Theory and applications (MISTA 2015) (pp. 825–848).

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

    Article  Google Scholar 

  • Bonutti, A., De Cesco, F., Di Gaspero, L., & Schaerf, A. (2012). Benchmarking curriculum-based course timetabling: Formulations, data formats, instances, validation, visualization, and results. Annals of Operations Research, 194(1), 59–70.

    Article  Google Scholar 

  • Bron, C., & Kerbosch, J. (1973). Algorithm 457: Finding all cliques of an undirected graph. Communications of the ACM, 16(9), 575–577. https://doi.org/10.1145/362342.362367.

    Article  Google Scholar 

  • Burke, E. K., Mareček, J., Parkes, A. J., & Rudová, H. (2008). Penalising patterns in timetables: Novel integer programming formulations. In J. Kalcsics & S. Nickel (Eds.), Operations research proceedings (pp. 409–414). Berlin: Springer. https://doi.org/10.1007/978-3-540-77903-2_63.

    Chapter  Google Scholar 

  • Burke, E. K., Mareček, J., Parkes, A. J., & Rudová, H. (2010). Decomposition, reformulation, and diving in university course timetabling. Computers & Operations Research, 37(3), 582–597.

    Article  Google Scholar 

  • Burke, E. K., Mareček, J., Parkes, A. J., & Rudová, H. (2012). A branch-and-cut procedure for the Udine course timetabling problem. Annals of Operations Research, 194(1), 71–87.

    Article  Google Scholar 

  • Cacchiani, V., Caprara, A., Roberti, R., & Toth, P. (2013). A new lower bound for curriculum-based course timetabling. Computers & Operations Research, 40(10), 2466–2477.

    Article  Google Scholar 

  • 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, Queenes University SARC Building, Belfast, UK.

  • Di Gaspero, L., & Schaerf, A. (2003). Multi-neighbourhood local search with application to course timetabling. In E. Burke & P. De Causmaecker (Eds.), Practice and theory of automated timetabling IV (Vol. 2740, pp. 262–275)., Lecture notes in computer science Berlin: Springer. https://doi.org/10.1007/978-3-540-45157-0_17.

    Chapter  Google Scholar 

  • Gurobi Optimization, Inc. (2016). Gurobi optimizer reference manual. http://www.gurobi.com. Accessed 26 Dec 2016.

  • Hao, J. K., & Benlic, U. (2011). Lower bounds for the ITC-2007 curriculum-based course timetabling problem. European Journal of Operational Research, 212(3), 464–472.

    Article  Google Scholar 

  • Kleinberg, J., & Tardos, E. (2005). Algorithm design. Boston, MA: Addison-Wesley Longman Publishing Co., Inc.

    Google Scholar 

  • Lach, G., & Lübbecke, M. (2008). Optimal university course timetables and the partial transversal polytope. In C. McGeoch (Ed.), Experimental algorithms (Vol. 5038, pp. 235–248)., Lecture notes in computer science Berlin: Springer.

    Chapter  Google Scholar 

  • Lach, G., & Lübbecke, M. (2012). Curriculum based course timetabling: New solutions to udine benchmark instances. Annals of Operations Research, 194, 255–272.

    Article  Google Scholar 

  • McCollum, B., Schaerf, A., Paechter, B., McMullan, P., Lewis, R., Parkes, A. J., et al. (2010). Setting the research agenda in automated timetabling: The second international timetabling competition. INFORMS Journal on Computing, 22(1), 120–130.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Niels-Christian F. Bagger.

Additional information

The authors would like to thank Professor Stephan Røpke, Department of Management Engineering, Technical University of Denmark, and Professor Carsten Thomassen, Department of Applied Mathematics and Computer Science, Technical University of Denmark for fruitful discussions on the graphs and proofs. Furthermore, the authors would like to thank the anonymous reviewers for their valuable feedback to improve the manuscript. Niels-Christian Fink Bagger’s industrial Ph.D. project was funded by Innovation Fund Denmark (IFD). IFD has supported the work solely financially and has not participated in any research related activities.

Notation

Notation

In this section we provide an overview of all the notation that we used throughout the paper. We divided the notation into five lists; abbreviations, functions, sets, parameters, variables and flor graph notations. In each list we have ordered the notation alphabetically. For each notation, we have provided a short description and a reference to the page number where the notation is first used.

Abbreviations

\(\mathbf {A}\) :

Abbreviation of the Availability \(\mathbf {(\mathbf {A})}\) constraint

BMPR10:

The results reported by Burke et al. (2010)

\(\mathbf {C}\) :

Abbreviation of the Conflicts \(\mathbf {(\mathbf {C})}\) constraint

CCRT13:

The results reported by Cacchiani et al. (2013)

CTT:

Abbreviation of Curriculum-based Course Timetabling

\(\mathcal {F}_{LP}\) :

The LP-relaxation of model (63)–(67)

HB11:

The results reported by Hao and Benlic (2011)

\(\mathbf {IL}\) :

Abbreviation of the Isolated Lectures \(\mathbf {(\mathbf {IL})}\) constraint

ITC2007:

The second international timetabling competition (ITC2007) held in 2007

\(\mathbf {L}\) :

Abbreviation of the Lectures \(\mathbf {(\mathbf {L})}\) constraint

MIN:

The results obtained by the minimum cost flow based formulation

\(\mathbf {MWD}\) :

Abbreviation of the Minimum Working Days \(\mathbf {(\mathbf {MWD})}\) constraint

MULT:

The results obtained by the multi-commodity flow based formulation

\(\mathbf {RC}\) :

Abbreviation of the Room Capacity \(\mathbf {(\mathbf {RC})}\) constraint

\(\mathbf {RO}\) :

Abbreviation of the Room Occupancy \(\mathbf {(\mathbf {RO})}\) constraint

\(\mathbf {RStab}\) :

Abbreviation of the Room Stability \(\mathbf {(\mathbf {RStab})}\) constraint

Functions

\((\cdot )^+\) :

A function returning the the input if it is a non-negative value; zero is returned otherwise

\(o(\cdot )\) :

The objective value of the solution given as input

Sets

A :

The set of feasible period-room solutions in the multi-commodity flow formulation

\(\mathcal {C}\) :

The set of courses

\(\mathcal {C}_l\) :

The set of courses that is taught by lecturer \(l\in \mathcal {L}\)

\(\mathcal {C}_q\) :

The set of courses that belongs to curriculum \(q\in \mathcal {Q}\)

\(\mathcal {C}_\gamma \) :

The set of courses that belongs to clique \(\gamma \in \Gamma \)

\(\mathcal {D}\) :

The set of days

\(\Gamma \) :

The set of cliques in the course conflict graph

\(\mathcal {L}\) :

The set of lecturers

\(\mathcal {P}\) :

The set of periods

\(\mathcal {P}_d\) :

The set of periods in \(\mathcal {P}\) that belongs to day \(d\in \mathcal {D}\)

\(\varPhi _p\) :

The set of periods that are adjacent to the period \(p\in \mathcal {P}\)

\(\mathcal {Q}\) :

The set of curricula

\(\mathcal {R}\) :

The set of rooms

\(\mathbb {Z}^+\) :

The set of non-negative integers, i.e., \(\mathbb {Z}^+=\left\{ x\in \mathbb {Z}\,:\,x\ge 0\right\} \)

\(\emptyset \) :

The empty set

Parameters

\(C_r\) :

The capacity of room \(r\in \mathcal {R}\)

\(F_{c,p}\) :

Binary value indicating whether or not course \(c\in \mathcal {C}\) can be assigned to period\(p\in \mathcal {P}\)

\(L_c\) :

The number of lectures to schedule for course \(c\in \mathcal {C}\)

\(M_c\) :

The desired number minimum working days for course \(c\in \mathcal {C}\)

\(S_c\) :

The number of students attending course \(c\in \mathcal {C}\)

\(\mathcal {T}\) :

The maximum number of periods for any day, i.e., \(\mathcal {T}=\max _{d\in \mathcal {D}}\left\{ |\mathcal {P}_d|\right\} \)

\(W^{\mathbf {IL}}\) :

The cost of violating the Isolated Lectures \(\mathbf {(\mathbf {IL})}\) constraint

\(W^{\mathbf {MWD}}\) :

The cost of violating the Minimum Working Days \(\mathbf {(\mathbf {MWD})}\) constraint

\(W^{\mathbf {RC}}\) :

The cost of violating the Room Capacity \(\mathbf {(\mathbf {RC})}\) constraint

\(W^{\mathbf {RStab}}\) :

The cost of violating the Room Stability \(\mathbf {(\mathbf {RStab})}\) constraint

Variables

\(f_{c,p,r}\) :

The amount of flow on the arc \((c,p)\rightarrow (r,p)\) in the minimum cost flow graph. A Non-negative continuous variable indicating by how big a fraction course \(c\in \mathcal {C}\) is assigned to period \(p\in \mathcal {P}\) and room \(r\in \mathcal {R}\) in the combined model

\(f^u_{c,p}\) :

The amount of flow on the arc \((u)\rightarrow (c,p)\) in the minimum cost flow graph

\(f^v_{r,p}\) :

The amount of flow on the arc \((r,p)\rightarrow (v)\) in the minimum cost flow graph

\(s_{q,p}\) :

Binary variable indicating whether or not curriculum \(q\in \mathcal {Q}\) has an isolated lecture in period \(p\in \mathcal {P}\)

\(t_{c,d}\) :

Binary variable indicating whether or not course \(c\in \mathcal {C}\) is assigned to at least one period from the set \(\mathcal {P}_d\) for day \(d\in \mathcal {D}\)

\(w_{c}\) :

Non-negative integer variable indicating by how many days the Minimum Working Days \(\mathbf {(\mathbf {MWD})}\) constraint is violated for course \(c\in \mathcal {C}\)

\(x_{c,p}\) :

Binary variable indicating whether or not course \(c\in \mathcal {C}\) has a lecture assigned in period \(p\in \mathcal {P}\)

\(x_{c,p,r}\) :

Binary variable indicating whether or not course \(c\in \mathcal {C}\) is assigned to period \(p\in \mathcal {P}\) and room \(r\in \mathcal {R}\)

\(y_{c,r}\) :

Integer variable indicating the number of times that course \(c\in \mathcal {C}\) is assigned to room \(r\in \mathcal {R}\)

\(z_{c,r}\) :

Binary variable indicating whether or not course \(c\in \mathcal {C}\) has at least one lecture assigned in room \(r\in \mathcal {R}\)

Flow graph notations

\((\cdot )\) :

A node in a graph, e.g., a node corresponding to a course and period pair is denoted (cp). The source node and sink node of the minimum cost flow graph are denoted (u) and (v)

\((\cdot )\rightarrow (\cdot )\) :

An arc in a graph

\((\cdot )\rightarrow \cdots \rightarrow (\cdot )\) :

A path in a graph

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Bagger, NC.F., Kristiansen, S., Sørensen, M. et al. Flow formulations for curriculum-based course timetabling. Ann Oper Res 280, 121–150 (2019). https://doi.org/10.1007/s10479-018-3096-4

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10479-018-3096-4

Keywords

Navigation