The course acts to model and solve combinatorial (optimisation) problem by means of constraint programming. There are combinatorial problems everywhere, for example to assign and timetable resources, design instructions for processors and optimise instruction scheduling at compilation. This course teaches the basic concepts in constraint programming, applications, expansions and its relation to other technologies for combinatorial optimisation.
- To model with constraint programming.
- Basic solution methods: propagation and search.
- Technologies for modelling, refinement of models, heuristic search methods, application to problems of industrial size.
- Basic principles of constraint programming: models for propagation and search and their essential properties; different levels of propagation; different constraint domains; strong algorithmic methods for propagation.
- Relation to other technologies to solve combinatorial problems (integer programming, local search), discussion of merits, limitations and hybrid variants.