Single-Course English 5 ECTS

Large Scale Optimization using Decomposition

Overall Course Objectives

The aim of the course is to give a thorough introduction to decomposition algorithms. This will enable the students to solve complex optimization problems. Furthermore the student is trained in applying the algorithms and implementing them in Julia

Learning Objectives

  • Analyze mathematical optimization models.
  • Understand and apply linear programming duality in algorithm developement.
  • Apply modeling software to implement iterative algortihms
  • Understand and apply lowerbounding methods.
  • Decompose mathematical models such that these can be solved iteratively.
  • Apply the Benders decomposition algorithm.
  • Apply the Column Generation algorithm/Dantzig-Wolfe decomposition.
  • Understand the correctness of Benders decompositions algorithm and Dantzig-Wolfe decomposition algorithm
  • Implement of basis versions of Benders decomposition algorithm and Dantzig-Wolfe decomposition algorithm
  • Summarize and explain a scientific article on decomposition algorithms

Course Content

Many important optimization problems can be modeled using mixed
integer programming models. When these models cannot be solved using
standard solver software, decomposition algorithms can be applied to solve the problems iteratively. The methods are:
– Benders decomposition
– Dantzig-Wolfe decomposition/column generation

The course will give the students a thorough introduction to the two
types of algorithms and enable to use them as solution methods for
various problems.

Recommended prerequisites

42112, The programming language Julia, using the Math. Programming package Jump will be used in the exercises and in the assignments.

Teaching Method

Lectures, excercises and project work.


The course is quantitatively oriented, and a good understanding of linear programming is necessary. In the exercises, the computer language Julia/JuMP (taught in course 42112) is used to implement the decompositions algorithms. Students without prior knowledge of Julia/JuMP should be prepared for a significant extra workload.

See course in the course database.





13 weeks




DTU Lyngby Campus

Course code 42136
Course type Candidate
Semester start Week 5
Semester end Week 19
Days Thurs 8-12

7.500,00 DKK