Many and diverse search problems have been solved with great success using constraint programming. However, in order to apply constraint programming tools to a particular domain, the problem must be modelled as a constraint satisfaction or optimisation problem. Since constraints provide a rich language, typically many alternative models exist. Formulating a good model therefore requires a great...