Print View

1. VorlesungTue Oct 19, 2021 02:15 PM -  | 03:15 PM

  • Überblick: Qualifikationsziele
  • Organisatorisches: Vorlesung und Übung
  • Überblick über vergleichsbasierte Sortieralgorithmen (Wiederholung)
    • Sortieren durch Vergleichen (Bubblesort)
    • Sortieren durch Einfügen
    • Sortieren durch Auswahl
    • Quicksort
    • Sortieren durch Verschmelzen (mergesort)
  • Asymptotische Laufzeitanalyse, O-Notation (Wiederholung). Ω-Notation (untere Schranken), Θ-Notation

Aufzeichnung 90 min. Passwort: Bubblesort123

2. VorlesungThu Oct 21, 2021 02:15 PM -  | 03:15 PM

  • Teile und herrsche (divide-and-conquer)
  • O-Notation
    • Rekursion T(n)=O(n)+T(l)+T(nl)
    • Rekursion T(n)=O(n)+T(⌊n/2⌋)+T(⌈n/2⌉)

Aufzeichnung 86 min, Passwort T(n)istO(n^2)

3. VorlesungTue Oct 26, 2021 02:15 PM -  | 03:15 PM

  • Topologisches Sortieren
  • Charakterisierung der Existenz einer topologischen Sortierung
  • Verschiedene Implementierungen. Lineare Laufzeit O(m+n)

Aufnahme 85 min, Passwort TopoSort1

4. VorlesungThu Oct 28, 2021 02:15 PM -  | 03:15 PM

  • Topologisches Sortieren:
  • O-Notation als Einbahngleichungen
  • Quicksort mit randomisierter Pivotauswahl

Aufnahme 92 min, Passwort random.Quicksort3

5. VorlesungTue Nov 02, 2021 02:15 PM -  | 03:15 PM

  • Abstrakte Datentypen
  • Spezifikation abstrakter Datentypen
    • verbale Spezifikation
    • modellierende Spezifikation. Beispiel: Mengen
    • algebraische Spezifikation. Beispiel: Mengen
      • Beweis von Eigenschaften durch algebraische Manipulation
      • Referenzimplementierung direkt aus der Spezifikation in Haskell (Menge.hs)

Aufnahme 73 min (Anfang fehlt), Passwort Menge123

6. VorlesungThu Nov 04, 2021 02:15 PM -  | 03:15 PM

  • Stückweise konstante Funktionen

Aufnahme 71 min (Anfang fehlt), Passwort Verschmel2en

7. VorlesungTue Nov 09, 2021 02:15 PM -  | 03:15 PM

  • Spezifikation von abstrakten Datentypen: Vor- und Nachbedingungen. Beispiel Mengenoperationen
  • Beispiel: Menge durch eine Feld konstanter Länge implementiert: SmallIntSet.java
  • Abstraktionsfunktion
  • Darstellungsinvarianten der Implementierung von Datenstrukturen
  • Nebenbedingungen (Zusatzrestriktionen)
  • Korrektheit der Implementierung von abstrakten Datentypen
  • Einsatz beim Korrektheitsbeweis auf höherer Ebene
  • Unterstützung für Datenabstraktion in verschiedenen Programmiersprachen
    • Schnittstellen (interfaces) in Java; abstrakte Klassen
    • Vor- und Nachbedingungen in Eifel 
    • design by contract

Aufnahme 87 min, Passwort Abstrakt1onsfunktion

8. VorlesungThu Nov 11, 2021 02:15 PM -  | 03:15 PM

  • Wörterbuch als abstrakter Datentyp (dictionary, map)
  • Wörterbuchoperationen: Einfügen, Suchen, Löschen
  • geordnetes Wörterbuch
  • Wiederholung: binäre Bäume und Suchbäume
    • ausgeglichene und entartete Bäume
  • Höhenbalancierte Bäume (AVL-Bäume)
    • Rotationen und Doppelrotationen
    • Einfügen

Aufnahme (1. Teil 24 min, 2. Teil 64 min), Passwort Höhenunterschiednur1

9. VorlesungTue Nov 16, 2021 02:15 PM -  | 03:15 PM

  • Löschen in AVL Bäumen
  • geordnetes Wörterbuch
  • erweiterte Suchabfragen in Suchbäumen. z.B. Rangabfragen und inverse Rangabfragen
    • zusätzliche Attribute in den Knoten
  • 2-3-Bäume, a-b-Bäume

Aufnahme 83 min, Passwort 2-3-Baum

10. VorlesungThu Nov 18, 2021 02:15 PM -  | 03:15 PM

  • a-b-Bäume
    • Varianten, B-Bäume für externen Speicher
  • Digitale Suchbäume (tries) zum Speichern von Zeichenketten
  • komprimierte digitale Suchbäume
  • Suffixbäume, Aufbau und Anwendungen

