Strategic directions in constraint programming

A constraint can be thought of intuitively as a restriction on a space of possibilities. Mathematical constraints are precisely specifiable relations among several unknowns (or variables), each taking a value in a given domain. Constraints restrict the possible values that variables can take, representing some (partial) information about the variables of interest. For instance, “The second side of a sheet of a paper must be imaged 9000 milliseconds after the time at which the first side is imaged,” relates two variables without precisely specifying the values they must take. One can think of such a constraint as standing for (a possibly infinite) set of values, in this case the set {^0, 9000&, ^1500, 10500&, . . .}. Constraints arise naturally in most areas of human endeavor. They are the natural medium of expression for formalizing regularities that underlie the computational and (natural or designed) physical worlds and their mathematical abstractions, with a rich tradition going back to the days of Euclidean geometry, if not earlier. For instance, the three angles of a triangle sum to 180 degrees; the four bases that make up DNA strands can only combine in particular orders; the sum of the currents flowing into a node must equal zero; the trusses supporting a bridge can only carry a certain static and dynamic load; the pressure, volume, and temperature of an enclosed gas must obey the “gas law”; Mary, John, and Susan must have different offices; the relative position of the scroller in the window scroll-bar must reflect the position of the current text in the underlying document; the derivative of a function is positive at zero; the function is monotone in its first argument, and so on. Indeed, whole subfields of mathematics (e.g., theory of Diophantine equations, group theory) and many celebrated conjectures of mathematics (e.g., Fermat’s Last Theorem) deal with whether certain constraints are satisfiable. Constraints naturally enjoy several interesting properties. First, as previously remarked, constraints may specify partial information—a constraint need not uniquely specify the value of its variables. Second, they are additive: given a constraint c1, say, X 1 Y $ Z, another constraint c2 can be added, say, X 1 Y # Z. The order of imposition of constraints does not matter; all that matters at the end is that the conjunction of constraints is in effect. Third,

[1]  Peter Z. Revesz,et al.  DISCO: A Constraint Database System with Sets , 1995, CDB.

[2]  Arabellastrasse,et al.  Constraint Handling Rules ? , 1995 .

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

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

[5]  Peter van Beek,et al.  Local and Global Relational Consistency , 1995, Theor. Comput. Sci..

[6]  Peter van Beek,et al.  A theoretical evaluation of selected backtracking algorithms , 1995, IJCAI 1995.

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

[8]  Eugene C. Freuder,et al.  The Complexity of Constraint Satisfaction Revisited , 1993, Artif. Intell..

[9]  Sridhar Ramaswamy,et al.  Indexing for data models with constraints and classes (extended abstract) , 1993, PODS '93.

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

[11]  Alan Borning,et al.  Constraint hierarchies , 1992 .

[12]  Divesh Srivastava,et al.  Pushing constraint selections , 1992, J. Log. Program..

[13]  Satoshi Matsuoka,et al.  Generalized Local Propagation: A Framework for Solving Constraint Hierarchies , 1996, CP.

[14]  Francesca Rossi,et al.  NMCC Programming: Constraint Enforcement and Retracting in CC Programming , 1995, ICLP.

[15]  Jianwen Su,et al.  Dense-order constraint databases (extended abstract) , 1995, PODS '95.

[16]  Radha Jagadeesan,et al.  Computing with Continuous Change , 1998, Sci. Comput. Program..

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

[18]  David L. Waltz,et al.  Understanding Line drawings of Scenes with Shadows , 1975 .

[19]  Eugene C. Freuder Principles and Practice of Constraint Programming-CP '96: Second International Conference, CP 96, Cambridge, Ma, U. S. A., August 1996: Proceedings , 1996 .

[20]  Ying Zhang,et al.  Specification and Verification of Constraint-Based Dynamic Systems , 1994, PPCP.

[21]  Bjørn N. Freeman-Benson,et al.  The OTI Constraint Solver: A Constraint Library for Constructing Interactive Graphical User Interfaces , 1995, CP.

