Methods of AI V – Constraint Reasoning
The course introduces modeling methods and algorithms for constraint programming that used in AI to solve constraint satisfaction and optimization problems.

Overview
This course introduces the constraint modelling language MiniZinc, which is an expressive and easy-to-use modeling language for optimization problems, and that provides an interface to many state-of-the-art AI optimization tools. Numerous practical examples illustrate the usage of MiniZinc to model practical problems.
The course also gives insights into the algorithmic mechanisms that enable modern CP-SAT solvers such as Google’s OR-Tools or Microsoft’s Z3 to successfully solve large optimization problems.
This course is partially based on chapter 6 of the textbook by Stuart Russell and Peter Norvig: Introduction to Artificial Intelligence - A Modern Approach but extends the topic with comprehensive additional material.
The course is held in English language with German subtitles.
Which topics will be covered?
- Constraint satisfaction and optimization problems
- Modeling of practical problems using different types of constraints
- MiniZinc modelling language and IDE
- Advanced techniques in CP-SAT solvers
- Lazy clause generation
- Backjumping
- Conflict-directed clause learning
What will I achieve?
By the end of the course, you‘ll be able to
- recognize constraint satisfaction and constraint optimization problems in practice,
- model simple constraint problems using MiniZinc,
- understand algorithmic techniques used by modern CP-SAT solvers.
Which prerequisites do I need to fulfill?
A good understanding of logic is a prerequisite to follow the theoretical material of this course. The course “Methods of AI III – Logical Reasoning” provides a good introduction to logic.