with finite domain constraints. We detail its implementation and present an abstract instruction set for the constraint solver that can be smoothly integrated into the WAM architecture. It is based on the use of a single primitive constraint X in r that embeds the core propagation mechanism. Complex user constraints such as linear equations or inequations are compiled into X in r expressions that encode the propagation scheme chosen to solve the constraint. The uniform treatment of a single primitive constraint leads to a better understanding of the overall constraint solving process and allows three main general optimizations that encompass many previous particular optimizations of "black-box " finite domain solvers. Implementation results show that this approach combines both simplicity and efficiency. Our clp(FD) system is about four times faster than CHIP on average, with peak speedup reaching eight. We also show that, following the "glass-box " approach, clp(FD) can be naturally enhanced with various new constraints such as constructive disjunction, boolean constraints, non-linear constraints and symbolic constraints.! 1.
|
877
|
Consistency in networks of relations
– Mackworth
- 1977
|
|
755
|
Constraint Logic Programming
– Jaffar, Lassez
- 1987
|
|
448
|
An abstract Prolog instruction set
– Warren
|
|
371
|
Increasing tree search efficiency for constraint satisfaction problems
– Haralick, Elliott
- 1980
|
|
301
|
Graph based algorithms for Boolean function representation
– Bryant
- 1986
|
|
286
|
An introduction to prolog III
– Colmerauer
- 1990
|
|
244
|
Domains for denotational semantics
– Scott
- 1982
|
|
194
|
Concurrent Constraint Programming Languages
– Saraswat
- 1989
|
|
192
|
Warren’s Abstract Machine: A Tutorial Reconstruction
– Ait-Kaci
- 1991
|
|
170
|
A generic arc-consistency algorithm and its specializations
– hentenryck, Deville, et al.
- 1992
|
|
137
|
Design, implementation, and evaluation of the constraint language CC(FD
– Hentenryck, Saraswat, et al.
- 1998
|
|
130
|
Constraint satisfaction algorithms
– Nadel
- 1989
|
|
114
|
Constraint logic programming
– Jaar, Lassez
- 1987
|
|
79
|
M.: Constraint Satisfaction Using Constraint Logic Programming
– Hentenryck, Simonis, et al.
- 1994
|
|
74
|
Constraint processing in cc(fd
– Hentenryck, Saraswat, et al.
- 1992
|
|
67
|
The cardinality operator: A new logical connective for Constraint Logic Programming
– Hentenryck, Deville
- 1991
|
|
60
|
Algorithms for testing the satisfiability of propositional formulae
– GALLO, URBANI
- 1989
|
|
57
|
Warren's Abstract Machine: A Tutorial Reconstruction
– At-Kaci
- 1991
|
|
51
|
The Andorra-I engine: A parallel implementation of the basic andorra model
– Costa, Warren, et al.
- 1991
|
|
49
|
Solving large combinatorial problems in Logic Programming
– Dincbas, Simonis, et al.
- 1990
|
|
40
|
Increasing tree search eciency for constraint satisfaction problems
– Haralick, Elliott
- 1980
|
|
36
|
Overview of the CHIP Compiler System
– Aggoun, Beldiceanu
- 1993
|
|
35
|
A minimal extension of the WAM for clp(FD
– Codognet, Diaz
- 1993
|
|
32
|
WAMCC: Compiling Prolog to C
– Codognet, Diaz
- 1995
|
|
32
|
An Abstract Machine for CLP(R
– Jaffar, Michaylov, et al.
- 1992
|
|
31
|
The Category of Constraint Systems is Cartesian-closed
– Saraswat
- 1992
|
|
24
|
Entailment of finite domain constraints
– Carlson, Carlsson, et al.
- 1994
|
|
22
|
Boolean unification: The story so far
– Martin, Nipkow
- 1989
|
|
19
|
A metalevel compiler of CLP(FD) and its combination with intelligent backtracking
– Codognet, Fages, et al.
- 1993
|
|
18
|
Boolean constraint solving using clp(FD
– Codognet, Diaz
- 1993
|
|
15
|
The Versatility of Handling Disjunctions as Constraints
– Jourdan, Sola
- 1993
|
|
14
|
Solving the Car Sequencing Problem
– Dincbas, Simonis, et al.
- 1988
|
|
12
|
Logic programming with pseudo-Boolean constraints
– Bockmayr
- 1993
|
|
10
|
A Methodology for Managing Hard Constraints in CLP Systems
– Jaffar, Michaylov, et al.
- 1991
|
|
9
|
clp(B): Combining simplicity and efficiency in Boolean constraint solving
– CODOGNET, DIAZ
- 1994
|
|
7
|
Programming in CLP(BNR
– Older, Benhamou
- 1993
|
|
7
|
Intelligent backtracking and sidetracking in horn clause programs
– Pereira, Porto
- 1979
|
|
6
|
Boolean Uni | The Story So Far
– Martin, Nipkow
- 1989
|
|
5
|
Étude de la compilation des langages logiques de programmation par contraintes sur les domaines finis : le système CLP(FD
– Diaz
- 1995
|
|
3
|
L'Evaluation Semantique en Calcul Propositionnel
– Rauzy
- 1989
|
|
3
|
Algorithms for Testing the Satis of Propositional Formulae
– Gallo, Urbani
- 1989
|
|
2
|
Time Stamps Techniques for the Trailed Data in CLP Systems
– Aggoun, Beldiceanu
- 1990
|
|
1
|
Constraint Solving and Entailment Algorithms for cc(FD). Research Report
– Carlsson, Carlsson
- 1993
|
|
1
|
Using clp(FD) to Support Air Traffic Flow Management
– Chemla, Diaz, et al.
- 1994
|
|
1
|
Technical report, LaBRI, Universit'e Bordeaux I
– Adia
- 1991
|
|
1
|
clp(B): Combining Simplicity and Eciency in Boolean Constraint Solving
– Codognet, Diaz
- 1994
|
|
1
|
Using clp(FD) to Support Air Trac Flow Management
– Chemla, Diaz, et al.
- 1994
|
|
1
|
38. A. Rauzy. Using Enumerative Methods for Boolean Uni
– Adia
- 1991
|