[22]  Marc Gyssens,et al.  On the Desirability and Limitations of Linear Spatial Database Models , 1995, SSD.

[23]  Steven Minton,et al.  Minimizing Conflicts: A Heuristic Repair Method for Constraint Satisfaction and Scheduling Problems , 1992, Artif. Intell..

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

[25]  Jack Minker Foundations of deductive databases and logic programming , 1988 .

[26]  Francesca Rossi,et al.  From Eventual to Atomic Locally Atomic CC Programs: A Concurrent Semantics , 1994, ALP.

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

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

[29]  Kim Marriott,et al.  Analyzing logic programs with dynamic scheduling , 1994, POPL '94.

[30]  Francesca Rossi,et al.  Concurrent Semantics for Concurrent Constraint Programs , 1993, NATO ASI CP.

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

[32]  Gabriel M. Kuper,et al.  Aggregation in Constraint Databases , 1993, PPCP.

[33]  Peter Z. Revesz,et al.  Datalog Queries of Set Constraint Databases , 1995, ICDT.

[34]  Peter C. Cheeseman,et al.  Where the Really Hard Problems Are , 1991, IJCAI.

[35]  Divesh Srivastava,et al.  Constraint , 2020, Encyclopedia of Personality and Individual Differences.

[36]  Manuel V. Hermenegildo Some Methodological Issues in the Design of CIAO, a Generic, Parallel Concurrent Constraint Logic Programming System , 1994, PPCP.

[37]  Christopher J. Rawlings,et al.  APPLAUSE: Applications Using the ElipSys Parallel CLP System , 1993, ICLP.

[38]  Sridhar Ramaswamy,et al.  Indexing for Data Models with Constraints and Classes , 1996, J. Comput. Syst. Sci..

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

[40]  Rina Dechter,et al.  Enhancement Schemes for Constraint Processing: Backjumping, Learning, and Cutset Decomposition , 1990, Artif. Intell..

[41]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[42]  Pascal Van Hentenryck Parallel Constraint Satisfaction in Logic Programming: Preliminary Results of CHIP within PEPSys , 1989, ICLP.

[43]  Michael Sannella,et al.  The SkyBlue Constraint Solver and Its Applications , 1993, PPCP.

[44]  Peter van Beek,et al.  A Theoretical Evaluation of Selected Backtracking Algorithms , 1995, IJCAI.

[45]  Enea Zaffanella,et al.  Domain Independent Ask Approximation in CCP , 1995, CP.

[46]  J. Carlier,et al.  An algorithm for solving the job-shop problem , 1989 .

[47]  Frank S. de Boer,et al.  A Fully Abstract Model for Concurrent Constraint Programming , 1991, TAPSOFT, Vol.1.

[48]  R. Tibshirani,et al.  An introduction to the bootstrap , 1993 .

[49]  Bjørn N. Freeman-Benson,et al.  Constraint hierarchies , 1987, OOPSLA '87.

[50]  Raghu Ramakrishnan,et al.  Magic Templates: A Spellbinding Approach To Logic Programs , 1991, J. Log. Program..

[51]  Peter van Emde Boas,et al.  Integrating Relational Databases and Constraint Languages , 1989, Comput. Lang..

[52]  Eugene C. Freuder Principles and practice of constraint programming -- CP 96 : Second International Conference, CP 96, Cambridge, MA, USA, August 19-22, 1996 : proceedings , 1996 .

[53]  Kim Marriott,et al.  Suspension analyses for concurrent logic programs , 1994, TOPL.

[54]  Roland H. C. Yap,et al.  Effectiveness of Optimizing Compilation for CLP(R) , 1996, JICSLP.

[55]  Allan Heydon,et al.  The Juno-2 Constraint-Based Drawing Editor , 1994 .

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

[57]  Bjørn N. Freeman-Benson,et al.  Indigo: a local propagation algorithm for inequality constraints , 1996, UIST '96.

[58]  Radha Jagadeesan,et al.  Timed Default Concurrent Constraint Programming , 1996, J. Symb. Comput..

