Zum Inhalt
Fakultät für Informatik

Komplexitätstheorie

Veranstaltungsnummer 041241
Modulnummer INF-MA-242
Titel Komplexitätstheorie
Veranstalter Prof. Dr. Thomas Schwentick
Übungsleiter Prof. Dr. Thomas Schwentick
Klassifikation Basismodul im Masterstudiengang
Semester Sommersemester 2023
SWS 6 (4V+2Ü)
Kreditpunkte 8
Ort und Zeit Dienstags, 14:15 - 16:00 Uhr, OH12, R. 1.055

Donnerstags, 16:15 - 18:00 Uhr, OH12, R. 1.055
Querverbindungen Grundbegriffe der Theoretischen Informatik, Logik
Voraussetzungen Kenntnisse aus Grundbegriffe der Theoretischen Informatik
Moodle-Arbeitsraum ja (Anmeldung über LSF)


Zur Kursbeschreibung

Aktuelles

Die Vorlesung beginnt am 4.4.23. Die Vorlesungen in der ersten Woche finden online statt. Danach findet die Vorlesung in der Regel in Präsenz statt.

Genauere Informationen zur Durchführung werden im Moodle-Arbeitsraum bekanntgegeben.

Inhalt

Während bei der Untersuchung effizienter Algorithmen, die Untersuchung und Weiterentwicklung einzelner Algorithmen im Vordergrund steht, beschäftigt sich die Komplexitätstheorie mit der Klassifikation von Berechnungsproblemen nach ihrer algorithmischen Schwierigkeit. Sie versucht dabei, den inhärenten Ressourcenverbrauch zu bestimmen, z.B. hinsichtlich Rechenzeit oder Speicherplatz. Probleme mit gleichartigem Ressourcenverbrauch werden zu Komplexitätsklassen zusammengefasst. Die bekanntesten Komplexitätsklassen sind sicherlich P und NP, die die in polynomieller Zeit lösbaren bzw. verifizierbaren Probleme umfassen. Die Frage ob P und NP verschieden sind, wird als eine der bedeutendsten offenen Fragen der theoretischen Informatik, ja sogar der Mathematik, angesehen.

P und NP sind jedoch nur zwei Beispiele von Komplexitätsklassen. Andere Klassen ergeben sich unter anderem bei der Untersuchung der effizienten Parallelisierbarkeit von Problemen, der Lösbarkeit durch zufallsgesteuerte Algorithmen, und der approximativen Lösbarkeit von Problemen. Die Vorlesung hat das Ziel, einen breiten Überblick über die grundlegenden Konzepte und Resultate der Komplexitätstheorie zu geben.


Im ersten Teil stehen klassische Resultate im Vordergrund: z.B. die Korrespondenz zwischen Spielen und Speicherplatz-Beschränkungen, der Nachweis, dass sich mit mehr Platz oder Zeit auch mehr Probleme lösen lassen, weitere grundlegende Beziehungen zwischen Zeit- und Platzbasierten Klassen, und die Komplexitätswelt zwischen NP und PSPACE. Außerdem wird die Theorie der effizienten Parallelisierbarkeit betrachtet.

Der zweite Teil der Vorlesung widmet sich dem Umgang mit schwierigen Optimierungsproblemen und stellt vor allem komplexitätstheoretische Grundlagen von parametrisierten und Approximationsalgorithmen vor.

Weiterhin wird die Komplexitätstheorie paralleler, zufallsbasierter, parametrisierter und approximativer Algorithmen in Grundzügen vorgestellt.

Der dritte Teil der Vorlesung beschäftigt sich mit fortgeschrittenen Themen: Komplexitätstheorie des interaktiven Rechnens, des probabilistischen Beweisens und der Kryptographie, sowie bedingte Komplexitätsschranken.

 

Literatur

Die Vorlesung folgt nicht einem einzelnen Buch. Die folgende Literatur ist zu empfehlen.

  • Arora, Barak. Computational Complexity: A Modern Approach. Cambridge University Press. Eine Vorabversion ist (immer noch) verfügbar unter: http://theory.cs.princeton.edu/complexity/book.pdf
  • Wegener. Komplexitätstheorie: Grenzen der Effizienz von Algorithmen. Springer. 2003.
  • Papadimitriou. Computational Complexity. Addison-Wesley. Reading. 1995.
  • Kozen. Theory of Computation. Springer. 2006.
  • Bovet, Crescenzi. Introduction to the Theory of Complexity. Prentice Hall. New York. 1994.