August 8-12, 2005, 9:00-10:30 Programming
with Logic and Constraints
ESSLLI 2005, Edinburgh (U.K.), August 8-19, 2005
The course describes techniques behind constraint logic programming (CLP) framework. It concentrates on the practical/algorithmic issues (how CLP works and how to use it effectively) rather than on the theoretical background (how to prove it). The course is targeted to everyone interested in solving combinatorial optimisation problems using CLP.
First, I will introduce the basic concepts of logic programming; the notions of backtracking and unification will be explained using examples in Prolog. The main part will be devoted to constraint satisfaction techniques and their integration into logic programming framework. I will explain the notion of constraint as an extension to unification. Then the basic constraint propagation techniques, namely arc-consistency, will be presented. Global constraints and their implementation techniques will also be discussed. The final part will focus on the depth-first search techniques and their integration with constraint propagation. The course is concluded with examples of modeling problems using CLP.