[59]  Michael J. Maher,et al.  Toward Practical Constraint Databases , 1993, VLDB.

[60]  Daniel G. Bobrow,et al.  Programming in Hybrid Constraint Languages , 1994, Hybrid Systems.

[61]  Eugene C. Freuder Exploiting Structure in Constraint Satisfaction Problems , 1993, NATO ASI CP.

[62]  Roland H. C. Yap,et al.  The CLP( R ) language and system , 1992, TOPL.

[63]  Pascal Van Hentenryck,et al.  Principles and practice of constraint programming: The Newport papers , 1996, Computers & Mathematics with Applications.

[64]  Manuel V. Hermenegildo,et al.  Towards Independent And-Parallelism in CLP , 1996, PLILP.

[65]  共立出版株式会社 コンピュータ・サイエンス : ACM computing surveys , 1978 .

[66]  Jan Paredaens,et al.  Towards a theory of spatial database queries (extended abstract) , 1994, PODS.

[67]  Alon Y. Halevy,et al.  Query Optimization by Predicate Move-Around , 1994, VLDB.

[68]  Kenneth McAloon,et al.  Logic, modeling, and programming , 1997, Ann. Oper. Res..

[69]  Peter J. Stuckey,et al.  Incremental Analysis of Logic Programs , 1995, ICLP.

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

[71]  Francesca Rossi,et al.  Constraint Solving over Semirings , 1995, IJCAI.

[72]  Ivan E. Sutherland,et al.  Sketchpad a Man-Machine Graphical Communication System , 1899, Outstanding Dissertations in the Computer Sciences.

[73]  Michael J. Maher,et al.  Separability of polyhedra for optimal filtering of spatial and constraint data , 1995, PODS '95.

[74]  Vijay A. Saraswat,et al.  Concurrent constraint programming , 1989, POPL '90.

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

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

[77]  Radha Jagadeesan,et al.  Default timed concurrent constraint programming , 1995, POPL '95.

[78]  Catherine Lassez,et al.  A linear constraint technology for interactive graphic systems , 1992 .

[79]  Francesca Rossi,et al.  A concurrent semantics for concurrent constraint programming via contextual nets , 1994 .

[80]  Laurence A. Wolsey,et al.  Integer and Combinatorial Optimization , 1988, Wiley interscience series in discrete mathematics and optimization.

[81]  Roman Gross-brunschwiler,et al.  Implementation of Constraint Database Systems Using a Compile-Time Rewrite Approach , 1996 .

[82]  Stéphane Grumbach,et al.  Dense-Order Constraint Databases. , 1995, PODS 1995.

[83]  Jan Van den Bussche,et al.  Towards a theory of spatial database queries (extended abstract) , 1994, PODS '94.

[84]  Michael J. Maher,et al.  Over-Constrained Systems , 1995, Lecture Notes in Computer Science.

[85]  Hamid Pirahesh,et al.  Magic conditions , 1990, PODS.

[86]  Christophe Lecoutre Constraint Networks , 1992 .

[87]  Gerda Janssens,et al.  Global analysis of constraint logic programs , 1996, TOPL.

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

[89]  Efficient Analysis , 1968, Nature.

[90]  Ying Zhang,et al.  Constraint Programming in Constraint Nets , 1993, PPCP.

[91]  Eugene C. Freuder Synthesizing constraint expressions , 1978, CACM.

[92]  Jacques Chassin de Kergommeaux,et al.  Parallel logic programming systems , 1994, CSUR.

[93]  Thom W. Frühwirth,et al.  Contraint Logic Programming - An Informal Introduction , 1992, Logic Programming Summer School.

[94]  Ying Zhang,et al.  Synthesis of Hybrid Constraint-Based Controllers , 1994, Hybrid Systems.

[95]  Kim Marriott,et al.  Independence in Constraint Logic Programs , 1993, ILPS.

[96]  Andreas Podelski,et al.  Towards a Meaning of LIFE , 1991, J. Log. Program..

