Prof. Dr. Tobias Friedrich

Combinatorial Optimization

MSc Lecture - Winter 2021/22

It is important that all participants subscribe to our course moodle. There we will announce all organizational details. Note that the moodle subscription is additionally required to the official course subscription via the Studienreferat.


The main paradigm in the course will be the design and analysis of algorithms for combinatorial optimization. We will cover problems that can be solved optimally in polynomial time (matchings, flows, min-cost flows) as well as study problems that are NP-hard, and for which we can develop approximation algorithms. Linear programming techniques will be one of the central themes of the course. 

Tentative list of topics: 

Basics of linear programming, Duality, Matchings (Hall's Theorem, Tutte's Theorem), Weighted Matching Algorithms, Matroids, Spanning Trees and Arborescences, Network Flow, Approximation Algorithms (Rounding, Primal-Dual Method), Multicommodity Flows and Cut Problems.


The course will be held in person and will consist of lectures and problem solving sessions. Lecture and exercise dates will be decided as needed.

Students are required to hand in homework every couple of weeks. At the end of the course there will be a written final examination. At least 50% points are required in homework assignments for admission to the final examination. Final grade will be decided on the basis of performance in the written exam (60%) and homework assignment (40%).


There are no formal requirements, but we expect the students to have the ability to understand/write mathematical proofs and have basic familiarity with algortihms.

Books and Lectures

Combinatorial Optimization: Theory and Algorithms by Korte and Vygen
Combinatorial Optimization - Polyhedra and Efficiency by Schrjiver


We will meet weekly on Tuesdays and Thursdays from 11:00 to 12:30 in A 1.1.