Complexity Theory
(An English-language class)
This course is over.
Lectures and Tutorials (6 SWS/9 ECTS)
„Complexity theory is a central field of the theoretical foundations of computer science. It is concerned with the study of the intrinsic complexity of computational tasks. That is, a typical complexity-theoretic study looks at a task (or a class of tasks) and at the computational resources required to solve this task, rather than at a specific algorithm or algorithmic scheme. Actually, research in complexity theory tends to start with the computational resources themselves, and addresses the effect of limiting these resources on the class of tasks that can be solved. Thus, computational complexity is the study of the what can be achieved within limited time (and/or other limited natural computational resources).“ (Oded Goldreich)
This course provides an introduction to the theory of computational complexity. It perfectly complements algorithmic studies. Topics include basic complexity measures and classes, space and time hierarchies, lower bounds, P versus NP, the polynomial hierarchy, alternations, probabilistic and counting complexity, circuits, interactive proof systems, and some selected problems of complexity theory.
Knowledge equivalent to an introductory course on theoretical computer science is required for this class.
Times
Lectures: | Tuesday, 17:00-18:30, C 421 (Sven Kosub) |
Thursday, 13:30-15:00, D 430 (Sven Kosub) | |
Tutorials: | Wednesday, 17:00-18:30, D 431 (Michael.Aichem @ uni.kn) |
Oral exams: | Thursday, 02/16/2017, 13:30-15:00, PZ 1004 (1st date) |
Thursday, 04/20/2017, 16:00-17:00, PZ 1004 (2nd date) |
Homework Assignments
Assignments are made available on this webpage as a PDF-file (in English) every Wednesday. The editing time for each homework is about one week. It is due on the next Wednesday at 17:00 (right before the start of the tutorial). The assignments have to be delivered in written form in English. The corrected and scored assignments will be returned in the next tutorial.
- Assignment 1 - Post date: 10/26/16 - Due date: 11/02/16 (PDF, 123 KB)
- Assignment 2 - Post date: 11/02/16 - Due date: 11/09/16 (PDF, 127 KB)
- Assignment 3 - Post date: 11/09/16 - Due date: 11/16/16 (PDF, 89 KB)
- Assignment 4 - Post date: 11/16/16 - Due date: 11/23/16 (PDF, 131 KB)
- Assignment 5 - Post date: 11/23/16 - Due date: 11/30/16 (PDF, 129 KB)
- Assignment 6 - Post date: 11/30/16 - Due date: 12/07/16 (PDF, 125 KB)
- Assignment 7 - Post date: 12/07/16 - Due date: 12/14/16 (PDF, 118 KB)
- Assignment 8 - Post date: 12/14/16 - Due date: 12/21/16 (PDF, 106 KB)
- Assignment 9 - Post date: 12/21/16 - Due date: 01/11/17 (PDF, 101 KB)
- Assignment 10 - Post date: 01/11/17 - Due date: 01/18/17 (PDF, 105 KB)
- Assignment 11 - Post date: 01/18/17 - Due date: 01/25/17 (PDF, 124 KB)
- Assignment 12 - Post date: 01/25/17 - Due date: 02/01/17 (PDF, 130 KB)
- Assignment 13 - Post date: 02/01/17 - Due date: 02/08/17 (PDF, 111 KB)
Content
The following topics are planned:
- Complexity measures and classes
- Complexity hierarchies
- Relations between space and time complexity
- Reductions and completeness
- Lower bounds
- The polynomial hierarchy
- Alternation
- Probabilistic computations
- Interactive proof systems
Lecture Notes
Lecture notes are made available close in time to the lectures. The current version can be downloaded here. In case you have suggestions or comments (typos or any kind of errors) please send an email.
- All chapters - Version: 2.11 - Date: 02/15/17 (PDF, 241 KB)
- Chapter 1 - Version: Notes (PDF, 1 MB)
- Chapter 2 - Version: Notes (PDF, 552 KB)
- Chapter 3 - Version: Notes (PDF, 662 KB)
- Chapter 4 - Version: Notes (PDF, 1 MB)
- Chapter 5 - Version: Notes (PDF, 322 KB)
- Chapter 6 - Version: Notes (PDF, 1 MB)
- Chapter 7 - Version: Notes (PDF, 1 MB)
- Chapter 8 - Version: Notes (PDF, 3 MB)
- Chapter 9 - Version: Notes (PDF, 690 KB)
Literature
In-depth and background material of certain course aspects can be found in:
- Sanjeev Arora, Boaz Barak. Computational Complexity: A Modern Approach. Cambridge University Press, Cambridge, 2009.
- Daniel P. Bovet, Pierluigi Crescenzi. Introduction to the Theory of Complexity. Prentice-Hall, Upper Saddle River, NJ, 1993.
- Mitsunori Ogihara, Lane A. Hemaspaandra. The Complexity Theory Companion. Springer-Verlag, Berlin, 2001.
- Christos H. Papadimitriou. Computational Complexity. Addision-Wesley, Reading, MA, 1994.
- Gerd Wechsung. Vorlesungen zur Komplexitätstheorie. Teubner-Verlag, Stuttgart, 2000.
An online version of the Bovet-Crescenzi textbook is available as PDF under the Creative Commons Attribution-NonCommercial 2.5 License.