Scalable Algorithms (ITI)

Praktikum Algorithmentechnik (Algorithm Engineering - Routenplanung)

Allgemeines

Vorläufige Termine

Termin Datum Uhrzeit Raum
Vorbesprechung Mittwoch, den 23. Okt. 2024 14:00-15:30 Raum -120
Abgabe Übungsblatt Dienstag, den 19. Nov. 2024 23:59
Themen & Gruppeneinteilung Mittwoch, den 20. Nov. 2024 14:00-15:30 Raum -120
Anfangsvorträge Mittwoch, den 4. Dez. 2024 14:00-15:30 Raum -120
Zwischentreffen 20.-24. Jan. 2025
Abgabe Ausarbeitung Mittwoch, den 5. Mär. 2025 23:59
Abschlussvorträge Mittwoch, den 19. Mär. 2025 14:00-15:30 Raum -120

Bei allen Terminen gilt Anwesenheitspflicht. Da die Plätze begrenzt sind, behalten wir uns vor Plätze weiter zu vergeben, solltet ihr unentschuldigt fehlen.

Hintergrund

Optimale Routen in Verkehrsnetzen zu bestimmen ist ein alltägliches Problem. Wurden früher Reiserouten mit Hilfe von Karten am Küchentisch geplant, ist heute die computergestützte Routenplanung in weiten Teilen der Bevölkerung etabliert: Die beste Eisenbahnverbindung ermittelt man im Internet, für Routenplanung in Straßennetzen benutzt man häufig mobile Endgeräte.

Ein gängiger Ansatz das Problem zu lösen ist das Transportnetzwerk auf geeignete Weise als einen Graphen zu modellieren. Eine optimale Verbindung entspricht dann einem kürzesten Weg in diesem Graphen. Zwar löst Dijkstra's Algorithmus dieses Problem beweisbar optimal, jedoch ist aufgrund der hohen Datenmenge (Straßennetzwerke von kontinentaler Größe haben mehrere Millionen Knoten und Kanten) dieser Ansatz selbst auf moderner Server-Hardware zu langsam und daher nicht praktikabel.

Aus diesem Grund ist die Routenplanung ein sehr aktiver und vielfältiger Forschungsbereich in der experimentellen Algorithmik. Neben der grundlegenden Fragestellung nach schnelleren Methoden Routen auf Straßennetwerken zu berechnen, sind insbesondere auch Aspekte wie All-Pairs Shortest-Path, Alternativrouten, Fahrplanauskunft oder dynamische Techniken, die in Echtzeit mit Staus oder Verspätungen umgehen können, von Interesse.

Dieses Praktikum soll interessierten Studenten die Möglichkeit geben brandaktuelle Techniken aus dem Bereich Routenplanung zu implementieren und experimentell zu evaluieren. Neben der Korrektheit der implementierten Algorithmen liegt dabei ein Schwerpunkt auf der Performance (Zeit und Speicherverbrauch). Das Praktikum ist eine Ergänzung zur Vorlesung Algorithmen für Routenplanung, die jeweils im Sommersemester stattfindet. Eine kurze Einführung der wichtigen Grundlagen zu Beginn gibt aber auch Studenten ohne spezielle Vorkenntnisse die Möglichkeit zur Teilnahme.

Ablauf

In einem ersten Präsenztermin wird zunächst eine theoretische Fundierung des Stoffes vermittelt werden; daneben wird Gelegenheit zur praktischen Einarbeitung in die Thematik und die verwendeten Bibliotheken an Hand einiger Aufwärmaufgaben gegeben sein. Im Anschluss daran werden in Teams von drei (in Ausnahmefällen zwei) Personen und individueller Betreuung durch Lehrstuhlmitarbeiter eine oder mehrere größere Aufgaben bearbeitet werden. Jeweils etwa zu Semesterhalbzeit und -ende wird jede Gruppe in einer Präsentation ihre bisherige Arbeit vorstellen. Abschließend ist eine schriftliche Ausarbeitung der Ergebnisse in LaTeX zu erstellen.

Voraussetzungen

Für die Teilnahme am Praktikum sind Grundkenntnisse aus den Bereichen Algorithmentechnik und Graphentheorie sowie Grundkenntnisse in C++ (oder verwandten Sprachen) empfehlenswert (fehlende Kenntnisse werden durch die Aufwärmübungen aufgearbeitet, dadurch eventuell erhöhter Zeitaufwand wird jedoch nicht in den ECTS berücksichtigt). Ein Besuch der Vorlesung Routenplanung ist nicht erforderlich.

Material