Aufnahme 68 min (Anfang fehlt), Passwort Suffixbaum123

11. VorlesungTue Nov 23, 2021 02:15 PM -  | 03:15 PM

  • untere Schranken für Wörterbuchoperationen
    • vergleichsbasierte Algorithmen
      • Sortieren, Entscheidungsbäume
    • vergleichsbasierte Datenstrukturen
    • nicht vergleichsbasierte Datenstrukturen (und Sortieralgorithmen)
      • Bitvektoren, digitale Suchbäume, (Hashtabellen), (bucketsort, radixsort)
  • Teilwortsuche

Aufzeichnung 90 min, Passwort Bitvektor-01001

12. VorlesungThu Nov 25, 2021 02:15 PM -  | 03:15 PM

  • Teilwortsuche
    • Algorithmus von Knuth-Morris-Pratt, Berechnung der Verschiebefunktion
    • Algorithmus von Boyer-Moore
    • Fingerabdrücke nach Rabin-Karp
      • Auswahl des Moduls
    • Textsuche mit endlichen Automaten

Aufnahme 88 min, Passwort Hash4unktion

13. VorlesungTue Nov 30, 2021 02:15 PM -  | 03:15 PM

  • Graphenalgorithmen
    • Wiederholung der Grundbegriffe
    • Speicherung von Graphen im Computer: Adjazenzmatrix und Adjazenzliste
    • Erreichbarkeit
    • Breitensuche, Breitensuchbaum
    • Nicht explizit gespeicherte Graphen bei der Lösungssuche in der künstlichen Intelligenz

Aufnahme 86 min, Passwort gemeinsame5chlangeQ

14. VorlesungThu Dec 02, 2021 02:15 PM -  | 03:15 PM

  • Tiefensuche, Tiefensuchbaum
  • kürzeste Wege, der Algorithmus von Dijkstra
    • Simulation von Breitensuche, der kürzeste-Wege-Baum
    • Korrektheit
    • Reduktion auf O(n2) Laufzeit
    • Implementierung mit Suchbäumen und Prioritätswarteschlangen
    • Prioritätswarteschlange  als abstrakter Datentyp

Aufzeichnung 90 min, Passwort Tiefensuc4e

15. VorlesungTue Dec 07, 2021 02:15 PM -  | 03:15 PM

  • Halden
    • Die binäre Halde mit Speicherung in einem Feld
    • rudmentäre Python-Klasse Halde mit den Operationen einfügen und entferneMin
    • Prioritätswarteschlange  als abstrakter Datentyp
    • Implementierung als Halde mit Zugriffshenkeln: Halde.py
    • Algorithmus von Dijkstra unter Verwendung dieser Prioritätswarteschlange: Dijkstra.py
  • kürzeste Spannbäume
    • Aufgabenstellung
    • der gierige Algorithmus (Algorithmus von Kruskal)
    • Korrektheit

teilweise Aufzeichnung 68 min, Passwort Kruskal123

16. VorlesungThu Dec 09, 2021 02:15 PM -  | 03:15 PM

  • kürzeste Spannbäume (Fortsetzung)
    • Reduktion von gleichen Kantengewichten auf den Fall verschiedener Kantengewichte durch Stören der Kosten
    • Nachbemerkung über Sonderfälle
  • das UNION-FIND-Problem
    • Vereinigung nach Größe
    • Erwähnt: Pfadverkürzung und die inverse Ackermannfunktion α(n)

Aufzeichnung 89 min, Passwort Ackermann1alpha

17. VorlesungTue Dec 14, 2021 02:15 PM -  | 03:15 PM

18. VorlesungThu Dec 16, 2021 02:15 PM -  | 03:15 PM

  • Das Erfüllbarkeitsproblem (Satisfiability, SAT)
  • Graphenfärbung (GRAPHCOL) und die Entscheidungsvariante (Färbbarkeit GRAPHCOL-E)
  • Reduktion: Färbbarkeit <P SAT
  • Entscheidungsprobleme, Karp-Reduktion
  • Die Klasse NP, Entscheidungsprobleme, Zertifikatskriterium
  • NP-schwere und NP-vollständige Probleme
  • Bedeutung der NP-Schwerheit
  • Satz von Cook/Levin: SAT ist NP-schwer
  • Beweis der NP-Schwerheit durch Reduktion

Aufnahme 84 min, Passwort Weihnachten2021

19. VorlesungTue Jan 04, 2022 02:15 PM -  | 03:45 PM

  • Beispiel einer Reduktion: SAT <P 3-Färbbarkeit
  • Zusammenfassung: NP-Schwerheit, NP, Reduktion
  • 3-SAT
  • Hashtabellen, gestreute Speicherung
    • Behandlung von Kollisionen: Verkettete Listen
    • Behandlung von Kollisionen: offene Adressierung, lineares Sondieren
    • Kuckuckshashing
    • Multiplikative Hashfunktion
    • Verhalten in Abhängigkeit vom Belegungsfaktor α=n/s

