Principles and Practice of Constraint Programming — CP98
暂无分享,去创建一个
Constraint Programming (CP) has proven useful in several areas, and though the initial impetus came from logic programming frameworks like CLP and CCP, the use of CP and constraint solving is obtaining wider appeal. We suggest that the limiting features of traditional CP are a dependence on a (logic) language, the need for monotonicity in the constraint system, and, to a lesser extent, the lack of an independent mechanism for agents to specify concurrent interaction with constraint solvers. Some background and examples: the ILOG constraint libraries serve to provide constraint based search using a nite-domain solver for programs written in C++, and not a logic programming language. The Oz language is not rule-based; it uses a nite domain solver for search problems (though instead of backtracking, an encapsulated search mechanism is used). In addition, the concurrent part of Oz borrows from CCP in using entailment of term and feature constraints for synchronization. Further a eld, the \glass box" approach to nite-domain constraint solving uses constraints on indexicals which are non-monotonic. Deductive and constraint databases de ne a store intensionally, but updates are non-monotonic. In shared-memory languages for parallel programming, the model is one of a global at store equipped with various synchronization primitives. Coordination based models like Actors/Blackboards/Linda use a structured global store and more sophisticated synchronization primitives on the store. In summary, the issues covered here include: a global store, logical structure vs local structure, monotonic vs nonmonotonic operations, facilities for control and search. The point is, we need them all. Here we introduce a model in which agents and constraint solvers interact. Details of agents are of no interest here; they may be written in any (sequential or concurrent) programming language. We employ a more pragmatic de nition of constraint system, but more importantly, there is a framework for specifying how agents and solvers interact. What emerges is a general facility which has the traditional advantages of CP, and much more. M. Maher and J.-F. Puget (Eds.): CP’98, LNCS 1520, p. 1, 1998. Ó Springer-Verlag Berlin Heidelberg 1998 Constructing Constraints