, Volume 19, Issue 1, pp 57–76 | Cite as

Propagation engine prototyping with a domain specific language

  • Charles Prud’homme
  • Xavier Lorca
  • Rémi Douence
  • Narendra Jussien


Constraint propagation is at the heart of constraint solvers. Two main trends co-exist for its implementation: variable-oriented propagation engines and constraint-oriented propagation engines. Those two approaches ensure the same level of local consistency but their efficiency (computation time) can be quite different depending on the instance solved. However, it is usually accepted that there is no best approach in general, and modern constraint solvers implement only one. In this paper, we would like to go a step further providing a solver independent language at the modeling stage to enable the design of propagation engines. We validate our proposal with a reference implementation based on the Choco solver and the MiniZinc constraint modeling language.


Propagation Constraint solver Domain specific language Implementation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Mackworth, A.K. (1977). Consistency in networks of relations. Artificial Intelligence, 8(1), 99–118.CrossRefzbMATHMathSciNetGoogle Scholar
  2. 2.
    McGregor, J.J. (1979). Relational consistency algorithms and their application in finding subgraph and graph isomorphisms. Information Sciences, 19(3), 229–250.CrossRefzbMATHMathSciNetGoogle Scholar
  3. 3.
    Mohr, R., & Henderson, T. (1986). Arc and path consistency revisited. Artificial Intelligence, 28, 225–233.CrossRefGoogle Scholar
  4. 4.
    Van Hentenryck, P., Deville, Y., Teng, C.-M. (1992). A generic arc-consistency algorithm and its specializations. AI, 57(2–3), 291–321zbMATHGoogle Scholar
  5. 5.
    Carlsson, M., Ottosson, G., Carlson, B. (1997). An open-ended finite domain constraint solver. In PLILP ’97 (pp. 191–206).Google Scholar
  6. 6.
    Laburthe, F. (2000). Choco: Implementing a CP kernel. In TRICS (pp. 71–85).Google Scholar
  7. 7.
    van Deursen, A., Klint, P., Visser, J. (2000). Domain-specific languages: An annotated bibliography. In SIGPLAN Not. (pp. 26–36).Google Scholar
  8. 8.
    Boussemart, F., Hemery, F., Lecoutre, C. (2004). Revision ordering heuristics for the constraint satisfaction problem. In CP’04 (pp. 9–43).Google Scholar
  9. 9.
    Bessiere, C. (2006). Constraint propagation. Technical report 06020, LIRMM.Google Scholar
  10. 10.
    Gent, I.P., Jefferson, C., Miguel, I. (2006). Minion: A fast scalable constraint solver. In Proceedings of ECAI 2006 (pp. 98–102). IOS Press.Google Scholar
  11. 11.
    Gent, I.P., Jefferson, C., Miguel, I. (2006). Watched literals for constraint propagation in minion. In Procedings CP 2006 (pp. 182–197).Google Scholar
  12. 12.
    Katriel, I. (2006). Expected-case analysis for delayed filtering. In Lecture notes in computer science (pp. 119–125). Springer Berlin Heidelberg.Google Scholar
  13. 13.
    Lagerkvist, M.Z., & Schulte, C. (2007). Advisors for incremental propagation. In CP 2007 (pp 409–422).Google Scholar
  14. 14.
    Gent, I.P., Miguel, I., Nightingale, P. (2008). Generalized arc consistency for the alldifferent constraint: an empirical survey. Artificial Intelligence, 172(18), 1973–2000.CrossRefzbMATHMathSciNetGoogle Scholar
  15. 15.
    Schulte, C., & Stuckey, P.J. (2008). Efficient constraint propagation engines. ACM Transactions on Programming Languages and Systems, 31(1). doi: 10.1145/1452044.1452046.
  16. 16.
    Lagerkvist, M.Z., & Schulte, C. (2009). Propagator groups. In Gent, I. (Ed.) CP’09 (pp. 524–538).Google Scholar
  17. 17.
    Schulte, C., & Tack, G. (2010). Implementing efficient propagation control. In Jefferson, C., Nightingale, P., Tack, G. (Eds.) TRICS 2010.Google Scholar
  18. 18.
    Gent, I.P., & Walsh, T. (1999). Csplib: a benchmark library for constraints. Technical report, APES-09-1999.Google Scholar
  19. 19.
    Nethercote, N., Stuckey, P.J., Becket, R., Brand, S., Duck, G.J., Tack, G. (2007). MiniZinc: Towards a standard CP modelling language. In CP’07 (pp. 529–543).Google Scholar
  20. 20.
    IBM ILOG CPLEX Optimizer (2009). Accessed 26 July 2013.
  21. 21.
    Gecode (2012). Generic constraint development environment. Accessed 26 July 2013.
  22. 22.
    JaCoP (2012). Java constraint solver. Accessed 26 July 2013.
  23. 23.
    or-Tools (2012). Operations research tools developed at google. Accessed 26 July 2013.

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  • Charles Prud’homme
    • 1
  • Xavier Lorca
    • 1
  • Rémi Douence
    • 1
  • Narendra Jussien
    • 1
  1. 1.EMNantes, INRIA TASC, CNRS LINANantes Cedex 3France

Personalised recommendations