# Complexity Theory of Polynomial-Time Problems

 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.

## News

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

## Description

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 downa 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.).