praktikum algorithmen - algo.informatik.tu-darmstadt.de · allgemeines zum praktikum wir bieten:...

20
Praktikum Algorithmen FG Algorithmik Sebastian Fahnenschreiber Felix Gündling Pablo Hoch Thomas Lüdecke Julian Prömmer Wintersemester 2018/2019

Upload: phamthu

Post on 11-Mar-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Praktikum Algorithmen

FG AlgorithmikSebastian Fahnenschreiber

Felix GündlingPablo Hoch

Thomas LüdeckeJulian Prömmer

Wintersemester 2018/2019

Fachgebiet Algorithmik● Kooperation mit der Deutschen Bahn

● Forschungsthemen im Bereich Mobilität (Projekt MOTIS):○ Multikriterielle Fahrplanauskunft○ Echtzeitauskunft○ Zuverlässigen Verbindungen○ Intermodale Auskunft○ Reisendenströme

● Lehre○ AuD, Nabla

Allgemeines zum PraktikumWir bieten:

● Themen, die uns wirklich interessieren● Keine Beschäftigungstherapie!

und erwarten dafür:

● Ergebnisse, die weiterverwendet werden können

Gleichzeitig:

● guter erster Einblick für mögliche Abschlussarbeiten / HiWi-Tätigkeit

Kontext: Elektronische Klausuren

● Einsicht auf Testate/Klausuren● Korrekturmodus für Bewertung● Einsichtmodus mit Beanstandungseinreichung● Rollenrechte (Korrektor, Prüfling, Prüfer, etc…)

Technik

Java + Web + Nabla

Neues Modul innerhalb Nabla

T1: Korrektur-& Einsichtsmodus

Kontext: Elektronische Klausuren

● Veröffentlichungswerkzeug für Prüfer● Statistische Daten aus Testaten/Klausuren erzeugen● Auswahl der zu Veröffentlichenden Daten● Einzelergebnisveröffentlichung für Prüflinge● Rollenrechte (Korrektor, Prüfling, Prüfer, etc…)

Technik

Java + Web + Nabla

Neues Modul innerhalb Nabla

T2: Veröffentlichungswerkzeug

T3Verbindungsbaum

Client + Server (1 o. 2 Pers)

Verbindungsansicht mit Alternativen

Voraussetzung:- Android Programmierung- Android Handy

Ziel: gutes Design + UX

Citymapper App

Aufbereiten und Zusammenführen von Fahrplänen

- TransXChange (TfL Daten)- Flüge (Lufthansa)- Fernbusse, Fähren, blablacar- Verknüpfung erkennen:

- Check-in Kanten (ÖV → Flug)- Lauf-Kanten (ÖV → ÖV)

Technik: C++

T4Fahrpläne

T5: Regeln aus dem Fahrplan visualisieren- Fahrplan ist mehr als nur (Zug-) Fahrten- Beinhaltet Regeln für:

- Züge fahren teilweise gekoppelt- Durchbindungen (gleiches Fahrzeug für

aufeinander folgende Fahrten)

- Interaktive GUI- Visualisierung / Übersicht Regeln- Debugging Tool

Technik: MOTIS / C++

T6: Traffic Flow ModelKontext: Simulator für Busfahrten

Problem: Busse fahren fast immer gleich

➤ Variation durch simulierte Staus

Aufgaben:● Flussdaten zu Straßen zuordnen● Straßen in OpenStreetMap klassifizieren● Staumodell trainieren

Technik: C++ / Machine Learning

T7: Schöne Störungen findenAlternativensuche: Hilft Reisenden mit gestörten Verbindungen

Analysewerkzeug: Wann hätte man unser System gebraucht?1. Problemsituationen finden und bewerten2. Betroffene Reiseketten / Relationen identifizieren3. Verspätung am Ziel berechnen

Vorhandene Bausteine:● Fahrpläne und Echtzeitmeldungen für mehrere Jahre● High-Performance Verbindungsüberwachung

Technik: MOTIS / C++

T8

Ziel:Vereinfachte Geometrie:● Übersichtliche Karte (Analyse)● Verbesserte Simulation

Idee:● Parallele Pfade finden und

zusammenfassen (→zweigleisige Schiene, mehrspurige Autobahn)

● Schwellenwert pro Zoomstufe

Ergebnis ist ein Graph mit:● Knoten für Stationen und

“Trennungspunkte”● Kanten für atomare Linien

Technik: MOTIS / C++

Pfadgeometrie: Parallele zusammenfassen

1 - ProblemSuchgraph Aktualisierungen blockieren Suchen

1 - LösungCopy on Write Graph

2 - ProblemSuchparameter führen zu kombinatorischer Explosion

2 - LösungJust-In-Time Kompilieren von spezialisiertem Dijsktra Code

X1 Experimentelles

C++

X2flinc*

ProblemIntegration von Mitfahrangeboten (hier: flinc) in die Auskunft

Lösung- Preprocessing:

Matrix für Fahrten(Zeilen/Spalten sind Bahnhöfe, Einträge sind Fahrten)

- Anfrage: Nachschlagen von passenden Fahrten aus der Matrix in zusätzliche Kanten für den Routing Graph

- Untere Schranken zum Abschätzen, ob Kante gebraucht wird

Technik: C++, MOTIS-Kern* auch als Studienarbeit geeignet

X3C++ Thread Context

Debugger / VisualizationC++

ProblemWas macht der Application Server gerade? (von außen: er “hängt”)

Lösung- Visualisierung der

Informationen:- Welcher Context läuft gerade?- Von wem aufgerufen?- Auf wen wartet der Context?

- Über zeitlichen Verlauf- Logging Informationen

abrufbar (Filter: Level, Tags)

Technik: C++14

X4: Metro-MapZiel:● Übersichtliche Kartendarstellung für

verschiedene Analysezwecke

Umsetzung:● Mehrstufiges Preprocessing● Knackpunkt: Kreuzungen vermeiden (=MLCM Problem, lösbar:

ILP/Greedy)

Bestandteile:● Interaktive Karte (Technik: prototypisch / Mapbox GL)

● Erweiterung des Backends (Technik: C++, MOTIS)

Voraussetzung:● Team mit 2 Personen● Vorwissen:

Algorithmische Modellierung (o. ä.) ✔

Kontext

Erweiterung für spezielle Prüfungsaspekte

Technik

Java + Web + nabla

Neuentwicklung oder Entwicklerteam verstärken

X5 Elektronische Klausuren

-Coursemanager

KontextAufgabengenerator für Online-Lernplattform

TechnikJava + Web

X6Nabla

Themen

T1: Korrektur-& Einsichtsmodus

T2: Veröffentlichungswerkzeug

T3: Verbindungsbaum

T4: Fahrpläne

T5: Regeln visualisieren

T6: Traffic Flow Model

T7: Schöne Störungen finden

T8: Pfadgeometrie

X1: Experimentelles C++

X2: flinc

X3: Thread Context Debugger

X4: Metro-Map

X5: Elektronische Klausuren

X6: Nabla

Themenwünsche per Mail

[email protected]

● Priorisiert● Ggf. Gruppe● Kurze Motivation

○ Warum dieses Thema

○ Vorkenntnisse

Mo22. Oktober 2018

08:00 Uhr