[97]  Gerald J. Sussman,et al.  Forward Reasoning and Dependency-Directed Backtracking in a System for Computer-Aided Circuit Analysis , 1976, Artif. Intell..

[98]  Marc Gyssens,et al.  A test for Tractability , 1996, CP.

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

[100]  James F. Allen Maintaining knowledge about temporal intervals , 1983, CACM.

[101]  Bjørn N. Freeman-Benson,et al.  Multi‐way versus one‐way constraints in user interfaces: Experience with the deltablue algorithm , 1993, Softw. Pract. Exp..

[102]  Michael J. Maher,et al.  Foundations of Deductive Databases and Logic Programming , 1988 .

[103]  R. Dechter to Constraint Satisfaction , 1991 .

[104]  Seif Haridi,et al.  Kernel Andorra Prolog and its Computation Model , 1990, ICLP.

[105]  Edward P. K. Tsang,et al.  Foundations of constraint satisfaction , 1993, Computation in cognitive science.

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

[107]  Pascal Van Hentenryck A constraint approach to mastermind in logic programming , 1988, SGAR.

[108]  Rob Miller,et al.  The Amulet user interface development environment , 1997, CHI Extended Abstracts.

[109]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[110]  Alon Y. Halevy,et al.  Constraints and redundancy in datalog , 1992, PODS.

[111]  Leon S. Sterling,et al.  NMCC Programming: Constraint Enforcement and Retraction in CC Programming , 1995 .

[112]  Manuel V. Hermenegildo,et al.  Some methodological issues in the design of CIAO, a generic, parallel concurrent constraint system , 1994 .

[113]  Maurizio Gabbrielli,et al.  Compositional analysis for concurrent constraint programming , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[114]  Gabriel M. Kuper,et al.  Linear vs Polynomial Constraints in Database Query Languages , 1994, PPCP.

[115]  Francesca Rossi,et al.  Concurrency and Concurrent Constraint Programming , 1994, Constraint Programming.

[116]  Dinesh K. Pai,et al.  Least Constraint: A Framework for the Control of Complex Mechanical Systems , 1991, 1991 American Control Conference.

[117]  Philippe Codognet,et al.  Abstract Interpretation for Concurrent Logic Languages , 1990, NACLP.

[118]  Kim Marriott,et al.  Efficient Analysis of Concurrent Constraint Logic Programs , 1993, ICALP.

[119]  Peter J. Stuckey,et al.  The 3 R's of optimizing constraint logic programs: refinement, removal and reordering , 1993, POPL '93.

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

[121]  Rina Dechter,et al.  Temporal Constraint Networks , 1989, Artif. Intell..

[122]  Pierre Wolper,et al.  Handling infinite temporal data , 1990, PODS.

[123]  David S. Warren APPLAUSE: Applications Using the ElipSys Parallel CLP System , 1993 .

[124]  Peter Z. Revesz,et al.  A Closed-Form Evaluation for Datalog Queries with Integer (Gap)-Order Constraints , 1993, Theor. Comput. Sci..

[125]  Guy L. Steele,et al.  The definition and implementation of a computer programming language based on constraints , 1980 .

[126]  P. Dines Larsen GRACE user manual , 1982 .

[127]  Bradley T. Vander Zanden,et al.  An incremental algorithm for satisfying hierarchies of multiway dataflow constraints , 1996, TOPL.

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

[129]  Michael J. Maher,et al.  Unification Revisited , 1988, Foundations of Deductive Databases and Logic Programming..

[130]  Kannan Govindarajan,et al.  Optimization and relaxation in constraint logic languages , 1996, POPL '96.

[131]  Michael J. Maher Logic Semantics for a Class of Committed-Choice Programs , 1987, ICLP.

[132]  Radha Jagadeesan,et al.  Truly Concurrent Constraint Programming , 1996, CONCUR.

[133]  Alan Borning,et al.  ThingLab: a constraint-oriented simulation laboratory , 1979 .