Skip to main content

Constraint Programming

  • Living reference work entry
  • First Online:
Encyclopedia of Optimization

Introduction

Constraint programming (CP) is a methodology for modeling and solving (combinatorial) optimization and satisfaction problems [37]. Its origins are in artificial intelligence, computer science, and operations research. The classical constraint satisfaction problem is represented by a set of variables X over a domain of possible values D and a set of constraints (or relations) C over X. The goal is to find one or all solutions (variable assignments) that satisfy all constraints. A constraint optimization problem additionally has an objective function over X to be optimized.

In its purest form, the constraint programming solution process involves a combination of search and inference. These are both foundational concepts in artificial intelligence [38]. In the context of CP, the search process requires the definition of the search space (e.g., creating subproblems by splitting variable domains), as well as a method to traversethe search space (e.g., depth-first search with...

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

Access this chapter

Institutional subscriptions

References

  1. Allouche D, Barbe S, Givry Sd, Katsirelos G, Lebbah Y, Loudni S, Ouali A, Schiex T, Simoncini D, Zytnicki M (2021) Cost function networks to solve large computational protein design problems. In: Masmoudi M, Jarboui B, Siarry P (eds) Operations research and simulation in healthcare. Springer International Publishing, pp 81–102

    Google Scholar 

  2. Apt KR (1999) The essence of constraint propagation. Theor Comput Sci 221(1–2):179–210

    Article  MathSciNet  MATH  Google Scholar 

  3. Backofen R, Gilbert D (2006) Bioinformatics and constraints. In: Rossi F, van Beek P, Walsh T (eds) Handbook of constraint programming, chap 26. Elsevier, pp 905–944

    Google Scholar 

  4. Baptiste P, Le Pape C, Nuijten W (2001) Constraint-based scheduling – applying constraint programming to scheduling problems. Springer

    Book  MATH  Google Scholar 

  5. Benchimol P, van Hoeve WJ, Régin J, Rousseau L, Rueher M (2012) Improved filtering for weighted circuit constraints. Constraints 17(3):205–233

    Article  MathSciNet  MATH  Google Scholar 

  6. Benhamou F (1996) Heterogeneous constraint solving. In: Hanus M, Rodríguez-Artalejo M (eds) Algebraic and logic programming. Springer, pp 62–76

    Google Scholar 

  7. Benhamou F, McAllester D, Van Hentenryck P (1994) CLP(Intervals) revisited. In: Proceedings of the International Symposium on Logic Programming (ILPS-94), Ithaca, NY, pp 124–138

    Google Scholar 

  8. Bent R, Van Hentenryck P (2004) A two-stage hybrid local search for the vehicle routing problem with time windows. Transp Sci 8(4):515–530

    Article  Google Scholar 

  9. Bent R, Van Hentenryck P (2006) A two-stage hybrid algorithm for pickup and delivery vehicle routing problems with time windows. Comput Oper Res (Special Issue on Applications in Combinatorial Optimization) 33(4):875–893

    MATH  Google Scholar 

  10. Bergman D, Cire AA, Hoeve WJv, Hooker J (2016) Decision diagrams for optimization, 1st edn. Springer Publishing Company, Incorporated

    Google Scholar 

  11. Bessiere C (2006) Constraint propagation. In: Rossi F, van Beek P, Walsh T (eds) Handbook of constraint programming, chap 3. Elsevier, pp 29–83

    Google Scholar 

  12. Dechter R (1999) Bucket elimination: a unifying framework for reasoning. Artif Intell 113:41–85

    Article  MathSciNet  MATH  Google Scholar 

  13. Dechter R (2003) Constraint processing. Morgan Kaufmann

    MATH  Google Scholar 

  14. Fahle T, Junker U, Karisch SE, Kohl N, Sellmann M, Vaaben B (2002) Constraint programming based column generation for crew assignment. J Heuristics 8(1):59–81

    Article  MATH  Google Scholar 

  15. Focacci F, Lodi A, Milano M (2002) A hybrid exact algorithm for the TSPTW. INFORMS J Comput 14(4):403–417

    Article  MathSciNet  MATH  Google Scholar 

  16. Freuder E, Wallace M (2000) Constraint technology and the commercial world. IEEE Intell Syst 15(1):20–23

    Article  Google Scholar 

  17. Freuder EC (1985) A sufficient condition for backtrack-bounded search. J ACM 32(4):755–761

    Article  MathSciNet  MATH  Google Scholar 

  18. Gargani A, Refalo P (2007) An efficient model and strategy for the steel mill slab design problem. In: Proceedings of the 13th International Conference on Principles and Practice of Constraint Programming (CP’07)

    Google Scholar 

  19. Goel V, Slusky M, van Hoeve WJ, Furman K, Shao Y (2015) Constraint programming for LNG ship scheduling and inventory management. Eur J Oper Res 241(3):662–673

    Article  MathSciNet  MATH  Google Scholar 

  20. van Hoeve W, Katriel I (2006) Global constraints. In: Rossi F, van Beek P, Walsh T (eds) Handbook of constraint programming, chap 6. Elsevier, pp 169–208

    Google Scholar 

  21. Hooker JN (2007) Planning and scheduling by logic-based benders decomposition. Oper Res 55(3):588–602

    Article  MathSciNet  MATH  Google Scholar 

  22. Hooker JN, van Hoeve WJ (2018) Constraint programming and operations research. Constraints 23:172–195

    Article  MathSciNet  MATH  Google Scholar 

  23. Junker U (2006) Configuration. In: Rossi F, van Beek P, Walsh T (eds) Handbook of constraint programming, chap 24. Elsevier, pp 837–873

    Google Scholar 

  24. Jussien N, Barichard V (2000) The PaLM system: explanation-based constraint programming. In: TRICS: techniques for Implementing Constraint programming Systems, a post-conference of CP 2000, Singapore, Singapore, pp 118–133. https://univ-angers.hal.science/hal-04031165

    Google Scholar 

  25. Kilby P, Shaw P (2006) Vehicle routing. In: Rossi F, van Beek P, Walsh T (eds) Handbook of constraint programming, chap 23. Elsevier, pp 801–836

    Google Scholar 

  26. Kroon L, Huisman D, Abbink E, Fioole PJ, Fischetti M, Maróti G, Schrijver A, Steenbeek A, Ybema R (2009) The new Dutch timetable: the or revolution. Interfaces 39(1):6–17

    Article  Google Scholar 

  27. Laborie P, Rogerie J, Shaw P, Vilím P (2018) IBM ILOG CP optimizer for scheduling. Constraints 23:210–250

    Article  MathSciNet  MATH  Google Scholar 

  28. Laburthe F, Caseau Y (1998) SALSA: a language for search algorithms. In: Fourth International Conference on the Principles and Practice of Constraint Programming (CP’98), Pisa, Italy

    Google Scholar 

  29. McAloon K, Tretkoff C, Wetzel G (1997) Sport league scheduling. In:Proceedings of the 3th Ilog International Users Meeting, Paris, France

    Google Scholar 

  30. Naveh Y, Richter Y, Altshuler Y, Gresh DL, Connors DP (2007) Workforce optimization: identification and assignment of professional workers using constraint programming. IBM J Res Dev 51(3.4):263–279

    Google Scholar 

  31. Ohrimenko O, Stuckey PJ, Codish M (2007) Propagation = lazy clause generation. In: Proceedings of 13th International Conference on the Principles and Practice of Constraint Programming, Providence, RI, USA, 23–27 Sept, pp 544–558

    Google Scholar 

  32. Older W, Benhamou F (1993) Programming in CLP(BNR). In: PPCP’93, Newport, RI (USA)

    Google Scholar 

  33. Puranik Y, Sahinidis NV (2017) Domain reduction techniques for global NLP and MINLP optimization. Constraints 22(3):338–376

    Article  MathSciNet  MATH  Google Scholar 

  34. Régin J (1994) A filtering algorithm for constraints of difference in CSPs. In: Proceedings of the 12th National Conference on Artificial Intelligence, vol 1, Seattle, WA, USA, 31 July–4 Aug 1994. AAAI Press/The MIT Press, pp 362–367

    Google Scholar 

  35. Régin JC (1998) Sport league scheduling. In: INFORMS, Montreal, Canada

    Google Scholar 

  36. Régin JC (2011) Global constraints: a survey. In: van Hentenryck P, Milano M (eds) Hybrid optimization: the ten years of CPAIOR. Springer, pp 63–134

    Google Scholar 

  37. Rossi F, van Beek P, Walsh T (eds) (2006) Handbook of constraint programming. Elsevier

    MATH  Google Scholar 

  38. Russell SJ, Norvig P (2020) Artificial intelligence: a modern approach, 4th edn. Prentice Hall

    MATH  Google Scholar 

  39. Schrijvers T, Tack G, Wuille P, Samulowitz H, Stuckey P (2013) Search combinators. Constraints 18(2):269–305. https://doi.org/10.1007/s10601-012-9137-8

    Article  MathSciNet  MATH  Google Scholar 

  40. Schutt A, Feydy T, Stuckey PJ, Wallace MG (2011) Explaining the cumulative propagator. Constraints 16(3):250–282

    Article  MathSciNet  MATH  Google Scholar 

  41. Shaw P (1998) Using constraint programming and local search methods to solve vehicle routing problems. In: Principles and practice of constraint programming, vol 1520. Lecture Notes in Computer Science. Springer, pp 417–431

    Google Scholar 

  42. Tawarmalani M, Sahinidis NV (2002) Convexification and global optimization in continuous and mixed-integer nonlinear programming: theory, algorithms, software, and applications. Springer

    Book  MATH  Google Scholar 

  43. Trick MA (2003) A dynamic programming approach for consistency and propagation for knapsack constraints. Ann Oper Res 118(1–4):73–84

    Article  MathSciNet  MATH  Google Scholar 

  44. Van Hentenryck P (1999) The OPL optimization programming language. The MIT Press, Cambridge, Mass

    Google Scholar 

  45. Van Hentenryck P, Michel L (2013) The objective-CP optimization system. In: Schulte C (ed) Principles and practice of constraint programming. Springer Berlin/Heidelberg, pp 8–29

    Chapter  Google Scholar 

  46. Van Hentenryck P, Michel L, Deville Y (1997) Numerica: a modeling language for global optimization. MIT Press

    Book  Google Scholar 

  47. Van Hentenryck P, Michel L, Perron L, Regin J (1999) Constraint programming in OPL. In: Proceedings of the International Conference on the Principles and Practice of Declarative Programming (PPDP’99), Paris, France, pp 98–116 (Invited Paper)

    Google Scholar 

  48. Van Hentenryck P, Flener P, Pearson J, Ågren M (2003) Tractable symmetry breaking for CSPS with interchangeable values. In: International Joint Conference on Artificial Intelligence (IJCAI’03)

    Google Scholar 

  49. Wallace M (1996) Practical applications of constraint programming. Constraints 1:139–168

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Willem-Jan van Hoeve .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 Springer Nature Switzerland AG

About this entry

Check for updates. Verify currency and authenticity via CrossMark

Cite this entry

Van Hentenryck, P., van Hoeve, WJ. (2023). Constraint Programming. In: Pardalos, P.M., Prokopyev, O.A. (eds) Encyclopedia of Optimization. Springer, Cham. https://doi.org/10.1007/978-3-030-54621-2_713-1

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-54621-2_713-1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-54621-2

  • Online ISBN: 978-3-030-54621-2

  • eBook Packages: Springer Reference MathematicsReference Module Computer Science and Engineering

Publish with us

Policies and ethics