Ankündigung der Vorlesung
PD Dr. Sven
O. Krumke
|
![]() |
In der Kombinatorischen Optimierung treten beim Design von Algorithmen viele "elementare Probleme" auf. Mit Hilfe von geeigneten Datenstrukturen für diese "elementaren Probleme" läßt sich der gesamte Algorithmus oft (theoretisch und auch in der Praxis) deutlich beschleunigen.
Die Vorlesung bietet anhand von ausgewählten Themen einen Einblick in
moderne Datenstrukturen und Algorithmen sowie ihre Analyse. Dabei
werden die einzelnen Datenstrukturen nicht isoliert behandelt, sondern
stets im Zusammenhang mit konkreten Fragestellungen aus der
Kombinatorischen Optimierung vorgestellt. Unter anderem werden wir
folgende Themen in der Vorlesung behandeln:
Informell gesprochen wird bei der amortisierten Analyse wird die Laufzeit eines Algorithmus für eine Folge von Operationen nicht separat für jede einzelne Operation, sondern für die gesamte Folge analysiert. Mit Hilfe der amortisierten Analyse und Potentialfunktionen sind oft verbesserte und aussagekräftigere Laufzeitabschätzungen für Algorithmen möglich. Die amortisierte Analyse wird eines der grundlegenden Hilfsmittel für die Analyse der "`fortgeschrittenen Datenstrukturen und Algorithmen"' sein.
Union-Find Strukturen kommen dann in Spiel, wenn man effizient Partitionen einer Menge verwalten möchte, beispielsweise die Zusammenhangskomponenten eines Graphen im Algorithmus von Kruskal. Die Anwendung von geeigneten (gar nicht so komplizierten) Strukturen ermöglicht es, Kruskals Algorithmus in Zeit O(m log m + m a(m,n)) laufen zu lassen. Hier bezeichnet a(m,n) die inverse Ackermann Funktion, welche für alle Zahlen, die kleiner als die Anzahl der Atome im Universum sind, nach oben durch fünf beschränkt ist.
Zur Konstruktion von optimalen statischen Suchbäumen (etwa zur Datenkompression) benutzt man den Algorithmus von Huffman. Wenn die zu organisierenden Daten jedoch erst im Verlauf des Algorithmus (online) verfügbar werden, ist die statische Methode nicht anwendbar. Splay-Trees ermöglichen es mit einfachen Ideen (aber einer nichttrivialen Analyse), bis auf einen konstanten Strafterm die selben Schranken wie in statischen Fall auch für den dynamischen Fall zu bekommen. Anwendungen findet man vor allem in der Datenkompression.
Dynamische Bäume (Dynamic Trees) sind ein Kniff, um etwa aus schnellen Maximalfluß-Algorithmen noch das Letzte an Laufzeit herauszuholen.
Donnerstags von 10-12 Uhr im MA641.
Anrechenbarkeit: 2 SemesterwochenstundenZielgruppe und
Voraussetzungen
Ab sofort kann man mein vorläufiges Skript zur Vorlesung hier herunterladen.
Das Skript ist als Postscriptdatei [1.5 MByte], als gzip'te Postscriptdatei [359 KByte] und als PDF Datei [660 KByte] erhältlich.
Über Kommentare und Hinweise auf (Tipp-) Fehler würde ich mich freuen.