EdX

Constraint Programming (edX)

Constraint Programming (edX)

Learn the basics of constraint programming from the implementation of solvers to modeling techniques for solving concrete combinatorial problems such as routing and scheduling. 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.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

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 :

  1. They require complex algorithms to design and develop,
  2. Finding an optimal solution can be computationally intensive.

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

Syllabus

Module 1: From Backtracking Search to the Constraint Programming Paradigm
Starting from a custom backtracking search algorithm for the N-Queens Problem, we will make the approach gradually more generic until the introduction of a purely declarative approach and the design a first tiny CP library.

Module 2: Introduction to Mini-CP
The design and internals (variables, domains, state restoration, etc.) of Mini-CP, the constraint programming library that is used along the course and that is extended in each assignment.

Module 3: The sum and element global constraints
Two constraints that occur for solving most of the CP problems. Design of their filtering algorithms, study of their properties and implementation.

Module 4: The extensional table constraint
Introduction to the table constraint, the most generic one can imagine in CP. Study of some of its application, and filtering algorithms for this constraint.

Module 5: The alldifferent constraint
Study of the alldifferent global constraint as an illustration of an elegant reuse of well-known graph algorithms embedded into the filtering of constraints.

Module 6: The Circuit constraint and Vehicle Routing Problems (VRP)
Introduction to solving VRP with CP using the successor model and the circuit global constraint. Introduction to solving optimization problems with CP and Large Neighborhood search.

Module 7: Cumulative Scheduling Problems
Introduction to Scheduling with CP and the cumulative constraint, instrumental for scheduling non preemptive tasks with resource requirements.

Module 8: Disjunctive Scheduling Problems
A specific case of scheduling problems is the one of disjunctive resource where activities cannot overlap in time. We will study specific filtering and search techniques and apply it to solve the well kownknown job-shop problem.

Module 9: Blackbox Search
Introduction to efficient search heuristics independent of the problem to solve. All these searches are declinations of the well-known first-fail principle.

Module 10: Modeling
Introduction to advanced modeling techniques to boost the solving of your problems, including redundant constraints, and symmetry breaking.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Solving Algorithms for Discrete Optimization (Coursera) Coursera
University of Melbourne,The Chinese University of Hong Kong

Solving Algorithms for Discrete Optimization (Coursera)

Discrete Optimization aims to make good decisions when we have many possibilities to choose from. Its applications are ubiquitous throughout our society. Its applications range from solving Sudoku puzzles to arranging seating in a wedding banquet. The same technology can schedule planes and their crews, coordinate the production of steel, and organize the transportation of iron ore from the mines to the ports.

Nov 2nd 2026
4 Weeks
Manufacturing Systems II (edX) EdX
MIT,MITx

Manufacturing Systems II (edX)

Learn how to analyze manufacturing systems to optimize performance and control costs and better understand the flow of material and information. Manufacturing systems are complex systems that require analytical analysis. Managers and practitioners use a wide variety of methods to analyze and optimize the performance of manufacturing systems and control costs.

Mar 6th 2024
5-12 Weeks
Quantitative Formal Modeling and Worst-Case Performance Analysis (Coursera) Coursera
EIT Digital

Quantitative Formal Modeling and Worst-Case Performance Analysis (Coursera)

Welcome to Quantitative Formal Modeling and Worst-Case Performance Analysis. In this course, you will learn about modeling and solving performance problems in a fashion popular in theoretical computer science, and generally train your abstract thinking skills. After finishing this course, you have learned to think about the behavior of systems in terms of token production and consumption, and you are able to formalize this thinking mathematically in terms of prefix orders and counting functions. You have learned about Petri-nets, about timing, and about scheduling of token consumption/production systems, and for the special class of Petri-nets known as single-rate dataflow graphs, you will know how to perform a worst-case analysis of basic performance metrics, like throughput, latency and buffering.

Oct 19th 2026
4 Weeks
Simulating a Quadcopter's Electromechanics (edX) EdX
MathWorks

Simulating a Quadcopter's Electromechanics (edX)

Learn how to integrate multiple physical domains and optimize system performance of a quadcopter. Welcome to Modeling the Quadcopter Electromechanical System, the third course in the Engineering Design and Simulation Program. This course introduces the electrical part of the system to model the battery and the transfer of electrical energy to power the mechanical components powering the flight of the quadcopter.

Self Paced
Self-Paced
Planificación y control de proyectos con Microsoft Project (edX) EdX
The Pontificia Universidad Javeriana,JaverianaX

Planificación y control de proyectos con Microsoft Project (edX)

En este MOOC los participantes comprenderán las características que hacen de Microsoft Project una herramienta que facilita la planeación, el manejo, el seguimiento y el control de proyectos de distintas complejidades y la posibilidad de emplear esta herramienta en diferentes contextos, como en la gestión de proyectos laborales, proyectos académicos, entre otros.

Self Paced
Self-Paced
Foundations of Data Analysis - Part 1: Statistics Using R (edX) EdX
University of Texas at Austin,UTAustinX

Foundations of Data Analysis - Part 1: Statistics Using R (edX)

This is a hands on course with a data lab to teach fundamental statistical topics such as descriptive statistics, inferential testing, and modeling. In this first part of a two part course, we’ll walk through the basics of statistical thinking – starting with an interesting question. Then, we’ll learn the correct statistical tool to help answer our question of interest – using R and hands-on Labs.

No sessions available
5-12 Weeks
Software Engineering Essentials (edX) EdX
Technische Universität München - TUM,TUMx

Software Engineering Essentials (edX)

Learn agile methods, object-oriented programing and best practices for analysis, design, testing and management in software engineering. The world of software engineering requires high flexibility, an influx of new ideas, and the courage to challenge traditional approaches. As a software engineer, you need to know the methods, workflows and tools to handle continuously growing complexity and shortened development cycles. You must be able to work in teams to build high-quality software.

This course is archived
5-12 Weeks
Viscoelasticidad y comportamiento mecánico-dinámico de materiales poliméricos. Modelización (edX) EdX
Universitat Politècnica de València,UPValenciaX

Viscoelasticidad y comportamiento mecánico-dinámico de materiales poliméricos. Modelización (edX)

Aprende sobre el comportamiento viscoelástico de polímeros para el diseño de componentes con materiales poliméricos. Los materiales poliméricos se caracterizan por tener un comportamiento viscoelástico lo cual implica que sus propiedades mecánicas surgen de la combinación de unas propiedades elásticas y viscosas.

Self Paced
Self-Paced
Calculus through Data & Modeling: Differentiation Rules (Coursera) Coursera
Johns Hopkins University

Calculus through Data & Modeling: Differentiation Rules (Coursera)

Calculus through Data & Modeling: Differentiation Rules continues the study of differentiable calculus by developing new rules for finding derivatives without having to use the limit definition directly. These differentiation rules will enable the calculation of rates of change with relative ease the derivatives of polynomials, rational functions, algebraic functions, exponential and logarithmic functions, and trigonometric and inverse trigonometric functions.

Oct 19th 2026
5-12 Weeks
Basics of Statistical Inference and Modelling Using R (edX) EdX
University of Canterbury,UCx

Basics of Statistical Inference and Modelling Using R (edX)

Learn why a statistical method works, how to implement it using R and when to apply it and where to look if the particular statistical method is not applicable in the specific situation. Basics of Statistical Inference and Modelling Using R is part one of the Statistical Analysis in R professional certificate.

Self Paced
Self-Paced