Propagation engine prototyping with a domain specific language
- 107 Downloads
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.
KeywordsPropagation Constraint solver Domain specific language Implementation
Unable to display preview. Download preview PDF.
- 5.Carlsson, M., Ottosson, G., Carlson, B. (1997). An open-ended finite domain constraint solver. In PLILP ’97 (pp. 191–206).Google Scholar
- 6.Laburthe, F. (2000). Choco: Implementing a CP kernel. In TRICS (pp. 71–85).Google Scholar
- 7.van Deursen, A., Klint, P., Visser, J. (2000). Domain-specific languages: An annotated bibliography. In SIGPLAN Not. (pp. 26–36).Google Scholar
- 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.Bessiere, C. (2006). Constraint propagation. Technical report 06020, LIRMM.Google Scholar
- 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.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.Katriel, I. (2006). Expected-case analysis for delayed filtering. In Lecture notes in computer science (pp. 119–125). Springer Berlin Heidelberg.Google Scholar
- 13.Lagerkvist, M.Z., & Schulte, C. (2007). Advisors for incremental propagation. In CP 2007 (pp 409–422).Google Scholar
- 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.Lagerkvist, M.Z., & Schulte, C. (2009). Propagator groups. In Gent, I. (Ed.) CP’09 (pp. 524–538).Google Scholar
- 17.Schulte, C., & Tack, G. (2010). Implementing efficient propagation control. In Jefferson, C., Nightingale, P., Tack, G. (Eds.) TRICS 2010.Google Scholar
- 18.Gent, I.P., & Walsh, T. (1999). Csplib: a benchmark library for constraints. Technical report, APES-09-1999.Google Scholar
- 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.IBM ILOG CPLEX Optimizer (2009). http://www-01.ibm.com/software/integration/optimization/cplex-cp-optimizer/. Accessed 26 July 2013.
- 21.Gecode (2012). Generic constraint development environment. http://www.gecode.org. Accessed 26 July 2013.
- 22.JaCoP (2012). Java constraint solver. http://www.jacop.eu/. Accessed 26 July 2013.
- 23.or-Tools (2012). Operations research tools developed at google. http://code.google.com/p/or-tools/. Accessed 26 July 2013.