Abstract
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.
Similar content being viewed by others
References
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.
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.
Beldiceanu, N., Carlsson, M., Rampon, J.-X. (2010). Global constraint catalog. The Internet.
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.
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.
Carlson, B. (1995). Compiling and executing finite domain constraints. PhD thesis, Uppsala University.
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.
Correia, M. (2010). Modern techniques for constraint solving: The CaSPER experience. PhD thesis, Universidade Nova de Lisboa. Pedro Barahona (superv.).
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,
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.
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).
Gecode (2010). Gecode: Generic constraint development environment. The Internet.
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.
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.
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.
Gent, I.P., & Walsh, T. (1999). CSPLib: A benchmark library for constraints. Technical report, APES-09-1999.
Hentenryck, P.V., Saraswat, V., Deville, Y. (1992). Constraint processing in cc(FD). Technical report, Brown University.
ILOG (2003). ILOG S olver 6.0 Reference Manual. ILOG s.a.
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.
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.
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). Springer
Rossi, F., Beek, P.V., Walsh, T. (Eds.) (2006). Handbook of constraint programming. Foundations of artificial intelligence. Elsevier Science.
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.
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.
Schulte, C., & Tack, G. (2012). View-based propagator derivation. In Constraints (pp. 1–33).
Tack, G. (2009). Constraint propagation—models, techniques, implementation. Doctoral dissertation, Saarland University.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Correia, M., Barahona, P. View-based propagation of decomposable constraints. Constraints 18, 579–608 (2013). https://doi.org/10.1007/s10601-013-9140-8
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10601-013-9140-8