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.
Krzysztof R. Apt received his PhD in 1974 in mathematical logic from the University of Warsaw in Poland. He is a senior researcher at CWI, Amsterdam and Professor of Computer Science at the University of Amsterdam. He is the author of three other books: Verification of Sequential and Concurrent Programs (with E.-R. Olderog), From Logic Programming to Prolog, and Principles of Constraint Programming, and has published 50 journal articles and 15 book chapters. He is the founder and the first editor-in-chief of the ACM Transactions on Computational Logic, and past president of the Association for Logic Programming. He is a member of the Academia Europaea (Mathematics and Informatics Section). After completing a degree at Oxford in Mathematics and Philosophy, Mark Wallace joined the UK computer company ICL, who funded his PhD at Southampton University, and which was published as a book: Communicating with Databases in Natural Language. He has been involved in the ECLiPSe constraint programming language since its inception and has led several industrial research collaborations exploiting the power of constraint programming with ECLiPSe. He is currently involved in a major new constraint programming initiative funded by National ICT Australia (NICTA), and in the foundation of a Centre for Optimisation in Melbourne. He has published widely, chaired the annual constraint programming conference, and is an editor for three international journals.
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.