Constraint Logic Programming using Eclipse
Krzysztof R. Apt, Mark Wallace
Constraint logic programming lies at the intersection of logic programming, optimisation and artificial intelligence. It has proved a successful tool in many areas including production planning, transportation scheduling, numerical analysis and bioinformatics. Eclipse is one of the leading software systems that realise its underlying methodology. Eclipse is exploited commercially by Cisco, and is freely available and used for teaching and research in over 500 universities. This book has a two-fold purpose. It's an introduction to constraint programming, appropriate for one-semester courses for upper undergraduate or graduate students in computer science or for programmers wishing to master the practical aspects of constraint programming. By the end of the book, the reader will be able to understand and write constraint programs that solve complex problems. Second, it provides a systematic introduction to the Eclipse system through carefully-chosen examples that guide the reader through the language and illustrate its power, versatility and utility.
• This is the first practical introduction to constraint programming; shows how to understand and write constraint programs that solve complex problems: all the code is available via the web
• Aimed at one-semester courses for upper undergraduate or graduate students, and at programmers wishing to master practical aspects of constraint programming: over 40 exercises with selected answers
• A systematic introduction to Eclipse, one of the most popular and powerful constraint programming systems available free for educational purposes, it has been licensed to over 500 institutions
Table of Contents
Introduction; Part I. Logic Programming Paradigm: 1. Logic programming and pure Prolog; 2. A reconstruction of pure Prolog; Part II. Elements of Prolog: 3. Arithmetic in Prolog; 4. Control and meta-programming; 5. Manipulating structures; Part III. Programming with Passive Constraints: 6. Constraint programming: a primer; 7. Intermezzo: iteration in ECLiPSe; 8. Top-down search with passive constraints; 9. The suspend library; Part IV. Programming with Active Constraints: 10. Constraint propagation in ECLiPSe; 11. Top-down search with active constraints; 12. Optimisation with active constraints; 13. Constraints on reals; 14. Linear constraints over continuous and integer variables; Solutions to selected exercises; Bibliographic remarks; Bibliography; Index.