Veranstalter | Carsten Gutwenger |
Modul | INF-Msc-601 (Master Informatik / Angewandte Informatik) |
Veranstaltungsnummer: | 042601 |
EWS | Algorithm Engineering Arbeitsraum |
Forschungsbereich | Algorithmen und Komplexität |
Schwerpunktgebiete | Algorithmen, Komplexität und formale Modelle |
Computational Intelligence and Natural Computing | |
Intelligente Systeme | |
SWS | 2 |
Siehe auch: Webseite zur Übung zu Algorithm Engineering
Algorithmen und Datenstrukturen sind das Herz jeder Computeranwendung. Traditionell hat sich die Algorithmik der Methodik der Algorithmentheorie bedient: Algorithmen werden für einfache und abstrakte Problem- und Maschinenmodelle entworfen und Leistungsgarantien werden für alle möglichen Eingaben bewiesen (z.B. Worst-Case Analyse).
Bei wachsenden Anforderungen an innovative Algorithmen ergeben sich daraus wachsende Lücken zwischen Theorie und Praxis: Reale Hardware entwickelt sich durch Parallelismus, Speicherhierarchien Pipelining, etc. immer weiter weg von einfachen Maschinenmodellen und reale Anwendungen werden immer komplexer. Gleichzeitig entwickelt die Algorithmentheorie auch für einfache Anwendungen immer komplexere Algorithmen, die zwar in der Theorie wichtige Ideen und Resultate liefern, aber oft auch kaum implementierbar sind. Außerdem haben reale Eingaben oft wenig mit den Worst-Case Szenarien der theoretischen Analyse zu tun. Im schlimmsten Fall werden viel versprechende algorithmische Ansätze vernachlässigt, weil eine vollständige Analyse mathematisch zu schwierig wäre.
Seit Beginn der 1990er Jahre wird deshalb eine breitere Sichtweise der Algorithmik immer wichtiger, die als Algorithm Engineering bezeichnet wird. Dabei stehen der Entwurf, die Analyse, die Implementierung und die experimentelle Bewertung von Algorithmen gleichberechtigt nebeneinander. Der gegenüber der Algorithmentheorie größere Methodenapparat, die Einbeziehung realer Hard- und Software und der engere Bezug zu realen Anwendungen verspricht realistischere Algorithmen. Dadurch soll die Lücke zwischen Theorie und Praxis überbrückt und ein schnellerer Transfer von algorithmischem Wissen in Anwendungen gewährleistet werden.
In dieser Vorlesung wird eine Einführung in die Thematik des Algorithm Engineering gegeben und die dabei verwendeten Techniken vorgestellt. An besonders gelungenen Beispielen wird der typische Kreislauf des Algorithm Engineering dargestellt. Diese beinhalten u.a. Cache-effiziente Externspeicheralgorithmen, sowie Algorithmen für Mehrkernprozessoren und NP-schwierige kombinatorische Optimierungsprobleme.
Links und weiterführende Informationen zu Algorithm Engineering Konferenzen findet man hier.