Table of Contents

Algorithm Engineering (SoSe 2010)

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

Zeit und Ort

Inhalt der Vorlesung

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.

Themen

Zugangsvoraussetzungen

Prüfungsmodalitäten, Leistungsnachweise

Diplomstudiengang

Masterstudiengang

Materialien zur Vorlesung

Allgemeine Literatur zu Algorithm Engineering

Konferenzen

Links und weiterführende Informationen zu Algorithm Engineering Konferenzen findet man hier.