Algorithm Design

Exercise Lab, University of Lübeck, Winter Term 2020/2021

Exercise lab sessions given as a student assistant.

Topics (in German Language)

  • Einleitung
  • Laufzeitanalyse von Algorithmen
    • Die Groß-O-Notation und ihre Verwandten
    • Rekursionsgleichungen
    • Schnelle Polynom-Multiplikation
    • Strassens schnelle Matrix-Multiplikation (SMM)
  • Greedy-Algorithmen und Scheduling-Probleme
    • Greedy-Strategien
    • Intervall-Scheduling
    • Scheduling mit mehreren Prozessoren
    • Scheduling mit Deadlines
    • Das Caching-Problem
    • Gewichtetes Intervall-Scheduling
    • Schwierige Scheduling-Probleme
    • Graph-Färbung
  • Dynamische Programmierung
    • Matrizen-Produkte
    • Größte gemeinsame Teilsequenz
    • String-Alignment – Editierdistanz
    • Pseudo-Polynomialzeit
    • Weitere Partitionsprobleme
  • Graphen und Wege-Probleme
    • Grundbegriffe der Graphentheorie
    • DFS: die Tiefensuche
    • Kürzeste Pfade in einem Graphen
      • Dijkstras Algorithmus für das SSSP-Problem
      • Distanzprobleme mit negativen Kantenkosten
      • Das APSP-Problem
    • Longest-Path, Hamiltonscher Kreis
    • Fluss-Probleme
      • Das MAXFLOW-MINCUT-Theorem
      • Implementierungen von General-MAXFLOW
    • 2-dimensionales Matching 3-dimensionales Matching und Überdeckungsprobleme
  • Dynamische Datenstrukturen und abstrakte Datentypen
    • Prioritätswarteschlangen
    • Binominalbäume
    • B-Bäume
    • Suchbäume für höherdimensionale Universen
    • Tries
    • Union-Find
    • Hashing
      • Kollisionsbehandlung durch Verkettung der Überläufer
      • Offenes Hashing mit einer Sondierungsfolge
      • Uniformes Sondieren
      • Double-Hashing
      • Komplexere Sondierungsstrategien
      • Cuckoo-Hashing
      • Coalesced Hashing
      • Dynamisches Hashing
      • Bloom-Filter
  • Online Probleme und Algorithmen
    • Das Skifahrer-Problem: Leihen oder Kaufen
    • Die kompetitive Rate
    • Das Listenzugriffsproblem LZP
    • Potentialfunktionen
    • Untere Schranken
    • Das k-Server-Problem
  • Approximations-Algorithmen
    • Approximationsrate
    • Approximation von metrischem TSP
    • Approximation der Lastverteilung
    • Schranken für die Approximierbarkeitsrate
    • Min-SET-COVER und Marginalkosten
    • Approximation von Min-VERTEX-COVER
  • Randomisierte Algorithmen
    • Gleichheitstest für Matrizen und Polynome
    • Fingerprinting für Strings
    • Stochastische lokale Suche: Random Walks, evolutionäre und genetische Algorithmen
  • Diskrete Optimierungsprobleme
    • Cliquen, Kreise und Färbungen
    • Überdeckungs- und Packungsprobleme
    • Parametrisierung von Optimierungsproblemen