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.
This book is a practical introduction to constraint programming using any procedural language to explore the concepts based on pseudocode examples. While workong on my MSc at Oakland University, it really got me thinking that even as an exercise moving the programming mind outside OO is good exercise for the programming mind. With this book and the freedownload of ECLiPSe from http://eclipseclp.org/, any programmer serious about their craft can start that exercise.