Interval propagation to reason about sets: Definition and implementation of a practical language

Local consistency techniques have been introduced in logic programming in order to extend the application domain of logic programming languages. The existing languages based on these techniques consider arithmetic constraints applied to variables ranging over finite integer domains. This makes difficult a natural and concise modelling as well as an efficient solving of a class of NP-complete combinatorial search problems dealing with sets. To overcome these problems, we propose a solution which consists in extending the notion of integer domains to that of set domains (sets of sets). We specify a set domain by an interval whose lower and upper bounds are known sets, ordered by set inclusion. We define the formal and practical framework of a new constraint logic programming language over set domains, called Conjunto. Conjunto comprises the usual set operation symbols (∪, ∩, \), and the set inclusion relation (% MathType!MTEF!2!1!+-% feaafiart1ev1aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn% hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr% 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9% vqaqpepm0xbba9pwe9Q8fs0-yqaqpepae9pg0FirpepeKkFr0xfr-x% fr-xb9adbaqaaeaacaGaaiaabeqaamaabaabaaGcbaGaeyOHI0maaa!37EA!\[ \subseteq \]). Set expressions built using the operation symbols are interpreted as relations (s ∪ s1 = s2, ...). In addition, Conjunto provides us with a set of constraints called graduated constraints (e.g. the set cardinality) which map sets onto arithmetic terms. This allows us to handle optimization problems by applying a cost function to the quantifiable, i.e., arithmetic, terms which are associated to set terms. The constraint solving in Conjunto is based on local consistency techniques using interval reasoning which are extended to handle set constraints. The main contribution of this paper concerns the formal definition of the language and its design and implementation as a practical language.

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

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

[3]  A. Colmerauer,et al.  Prolog, bases théoriques et développements actuels , 1983 .

[4]  André Vellino,et al.  Constraint Arithmetic on Real Intervals , 1993, WCLP.

[5]  Alain Colmerauer,et al.  Opening the Prolog III universe , 1987 .

[6]  M. H. van Emden,et al.  Interval Computation as Deduction in CHIP , 1993, J. Log. Program..

[7]  Catriel Beeri,et al.  Set Constructors in a Logic Database Language , 1991, J. Log. Program..

[8]  Michel Minoux,et al.  Graphs and Algorithms , 1984 .

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

[10]  Pascal Van Hentenryck,et al.  Domains in Logic Programming , 1986, AAAI.

[11]  Frédéric Benhamou,et al.  Interval Constraint Logic Programming , 1994, Constraint Programming.

[12]  Nicolas Beldiceanu,et al.  Introducing global constraints in CHIP , 1994 .

[13]  Bruno Legeard,et al.  Tests de satisfiabilité dans le langage de programmation en logique avec contraintes ensemblistes: CLPS , 1992, JFPL.

[14]  Carmen Gervet,et al.  Set Intervals in Constraint Logic Programming: Definition and implementation of a language. (Intervalles ensemblistes en programmation logique par contraintes : définition formelle et concrète d'un langage) , 1995 .

[15]  K. Hofmann,et al.  A Compendium of Continuous Lattices , 1980 .

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

[17]  Alexander Schrijver,et al.  Theory of linear and integer programming , 1986, Wiley-Interscience series in discrete mathematics and optimization.

[18]  Serge Le Huitouze A New Data Structure for Implementing Extensions to Prolog , 1990, PLILP.

[19]  Agostino Dovier,et al.  {log}: A Logic Programming Language with Finite Sets , 1991, ICLP.

[20]  Nicolas Beldiceanu,et al.  Constraint Logic Programming , 1997 .

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

[22]  Frieder Stolzenburg,et al.  Membership-Constraints and Complexity in Logic Programming with Sets , 1996, FroCoS.

[23]  Carlo Zaniolo,et al.  Compilation of Set Terms in the Logic Data Language (LDL) , 1992, J. Log. Program..

[24]  David A. Plaisted,et al.  Programming with Equations, Subsets, and Relations , 1989, NACLP.

[25]  Janusz Zalewski,et al.  Rough sets: Theoretical aspects of reasoning about data , 1996 .

[26]  Paliath Narendran,et al.  NP-Completeness of the Set Unification and Matching Problems , 1986, CADE.

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

[28]  M. Padberg Covering, Packing and Knapsack Problems , 1979 .

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

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

[31]  Christian Holzbaur,et al.  Metastructures versus Attributed Variables in the Context of Extensible Unification , 1992, PLILP.

[32]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[33]  Agostino Dovier,et al.  Compiling Intensional Sets in CLP , 1994, ICLP.

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

[35]  Bruno Legeard,et al.  Short Overview of the CLPS System , 1991, PLILP.

[36]  Agostino Dovier,et al.  Embedding extensional finite sets in CLP , 1993, ILPS.

[37]  Robert A. Kowalski,et al.  Predicate Logic as Programming Language , 1974, IFIP Congress.

[38]  Heinz Lüneburg Tools and Fundamental Constructions of Combinatorial Mathematics , 1989 .

[39]  Interval Propagation to Reason about Sets : De nition and Implementation of a PracticalLanguageCARMEN , .

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

[41]  Edmond Schonberg,et al.  Programming with Sets: An Introduction to SETL , 1986 .

[42]  Roland Fraïssé Theory of relations , 1986 .

[43]  Michel Van Caneghem,et al.  Solving Crew Scheduling Problems bu Constraint Programming , 1995, CP.

[44]  David Turner An overview of Miranda , 1986, SIGP.

[45]  M. Padberg,et al.  Solving airline crew scheduling problems by branch-and-cut , 1993 .

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

[47]  Pascal Van Hentenryck,et al.  A Generic Arc-Consistency Algorithm and its Specializations , 1992, Artif. Intell..

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

[49]  Bruno Legeard,et al.  Fonctions de voisinage progressives et admissibles pour des méthodes d'optimisation en PLC sur séquences , 1996, JFPLC.

[50]  Kenneth Steiglitz,et al.  Combinatorial Optimization: Algorithms and Complexity , 1981 .

[51]  G. Grätzer,et al.  Lattice Theory: First Concepts and Distributive Lattices , 1971 .

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

[53]  Carmen Gervet Sets and Binary Relation Variables Viewed as Constrained Objects , 1993, ICLP Workshop on Logic Programming with Sets.

[54]  Richard Fikes,et al.  REF-ARF: A System for Solving Problems Stated as Procedures , 1970, Artif. Intell..