Constraint propagation: models, techniques, implementation

This dissertation presents the design of a propagation-based constraint solver. The design is based on models that span several levels of abstraction, ranging from a mathematical foundation, to a high-level implementation architecture, to concrete data structures and algorithms. This principled design approach results in a wellunderstood, correct, modular, and hence efficient implementation. The core of the developed architecture is the propagation kernel. It provides the propagation infrastructure and is thus crucial for correctness and efficiency of the solver. Based on a mathematical model as well as a careful design of the employed algorithms and data structures, the presented architecture results in an efficient and domain-independent kernel. Constraints are realized by propagators, and implementing a propagator is a challenging, error-prone, and time-consuming task. A practically useful solver must however provide a comprehensive propagator library. This dissertation introduces two techniques for automatically deriving correct and efficient propagators. Views generalize variables and are used to derive propagators from existing propagators. For constraints over set variables, propagators are derived from formal constraint specifications. The presented techniques are the basis of Gecode, a production-quality, highly efficient, and widely deployed constraint solver. Gecode is the empirical evidence for success and relevance of the principled design approach of this dissertation.

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

[2]  Thom W. Frühwirth,et al.  Theory and Practice of Constraint Handling Rules , 1998, J. Log. Program..

[3]  Carmen Gervet,et al.  Constraints over Structured Domains , 2006, Handbook of Constraint Programming.

[4]  Yves Deville,et al.  CP(Graph): Introducing a Graph Computation Domain in Constraint Programming , 2005, CP.

[5]  Mats Carlsson,et al.  Entailment of Finite Domain Constraints , 1994, ICLP.

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

[7]  Victor W. Marek,et al.  Proceedings of the 1994 International Symposium on Logic programming , 1994 .

[8]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[9]  Sverker Janson,et al.  AKL - A Multiparadigm Programming Language , 1994 .

[10]  Bjorn Carlson,et al.  Compiling and executing finite domain constraints , 1995, Uppsala theses in computing science.

[11]  Peter J. Stuckey,et al.  Efficient constraint propagation engines , 2006, TOPL.

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

[13]  Martin Henz,et al.  Components for State Restoration in Tree Search , 2001, CP.

[14]  Joao Marques-Silva,et al.  GRASP-A new search algorithm for satisfiability , 1996, Proceedings of International Conference on Computer Aided Design.

[15]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[16]  Ugo Montanari,et al.  Networks of constraints: Fundamental properties and applications to picture processing , 1974, Inf. Sci..

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

[18]  Toby Walsh,et al.  CSPLIB: A Benchmark Library for Constraints , 1999, CP.

[19]  Peter L. Balise,et al.  Boolean Algebra and Its Applications , 1995 .

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

[21]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[22]  Kurt Mehlhorn,et al.  LEDA: a platform for combinatorial and geometric computing , 1997, CACM.

[23]  Ian P. Gent,et al.  Symmetry in Constraint Programming , 2006, Handbook of Constraint Programming.

[24]  Jean-Louis Laurière,et al.  A Language and a Program for Stating and Solving Combinatorial Problems , 1978, Artif. Intell..

[25]  Seif Haridi,et al.  Programming Paradigms of the Andorra Kernel Language , 1991, ISLP.

[26]  Hassan Aït-Kaci,et al.  Warren's Abstract Machine: A Tutorial Reconstruction , 1991 .

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

[28]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[29]  Francisco Azevedo Cardinal: A Finite Sets Constraint Solver , 2006, Constraints.

[30]  Michael J. Maher Propagation Completeness of Reactive Constraints , 2002, ICLP.

[31]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

[32]  Ian P. Gent,et al.  Models and Symmetry Breaking for 'Peaceable Armies of Queens' , 2004, CPAIOR.

[33]  Catriel Beeri,et al.  On the Desirability of Acyclic Database Schemes , 1983, JACM.

[34]  Guy L. Steele,et al.  Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) , 2005 .

[35]  Peter J. Stuckey,et al.  Dynamic Analysis of Bounds Versus Domain Propagation , 2008, ICLP.

[36]  Robert M. Haralick,et al.  Increasing Tree Search Efficiency for Constraint Satisfaction Problems , 1979, Artif. Intell..

[37]  Pedro Barahona,et al.  PSICO: Solving Protein Structures with Constraint Programming and Optimization , 2002, Constraints.

[38]  Michel Leconte,et al.  Beyond the Glass Box: Constraints as Objects , 1995, ILPS.

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

[40]  Dag Prawitz,et al.  An improved proof procedure1 , 2008 .

[41]  Slim Abdennadher,et al.  Essentials of Constraint Programming , 2010, Cognitive Technologies.

[42]  Thomas Stützle,et al.  SATLIB: An Online Resource for Research on SAT , 2000 .

[43]  Joxan Jaffar,et al.  Principles and Practice of Constraint Programming – CP’99 , 1999, Lecture Notes in Computer Science.

[44]  Claude-Guy Quimper,et al.  Efficient Propagators for Global Constraints , 2006 .

[45]  Kiziltan Zeynep,et al.  Constraint Programming with Multisets , 2002 .

[46]  Peter van Beek,et al.  Improved Algorithms for the Global Cardinality Constraint , 2004, CP.

