Implementation of the relation domain for constraint programming

Relations are fundamental structures for knowledge representation. Relational queries are used to extract information from associated relations in databases. We propose to include relations in constraint programming (CP) as decision variables and promoting relational operations to constraints. That leads to new possibilities for modeling and solving CSPs. Performance and applicability are two aspects to take into account before considering the new domain practical. In this paper we address the problem of achieving a practical implementation of the system. That includes compact representation of the data in relations and good performance of the relational operations. This compact representation relies upon representing relations into binary decision diagrams (BDDs) and rewriting operations on relations for this specic representation. Optimized implementations of the operations exist when the BDD representation satises particular properties. A solver that maximizes the existence of such properties for a CSP on relations is provided. This ensures the maximum performance from the constraint solver. The implementation of the relation constraint system is publicly available as a Gecode extension[1].

[1]  Dirk Beyer,et al.  Relational programming with CrocoPat , 2006, ICSE.

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

[3]  Peter Van Roy,et al.  A New Approach for Constraint Programming in Music using Relation Domains , 2012, ICMC.

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

[5]  E. F. CODD,et al.  A relational model of data for large shared data banks , 1970, CACM.

[6]  Sofia Cassel,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 2012 .

[7]  Carmen Gervet New structures of symbolic constraint objects: sets and graphs , 1993 .

[8]  Ondrej Lhoták,et al.  Jedd: a BDD-based relational extension of Java , 2004, PLDI '04.

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

[10]  Fred Spiessens,et al.  Patterns of safe collaboration , 2007 .

[11]  Brahim Hnich,et al.  Function Variables for Constraint Programming , 2003 .

[12]  Catuscia Palamidessi,et al.  Differential Privacy for Relational Algebra: Improving the Sensitivity Bounds via Constraint Systems , 2012, QAPL.

[13]  Dirk Beyer,et al.  Efficient relational calculation for software analysis , 2005, IEEE Transactions on Software Engineering.

[14]  Pierre Flener,et al.  Introducing ESRA, a Relational Language for Modelling Combinatorial Problems , 2003, CP.

[15]  Peter Van Roy,et al.  Practical Uses of Constraint Programming in Music using Relation Domains , 2012 .

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

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

[18]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[19]  Sheldon B. Akers,et al.  Binary Decision Diagrams , 1978, IEEE Transactions on Computers.

[20]  C. Y. Lee Representation of switching circuits by binary-decision programs , 1959 .

[21]  Jean-Charles Régin,et al.  Robust and Parallel Solving of a Network Design Problem , 2002, CP.

[22]  Brian A. Davey,et al.  An Introduction to Lattices and Order , 1989 .

[23]  Michael J. Maher,et al.  Constraint Logic Programming: A Survey , 1994, J. Log. Program..

[24]  Toni Mancini,et al.  Combining relational algebra, SQL, constraint modelling, and local search* , 2006, Theory and Practice of Logic Programming.