Implementing logical connectives in constraint programming

Combining constraints using logical connectives such as disjunction is ubiquitous in constraint programming, because it adds considerable expressive power to a constraint language. We explore the solver architecture needed to propagate such combinations of constraints efficiently. In particular we describe two new features named satisfying sets and constraint trees. We also make use of movable triggers (Gent et al., 2006) [1], and with these three complementary features we are able to make considerable efficiency gains. A key reason for the success of Boolean Satisfiability (SAT) solvers is their ability to propagate Or constraints efficiently, making use of movable triggers. We successfully generalise this approach to an Or of an arbitrary set of constraints, maintaining the crucial property that at most two constraints are active at any time, and no computation at all is done on the others. We also give an And propagator within our framework, which may be embedded within the Or. Using this approach, we demonstrate speedups of over 10,000 times in some cases, compared to traditional constraint programming approaches. We also prove that the Or algorithm enforces generalised arc consistency (GAC) when all its child constraints have a GAC propagator, and no variables are shared between children. By extending the Or propagator, we present a propagator for AtLeastK, which expresses that at least k of its child constraints are satisfied in any solution. Some logical expressions (e.g. exclusive-or) cannot be compactly expressed using And, Or and AtLeastK. Therefore we investigate reification of constraints. We present a fast generic algorithm for reification using satisfying sets and movable triggers.

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

[2]  Toby Walsh,et al.  Propagating Logical Combinations of Constraints , 2005, IJCAI.

[3]  Jörg Würtz,et al.  Constructive Disjunction Revisited , 1996, KI.

[4]  Ian P. Gent,et al.  Generalised arc consistency for the AllDifferent constraint: An empirical survey , 2008, Artif. Intell..

[5]  Toby Walsh,et al.  The Complexity of Reasoning with Global Constraints , 2007, Constraints.

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

[7]  Olivier Lhomme,et al.  An Efficient Filtering Algorithm for Disjunction of Constraints , 2003, CP.

[8]  Kenneth H. Rosen,et al.  Discrete Mathematics and its applications , 2000 .

[9]  Toby Walsh,et al.  The Complexity of Global Constraints , 2004, AAAI.

[10]  Inês Lynce,et al.  Search in the patience game 'Black Hole' , 2007, AI Commun..

[11]  O. Bininda-Emonds Phylogenetic Supertrees: Combining Information To Reveal The Tree Of Life , 2004 .

[12]  C. Colbourn,et al.  Handbook of Combinatorial Designs , 2006 .

[13]  Charles J. Colbourn,et al.  Handbook of Combinatorial Designs, Second Edition (Discrete Mathematics and Its Applications) , 2006 .

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

[15]  Christopher Jefferson,et al.  Representations in constraint programming , 2007 .

[16]  Theo Tryfonas,et al.  Frontiers in Artificial Intelligence and Applications , 2009 .

[17]  Jörg Würtz,et al.  Constructive Disjunction in Oz , 1995, WLP.

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

[19]  Patrick Prosser,et al.  The Ultrametric Constraint and its Application to Phylogenetics , 2008, J. Artif. Intell. Res..

[20]  Christian Schulte,et al.  Programming Deep Concurrent Constraint Combinators , 2000, PADL.

[21]  Ian Miguel,et al.  Modelling and solving English Peg Solitaire , 2006, Comput. Oper. Res..

[22]  Wu Wei,et al.  Supertree Construction with Constraint Programming , 2003, CP.

[23]  Ian P. Gent,et al.  Minion: A Fast Scalable Constraint Solver , 2006, ECAI.

[24]  Olivier Lhomme,et al.  Arc-Consistency Filtering Algorithms for Logical Combinations of Constraints , 2004, CPAIOR.

[25]  Toby Walsh,et al.  Handbook of Constraint Programming , 2006, Handbook of Constraint Programming.

[26]  Roland H. C. Yap,et al.  Towards "Propagation = Logic + Control" , 2006, ICLP.

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

[28]  Christian Schulte,et al.  Propagator Groups , 2009, CP.

[29]  Charles Semple,et al.  Supertree Algorithms for Nested Taxa , 2004 .