Syllabus for Combinatorial Optimisation and Constraint Programming

Kombinatorisk optimering och villkorsprogrammering


  • 10 credits
  • Course code: 1DL442
  • Education cycle: Second cycle
  • Main field(s) of study and in-depth level: Computer Science A1N, Technology A1N
  • Grading system: Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
  • Established: 2022-03-03
  • Established by: The Faculty Board of Science and Technology
  • Applies from: Autumn 2022
  • Entry requirements:

    120 credits including Basic Course in Mathematics, Algebra I, and 10 credits in computer programming or another combination of courses containing basic concepts in algebra, combinatorics, logic, graph theory, set theory and implementation of (basic) search algorithms. Proficiency in English equivalent to the Swedish upper secondary course English 6.

  • Responsible department: Department of Information Technology

Learning outcomes

On completion of the course, the student should be able to:

  • define the concept of combinatorial (optimisation or satisfaction) problem,
  • explain the concept of constraint, as used in a constraint-based modelling language,
  • model a combinatorial problem in a constraint-based solving-technology-independent modelling language,
  • compare (empirically) several models,
  • describe and compare solving technologies that can be used by the backends to a constraint-based modelling language,
  • choose suitable solving technologies for a new combinatorial problem, and motivate this choice,
  • present and discuss topics related to the course content, orally and in writing, with a skill appropriate for the level of education,
  • describe how a constraint programming (CP) solver works, by giving its architecture and explaining the principles it is based on,
  • augment a CP solver with a propagator for a new constraint, and evaluate (empirically) whether the propagator is better than a definition based on the existing constraints of the solver,
  • devise (empirically) a (problem-specific) search strategy that can be used by a CP solver,
  • design and compare (empirically) several constraint programs (with model and search parts) for a combinatorial problem.


The use of tools for solving a combinatorial problem, by first modelling it in a solving-technology-independent constraint-based modelling language and then running the model on an off-the-shelf solver. Comparison of models, say by introducing redundancy or by detecting and breaking symmetries. Solving technologies that can be used by the backends to a constraint-based modelling language, such as constraint programming, local search, Boolean satisfiability (modulo theories), and mixed integer programming.

Constraint consistency; constraint propagator; propagation fixpoint algorithm.

Solving by systematic search: construction and exploration of a search tree; branching strategies; handling of an objective function for optimisation.

Solving by (constraint-based) stochastic local search: construction and exploration of a search space; constraint violation; variable violation; move probing; search heuristics; search meta-heuristics.


Lectures, guest lectures, assignments, help sessions, solution sessions, and a project.


Oral and written presentations of modelling assignments (3 credits).

Oral and written presentations of programming assignments (5 credits).

Oral and written presentations of a project (2 credits).

If there are special reasons for doing so, an examiner may make an exception from the method of assessment indicated and allow a student to be assessed by another method. An example of special reasons might be a certificate regarding special pedagogical support from the disability coordinator of the university.

Other directives

This course cannot be included in the same degree as 1DL441, 1DL451, 1DL448 or 1DL449.

Reading list

Reading list

Applies from: Autumn 2022

Some titles may be available electronically through the University library.

The course has no required course book. Course material and references will be provided during the course.

Last modified: 2022-04-26