Principles of Constraint Programming (Google eBook)
Constraints are everywhere: most computational problems can be described in terms of restrictions imposed on the set of possible solutions, and constraint programming is a problem-solving technique that works by incorporating those restrictions in a programming environment. It draws on methods from combinatorial optimisation and artificial intelligence, and has been successfully applied in a number of fields from scheduling, computational biology, finance, electrical engineering and operations research through to numerical analysis. This textbook for upper-division students provides a thorough and structured account of the main aspects of constraint programming. The author provides many worked examples that illustrate the usefulness and versatility of this approach to programming, as well as many exercises throughout the book that illustrate techniques, test skills and extend the text. Pointers to current research, extensive historical and bibliographic notes, and a comprehensive list of references will also be valuable to professionals in computer science and artificial intelligence.
applications arithmetic constraints Backtrack binary constraints Boolean constraints Branch and Bound Cartesian product Chapter characterisation common fixpoint compute considered CSP consistency notion CONSISTENCY rule constraint logic programming constraint programming constraint propagation algorithms constraint satisfaction problems corresponding Cx,y Cx,z Cy,z defined definition denote depicted in Figure derivation directional arc consistency discussed disequality constraints disjunctive domain expressions domain reduction rules equivalence preserving example Exercise extended intervals finite set forward checking Golomb ruler heuristic hyper-arc consistent incomplete constraint solvers integer intervals introduce iteration k-consistency Lemma linear constraints LINEAR EQUALITY rule linear equations linear inequalities logic programming node consistent non-empty Note overl.-by overlaps partial ordering pivot form procedure proof rules prop labeling tree reals representation result search algorithm search tree Section set of equations set of linear solution solved form straint Subsection SUBSTITUTION rule Theorem tion transformation rules unifier variable domains variables x1 x(LI