Aufnahme 89 min, Passwort Modulo2^w

20. VorlesungThu Jan 06, 2022 02:15 PM -  | 03:45 PM

Teilweise Aufzeichnung 68 min, Passwort Wortlänge32

21. VorlesungTue Jan 11, 2022 02:15 PM -  | 03:45 PM

  • Analyse von Kuckuckshashing
    • Kodierungsargument

Aufzeichnung 89 min, Passwort Kuckuck1

22. Vorlesung Thu Jan 13, 2022 02:15 PM -  | 03:45 PM

  • Amortisierte Analyse
    • Listen variabler Länge
    • Umbau von Hashtabellen
    • Laufzeit von Listenoperationen in Python
    dynamische Speicherverwaltung, Stapel und Halde, garbage collection

Aufzeichnung 87 min, Passwort A.append(5)

23. VorlesungTue Jan 18, 2022 02:15 PM -  | 03:45 PM

Aufzeichnung 83 min, Passwort Opt1Code

24. VorlesungThu Jan 20, 2022 02:15 PM -  | 03:45 PM

  • Mengen und Wörterbücher als abstrakte Datentypen in Java (die Collection- und Map-Klassen)
  • Optimale Suchbäume
    • dynamische Programmierung
    • Implementierungen in Python: optSuchbaum.py
    • Zurückverfolgen der Lösung (abspeichern oder neu berechnen)
  • Variante: unsystematisches Lösen der Teilprobleme und Tabellieren der Ergebnisse (Merken, memoization) zur Vermeidung von Mehrfachberechnungen
  • Algorithmus von Dantzig für kürzeste Wege mit negativen Kantengewichten

Aufzeichnung 90 min, Passwort opt1Code

25. Vorlesung. (Aufzeichnung)Tue Jan 25, 2022 02:15 PM -  | 03:45 PM

Analyse von Stellungsspielen (Folien)

26. VorlesungThu Jan 27, 2022 02:15 PM -  | 03:45 PM

  • Editierabstand
  • Dynamische Programmierung und Wege in azyklischen Graphen

Geometrische Algorithmen:

  • konvexe Hülle: Problemdefinition
    • konvexe Hülle einer sortierten Punktmenge in linearer Zeit (inkrementeller Algorithmus)
  • Orientierungstest

Aufnahme 88 min, Passwort (x2-x1)*(yC-yA)-(

27. VorlesungTue Feb 01, 2022 02:15 PM -  | 03:45 PM

  • Punkt in Polygon
    • Sonderfälle
  • Probleme der Gleitkommarechnung
  • dichtestes Punktpaar, teile und herrsche

Aufzeichnung 80 min, Passwort Delta1-Delta2

28. VorlesungThu Feb 03, 2022 02:15 PM -  | 04:00 PM

  • dynamische Programmierung; das Rundreiseproblem
  • Übersicht über Algorithmenentwurfsprinzipien:
    • teile und herrsche
      • siehe Sortieren, dichtestes Punktpaar
    • dynamische Programmierung
      • siehe optimaler Suchbaum, Edit-Abstand, Rundreiseproblem
    • systematisches Durchsuchen von Lösungsbäumen (backtracking)
      • siehe Acht-Damen-Problem
    • gierige Algorithmen (greedy)
      • siehe kürzeste Spannbäume, Algorithmus von Kruskal
    • lokale Optimierung, steilster Abstieg
    • heuristische Suchverfahren (z. B. Simulated annealing, genetische Algorithmen, Tabusuche, Ameisenalgorithmen)
  • Näherungslösung, Approximationsalgorithmen
  • längste aufsteigende Teilfolge
    • dynamische Programmierung, O(n²)
    • mit Bereichsabfragen, O(n log n)
    • Darstellung einer Funktion, O(n log n)

Aufnahme 95 min, Passwort Aufsteigend123

29. VorlesungTue Feb 08, 2022 02:15 PM -  | 03:45 PM

  • lokale Optimierung, steilster Abstieg
    • Zielfunktion, Nachbarschaftsrelation
  • heuristische Suche: Simulated annealing
  • diskrete Ereignissimulation
  • randomisierte Auswahl des k-kleinsten Elements: Quickselect

Aufzeichnung 87 min, Passwort: 2OPT-Nachbarschaft

30. VorlesungThu Feb 10, 2022 02:15 PM -  | 03:45 PM

Aufzeichnung 87 min, Passwort: A-Stern-1

31. VorlesungTue Feb 15, 2022 02:15 PM -  | 03:45 PM

  • größte Paarung:
    • gieriger Algorithmus
    • Näherungslösung
  • Rückschau: randomisierte Algorithmen und Datenstrukturen
  • Fallstudie: Faltung von RNA-Molekülen

Aufzeichnung 70 min, Passwort: 2Drittel-Approximation