Efficient constraint propagation engines

This article presents a model and implementation techniques for speeding up constraint propagation. Three fundamental approaches to improving constraint propagation based on propagators as implementations of constraints are explored: keeping track of which propagators are at fixpoint, choosing which propagator to apply next, and how to combine several propagators for the same constraint. We show how idempotence reasoning and events help track fixpoints more accurately. We improve these methods by using them dynamically (taking into account current variable domains to improve accuracy). We define priority-based approaches to choosing a next propagator and show that dynamic priorities can improve propagation. We illustrate that the use of multiple propagators for the same constraint can be advantageous with priorities, and introduce staged propagators that combine the effects of multiple propagators with priorities for greater efficiency.

[1]  Mats Carlsson,et al.  Revisiting the Lexicographic Ordering Constraint , 2002 .

[2]  Krzysztof R. Apt,et al.  Principles of constraint programming , 2003 .

[3]  Alan K. Mackworth Consistency in Networks of Relations , 1977, Artif. Intell..

[4]  Mats Carlsson,et al.  SICStus Prolog User''s Manual , 1993 .

[5]  Neng-Fa Zhou Programming finite-domain constraint propagators in Action Rules , 2006, Theory Pract. Log. Program..

[6]  Pascal Van Hentenryck The OPL optimization programming language , 1999 .

[7]  Peter J. Stuckey,et al.  Improving Linear Constraint Propagation by Changing Constraint Representation , 2003, Constraints.

[8]  Roger Mohr,et al.  Good Old Discrete Relaxation , 1988, ECAI.

[9]  Peter J. Stuckey,et al.  Speeding Up Constraint Propagation , 2004, CP.

[10]  Edward P. K. Tsang,et al.  Constraint Based Scheduling: Applying Constraint Programming to Scheduling Problems , 2003, J. Sched..

[11]  Gilles Pesant,et al.  A Regular Language Membership Constraint for Finite Sequences of Variables , 2004, CP.

[12]  Pascal Van Hentenryck,et al.  Design, Implementation, and Evaluation of the Constraint Language cc(FD) , 1994, Constraint Programming.

[13]  Philippe Codognet,et al.  Compiling Constraints in clp(FD) , 1996, J. Log. Program..

[14]  François Laburhe CHOCO: implementing a CP kernel , 2007 .

[15]  Jean-Charles Régin,et al.  A Filtering Algorithm for Constraints of Difference in CSPs , 1994, AAAI.

[16]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[17]  Eric Monfroy,et al.  Implementing Constraint Propagation by Composition of Reductions , 2003, ICLP.

[18]  Christian Schulte,et al.  Advisors for Incremental Propagation , 2007, CP.

[19]  Mats Carlsson,et al.  An Open-Ended Finite Domain Constraint Solver , 1997, PLILP.

[20]  Frédéric Benhamou,et al.  Heterogeneous Constraint Solving , 1996, ALP.

[21]  Ian P. Gent,et al.  Watched Literals for Constraint Propagation in Minion , 2006, CP.

[22]  Pierre Saveant Constraint Reduction at the Type Level , 2000 .

[23]  Thomas C. Henderson,et al.  Arc and Path Consistency Revisited , 1986, Artif. Intell..

[24]  Markus P. J. Fromherz,et al.  Constraint-based scheduling , 2001, Proceedings of the 2001 American Control Conference. (Cat. No.01CH37148).

[25]  Henry Ernest Dudeney Amusements in Mathematics , 1917, Nature.

[26]  J StuckeyPeter,et al.  Efficient constraint propagation engines , 2008 .

[27]  Arnaud Gotlieb,et al.  Dynamic Optimization of Interval Narrowing Algorithms , 1998, J. Log. Program..

[28]  Eric Monfroy Using “weaker” functions for constraint propagation over real numbers , 1999, SAC '99.

[29]  Pascal Van Hentenryck,et al.  Constraint Satisfaction Using Constraint Logic Programming , 1992, Artif. Intell..

[30]  Peter J. Stuckey,et al.  Finite Domain Bounds Consistency Revisited , 2004, Australian Conference on Artificial Intelligence.

[31]  Jean-François Puget,et al.  A Fast Algorithm for the Bound Consistency of alldiff Constraints , 1998, AAAI/IAAI.

[32]  Peter J. Stuckey,et al.  Programming with Constraints: An Introduction , 1998 .

[33]  Pascal Van Hentenryck,et al.  Constraint processing in cc(fd) , 1992 .

[34]  Joachim Schimpf,et al.  ECLiPSe: A Platform for Constraint Logic Programming , 1997 .

[35]  Peter J. Stuckey,et al.  When do bounds and domain propagation lead to the same search space , 2001, PPDP '01.