Algorithmen und Komplexität


Modulnummer:

1101630


Leistungspunkte:

6 ECTS


Lehrveranstaltungen:

  • Vorlesung Algorithmen und Komplexität (3 SWS)
  • Übung Algorithmen und Komplexität (1 SWS)

Prüfung:

Klausur (90 min) oder mündliche Prüfung (20 min)


Prüfungsvorleistungen:

Lösen von Übungsaufgaben


Inhalt:

Algorithmen:

  • Problem-, Algorithmusbegriff (RAM als Standardmodell des Algorithmenentwurfs)
  • Korrektheit, Zeitkomplexität im logarithmischen und uniformen Kostenmaß, O-Notation
  • Lehrbuchbeispiel Maximum-Sum-Contiguous-Subarray in Theorie und Praxis (Brute-Force, mit Preprocessing, Teile und Herrsche, Range-Tree, Greedy)
  • Lehrbuchbeispiel Longest-Common-Subsequence (Brute-Force, Dynamic Programming)
  • Schematische Einführung der Entwurfsmuster und darin genutzter Datenstrukturen:
    • Dynamische Programmierung (an Beispielen Rucksackproblem und TSP)
    • Greedy (am Beispiel MST mit jeweils Union Find und Fibonacci Heap)
    • Teile und Herrsche (am Beispiel Matrix-Multiplikation)

Komplexität:

  • Allgemeine untere Schranken mit Kreuzungsfolgen
  • Zeithierarchiesatz
  • Komplexitätsklassen P, NP und EXP
  • Turingreduktionen, Optimierungs- und Entscheidungsvarianten wichtiger Probleme  
  • Nicht-Deterministische Charakterisierung von NP
  • Das Problem P != NP
  • NP-Vollständigkeit, Polynomialzeitreduktion, Satz von Cook
  • Starke NP-Vollständigkeit, NP-Intermediate
  • Orakelklassen, Grenzen der Diagonalisierung
  • co-NP und dessen Beziehung zu NP, Polynomielle Hierarchie