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.
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.
Review of the hardback: '… a fundamental new way of looking at constraint programming … This book … is a great present to the constraint programming community, which will certainly advance scientifically because of its publication. We need good books to educate new people to Constraint Programming in the best way, and this book is a great way to do this.' Theory and Practice of Logic Programming