Prof. Dr. Tobias Friedrich

Graph Algorithms

MSc Lecture - Winter 2023/24


Graphs play a central role in the world of algorithms. For example, navigation devices use an algorithm to compute shortest paths on a graph to answer a route query.  Many planning and assignment problems can also be easily modeled as problems on graphs.  In principle, it is true that a great many problems can be thought of as graph problems, so designing efficient algorithms for such problems is an important subfield of theoretical computer science.

In this lecture we will enter the world of graph algorithms. On the one hand, we will learn about important algorithmic problem classes on graphs and efficient algorithms to solve them. Among other things, we will look at finding shortest paths, flows, cuts, separators, and matchings in graphs. Algorithms for these problems have a wide variety of applications, making them an important and useful tool for any algorithmicist.  On the other hand, we will also study how constraints on the graphs at hand affect the complexity of the problems and their algorithmic solution. For example, many algorithmic problems are more efficiently solvable on trees and planar graphs (i.e., graphs that can be embedded in the plane without intersection) than on general graphs. We will also explore some properties of graphs that we can exploit specifically for designing efficient algorithms. For example, trees and planar graphs have small separators (sets of nodes whose removal causes the graphs to decompose into multiple context components), which helps design efficient divide & conquer algorithms.

The goal of the lecture is the development and training of a structured approach to algorithmic problems on graphs. In doing so, we will jointly develop efficient graph algorithms with appropriate data structures, prove their correctness, and analyze their resource requirements (runtime and memory). In addition, the lecture will highlight special graph classes and other important concepts in graph theory and their impact on the world of algorithms.


You can register at the course in the moodle page !


The lecture is intended for Master students who are interested in the design and analysis of algorithms. There are no formal prerequisites to take this lecture.

The lectures will be held in English!

Learning and teaching methods

In the lecture we will work problem-oriented and partly interactive. To achieve this, lecture and exercise sessions will be mixed as needed.


Exercises are set regularly, and admission to the examination depends on their successful completion. For admission to the examination, 50% of the total number of points in the exercise series must be achieved. At the end of the semester there will be an oral examination of approximately 30 minutes. The exams will be held in English.


We meet two times per week,

  • Monday, at 13:30-15:00 in room HS.2.
  • Thursday, at 11:00-12:30 in room HS.3.

Lecture Team

The following persons are involved in this lecture:

Dr. George Skretas


Office: K-2.07
E-Mail: Georgios.Skretas(at)hpi.de

Niko Hastrich



E-Mail: Niko.Hastrich(at)student.hpi.de