Complexity Theory of Polynomial-Time Problems

Advanced Course, 2+1

Lectures: Thursday, 16:15 - 18:00, E1.4 024
Lecturers: Karl Bringmann and Sebastian Krinninger
First lecture: 21 April 2016
Tutorials: Friday, 12:15 - 14:00, U12 E1.1, biweekly
Assistant: Gorav Jindal
First tutorial: 13 May 2016
Credits: 5
Prerequisites: No formal requirements, but basic knowledge in algorithms & data structures and complexity theory is assumed.


  • The oral exam will take place in September. Please mark possible dates in the following doodle, till August 15 at the latest:


Complexity theory traditionally distinguishes whether a problem can be solved in polynomial-time (by providing an efficient algorithm) or the problem is NP-hard (by providing a reduction). For practical purposes however the label "polynomial-time" is too coarse: it may make a huge difference whether an algorithm runs in say linear, quadratic, or cubic time. In this course we explore an emerging subfield at the intersection of complexity theory and algorithm design which aims at a more fine-grained view of the complexity of polynomial-time problems. We present a mix of upper and lower bounds for fundamental poynomial-time solvable problems, often by drawing interesting connections between seemingly unrelated problems. A prototypical result presented in this course is the following: if there is a substantially faster algorithm for computing all-pairs shortest paths in a weighted graph, then there also is a substantially faster algorithm for checking wether the graphs has a negative triangle (and vice versa). The techniques for proving such statements have been developed quite recently and most results taught in this course are less than three years old.

An important part of the course are the exercises, where you will design conditional lower bounds essentially on your own. There will be 6 exercise sheets and you need to collect at least 50% of all points on exercise sheets to be admitted to the exam.You are allowed to collaborate on the exercise sheets, but you have to write down a solution on your own, using your own words. Please indicate the names of your collaborators for each exercise you solve. Further, cite all external sources that you use (books, websites, research papers, etc.).

Tentative Schedule

Lecture Tutorial Teacher Topic
21 Apr KB+SK Introduction
28 Apr KB Lower bounds from SETH and Orthogonal Vectors (→Ex. sheet 1)
05 May No lecture
12 May SK The polynomial method I: Orthogonal Vectors
13 May GJ Tutorial 1
19 May SK The polynomial method II: All-Pairs Shortest Paths (→Ex. sheet 2)
26 May No lecture
02 Jun KB Subcubic equivalences between path, matrix, and triangle problems (→Ex. sheet 3)
03 Jun GJ Tutorial 2
09 Jun KB 3SUM Hardness I
16 Jun SK 3SUM Hardness II (→Ex. sheet 4)
17 Jun GJ Tutorial 3
23 Jun KB Boolean Matrix Multiplication: Upper bounds and hardness results (→Ex. sheet 5)
30 Jun SK Dynamic graph algorithms I: Upper bounds
01 Jul GJ Tutorial 4
07 Jul SK Dynamic graph algorithms II: Lower bounds (→Ex. sheet 6)
08 Jul GJ Tutorial 5
14 Jul KB Nondeterministic SETH
21 Jul SK More on OMv
22 Jul GJ Tutorial 6
28 Jul KB Recap, Further Directions, Open Problems
29 Jul GJ Q&A session