Annals of Operations Research

, Volume 239, Issue 1, pp 225–251 | Cite as

Integer programming techniques for the nurse rostering problem

  • Haroldo G. Santos
  • Túlio A. M. Toffolo
  • Rafael A. M. Gomes
  • Sabir Ribas


This work presents integer programming techniques to tackle the problem of the International Nurse Rostering Competition. Starting from a compact and monolithic formulation in which the current generation of solvers performs poorly, improved cut generation strategies and primal heuristics are proposed and evaluated. A large number of computational experiments with these techniques produced the following results: the optimality of the vast majority of instances was proved, the best known solutions were improved by up to 15 % and strong dual bounds were obtained. In the spirit of reproducible science, all code was implemented using the Computational Infrastructure for Operations Research.


Nurse rostering Integer programming Cutting planes MIP heuristics 



The authors would like to thank FAPEMIG (Grants APQ-01779-10) and CNPq (Grant 480388/2010-5) for supporting the development of this research and the anonymous reviewers of this paper for the detailed suggestions and corrections


  1. Andersen, K., & Cornuejols, G. Y. L. (2005). Reduce-and-split cuts: Improving the performance of mixed integer gomory cuts. Management Science, 51, 1720–1732.CrossRefGoogle Scholar
  2. Andreello, G., Caprara, A., & Fischetti, M. (2007). Embedding cuts in a branch and cut framework: A computational study with 0,1/2-cuts. INFORMS Journal on Computing, 19(2), 229–238.CrossRefGoogle Scholar
  3. Atamtürk, A., Nemhauser, G. L., & Savelsbergh, M. W. P. (2000). Conflict graphs in solving integer programming problems. European Journal of Operational Research, 121, 40–55.CrossRefGoogle Scholar
  4. Avella, P., & Vasil’ev, I. (2005). A computational study of a cutting plane algorithm for university course timetabling. Journal of Scheduling, 8, 497–514.CrossRefGoogle Scholar
  5. Balas, E., Ceria, S., Cornueljols, G., & Natra, N. (1996). Gomory cuts revisited. Operations Research Letters, 19, 1–10.CrossRefGoogle Scholar
  6. Bilgin, B., Demeester, P., Mısır, M., Vancroonenburg, W., Berghe, G., & Wauters, T. (2010). A hyper-heuristic combined with a greedy shuffle approach to the nurse rostering competition. In Proceedings of the 8th International Conference on the Practice and Theory of Automated Timetabling (PATAT’10).Google Scholar
  7. Borndorfer, R. (1998). Aspects of set packing, partitioning, and covering. Ph.D. Thesis, Faculty of Mathematics at Technical University of Berlin.Google Scholar
  8. Boyd, E. (1992). Fenchel cutting planes for integer programming. Operations Research, 42, 53–64.CrossRefGoogle Scholar
  9. Boyd, E. (1994). Solving 0/1 integer programs with enumeration cutting planes. Annals of Operations Research, 50, 61–72.CrossRefGoogle Scholar
  10. Brito, S., & Santos, H. G. (2011). Pivoting in the bron-kerbosch algorithm for maximum-weight clique detection (in portuguese). In Anais do XLIII Simpósio Brasileiro de Pesquisa Operacional.Google Scholar
  11. Bron, C., & Kerbosch, J. (1973). Algorithm 457: Finding all cliques of an undirected graph. Communications of the ACM, 16(9), 575–577.CrossRefGoogle Scholar
  12. Burke, E., & Curtois, T. (2010). An ejection chain method and a branch and price algorithm applied to the instances of the first international nurse rostering competition, 2010. In Proceedings of the 8th International Conference on the Practice and Theory of Automated Timetabling (PATAT’10) Google Scholar
  13. Burke, E., Li, J., & Qu, R. (2010). A hybrid model of integer programming and variable neighbourhood search for highly-constrained nurse rostering problems. European Journal of Operational Research, 203(2), 484–493.CrossRefGoogle Scholar
  14. Burke, E., Mareček, K., Parkes, A.J., & Rudová, H. (2011). A branch-and-cut procedure for the udine course timetabling problem. Annals of Operations Research, 194, 1–17.Google Scholar
  15. Burke, E. K., De Causmaecker, P., Berghe, G. V., & Landeghem, H. V. (2004). The state of the art of nurse rostering. Journal of Scheduling, 7, 441–499.CrossRefGoogle Scholar
  16. Cheang, B., Li, H., Lim, A., & Rodrigues, B. (2003). Nurse rostering problems-a bibliographic survey. European Journal of Operational Research, 151(3), 447–460.CrossRefGoogle Scholar
  17. Cornuéjols, G. (2007). Revival of the gomory cuts in the 1990s. Annals of Operations Research, 149(1), 63–66.CrossRefGoogle Scholar
  18. Danna, E., Rothberg, E., & Le Pape, C. (2003). Exploring relaxation induced neighborhoods to improve mip solutions. Technical report, ILOG.Google Scholar
  19. Danna, E., Rothberg, E., & Le Pape, C. (2003). Integrating mixed integer programming and local search: A case study on job-shop scheduling problems. In Proceedings Third International Conference on Integration of Artificial Intelligence (AI) and Operations Research (OR) techniques in Constraint Programming (CPAIOR’03).Google Scholar
  20. Dash, S., Goycoolea, M., & Gunluk, O. (2009). Two step MIR inequalities for mixed-integer programs. INFORMS Journal on Computing, 21(4), 641–649.CrossRefGoogle Scholar
  21. Eso, M. (1999). Parallel branch-and-cut for set partitioning. Ph.D. Thesis, Cornell University Ithaca, NY, USA.Google Scholar
  22. Fischetti, M., & Lodi, A. (2003). Local branching. Mathematical Programming, 98, 23–47.CrossRefGoogle Scholar
  23. Fischetti, M., & Lodi, A. (2007). Optimizing over the first Chvàtal closure. Mathematical Programming B, 110(1), 3–20.CrossRefGoogle Scholar
  24. Forrest, J., & Lougee-Heimer, R. (2005). CBC user guide. INFORMS Tutorials in Operations Research 257–277Google Scholar
  25. Grotschel, M., Lovasz, L., & Schrijver, A. (1993). Geometric Algorithms and Combinatorial Optimization. Springer, New York.Google Scholar
  26. Hansen, P., & Mladenović, N. (1997). Variable neighborhood search. Computers & Operations Research, 24(11), 1097–1100.CrossRefGoogle Scholar
  27. Hansen, P., Mladenović, N., & Urosević, D. (2006). Variable neighborhood search and local branching. Computers & Operations Research, 33(10), 3034–3045.CrossRefGoogle Scholar
  28. Haspeslagh, S., De Causmaecker, P., & Stolevik, M. A. S. (2010). First international nurse rostering competition 2010. Technical report, CODeS, Department of Computer Science, KU Leuven Campus Kortrijk. Belgium.Google Scholar
  29. Hoffman, K., & Padberg, M. (1993). Solving airline crew scheduling problems by branch-and-cut. Management Science, 39(6), 657–682.CrossRefGoogle Scholar
  30. IBM. (2011). CPLEX 12.2 User’s ManualGoogle Scholar
  31. Koch, T., Achterberg, T., Andersen, E., Bastert, O., Berthold, T., Bixby, R., et al. (2010). MIPLIB. Mathematical Programming Computation, 3, 103–163.CrossRefGoogle Scholar
  32. Linderoth, J.T., & Ralphs, T.K. (2005). Noncommercial software for mixed-integer linear programming. In J. Karlof (ed.) Integer programming: Theory and practice, operations research series, vol. 3, pp. 103–163.Google Scholar
  33. Lougee-Heimer, R. (2003). The common optimization interface for operations research: Promoting open-source software in the operations research community. IBM Journal of Research and Development, 47(1), 57–66.CrossRefGoogle Scholar
  34. Martins, A. X., Souza, M. C., Souza, M. J., & Toffolo, T. A. M. (2009). GRASP with hybrid heuristic-subproblem optimization for the multi-level capacitated minimum spanning tree problem. Journal of Heuristics, 15, 133–151.CrossRefGoogle Scholar
  35. Méndez-Díaz, I., & Zabala, P. (2008). A cutting plane algorithm for graph coloring. Discrete Applied Mathematics, 156, 159–179.CrossRefGoogle Scholar
  36. Mittelmann, H. (2012). Benchmarks for optimization software. Accessed March 2013
  37. Nonobe, K. (2010). INRC2010: An approach using a general constraint optimization solver. The First International Nurse Rostering Competition (INRC 2010)Google Scholar
  38. Nonobe, K., & Ibaraki, T. (1998). A tabu search approach to the constraint satisfaction problem as a general problem solver. European Journal of Operational Research, 106(2–3), 599–623.CrossRefGoogle Scholar
  39. Padberg, M. (1973). On the facial structure of set packing polyhedra. Mathematical Programming, 5(1), 199–215.CrossRefGoogle Scholar
  40. Ralphs, T., Saltzman, M., Ladnyi, L. (2004). The COIN-OR Open Solver Interface: Technology Overview. Accessed March 2013
  41. Ralphs, T. K., & Gzelsoy, M. (2005). The symphony callable library for mixed integer programming. In B. Golden, S. Raghavan, E. Wasil, R. Sharda, & S. Vo (Eds.), The next wave in computing, optimization, and decision technologies, operations research/computer science interfaces series (Vol. 29, pp. 61–76). New York: Springer.CrossRefGoogle Scholar
  42. Uchoa, E., Toffolo, T. A. M., de Souza, M. C., Martins, A. X., & Fukasawa, R. (2012). Branch-and-cut and hybrid local search for the multi-level capacitated minimum spanning tree problem. Networks, 59(1), 148–160.CrossRefGoogle Scholar
  43. Valouxis, C., Gogos, C., Goulas, G., Alefragis, P., & Housos, E. (2012). A systematic two phase approach for the nurse rostering problem. European Journal of Operational Research, 219(2), 425–433.CrossRefGoogle Scholar
  44. Wolsey, L. (1998). Integer programming. Wiley-interscience series in discrete mathematics and optimization. Chichester: Wiley.Google Scholar

Copyright information

© Springer Science+Business Media New York 2014

Authors and Affiliations

  • Haroldo G. Santos
    • 1
  • Túlio A. M. Toffolo
    • 1
    • 2
  • Rafael A. M. Gomes
    • 1
  • Sabir Ribas
    • 3
  1. 1.Computing DepartmentFederal University of Ouro PretoOuro PretoBrazil
  2. 2.Department of Computer ScienceKU LeuvenLeuvenBelgium
  3. 3.Department of Computer ScienceFederal University of Minas GeraisMinas GeraisBrazil

Personalised recommendations