A language for optimizing constraint propagation

This thesis describes projection constraints (PCs), a language for compiling and optimizing constraint propagation in the numeric and Boolean domains. An optimizing compiler based on PCs has been implemented in Nicolog, a constraint logic programming (CLP) language. In Nicolog, like other CLP languages such as CHIP, Echidna, CLP(BNR), cc(FD), and clp(FD), domains for variables are explicitly represented and constraint processing is implemented with consistency algorithms. Nicolog compiles each constraint into a set of arc revision procedures, which are expressed as PCs. Instead of using full arc revision based on enumeration, Nicolog uses regions where functions are monotonic to express arc revision procedures in terms of interval computations and branching constructs. Nicolog compiles complex constraints directly, not needing to approximate them with a restricted set of basic constraints or to introduce extra variables for subexpressions. The Nicolog compiler can handle a very general class of constraints, allowing an arbitrary mixture of integer, real, and Boolean operations with a variety of domain representations. The only requirement is that for each domain, it must be possible to compute a set of intervals whose union contains that domain. Nicolog also lets the user program using PCs directly making it possible to implement sophisticated arc revision procedures. This thesis shows that PCs are a simple, efficient, and flexible way to implement consistency algorithms for complex mixed numeric and boolean constraints. Empirical results with a prototype Nicolog implementation show it can solve hard problems with speed comparable to the fastest CLP systems.

[1]  G. Dantzig,et al.  Notes on Linear Programming: Part 1. The Generalized Simplex Method for Minimizing a Linear Form under Linear Inequality Restraints , 1954 .

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

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

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

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

[6]  G. Alefeld,et al.  Introduction to Interval Computation , 1983 .

[7]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[8]  Alan Bundy A generalized interval package and its use for semantic checking , 1984, TOMS.

[9]  Eugene C. Freuder,et al.  The Complexity of Some Polynomial Network Consistency Algorithms for Constraint Satisfaction Problems , 1985, Artif. Intell..

[10]  Eugene C. Freuder A sufficient condition for backtrack-bounded search , 1985, JACM.

[11]  Alan K. Mackworth Constraint Satisfaction , 1985 .

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

[13]  Leon Sterling,et al.  The Art of Prolog - Advanced Programming Techniques , 1986 .

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

[15]  Joxan Jaffar,et al.  Methodology and Implementation of a CLP System , 1987, ICLP.

[16]  Ernest Davis,et al.  Constraint Propagation with Interval Labels , 1987, Artif. Intell..

[17]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[18]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[19]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[20]  Wolfram Büttner,et al.  Embedding Boolean Expressions into Logic Programming , 1987, J. Symb. Comput..

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

[22]  Helmut Simonis,et al.  Test Generation using the Constraint Logic Programming Language CHIP , 1989, International Conference on Logic Programming.

[23]  Pascal Van Hentenryck,et al.  Simulation of Hybrid Circuits in Constraint Logic Programming , 1989, IJCAI.

[24]  Akira Aiba,et al.  CAL: A Theoretical Background of Constraint Logic Programming and its Applications , 1988, J. Symb. Comput..

[25]  Bernard A. Nadel,et al.  Constraint satisfaction algorithms 1 , 1989, Comput. Intell..

[26]  Rina Dechter,et al.  Tree Clustering for Constraint Networks , 1989, Artif. Intell..

[27]  Pascal Van Hentenryck Constraint satisfaction in logic programming , 1989, Logic programming.

[28]  Alain Colmerauer,et al.  An introduction to Prolog III , 1989, CACM.

[29]  W. Older,et al.  Extending Prolog with Constraint Arithmetic on Real Intervals , 1990 .

[30]  Pascal Van Hentenryck,et al.  Solving Large Combinatorial Problems in Logic Programming , 1990, J. Log. Program..

[31]  Nicolas Beldiceanu,et al.  Overview of the CHIP Compiler System , 1993, WCLP.

[32]  Pascal Van Hentenryck,et al.  An Efficient Arc Consistency Algorithm for a Class of CSP Problems , 1991, IJCAI.

[33]  Kenneth Falconer,et al.  Unsolved Problems In Geometry , 1991 .

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

[35]  Pascal Van Hentenryck,et al.  The Cardinality Operator: A New Logical Connective for Constraint Logic Programming , 1990, WCLP.

[36]  William S. Havens,et al.  HIERARCHICAL ARC CONSISTENCY FOR DISJOINT REAL INTERVALS IN CONSTRAINT LOGIC PROGRAMMING , 1992, Comput. Intell..

[37]  Roland H. C. Yap,et al.  An abstract machine for CLP(R) , 1992, PLDI '92.

[38]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

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

[40]  William S. Havens,et al.  Intelligent Backtracking in the Echidna Constraint Logic Programming System , 1992 .

[41]  Greg Sidebottom Implementing CLP(IB) Using the Connection Theorem Proving Method and a Clause Management System , 1993, J. Symb. Comput..

[42]  Philippe Codognet,et al.  Boolean Constraint Solving Using clp(FD) , 1993, ILPS.

[43]  Philippe Codognet,et al.  A Minimal Extension of the WAM for clp(FD) , 1993, ICLP.

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

[45]  S. T. Buckland,et al.  An Introduction to the Bootstrap. , 1994 .

[46]  N. Bose Gröbner Bases: An Algorithmic Method in Polynomial Ideal Theory , 1995 .

[47]  Andreas Krall,et al.  High-Level Constraints over Finite Domains , 1995, Constraint Processing, Selected Papers.