Datenstrukturen und effiziente Algorithmen
General
Lecturer: Marc Hellmuth
Tutor: Nikolai Nøjgaard
Zeit und Ort:
- Vorlesung:
- Di 10:00-12:00, Mi 12:00-14:00
- Franz-Mehring-Straße 47/48 - SR 3
- Übung (in English)
- Mo 12:00 bis 14:00
- Wollweberstraße 1 - RTK
Vorwissen:
- Algorithmen und Programmierung, Theoretische Informatik
Voraussetzungen zum Bestehen:
- Aktive Teilnahme
- 50% der Übungsaufgaben korrekt gelöst
- Bestehen der 30-45min mündlichen Prüfung
Dates and News
- Übung 10, Aufg 4: berichtigt - nicht F_k +1 sondern F_{k+1} - Dank an die aufmerksamen Studenten!
- Zusätzliches File (Edmonds-Karp-Algorithm) für Übung 9 hochgeladen.
- Vorlesung am 4. und 5. Dez entfällt und Übung am 10.Dez entfällt
und wird ggf nachgeholt. - Aktualisiertes Übungsblatt 6 - Aufg. 1 (22.Nov) -- "walk of length k"
- Aktualisiertes Übungsblatt 4 (6.Nov)
- Aktualisiertes Übungsblatt Aufg. 2c (17.Okt) - Dank an die aufmerksamen Studenten!
- Start der Übung: 22.10.2018
- Start der Vorlesung: 16.10.2018
Übung
Exercise Deadline Workingmaterial
1-Ex.pdf 24. Okt --
2-Ex.pdf 31. Okt --
3-Ex.pdf 07. Nov Faust-Goethe E.coli-Genom
4-Ex.pdf 14. Nov --
5-Ex.pdf 21. Nov --
6-Ex.pdf 28 .Nov Graphen G1, G2, G3, G4
7-Ex.pdf 11. Dez --
8-Ex.pdf 19. Dez --
9-Ex.pdf 09. Jan Edmonds-Karp-Alg. (cpp)
10-Ex.pdf 16. Jan
11-Ex.pdf 23. Jan
Material - Zusammenfassung Vorlesung
(Einige der Folien wurden aus der Vorlesung von Prof. Stanke wiederverwendet)
Vorlesung 1: Orga
Vorlesung 1-2: Einführung und Basics
- Begriff Algorithmus/Datenstruktur
- Recap: Big-O, Omega, and Theta- Notation
- Einschub Graphtheorie: (un)gerichtete Graphen, Grad, Teilgraph, Isomorphie, vollständige Graphen, Komplement, Baum, Wald
- Einfach Typen von Algorithmen
- iterativ, rekursiv, dynamisch, heuristisch, probabilistisch
Vorlesung 2-3: Komplexität
- HALTE-problem (nicht entscheidbar)
- Entscheidungs- VS Optimierungsprobleme
- Die Klassen P, NP, (nicht)-deterministische Turingmaschine (TM)
- Polynomialzeit Reduktionen ≤p
- NP-vollständigkeit
- Bsp.: SAT ≤p 3-SAT ≤p CLIQUE ≤p VERTEX-COVER / INDEPENDENT-SET / SUBGRAPH-ISOM
Vorlesung 4-10: String Matching und ähnliche Probleme
- Z-Algorithmus
- Boyer-Moore Algorithmus (Beweis der Linear Zeit)
- Suffix-Trees and Ukkonen’s Algorithm
- Anwendungen (Longest Common Superstrings, Ziv-Lempel Kompression .. )
Vorlesung 11-15: Graph-Algorithmen
- Elementare Graph-Alg (BFS, DFS)
- Flüsse in Netzwerken (Ford-Fulkerson Algorithm, Edmonds-Karp Algorithm, Bipartite Matching)
Vorlesung 16-18: Zahlentheoretische Algorithmen
- ggT (=gcd), Lemma Bezout, (erweiterter) Euklid Algorithmus, Fibonacci Zahlen, Goldener Schnitt
Link zu Fibonacci/Goldener Schnitt in der Natur - RSA-Verschlüsselung
Vorlesung 18-19: Greedy-Algorithmen
- Minimum-Spanning Trees and Kruskal-Algorithmus
- Huffmann-Coding
- Matroids
Vorlesung 20 - Ende:
- Approximationsalgorithmen
- Dynamic Programming VS Divide&Conquer (Tutorial)
Recommended Literature
- Algorithms on Strings, Trees, and Sequences, Dan Gusfield, Cambridge University Press, 2010
- Introduction to Algorithms, Cormen et al., MIT Press, 2009