Catalogue of Artificial Intelligence Techniques
Constraint Logic Programming
Keywords: constraint logic programming
Categories: Inference and Reasoning , Logic Programming
Author(s): Mark Wallace
Constraint logic programming is a paradigm coined for solving combinatorial problems. It has been used successfully for a variety of practical applications from scheduling to financial analysis. Constraint handling has been introduced into Logic Programming to simplify the expression of problems and to dramatically improve program efficiency. Essentially the constraints are used to prune the search tree defined by the logic program in which they are embedded. Three different kinds of constraints have been introduced: basic constraints, propagation constraints and reactive constraints. During program execution, basic constraints are added to a global store of constraints and the system checks the consistency of the whole constraint store. Propagation constraints are used to restrict possible constraint stores: they can also be used actively to continually produce new information, as the constraint store grows. Reactive constraints exhibit a behaviour which is specified by rules, whose firing is driven by the constraint store. An embedding of constraints in logic programming, and illustrations of its use, are presented in the article referenced below.
- Van Hentenryck, P., Simonis, H. and Dincbas, M., Constraint Satisfaction using Constraint Logic Programming Artificial Intelligence 58 (1992).