Tackling Complexity with Constraint Programming

Moritz Eissenhauer | Friday 12:00 | Room D

Google's Optimisation Tools, or OR-Tools, is a powerful software suite directed at combinatoric optimisation. Alongside other features it provides a Constraint Programming solver, which enables the efficient modelling and solving of Constraint Programming problems using a branch-and-bound approach.

I will introduce Constraint Programming in Python and show how it can be applied to a large variety of problems. In my company for instance, we rely on OR-Tools to tackle complex scheduling problems. I would like to share what we have learned while using this library and explain the advantages of using it in your Python projects. While doing so, I will touch on some of the hurdles and difficulties we had to overcome, and explain the solutions we came up with.

Finally I will go through a few other relevant examples in other areas of application of Constraint Programming. I will show that solutions based on this paradigm can provide a great degree of flexibility and can easily be adapted to changing requirements in an agile development environment.

With this talk I hope to introduce you to Constraint Programming and to give you ideas on how you can incorporate OR-Tools into your Python project.