, Volume 18, Issue 4, pp 579–608 | Cite as

View-based propagation of decomposable constraints

  • Marco Correia
  • Pedro Barahona


Constraints that may be obtained by composition from simpler constraints are present, in some way or another, in almost every constraint program. The decomposition of such constraints is a standard technique for obtaining an adequate propagation algorithm from a combination of propagators designed for simpler constraints. The decomposition approach is appealing in several ways. Firstly because creating a specific propagator for every constraint is clearly infeasible since the number of constraints is infinite. Secondly, because designing a propagation algorithm for complex constraints can be very challenging. Finally, reusing existing propagators allows to reduce the size of code to be developed and maintained. Traditionally, constraint solvers automatically decompose constraints into simpler ones using additional auxiliary variables and propagators, or expect the users to perform such decomposition themselves, eventually leading to the same propagation model. In this paper we explore views, an alternative way to create efficient propagators for such constraints in a modular, simple and correct way, which avoids the introduction of auxiliary variables and propagators.


Constraint programming Propagation Views 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Balasubramaniam, D., Jefferson, C., Kotthoff, L., Miguel, I., Nightingale, P. (2012). An automated approach to generating efficient constraint solvers. In Proceedings of the 2012 International conference on software engineering, ICSE 2012 (pp. 661–671). Piscataway, NJ, USA, IEEE Press.Google Scholar
  2. 2.
    Ball, T., Podelski, A., Rajamani, S.K. (2003). Boolean and Cartesian abstraction for model checking C programs. International Journal on Software Tools for Technology Transfer (STTT), 5(1):49–58.CrossRefGoogle Scholar
  3. 3.
    Beldiceanu, N., Carlsson, M., Rampon, J.-X. (2010). Global constraint catalog. The Internet.Google Scholar
  4. 4.
    Benhamou, F. (1995). Interval constraint logic programming. In Podelski, A. (Ed.), Constraint programming: basics and trends, Lecture Notes in Computer Science (Vol. 910, pp. 1–21). Springer.Google Scholar
  5. 5.
    Benhamou, F. (1996). Heterogeneous constraint solving. In Algebraic and logic programming, ALP’96, Lecture Notes in Computer Science (Vol. 1139, pp. 62–76). Springer-Verlag.Google Scholar
  6. 6.
    Carlson, B. (1995). Compiling and executing finite domain constraints. PhD thesis, Uppsala University.Google Scholar
  7. 7.
    Cheng, K.C.K., & Yap, R.H.C. (2008). Maintaining generalized arc consistency on ad hoc r-ary constraints. In Stuckey, P.J. (Ed.), Principles and practice of constraint programming, CP’08, Lecture Notes in Computer Science (Vol. 5202, pp. 509–523). Springer.Google Scholar
  8. 8.
    Correia, M. (2010). Modern techniques for constraint solving: The CaSPER experience. PhD thesis, Universidade Nova de Lisboa. Pedro Barahona (superv.).Google Scholar
  9. 9.
    Correia, M., & Barahona, P. (2008). On the efficiency of impact based heuristics. In Principles and practice of constraint programming, CP’08, Lecture Notes in Computer Science (Vol. 5202, pp. 608–612). Springer,Google Scholar
  10. 10.
    Correia, M., Barahona, P., Azevedo, F. (2005). CaSPER: A programming environment for development and integration of constraint solvers. In Azevedo, F. (Ed.) Workshop on constraint programming beyond finite integer domains, BeyondFD’05.Google Scholar
  11. 11.
    Frisch, A.M., Grum, M., Jefferson, C., Hernandez, B.M., Miguel, I. (2005). The essence of essence: A constraint language for specifying combinatorial problems. In Proceedings of the 20th international joint conference on artificial intelligence (pp. 73–88).Google Scholar
  12. 12.
    Gecode (2010). Gecode: Generic constraint development environment. The Internet.Google Scholar
  13. 13.
    Gent, I.P., Jefferson, C., Miguel, I. (2006). Minion: A fast scalable constraint solver. In European conference on artificial intelligence, ECAI’06 (pp. 98–102). IOS Press.Google Scholar
  14. 14.
    Gent, I.P., Jefferson, C., Miguel, I. (2006) Watched literals for constraint propagation in minion. In Benhamou, F. (Ed.) Principles and practice of constraint programming, CP’06, Lecture Notes in Computer Science (Vol. 4204, pp. 182–197). Springer.Google Scholar
  15. 15.
    Gent, I.P., Jefferson, C., Miguel, I., Nightingale, P. (2007). Data structures for generalised arc consistency for extensional constraints. In Conference on artificial intelligence, AAAI’07 (pp. 191–197). AAAI Press.Google Scholar
  16. 16.
    Gent, I.P., & Walsh, T. (1999). CSPLib: A benchmark library for constraints. Technical report, APES-09-1999.Google Scholar
  17. 17.
    Hentenryck, P.V., Saraswat, V., Deville, Y. (1992). Constraint processing in cc(FD). Technical report, Brown University.Google Scholar
  18. 18.
    ILOG (2003). ILOG S olver 6.0 Reference Manual. ILOG s.a.Google Scholar
  19. 19.
    Lopez-Ortiz, R., Quimper, C.-G., Tromp, J., Beek, P.V. (2003). A fast and simple algorithm for bounds consistency of the all different constraint. In International joint conference on artificial intelligence, IJCAI’03 (pp. 245–250). Morgan Kaufmann Publishers, Inc.Google Scholar
  20. 20.
    Maher, M.J. (2002). Propagation completeness of reactive constraints. In International conference on logic programming, ICLP’02, Lecture Notes in Computer Science (Vol. 2401, pp. 148–162). Springer.Google Scholar
  21. 21.
    Nethercote, N., Stuckey, P.J., Becket, R., Brand, S., Duck, G.J., Tack, G. (2007). Minizinc: Towards a standard CP modelling language. In Bessière, C. (Ed.), Principles and practice of constraint programming, CP’07, Lecture Notes in Computer Science (Vol. 4741, pp. 529–543). SpringerGoogle Scholar
  22. 22.
    Rossi, F., Beek, P.V., Walsh, T. (Eds.) (2006). Handbook of constraint programming. Foundations of artificial intelligence. Elsevier Science.Google Scholar
  23. 23.
    Schulte, C., & Stuckey, P.J. (2004). Speeding up constraint propagation. In Principles and practice of constraint programming, CP’04, Lecture Notes on Computer Science (Vol. 3258, pp. 619–633). Spinger.Google Scholar
  24. 24.
    Schulte, C., & Tack, G. (2005). Views and iterators for generic constraint implementations. In Recent advances in constraints, Lecture Notes in Computer Science (Vol. 3978, pp. 118–132). Springer.Google Scholar
  25. 25.
    Schulte, C., & Tack, G. (2012). View-based propagator derivation. In Constraints (pp. 1–33).Google Scholar
  26. 26.
    Tack, G. (2009). Constraint propagation—models, techniques, implementation. Doctoral dissertation, Saarland University.Google Scholar

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  1. 1.CENTRIA - Centre for Artificial Intelligence, Departamento de InformáticaFCT/UNLCaparicaPortugal

Personalised recommendations