[47]  Seif Haridi,et al.  AKL(FD) - A Concurrent Language for FD Programming , 1994, ILPS.

[48]  Toby Walsh,et al.  Handbook of Constraint Programming (Foundations of Artificial Intelligence) , 2006 .

[49]  Eugene C. Freuder,et al.  Contradicting Conventional Wisdom in Constraint Satisfaction , 1994, ECAI.

[50]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[51]  Carmen Gervet,et al.  Hybrid Set Domains to Strengthen Constraint Propagation and Reduce Symmetries , 2004, CP.

[52]  Peter J. Stuckey,et al.  Solving Set Constraint Satisfaction Problems using ROBDDs , 2005, J. Artif. Intell. Res..

[53]  Hans van Maaren,et al.  Sat2000: Highlights of Satisfiability Research in the Year 2000 , 2000 .

[54]  Peter J. Stuckey,et al.  MiniZinc: Towards a Standard CP Modelling Language , 2007, CP.

[55]  Gary Cornell,et al.  Core Java 2 , Volume 2: Advanced Features , 1999 .

[56]  Peter J. Stuckey,et al.  Dynamic variable elimination during propagation solving , 2008, PPDP '08.

[57]  François Laburthe,et al.  Improved CLP Scheduling with Task Intervals , 1994, ICLP.

[58]  Frédéric Benhamou,et al.  Continuous and Interval Constraints , 2006, Handbook of Constraint Programming.

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

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

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

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

[63]  Robin Milner,et al.  Definition of standard ML , 1990 .

[64]  John N. Hooker,et al.  A Constraint Store Based on Multivalued Decision Diagrams , 2007, CP.

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

[66]  Joxan Jaffar,et al.  A decision procedure for a class of set constraints , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.

[67]  Solomon W. Golomb,et al.  Backtrack Programming , 1965, JACM.

[68]  Laurent Perron Search Procedures and Parallelism in Constraint Programming , 1999, CP.

[69]  Tobias Müller,et al.  Constraint propagation in Mozart , 2001 .

[70]  Toby Walsh,et al.  Disjoint, Partition and Intersection Constraints for Set and Multiset Variables , 2004, CP.

[71]  Grégoire Dooms,et al.  The CP(Graph) computation domain in constraint programming , 2006 .

[72]  Christian Schulte Comparing Trailing and Copying for Constraint Programming , 1999, ICLP.

[73]  Carmen Gervet,et al.  Conjunto: Constraint Logic Programming with Finite Set Domains , 1994, ILPS.

[74]  Rina Dechter,et al.  Network-Based Heuristics for Constraint-Satisfaction Problems , 1987, Artif. Intell..

[75]  Carmen Gervet,et al.  Interval propagation to reason about sets: Definition and implementation of a practical language , 1997, Constraints.

[76]  Gert Smolka,et al.  The Oz Programming Model , 1996, Computer Science Today.

[77]  Prakash Panangaden,et al.  The semantic foundations of concurrent constraint programming , 1991, POPL '91.

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

[79]  Adnan Aziz,et al.  Constraint-based verification , 2006 .

[80]  John N. Hooker,et al.  Integrated methods for optimization , 2011, International series in operations research and management science.

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

[82]  Sebastian Will,et al.  Decomposition During Search for Propagation-Based Constraint Solvers , 2007, ArXiv.

[83]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[84]  A. Tarski Fundamentale Begriffe der Methodologie der deduktiven Wissenschaften. I , 1930 .

[85]  Pascal Van Hentenryck,et al.  CLP(Intervals) Revisited , 1994, ILPS.

[86]  R. E. A. Mason,et al.  Information Processing 83 , 1984 .

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

[88]  Philippe Baptiste Constraint-Based Scheduling: Two Extensions , 1994 .

[89]  Karem A. Sakallah,et al.  GRASP—a new search algorithm for satisfiability , 1996, ICCAD 1996.

[90]  Hilary Putnam,et al.  A Computing Procedure for Quantification Theory , 1960, JACM.

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

[92]  Peter van Beek,et al.  Fast Optimal Instruction Scheduling for Single-Issue Processors with Arbitrary Latencies , 2001, CP.

[93]  Pascal Van Hentenryck,et al.  The Constraint Logic Programming Language CHIP , 1988, FGCS.

[94]  Chris J. Cheney A nonrecursive list compacting algorithm , 1970, Commun. ACM.

[95]  Pascal Van Hentenryck,et al.  Length-Lex Ordering for Set CSPs , 2006, AAAI.

[96]  Pascal Van Hentenryck Logic Programming, Proceedings of the Eleventh International Conference on Logic Programming, Santa Marherita Ligure, Italy, June 13-18, 1994 , 1994, ICLP.

[97]  S. L. Édel'man Closure operators on a lattice , 1980 .

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

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

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

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

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

[103]  Roman Barták,et al.  Constraint Processing , 2009, Encyclopedia of Artificial Intelligence.

[104]  Eugene C. Freuder A Sufficient Condition for Backtrack-Free Search , 1982, JACM.

[105]  Pierre Flener,et al.  Generic Incremental Algorithms for Local Search , 2007, Constraints.

[106]  Krzysztof R. Apt,et al.  Constraint logic programming using Eclipse , 2007 .