Programming with Constraints: an Introduction

Kim Marriott and Peter J. Stuckey

Course Material

The programs defined in the book as well as the goals discussed are included here, chapter by chapter. They are related by a one line comment to the book. The set of programs should expand slowly.

CLP(R) Programs

These are the closest to the programs appearing in the book. CLP(R) does not support finite domains so Chapter 8 is ommitted and parts of Chapter 9 do not function.

ECLiPSe Programs

ECLiPSE has a well developed finite domain solver and a rational solver without simplifier. The programs in Chapter 8 of the book are closest to ECliPSe. The rational minimization cant handle non-linear constraints. The lack of simplifier is a bit painful too!

SICStus Programs

SICStus 3.5 has a finite domain solver library and rational and floating point solver library (with simplifier). I have had problems with the rational and floating point solver libraries and quite a few queries dont run. This is usually a "non_normalized" error. The examples use the rational solver which for me caused less "non_normalized" errors. For some reason the cumulative constraint examples in Chapter 8 dont run (they used to!) and there seems some other strange behaviour by the finite domain solver. These problems seem to mostly disappear with version 3.6 The programs execute as explained in the book for the closest version, this is CLP(R) for real constraints and ECLiPSe for finite domain constraints. There were a few errors that slipped by, see the files themselves for details. If you have any comments or fixes for the files feel free to email me at
Also available: Powerpoint course material for the book