Computational Integer Optimization
Block lecture · Summer Semester 2026

Computational Integer Optimization

Content

Integer optimization lies at the core of many real-world decision problems in logistics, finance, energy systems, and production planning. Solving large-scale mixed-integer programs efficiently requires sophisticated algorithms, numerical rigor, and a deep understanding of the mathematics behind the applications.

This block course focuses on the computational and mathematical foundations of modern integer optimization solvers. In dedicated lectures, we study the algorithmic building blocks that make state-of-the-art solvers effective in practice, as well as the mathematical principles underlying their correctness and performance.

Topics include different classes of cutting planes and techniques to prove their correctness; the mathematical foundations of presolving (with excursions to number theory and graph theory); primal heuristics for finding high-quality feasible solutions; logical deduction mechanisms in propagation and infeasibility analysis; and the integration of machine learning techniques into optimization algorithms. Further emphasis is placed on numerics in limited-precision algebra, software engineering aspects, principled evaluation of algorithms, and best modeling practices in mathematical optimization.

In addition to the lectures, there will be hands-on implementation sessions, working with state-of-the-art optimization software.

Exams are based on lecture content so active participation is highly recommended. Additional materials are given for optional further reading.

Registration & Preparation

Before we get started, we would be grateful if you could take care of a few small things.

Register

Please confirm your participation by writing to both t.berthold@campus.tu-berlin.de and g.tjusila@campus.tu-berlin.de with your name, university, and program.

What to do before the course

  1. Open the course repository and create a GitHub Codespace.
  2. Find the small verification code inside the Codespace.
  3. Fill in the pre-course form and enter the verification code in the final question. Your answers will help us get a better picture of the class and put together the teams.
  4. Please remember to stop your Codespace when you are finished.

Coding environment: GitHub Codespaces

We will use GitHub Codespaces for all coding tutorials so that everyone has the same environment. Free GitHub accounts include around 60 hours per month on a standard two-core Codespace, which will be more than enough for the course. If you would like some additional capacity, you can also apply for the GitHub Student Developer Pack.

Course project: a mini MIP solver in C++

Although we previously announced that we would use Python, we have decided to use C++ instead—because we are going to build our own mini MIP solver! You will work in teams of three to four and gradually implement techniques introduced during the coding tutorials and exercise sessions. At the end of the week, we will have a small competition to see which team has built the best solver.

If you have never programmed in C++ before, don’t worry: no prior C++ experience is required. The exercises will focus on implementing optimization ideas efficiently rather than testing advanced language knowledge. We will use C++23 because its newer features let us write clearer and more convenient code. We have prepared a short introduction to everything you will need in the course repository.

Prefer to work locally?

The repository also includes a dev container configuration for setting up the same environment locally with Docker. This option is a little more involved, so please make sure that GitHub Codespaces works first. If you have any questions about the setup or the C++ notes, please feel free to contact us before the course or ask us on the first day.

Logistics

When
24.08.2026 – 28.08.2026
Time
09:00(Sharp!) – 18:00
Where
Seminar room 2006ZIB ↗, Takustraße 7, 14195 Berlin · near FU campus
Language
English
Credits
5 ECTS
Exam Format
tbd
Prerequisites
Prior knowledge in linear and integer optimization is recommended (e.g., ADM I & ADM II at TU Berlin, or Discrete Math 1 & Discrete Math 2 at FU Berlin).

Materials (Tentative)

Day 01Mon 24 Aug
Day 02Tue 25 Aug
Day 03Wed 26 Aug
Day 04Thu 27 Aug

Staff & contact

PersonEmail
PD Dr. Timo Berthold t.berthold@campus.tu-berlin.de
Gennesaret Kharistio Tjusila g.tjusila@campus.tu-berlin.de