TrueschoTruescho
All Courses
Constraint Programming
edX
Course
Advanced
Free to Audit

Constraint Programming

Université catholique de Louvain

Learn the basics of constraint programming from the implementation of solvers to modeling techniques for solving concrete combinatorial problems such as routing and scheduling.

7 hrs/week14 weeksEnglish1,550 enrolled
Free to Audit

About this Course

Today more than ever, the optimal use of resources has become a very important issue. Many decision problems (logistics, production, space, etc.) aiming at an optimal use of resources can be formulated as constraint combinatorial optimization problems. Unfortunately, these problems are difficult to solve mainly for two reasons : They require complex algorithms to design and develop, Finding an optimal solution can be computationally intensive. In this course, we will learn the basics of constraint programming: a paradigm that aims to reduce the cost of developing and solving combinatorial problems through extensive reuse of code, whose design is open-ended, but also through pruning techniques of the search space by reasoning at the level of constraints. During the proposed projects, you will develop your own constraint programming solver in Java that we will gradually extend in functionality in order to solve more and more complex combinatorial problems, especially in scheduling and vehicle routing. You will also develop global constraints, implement search strategies, model problems, and measure the impact of modeling choices on the efficiency of the solution. Each module first introduces the concepts through videos, then a programming project is proposed to put these concepts into practice.

What You'll Learn

  • Understand the constraint programming paradigm
  • Design and implement a modern constraint programming library
  • Model using the constraint programming
  • Extend the solver with new global constraints
  • Design custom and black-box searches
  • Approach Scheduling and Vehicle Routing problems with constraint programming

Prerequisites

  • A graduate level understanding of data-structures and algorithms.
  • Be familiar with the Java programming language which used for the programming assignments.

Instructors

P

Pierre Schaus

Professor in computer science

L

Laurent Michel

Professor in computer science

P

Pascal Van Hentenryck

Professor in computer science

Course Info

PlatformedX
LevelAdvanced
PacingUnknown
PriceFree to Audit

Start Learning Now