Synopses & Reviews
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 optimization 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.
Synopsis
Methods to solve constraint problems (e.g. scheduling) rely on the idea of constraint propagation and search. Using constraint techniques in programming environments has accelerated the solution process, combining ideas from artificial intelligence, programming languages, databases, and operational research. This text is a modern, multidisciplinary introduction covering both foundations and applications.
Synopsis
Upper-division textbook covering foundations of constraint programming and applications to scheduling, optimization etc.
Table of Contents
1. Introduction; 2. Constraint satisfaction problems: Examples; 3. Constraint programming in a nutshell; 4. Some complete constraint solvers; 5. Local consistency notions; 6. Some incomplete constraint solvers; 7. Constraint propagation algorithms; 8. Search; 9. General programming issues; Bibliography; Index.