Algorithmen und Datenstrukturen (CS1001-KP08)
Dozent:
Prof. Dr. rer. nat. Ralf Möller
Übungsbetreuung:
Magnus Bender
Inhalt (für pptx sollte der Font Myriad Pro installiert sein):
- Einführung
Algorithmen, Summenbildung, Entwurfsmuster: schrittweises Abarbeiten (linearer Aufwand), Berechnung mit konstantem Aufwand,Verkleinerungsprinzip: Sortieren durch Einfügen, Sortieren durch Auswählen, Problemkomplexität, Algorithmenanalyse: asymptotische Komplexität eines Algorithmus (O-Notation) (pdf, pptx) - Sortierung durch Teile und Herrsche, Algorithmenanalyse
Entwurfsmuster Teile-und-Herrsche: Mergesort, Quicksort, Omega- und Theta-Notation, Heaps als Datenstrukturen, Heapsort (pdf, pptx) - Sortierung durch Verteilen
Counting Sort, Mehrkriteriensortierung durch stabile Sortierverfahren, Radix-Sort, Bucket-Sort, Wiederholung: Listen, Keller, Schlangen (pdf, pptx) - Prioritätswarteschlangen
Realisierung mit binären Heaps, Binomial-Heaps und Fibonacci-Heaps, amortisierte Analyse (pdf, pptx, 19.5.23 mp4) - Selektion
K-Kleinstes Element (pdf, pptx) - Mengen
Selbstorganisierende Datenstrukturen, binäre Suchbäume, Iteratoren und Navigationsstrukturen, Ausgeglichenheit, Splay-Bäume, Rot-Schwarz-Bäume, AVL-Bäume (pdf, pptx) - Mengen von Zeichenketten
Tries, PATRICIA Tries (pdf, pptx) - Disjunkte Mengen
Union-Find-Datenstrukturen (pdf, pptx) - Assoziation von Objekten
Hash-Tabellen, Dynamisches Hashing (Kollisionslisten, Lineare Sondierung, Quadratische Sondierung, Doppeltes Hashing), Statisches Hashing, Familie universeller Hashfunktionen (pdf, pptx) - Graphen
Operationen auf Graphen, Graphrepräsentationen, Breiten- und Tiefensuche, Zusammenhangskomponenten, Kürzeste Wege, Single-Source-Shortest-Paths (Dijkstras Algorithmus, A*-Algorithmus, Bellman-Ford-Algorithmus), All-Pairs-Shortest-Paths, Transitive Hülle, Minimaler Spannbaum (Kruskals Algorithmus, Jarnik-Prim-Algorithmus), Netzwerkflüsse (Ford-Fulkerson-Algorithmus, Edmonds-Karp-Algorithmus), Bipartites Matching (pdf, pptx) - Suchgraphen für Spiele
Minimax-Suche, Suchraumaufbau, Alpha-Beta-Pruning zur Suchraumbeschneidung (pdf, pptx) - Dynamische Programmierung, Gierige Verfahren
Optimierungsprobleme, Sequenz-Alignment (Longest-Common-Subsequence, LCS), Rucksackproblem, Planungs- und Anordnungsprobleme, Wechselgeldbestimmung, Vollständigkeit von Algorithmen (pdf, pptx) - Zeichenkettenabgleich
Exakte Algorithmen (Knuth-Morris-Pratt, Boyer-Moore, Rabin-Karp, Suffix-Bäume und Felder), Approximativer Zeichenkettenabgleich durch dynamische Programmierung (pdf, pptx) - Schwere Probleme
Erfüllbarkeitsproblem 3-SAT, P=NP, Clique-Problem, Problemreduktion, NP-schwere und NP-vollständige Probleme, Algorithmische Entwurfsmuster zur Behandlung NP-schwerer Probleme (DPLL, Nicht-chronologisches Backtracking), Abbildung von Sudoku auf 3-SAT, 2-SAT, Constraint-Satisfaction-Probleme, Reduktion des Backtrackings durch Heuristiken (am Beispiel der Probleme Chromatische Zahl und n-Damen), Constraint-Propagierung (pdf, pptx) - Eulerkreis, Eulerweg, Hamilton-Kreis (pdf, pptx)
- Pruning und Subgraph-Isomorphie
Ullmanns Algorithmus, Anwendungen zur Zeichenerkennung, Erkennung von Proteinstrukturen, usw. (pdf, pptx) - Approximation
Aufgabe der optimalen Lösung und Verwendung von Näherungsverfahren? Approximationsgüte gieriger Verfahren, Beispiel: Lastbalancierung (pdf, pptx) - Abspann
Julia-Code von den Vorlesungsfolien in einer Zip-Datei. (Die Datei wird mit den Vorlesungsfolien laufend aktualisiert.)
Herzlichen Dank an Christian Scheideler, Sven Groppe, Michael Bergau, Martin Wirsing und weitere Autoren für die Bereitstellung von Präsentationsmaterialien, die ich in teils modifizierter Form verwendet habe. Zitate in den Materialen kennzeichnen die ursprüngliche Herkunft.
Zielgruppe (Studiengänge):
- Bachelor Informatik
- Bachelor IT-Sicherheit
- Bachelor Mathematik in Medizin und Lebenswissenschaften
- Bachelor Medieninformatik
- Bachelor Medizinische Informatik
- Bachelor Medizinische Ingenieurwissenschaft
- Bachelor Robotik und Autonome Systeme
Umfang:
Vorlesung (4 SWS) + Übung (2 SWS)
Ort und Zeit der Vorlesung:
- Do 16:15 - 17:45 Uhr im AM 1
- Fr 12:15 - 13:45 Uhr im AM 1
Beginn:
Vorlesung: Donnerstag, den 20. April 2023
Übung: Montag, den 24. April 2023
Weitere Informationen (Skripte, Einteilung der Übungsgruppen, Übungsmaterial, etc.) zur Vorlesung erhalten Sie im Moodle.

- Team
- Umut Çalıkyılmaz
- Rebecca von Engelhardt
- Björn Filter
- Nils Fußgänger
- Jinghua Groppe
- Sven Groppe
- Tobias Groth
- Mattis Hartwig
- Nils Wendel Heinrich
- Akasha Kessel
- Hanieh Khorashadizadeh
- Malte Luttermann
- Jörg-Uwe Meyer
- Jeannette Mödlhammer
- Nitin Nayak
- Simon Paasche
- Michael Preisig
- Nele Rußwinkel
- Simon Schiff
- Tim Schulz
- Thomas Sievers
- Tobias Winker
- Alumni