101
INSTITUT F ¨ UR THEORETISCHE INFORMATIK · ALGORITHMIK · PROF.DR.DOROTHEA WAGNER Connection Scan 20. Vorlesung, Sommersemester 2016 Ben Strasser | 11. Juli 2016 KIT – Universit¨ at des Landes Baden-W ¨ urttemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

INSTITUT FUR THEORETISCHE INFORMATIK · ALGORITHMIK · PROF. DR. DOROTHEA WAGNER

Connection Scan20. Vorlesung, Sommersemester 2016

Ben Strasser | 11. Juli 2016

KIT – Universitat des Landes Baden-Wurttemberg undnationales Großforschungszentrum in der Helmholtz-Gemeinschaft

www.kit.edu

Page 2: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Bisher

Graph-basiert:Dijkstras Algorithmus auf zeitexpandiertem GraphDijkstras Algorithmus auf zeitabhangigem Graph

Naher an den Eingabedaten:RAPTORaber Daten mussen transformiert werden

Wie nahe konnen wir an den Eingabedaten bleiben?

Ben Strasser – Connection ScanFolie 2 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 3: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Bisher

Graph-basiert:Dijkstras Algorithmus auf zeitexpandiertem GraphDijkstras Algorithmus auf zeitabhangigem Graph

Naher an den Eingabedaten:RAPTORaber Daten mussen transformiert werden

Wie nahe konnen wir an den Eingabedaten bleiben?

Ben Strasser – Connection ScanFolie 2 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 4: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Bisher

Graph-basiert:Dijkstras Algorithmus auf zeitexpandiertem GraphDijkstras Algorithmus auf zeitabhangigem Graph

Naher an den Eingabedaten:RAPTORaber Daten mussen transformiert werden

Wie nahe konnen wir an den Eingabedaten bleiben?

Ben Strasser – Connection ScanFolie 2 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 5: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection ScanIdee:

Vorberechung: Sortiere Connections nach AbfahrtszeitAnfrage: Relaxiere alle Connections in dieser Reihe

DatenstrukturTentative Ankunftszeiten d [x ]Erreichbarkeitsbit e[x ] pro Trip

Connection-Relaxierung1 Teste ob Connection c erreichbar ist, d.h., teste ob man

einsteigen kann: d [cdep stop] ≤ cdep time

bereits im Trip sitzt: e[ctrip id] == true2 Wenn c erreichbar ist, dann

konnte man sitzen bleiben : e[ctrip id]← truekonnte man aussteigen :d [carr stop]← min{d [carr stop], carr time + change time(carr stop)}

Ben Strasser – Connection ScanFolie 3 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 6: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection ScanIdee:

Vorberechung: Sortiere Connections nach AbfahrtszeitAnfrage: Relaxiere alle Connections in dieser Reihe

DatenstrukturTentative Ankunftszeiten d [x ]Erreichbarkeitsbit e[x ] pro Trip

Connection-Relaxierung1 Teste ob Connection c erreichbar ist, d.h., teste ob man

einsteigen kann: d [cdep stop] ≤ cdep time

bereits im Trip sitzt: e[ctrip id] == true2 Wenn c erreichbar ist, dann

konnte man sitzen bleiben : e[ctrip id]← truekonnte man aussteigen :d [carr stop]← min{d [carr stop], carr time + change time(carr stop)}

Ben Strasser – Connection ScanFolie 3 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 7: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection ScanIdee:

Vorberechung: Sortiere Connections nach AbfahrtszeitAnfrage: Relaxiere alle Connections in dieser Reihe

DatenstrukturTentative Ankunftszeiten d [x ]Erreichbarkeitsbit e[x ] pro Trip

Connection-Relaxierung1 Teste ob Connection c erreichbar ist, d.h., teste ob man

einsteigen kann: d [cdep stop] ≤ cdep time

bereits im Trip sitzt: e[ctrip id] == true2 Wenn c erreichbar ist, dann

konnte man sitzen bleiben : e[ctrip id]← truekonnte man aussteigen :d [carr stop]← min{d [carr stop], carr time + change time(carr stop)}

Ben Strasser – Connection ScanFolie 3 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 8: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection ScanIdee:

Vorberechung: Sortiere Connections nach AbfahrtszeitAnfrage: Relaxiere alle Connections in dieser Reihe

DatenstrukturTentative Ankunftszeiten d [x ]Erreichbarkeitsbit e[x ] pro Trip

Connection-Relaxierung1 Teste ob Connection c erreichbar ist, d.h., teste ob man

einsteigen kann: d [cdep stop] ≤ cdep time

bereits im Trip sitzt: e[ctrip id] == true2 Wenn c erreichbar ist, dann

konnte man sitzen bleiben : e[ctrip id]← truekonnte man aussteigen :d [carr stop]← min{d [carr stop], carr time + change time(carr stop)}

Ben Strasser – Connection ScanFolie 3 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 9: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection Scan

Problem der Fruhesten AnkunftEingabe: Sortiere Connectionliste, Startstop, Startzeit, ZielstopAusgabe: Fruheste Ankunftszeit

Ist der Trip erreichbar?

Connections

sortiert nach

Abfahrtszeit

Umstiegszeit (in min)

Ankunftszeit

4 10 5 7 3

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

dep

time

arr

time

dep

stop

arr

stop

dep

time

arr

time

dep

stop

arr

stop

dep

time

arr

time

dep

stop

arr

stop

trip

id

trip

id

trip

id

FF

+∞ +∞+∞ +∞ +∞

Ben Strasser – Connection ScanFolie 4 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 10: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection Scan

Problem der Fruhesten AnkunftEingabe: Sortiere Connectionliste, Startstop, Startzeit, ZielstopAusgabe: Fruheste Ankunftszeit

Ist der Trip erreichbar?

Connections

sortiert nach

Abfahrtszeit

Umstiegszeit (in min)

Ankunftszeit

4 10 5 7 3

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

9:00

9:25

9:15

9:45

9:25

9:55dep

arr

dep

arr

dep

arr

trip

id

trip

id

trip

id

FF

+∞ +∞+∞ +∞ +∞

Ben Strasser – Connection ScanFolie 4 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 11: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection Scan

Problem der Fruhesten AnkunftEingabe: Sortiere Connectionliste, Startstop, Startzeit, ZielstopAusgabe: Fruheste Ankunftszeit

Ist der Trip erreichbar?

Connections

sortiert nach

Abfahrtszeit

Umstiegszeit (in min)

Ankunftszeit

4 10 5 7 3

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

9:00

9:25

9:15

9:45

9:25

9:55dep

arr

dep

arr

dep

arr

trip

id

trip

id

trip

id

FF

+∞ +∞8:00 +∞ +∞

Ben Strasser – Connection ScanFolie 4 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 12: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection Scan

Problem der Fruhesten AnkunftEingabe: Sortiere Connectionliste, Startstop, Startzeit, ZielstopAusgabe: Fruheste Ankunftszeit

Ist der Trip erreichbar?

Connections

sortiert nach

Abfahrtszeit

Umstiegszeit (in min)

Ankunftszeit

4 10 5 7 3

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

9:00

9:25

9:15

9:45

9:25

9:55dep

arr

dep

arr

dep

arr

trip

id

trip

id

trip

id

FF

+∞ +∞8:00 +∞ +∞

Ben Strasser – Connection ScanFolie 4 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 13: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection Scan

Problem der Fruhesten AnkunftEingabe: Sortiere Connectionliste, Startstop, Startzeit, ZielstopAusgabe: Fruheste Ankunftszeit

Ist der Trip erreichbar?

Connections

sortiert nach

Abfahrtszeit

Umstiegszeit (in min)

Ankunftszeit

4 10 5 7 3

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

9:00

9:25

9:15

9:45

9:25

9:55dep

arr

dep

arr

dep

arr

trip

id

trip

id

trip

id

FT

+∞ +∞8:00 9:25 +∞

Ben Strasser – Connection ScanFolie 4 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 14: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection Scan

Problem der Fruhesten AnkunftEingabe: Sortiere Connectionliste, Startstop, Startzeit, ZielstopAusgabe: Fruheste Ankunftszeit

Ist der Trip erreichbar?

Connections

sortiert nach

Abfahrtszeit

Umstiegszeit (in min)

Ankunftszeit

4 10 5 7 3

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

9:00

9:25

9:15

9:45

9:25

9:55dep

arr

dep

arr

dep

arr

trip

id

trip

id

trip

id

FT

+∞ +∞8:00 9:25 +∞

Ben Strasser – Connection ScanFolie 4 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 15: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection Scan

Problem der Fruhesten AnkunftEingabe: Sortiere Connectionliste, Startstop, Startzeit, ZielstopAusgabe: Fruheste Ankunftszeit

Ist der Trip erreichbar?

Connections

sortiert nach

Abfahrtszeit

Umstiegszeit (in min)

Ankunftszeit

4 10 5 7 3

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

9:00

9:25

9:15

9:45

9:25

9:55dep

arr

dep

arr

dep

arr

trip

id

trip

id

trip

id

FT

+∞ +∞8:00 9:25 +∞

Ben Strasser – Connection ScanFolie 4 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 16: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection Scan

Problem der Fruhesten AnkunftEingabe: Sortiere Connectionliste, Startstop, Startzeit, ZielstopAusgabe: Fruheste Ankunftszeit

Ist der Trip erreichbar?

Connections

sortiert nach

Abfahrtszeit

Umstiegszeit (in min)

Ankunftszeit

4 10 5 7 3

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

9:00

9:25

9:15

9:45

9:25

9:55dep

arr

dep

arr

dep

arr

trip

id

trip

id

trip

id

FT

+∞ +∞8:00 9:25 9:55

Ben Strasser – Connection ScanFolie 4 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 17: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection Scan

Problem der Fruhesten AnkunftEingabe: Sortiere Connectionliste, Startstop, Startzeit, ZielstopAusgabe: Fruheste Ankunftszeit

Ist der Trip erreichbar?

Connections

sortiert nach

Abfahrtszeit

Umstiegszeit (in min)

Ankunftszeit

4 10 5 7 3

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

9:00

9:25

9:15

9:45

9:25

9:55dep

arr

dep

arr

dep

arr

trip

id

trip

id

trip

id

FT

+∞ +∞8:00 9:25 9:55

Ben Strasser – Connection ScanFolie 4 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 18: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection Scan

d [x ]←∞ fur alle Stops x ;e[x ]← false fur alle Trips x ;d [s]← τ ;

for alle Connections c aufsteigend nach cdep time doif d [cdep stop] ≤ cdep time oder e[ctrip id] = true then

e[ctrip id]← true;d [carr stop]← min{d [carr stop], carr time + change time(carr stop)};

Ben Strasser – Connection ScanFolie 5 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 19: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

Idee:Wenn man an Stop x aussteigt, dann relaxiert man alle von xausgehenden Fußwege

Optimierung:Man braucht die Fußwege nur abzulaufen wenn d [carr stop] auchverbessert wirdBegrundung: Wenn d [carr stop] nicht verbessert wird, dann wurdebereits einen besseren Weg P nach carr stop gefunden. An P kann mandiese Fußwege dran hangen und ist an allen per Fußwegerreichbaren Stops fruher. Kein d [x ] wird also verbessert.Achtung: Die Optimierung benotigt, dass die Fußwege transitivabgeschlossen sind und die Dreiecksungleichung erfullen

Ben Strasser – Connection ScanFolie 6 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 20: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

Idee:Wenn man an Stop x aussteigt, dann relaxiert man alle von xausgehenden Fußwege

Optimierung:Man braucht die Fußwege nur abzulaufen wenn d [carr stop] auchverbessert wirdBegrundung: Wenn d [carr stop] nicht verbessert wird, dann wurdebereits einen besseren Weg P nach carr stop gefunden. An P kann mandiese Fußwege dran hangen und ist an allen per Fußwegerreichbaren Stops fruher. Kein d [x ] wird also verbessert.Achtung: Die Optimierung benotigt, dass die Fußwege transitivabgeschlossen sind und die Dreiecksungleichung erfullen

Ben Strasser – Connection ScanFolie 6 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 21: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Connection Scan

d [x ]←∞ fur alle Stops x ;e[x ]← false fur alle Trips x ;d [s]← τ ;

for alle Fußwege (s, x) mit Lange ` dod [x ]← τ + `;

for alle Connections c aufsteigend nach cdep time doif d [cdep stop] ≤ cdep time oder e[ctrip id] == true then

e[ctrip id]← true;

if d [carr stop] > carr time + change time(carr stop) thend [carr stop]← carr time + change time(carr stop);

for alle Fußwege (carr stop, x) mit Lange ` dod [x ]← min{d [x ], carr time + `};

Ben Strasser – Connection ScanFolie 7 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 22: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Startkriterium

Beobachtung:Connections vor der Abfahrtszeit konnen nicht verwendet werdenPer binarer Suche die erste Connection bestimmen, die nicht vor derStartzeit abfahrt und erst ab dieser die Connections relaxieren

Ben Strasser – Connection ScanFolie 8 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 23: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Stopkriterium

Bisher: Wir losen das one-to-all Problem

Frage: Geht es besser, wenn wir den Zielstop t kennen?

Beobachtung: Zuge die abfahren, nach der Ankunftszeit an t sind nienutzlich

⇒ Scan abbrechen, wenn die Zeit an t nicht mehr großer ist als dieAbfahrtszeit der aktuell gescannten Connection

Ben Strasser – Connection ScanFolie 9 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 24: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Stopkriterium

Bisher: Wir losen das one-to-all Problem

Frage: Geht es besser, wenn wir den Zielstop t kennen?

Beobachtung: Zuge die abfahren, nach der Ankunftszeit an t sind nienutzlich

⇒ Scan abbrechen, wenn die Zeit an t nicht mehr großer ist als dieAbfahrtszeit der aktuell gescannten Connection

Ben Strasser – Connection ScanFolie 9 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 25: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Profil Anfragen

Problem: Der Fahrgast kennt seine Abfahrts- und Ankunftszeit oft nicht.Losung: Journeys fur eine Zeitspanne angeben.

Ben Strasser – Connection ScanFolie 10 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 26: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Profil Anfragen

Problem: Der Fahrgast kennt seine Abfahrts- und Ankunftszeit oft nicht.Losung: Journeys fur eine Zeitspanne angeben.

Screenshot von bahn.de

Ben Strasser – Connection ScanFolie 10 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 27: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Profil Anfragen

Problem: Der Fahrgast kennt seine Abfahrts- und Ankunftszeit oft nicht.Losung: Journeys fur eine Zeitspanne angeben.

Startstop

Zielstop

minimaleAbfahrts-

zeit

maximaleAnkunfts-

zeitScreenshot von bahn.de

Ben Strasser – Connection ScanFolie 10 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 28: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Profil Connection Scan

Abfahrtszeit an einem Stop

An

ku

nft

szei

tam

Zie

lsto

p

Problem der fruhesten RuckwartsankunftsprofileEingabe: Fahrplan, Zielstop tAusgabe: st-Ankunftszeitfunktion fur jeden Stop s (außer t)

Ben Strasser – Connection ScanFolie 11 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 29: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Profil Connection Scan

Abfahrtszeit an einem Stop

An

ku

nft

szei

tam

Zie

lsto

p

Abfahrende Journeysentsprechen Sprungen.

Problem der fruhesten RuckwartsankunftsprofileEingabe: Fahrplan, Zielstop tAusgabe: st-Ankunftszeitfunktion fur jeden Stop s (außer t)

Ben Strasser – Connection ScanFolie 11 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 30: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Grundgerust

Initialisiere Datenstrukturen an Stops;Initialisiere Datenstrukturen an Trips;

for alle Connections c absteigend nach cdep time do/* 1. Bestimme Ankunftszeit von man in c startet */τ1 ← Ankunftszeit wenn man zum Ziel lauft;τ2 ← Ankunftszeit wenn Sitzenbleiben, braucht Daten vom Trip ctrip id;τ3 ← Ankunftszeit wenn Umsteigen, braucht Daten vom Stop carr stop;

/* τc Ankunftszeit wenn man in c beginnt */τc ← min{τ1, τ2, τ3};

/* 2. Passe die Stop / Trip Datenstrukturen an */Baue τc in Daten von Stop cdep stop ein;Baue τc in Daten von Trip ctrip id ein;

Ben Strasser – Connection ScanFolie 12 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 31: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

GrundgerustVorgehen

Initial gibt es keine ConnectionIterative werden die Connections absteigend nach AbfahrtszeiteingefuhrtZum Zeitpunkt wo c eingefuhrt wird, gibt es keine fruhere Connection

IdeeVerwalte vollstandige Losung bezuglich aller eingefuhrtenConnectionsInitial gibt es keine Connections→ triviale initial LosungWenn Connection c eingefuhrt wird, dann wird die Losung angepasst

BeobachtungWenn eine Connection c eingefuhrt, gibt es keine fruhere

Niemand der bereits unterwegs ist kann c verwendenc kann nur am Anfang einer Journey vorkommen

Ben Strasser – Connection ScanFolie 13 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 32: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

GrundgerustVorgehen

Initial gibt es keine ConnectionIterative werden die Connections absteigend nach AbfahrtszeiteingefuhrtZum Zeitpunkt wo c eingefuhrt wird, gibt es keine fruhere Connection

IdeeVerwalte vollstandige Losung bezuglich aller eingefuhrtenConnectionsInitial gibt es keine Connections→ triviale initial LosungWenn Connection c eingefuhrt wird, dann wird die Losung angepasst

BeobachtungWenn eine Connection c eingefuhrt, gibt es keine fruhere

Niemand der bereits unterwegs ist kann c verwendenc kann nur am Anfang einer Journey vorkommen

Ben Strasser – Connection ScanFolie 13 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 33: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

GrundgerustVorgehen

Initial gibt es keine ConnectionIterative werden die Connections absteigend nach AbfahrtszeiteingefuhrtZum Zeitpunkt wo c eingefuhrt wird, gibt es keine fruhere Connection

IdeeVerwalte vollstandige Losung bezuglich aller eingefuhrtenConnectionsInitial gibt es keine Connections→ triviale initial LosungWenn Connection c eingefuhrt wird, dann wird die Losung angepasst

BeobachtungWenn eine Connection c eingefuhrt, gibt es keine fruhere

Niemand der bereits unterwegs ist kann c verwendenc kann nur am Anfang einer Journey vorkommen

Ben Strasser – Connection ScanFolie 13 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 34: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Zum Ziel Laufen

Ohne FußwegeMan kann also “Laufen” wenn man am Ziel angekommen istAus

τ1 ← Ankunftszeit wenn man zum Ziel lauft;

wird

if carr stop = target thenτ1 ← carr time;

elseτ1 ←∞;

Ben Strasser – Connection ScanFolie 14 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 35: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Zum Ziel LaufenMit Fußwege

Verwalte L[x ] Array das die Laufdistanz zu t enthaltBei Programmstart wird L uberall mit∞ gefulltVor der Anfrage wird L befulltNach der Anfrage wird L zuruckgesetzt

for alle Fußwege (x , target) mit Lange ` doL[x ]← `;

L[target]← 0;. . .τ1 ← carr time + L[carr stop];. . .for alle Fußwege (x , target) do

L[x ]←∞;

L[target]←∞;

Ben Strasser – Connection ScanFolie 15 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 36: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Sitzenbleiben

Trip-DatenstrukturVerwalte in Array T [x ] fur jeden Trip x die fruheste Ankunft wenn manin x starten wurdeInitial gibt es keine Connections in x , T [x ]←∞ fur alle x

Aus

Initialisiere Datenstrukturen an Trips;

wird

for alle Trips x doT [x ]←∞;

Ben Strasser – Connection ScanFolie 16 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 37: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Sitzenbleiben

Trip-DatenstrukturVerwalte in Array T [x ] fur jeden Trip x die fruheste Ankunft wenn manin x starten wurdeInitial gibt es keine Connections in x , T [x ]←∞ fur alle x

Aus

τ2 ← Ankunftszeit wenn Sitzenbleiben;

wird

τ2 ← T [ctrip id];

Ben Strasser – Connection ScanFolie 16 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 38: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Sitzenbleiben

Trip-DatenstrukturVerwalte in Array T [x ] fur jeden Trip x die fruheste Ankunft wenn manin x starten wurdeInitial gibt es keine Connections in x , T [x ]←∞ fur alle x

Aus

Baue τc in Daten von Trip ctrip id ein;

wird

T [ctrip id]← τc ;

Ben Strasser – Connection ScanFolie 16 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 39: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umsteigen

Stop-DatenstrukturVerwalte Array P[x ] von AnkunftszeitfunktionenP[x ] ist eine Ankunftszeitfunktionen von x zu target(Details zu Ankunftszeitfunktionen auf nachster Folie)

Aus

Initialisiere Datenstrukturen an Stop;

wird

for alle Stops x doP[x ]← {∀τ : τ 7→ ∞};

Ben Strasser – Connection ScanFolie 17 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 40: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umsteigen

Stop-DatenstrukturVerwalte Array P[x ] von AnkunftszeitfunktionenP[x ] ist eine Ankunftszeitfunktionen von x zu target(Details zu Ankunftszeitfunktionen auf nachster Folie)

Aus

τ3 ← Ankunftszeit wenn Umsteigen;

wird

τ3 ← werte P[carr stop] zum Zeitpunkt carr time aus;

Ben Strasser – Connection ScanFolie 17 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 41: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umsteigen

Stop-DatenstrukturVerwalte Array P[x ] von AnkunftszeitfunktionenP[x ] ist eine Ankunftszeitfunktionen von x zu target(Details zu Ankunftszeitfunktionen auf nachster Folie)

Aus

Baue τc in Daten von Stop cdep stop ein;

wird

Baue (cdep time−change time(cdep stop), τc) in P[cdep stop] ein;

Ben Strasser – Connection ScanFolie 17 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 42: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Ankunftszeitfunktionen

Speichere Ankunftszeitfunktionen P als Array von(dep time, arr time)-PaarenPaare dominieren sich nicht

Es gibt keine zwei Paare (d1, a1) und (d2, a2) mit d1 < d2 und a1 > a2

Array ist dynamisch und kann am Anfang wachsenArray ist sortiert, d.h., in P[0] steht die fruheste Abfahrt

Ben Strasser – Connection ScanFolie 18 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 43: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Ankunftszeitfunktionen

Jedes Array hat ein (∞,∞)-PaarDamit ist die Ankunftszeitfunktion∞ wenn alle Zuge abgefahren sind(∞,∞)-Paar wird bei der Initialisierung eingefugtAus

for alle Stops x doP[x ]← {∀τ : τ 7→ ∞};

wird

for alle Stops x doP[x ]← {(∞,∞)};

Ben Strasser – Connection ScanFolie 19 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 44: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Ankunftszeitfunktionen

Evaluierung kann mit binarer oder sequentieller Suche gemachtwerdenHier ist sequentiell besser (Begrundung spater)Aus

werte P zum Zeitpunkt τ aus;

wird

for i from 0 to length(P)− 1 do(d ,a)← P[i];if τ ≤ d then

Ergebnis ist a;breche Schleife ab;

Ben Strasser – Connection ScanFolie 20 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 45: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

AnkunftszeitfunktionenErstmal ohne Fußwege (mit spater)Alle bisherigen Connections fahren nicht vor cdep time abWenn (cdep time−change time(cdep stop), τc) in P[cdep stop] eingebaut wird,dann an der Stelle P[cdep stop][0]Aus

Baue (cdep time−change time(cdep stop), τc) in P[cdep stop] ein;

wirdd ← cdep time−change time(cdep stop)); ifτc < P[cdep stop][0]arr time then

if d = P[cdep stop][0]dep time thenP[cdep stop][0]arr time ← τc ;

elseFuge (d , τc) am Anfang von P[cdep stop] ein;

Ben Strasser – Connection ScanFolie 21 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 46: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Profil Connection Scan

Fur jede Connection c absteigend nach Abfahrtszeit:

Profil an c’s Abfahrtsstop Profil an c’s Ankunftsstop

Ben Strasser – Connection ScanFolie 22 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 47: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Profil Connection Scan

Fur jede Connection c absteigend nach Abfahrtszeit:

Abfahrtszeit von c Abfahrtszeit von c

ImblauenFeld

kann esnochkeinePaaregeben.

Im grunenBereich kann

sich nichts mehrandern.

Neue Paaremussen auf der

blauen Linieliegen.

Profil an c’s Abfahrtsstop Profil an c’s Ankunftsstop

Ben Strasser – Connection ScanFolie 22 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 48: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Profil Connection Scan

Fur jede Connection c absteigend nach Abfahrtszeit:

Profil an c’s Abfahrtsstop Profil an c’s Ankunftsstop

SchnellerScan

Abfahrtszeit von c Ankunftszeit von c

In der Praxis: sehr kurzer lineare Scan.(Deswegen ist die sequentielle Suche besser.)

Ben Strasser – Connection ScanFolie 22 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 49: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Profil Connection Scan

Fur jede Connection c absteigend nach Abfahrtszeit:

Nur dieses Paar ist furdie Domination notig.

Profil an c’s Abfahrtsstop Profil an c’s Ankunftsstop

Abfahrtszeit von c Ankunftszeit von c

Teste ob das neue Paar uber oder unter dem bereits existierenden ist.

Ben Strasser – Connection ScanFolie 22 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 50: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Profil Connection Scan

Fur jede Connection c absteigend nach Abfahrtszeit:

Profil an c’s Abfahrtsstop Profil an c’s Ankunftsstop

Abfahrtszeit von c Ankunftszeit von c

Neuen Sprung einfugen, wenn er unterhalb ist.(Im Beispiel ist er unterhalb.)

Ben Strasser – Connection ScanFolie 22 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 51: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

τmin und τmax verwenden

Profilanfrage enthalt auch τmin und τmax

Wie verwenden wir diese?

τmin und τmax verwenden:Scanne nur Connections c mit τmin ≤ cdep time ≤ τmax

Braucht eine binare Suche um die erste Connection c mitcdep time ≤ τmax zu finden

Ben Strasser – Connection ScanFolie 23 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 52: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

τmin und τmax verwenden

Profilanfrage enthalt auch τmin und τmax

Wie verwenden wir diese?

τmin und τmax verwenden:Scanne nur Connections c mit τmin ≤ cdep time ≤ τmax

Braucht eine binare Suche um die erste Connection c mitcdep time ≤ τmax zu finden

Ben Strasser – Connection ScanFolie 23 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 53: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

source-Stop verwenden

Profilanfrage enthalt auch Startstop sourceWie verwenden wir diesen?

source-Stop verwenden:Lose Problem der fruhesten Ankunft fur source und τmin aber ohneZielstopErgibt Array d [x ], welches die fruheste Ankunft an jedem Stop xenthaltRelaxiere eine Connection c nur wenn d [x ] ≤ cdep time

Ben Strasser – Connection ScanFolie 24 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 54: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

source-Stop verwenden

Profilanfrage enthalt auch Startstop sourceWie verwenden wir diesen?

source-Stop verwenden:Lose Problem der fruhesten Ankunft fur source und τmin aber ohneZielstopErgibt Array d [x ], welches die fruheste Ankunft an jedem Stop xenthaltRelaxiere eine Connection c nur wenn d [x ] ≤ cdep time

Ben Strasser – Connection ScanFolie 24 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 55: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Alternative Evaluierung

Evaluierung in der Praxis schnellGeht das auch beweisbar in O(1)?

Ja, mit leichter Modifikation(Trick geht nicht mit Fußwegen)

Ben Strasser – Connection ScanFolie 25 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 56: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Alternative Evaluierung

Evaluierung in der Praxis schnellGeht das auch beweisbar in O(1)?

Ja, mit leichter Modifikation(Trick geht nicht mit Fußwegen)

Ben Strasser – Connection ScanFolie 25 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 57: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Alternative Evaluierung

Idee: Fuge ein Paar fur jede Connection einAus

Baue (cdep time−change time(cdep stop, τc)) in P[cdep stop] ein;

wirdd ← cdep time−change time(cdep stop));x ← (d ,min{τc ,P[cdep stop][0]arr time});Fuge x am Anfang von P[cdep stop] ein;

Ben Strasser – Connection ScanFolie 26 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 58: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Alternative Evaluierung

Warum?Zwei aufeinander folgende Paare konnen nun die selbe AnkunftszeithabenMehr Paare als notig?Was bringt uns das?

AntwortWann ein Paar eingefugt wird ist unabhangig von targetDie Abfahrtszeit eines Paars ist unabhangig von target→ Sequentieller Scan kann in die Vorberechnung verschoben werden→ Schleifenrumpf in O(1)→ Profilsuche beweisbar in Zeit linear in der Anzahl an Connections

Ben Strasser – Connection ScanFolie 27 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 59: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Alternative Evaluierung

Warum?Zwei aufeinander folgende Paare konnen nun die selbe AnkunftszeithabenMehr Paare als notig?Was bringt uns das?

AntwortWann ein Paar eingefugt wird ist unabhangig von targetDie Abfahrtszeit eines Paars ist unabhangig von target→ Sequentieller Scan kann in die Vorberechnung verschoben werden→ Schleifenrumpf in O(1)→ Profilsuche beweisbar in Zeit linear in der Anzahl an Connections

Ben Strasser – Connection ScanFolie 27 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 60: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

Bisher: Wir haben gesehen wie man finale Fußwege behandeltNun: Wie man mit initialen und Fußwegen in der Mitte umgeht

Idee 1:Expandiere Fußwege zu Connections ahnlich der Fußwegexpansionbeim zeitexpandiertem GraphKonnen sehr viele Connections werden

Ben Strasser – Connection ScanFolie 28 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 61: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

Bisher: Wir haben gesehen wie man finale Fußwege behandeltNun: Wie man mit initialen und Fußwegen in der Mitte umgeht

Idee 1:Expandiere Fußwege zu Connections ahnlich der Fußwegexpansionbeim zeitexpandiertem GraphKonnen sehr viele Connections werden

Ben Strasser – Connection ScanFolie 28 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 62: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

Bisher: Wir haben gesehen wie man finale Fußwege behandeltNun: Wie man mit initialen und Fußwegen in der Mitte umgeht

Idee 2:Laufe Fußwege beim Einfugen von Paaren ab

Ben Strasser – Connection ScanFolie 29 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 63: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

Bisher: Wir haben gesehen wie man finale Fußwege behandeltNun: Wie man mit initialen und Fußwegen in der Mitte umgeht

Idee 2:Laufe Fußwege beim Einfugen von Paaren ab

Ben Strasser – Connection ScanFolie 29 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 64: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

Aus

Baue (cdep time−change time(cdep stop), τc) in P[cdep stop] ein;

wird

Baue (cdep time−change time(cdep stop), τc) in P[cdep stop] ein;for alle Fußwege (x , cdep stop) mit Lange ` do

Baue (cdep time − `, τc) in P[x ] ein;

Ben Strasser – Connection ScanFolie 30 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 65: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

ProblemWegen unterschiedlicher Fußweglangen werden Paar nicht mehrimmer absteigend nach Abfahrtszeit eingefugtEinfugeoperation wird komplizierter

Idee(d ,a) soll eingefugt werdenVerschiebe alle Paare (d ′,a′) mit d ′ < d in Hilfsarray TmpFuge (d ,a) wie gewohnt einFuge danach alle Paare von Tmp wieder ein

Ben Strasser – Connection ScanFolie 31 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 66: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

ProblemWegen unterschiedlicher Fußweglangen werden Paar nicht mehrimmer absteigend nach Abfahrtszeit eingefugtEinfugeoperation wird komplizierter

Idee(d ,a) soll eingefugt werdenVerschiebe alle Paare (d ′,a′) mit d ′ < d in Hilfsarray TmpFuge (d ,a) wie gewohnt einFuge danach alle Paare von Tmp wieder ein

Ben Strasser – Connection ScanFolie 31 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 67: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

Aus Baue (d ,a) in P ein;

Ben Strasser – Connection ScanFolie 32 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 68: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

wird

Tmp← {};while P[first]dep time ≤ d do

Fuge P[first] in Tmp ein;Losche P[first] aus P;

if a < P[first]arr time thenif P[first]dep time = d then

P[first]arr time ← a;else

Fuge (d ,a) am Anfang von P ein;

for alle (d ′,a′) in Tmp absteigend in d ′ doif a′ < P[0]arr time then

Fuge (d ′,a′) am Anfang von P ein;

Ben Strasser – Connection ScanFolie 33 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 69: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

OptimierungWenn P[cdep stop] nicht verandert wird, dann muss man die Fußwegenicht ablaufenGultig wegen transitiv abgeschlossener Fußwege mitDreiecksungleichung

InterpretationWenn P[cdep stop] nicht verandert wird, dann war jemand schon fruherda. Diese Person kann von cdep stop aus weiterlaufen und ist somituberall fruher

HinweisDiese Optimierung macht meistens einen signifikanten Unterschied

Ben Strasser – Connection ScanFolie 34 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 70: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Fußwege

OptimierungWenn P[cdep stop] nicht verandert wird, dann muss man die Fußwegenicht ablaufenGultig wegen transitiv abgeschlossener Fußwege mitDreiecksungleichung

InterpretationWenn P[cdep stop] nicht verandert wird, dann war jemand schon fruherda. Diese Person kann von cdep stop aus weiterlaufen und ist somituberall fruher

HinweisDiese Optimierung macht meistens einen signifikanten Unterschied

Ben Strasser – Connection ScanFolie 34 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 71: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umstiege nachgelagert optimieren

Ziel:Ankunftszeit und Umstiege optimierenAnkunftszeit ist wichtigerD.h. finde Journey mit minimaler Anzahl an Umstiegen unter allenJourneys mit minimaler Ankunftszeit

Ben Strasser – Connection ScanFolie 35 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 72: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umstiege nachgelagert optimieren

Aus

τ3 ← Ankunftszeit wenn Umsteigen;

wird

τ3 ← Ankunftszeit wenn Umsteigen + ε;

Fur ein hinreichend kleines εIdee: untere Bits kodieren Anzahl an Ausstiegen

Ben Strasser – Connection ScanFolie 36 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 73: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umstiege nachgelagert optimieren

Problem:Zwei Journeys A und B

A fahrt um 7:00:00 los und kommt um 8:00:00 an braucht aber 20UmstiegeB fahrt um 7:00:00 los und kommt um 8:00:01 an braucht aber keinenUmstieg

A wird gegenuber B vorgezogen

Problem kann heuristisch vermieden werden, indem man

τ1 ← Ankunftszeit wenn man zum Ziel lauft;

durch

τ1 ← round(Ankunftszeit wenn man zum Ziel lauft);

ersetzt

Ben Strasser – Connection ScanFolie 37 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 74: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umstiege nachgelagert optimieren

Problem:Zwei Journeys A und B

A fahrt um 7:00:00 los und kommt um 8:00:00 an braucht aber 20UmstiegeB fahrt um 7:00:00 los und kommt um 8:00:01 an braucht aber keinenUmstieg

A wird gegenuber B vorgezogen

Problem kann heuristisch vermieden werden, indem man

τ1 ← Ankunftszeit wenn man zum Ziel lauft;

durch

τ1 ← round(Ankunftszeit wenn man zum Ziel lauft);

ersetzt

Ben Strasser – Connection ScanFolie 37 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 75: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umstiege Pareto-optimieren

Ziel:Ankunftszeit und Umstiege im Pareto-Sinn optimieren

Idee:Ersetze skalare Ankunftszeit mit Vektor v [i] mit konstanter Lange

In den Beispielen Lange 8Geht mit beliebigen Langen

v [i] ist die Ankunftszeit am target wenn man hochstens i malaussteigen darf

Ben Strasser – Connection ScanFolie 38 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 76: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umstiege Pareto-optimieren

Ziel:Ankunftszeit und Umstiege im Pareto-Sinn optimieren

Idee:Ersetze skalare Ankunftszeit mit Vektor v [i] mit konstanter Lange

In den Beispielen Lange 8Geht mit beliebigen Langen

v [i] ist die Ankunftszeit am target wenn man hochstens i malaussteigen darf

Ben Strasser – Connection ScanFolie 38 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 77: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Vektoroperationen

BroadcastEingabe: xAusgabe: (x , x , x , x , x , x , x , x)

MinimumEingabe: (x1, x2, x3, x4, x5, x6, x7, x8) und (y1, y2, y3, y4, y5, y6, y7, y8)

Ausgabe: (z1, z2, z3, z4, z5, z6, z7, z8) mit zi = min{xi , yi}

ShiftEingabe: (x1, x2, x3, x4, x5, x6, x7, x8)

Ausgabe: (∞, x1, x2, x3, x4, x5, x6, x7)

Geht alles mit SIMD/SSE/AVX

Ben Strasser – Connection ScanFolie 39 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 78: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Vektoroperationen

BroadcastEingabe: xAusgabe: (x , x , x , x , x , x , x , x)

MinimumEingabe: (x1, x2, x3, x4, x5, x6, x7, x8) und (y1, y2, y3, y4, y5, y6, y7, y8)

Ausgabe: (z1, z2, z3, z4, z5, z6, z7, z8) mit zi = min{xi , yi}

ShiftEingabe: (x1, x2, x3, x4, x5, x6, x7, x8)

Ausgabe: (∞, x1, x2, x3, x4, x5, x6, x7)

Geht alles mit SIMD/SSE/AVX

Ben Strasser – Connection ScanFolie 39 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 79: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Vektoroperationen

BroadcastEingabe: xAusgabe: (x , x , x , x , x , x , x , x)

MinimumEingabe: (x1, x2, x3, x4, x5, x6, x7, x8) und (y1, y2, y3, y4, y5, y6, y7, y8)

Ausgabe: (z1, z2, z3, z4, z5, z6, z7, z8) mit zi = min{xi , yi}

ShiftEingabe: (x1, x2, x3, x4, x5, x6, x7, x8)

Ausgabe: (∞, x1, x2, x3, x4, x5, x6, x7)

Geht alles mit SIMD/SSE/AVX

Ben Strasser – Connection ScanFolie 39 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 80: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Vektoroperationen

BroadcastEingabe: xAusgabe: (x , x , x , x , x , x , x , x)

MinimumEingabe: (x1, x2, x3, x4, x5, x6, x7, x8) und (y1, y2, y3, y4, y5, y6, y7, y8)

Ausgabe: (z1, z2, z3, z4, z5, z6, z7, z8) mit zi = min{xi , yi}

ShiftEingabe: (x1, x2, x3, x4, x5, x6, x7, x8)

Ausgabe: (∞, x1, x2, x3, x4, x5, x6, x7)

Geht alles mit SIMD/SSE/AVX

Ben Strasser – Connection ScanFolie 39 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 81: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

GrundgerustInitialisiere Datenstrukturen an Stops;Initialisiere Datenstrukturen an Trips;

for alle Connections c absteigend nach cdep time do/* 1. Bestimme Ankunftszeit von man in c startet */τ1 ← Ankunftszeit wenn man zum Ziel lauft;τ2 ← Ankunftszeit wenn Sitzenbleiben, braucht Daten vom Trip ctrip id;τ3 ← Ankunftszeit wenn Umsteigen, braucht Daten vom Stop carr stop;

/* τc Ankunftszeit wenn man in c beginnt */τc ← min{τ1, τ2, τ3};

/* 2. Passe die Stop / Trip Datenstrukturen an */Baue τc in Daten von Stop cdep stop ein;Baue τc in Daten von Trip ctrip id ein;

τ1, τ2, τ3 und τc sind nun VektorenAbfahrtszeiten bleiben Skalare

Ben Strasser – Connection ScanFolie 40 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 82: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Zum Ziel Laufen

Aus

τ1 ← Ankunftszeit wenn man zum Ziel lauft;

wird

if carr stop = target thenτ1 ← broadcast(carr time);

elseτ1 ← broadcast(∞);

(Finale Fußwege gehen genauso wie bisher)

Ben Strasser – Connection ScanFolie 41 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 83: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Sitzenbleiben

Trip-DatenstrukturT [x ] ist eine Ankunftszeit→ T [x ] wird Vektor

Aus

Initialisiere Datenstrukturen an Trips;

wird

for alle Trips x doT [x ]← broadcast(∞);

Ben Strasser – Connection ScanFolie 42 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 84: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Sitzenbleiben

Trip-DatenstrukturT [x ] ist eine Ankunftszeit→ T [x ] wird Vektor

Aus

τ2 ← Ankunftszeit wenn Sitzenbleiben;

wird

τ2 ← T [ctrip id];

(Diesmal sind die Variablen aber Vektoren)

Ben Strasser – Connection ScanFolie 42 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 85: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Sitzenbleiben

Trip-DatenstrukturT [x ] ist eine Ankunftszeit→ T [x ] wird Vektor

Aus

Baue τc in Daten von Trip ctrip id ein;

wird

T [ctrip id]← τc ;

(Diesmal sind die Variablen aber Vektoren)

Ben Strasser – Connection ScanFolie 42 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 86: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umsteigen

Stop-DatenstrukturAnkunftszeitfunktion bildet auf Vektor ab

Aus

Initialisiere Datenstrukturen an Stop;

wird

for alle Stops x doP[x ]← {∀τ : τ 7→ broadcast(∞)};

Ben Strasser – Connection ScanFolie 43 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 87: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Ankunftszeitfunktionen

Bisher: P ist Array von (dep time, arr time)-PaarenNun: P ist Array von (dep time, vector)-PaarenArray ist sortiert nach Abfahrtszeit

Interpretation:P ist Profil von Stop x nach targetP am Zeitpunkt τ auswerten ergibt Vektor vIn v [i] steht wann ich an target ankomme wenn ich

um τan x losfahreund hochstens i mal aussteigen darf

Ben Strasser – Connection ScanFolie 44 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 88: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Ankunftszeitfunktionen

Bisher: P ist Array von (dep time, arr time)-PaarenNun: P ist Array von (dep time, vector)-PaarenArray ist sortiert nach Abfahrtszeit

Interpretation:P ist Profil von Stop x nach targetP am Zeitpunkt τ auswerten ergibt Vektor vIn v [i] steht wann ich an target ankomme wenn ich

um τan x losfahreund hochstens i mal aussteigen darf

Ben Strasser – Connection ScanFolie 44 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 89: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umstiege Pareto-optimieren

Jedes Array hat ein (∞, broadcast(∞))-PaarAus

for alle Stops x doP[x ]← {∀τ : τ 7→ broadcast(∞)};

wird

for alle Stops x doP[x ]← {(∞, broadcast(∞))};

Ben Strasser – Connection ScanFolie 45 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 90: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umstiege Pareto-optimieren

Evaluierungs-Pseudo-Code bleibt unverandertAber: a ist nun ein VektorAus

werte P zum Zeitpunkt τ aus;

wird

for i from 0 to length(P)− 1 do(d ,a)← P[i];if τ ≤ d then

Ergebnis ist a;breche Schleife ab;

Ben Strasser – Connection ScanFolie 46 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 91: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umstiege Pareto-optimieren

Fuge Paar ein, wenn es in mindestens einer Komponente besser istAus

Baue (cdep time−change time(cdep stop), τc) in P[cdep stop] ein;

wirdd ← cdep time−change time(cdep stop));x ← min{τc ,P[cdep stop][0]vector};if x 6= P[cdep stop][0]vector then

if d = P[cdep stop][0]dep time thenP[cdep stop][0]vector ← x ;

elseFuge (d , x) am Anfang von P[cdep stop] ein;

Ben Strasser – Connection ScanFolie 47 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 92: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umstiege Pareto-optimieren

Vektor v der Lange n hat die Komponenten:

(v1, v2 . . . vn)

Journeys werden gefunden bis maximal n Mal einsteigen→ bis n − 1 Umstiege

Vektorlange in der Regel 87 Umstiege ist fur die meisten Anwendungen gut genug

Ben Strasser – Connection ScanFolie 48 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 93: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umstiege Pareto-optimieren

Vektor v der Lange n hat die Komponenten:

(v1, v2 . . . vn)

Journeys werden gefunden bis maximal n Mal einsteigen→ bis n − 1 Umstiege

Vektorlange in der Regel 87 Umstiege ist fur die meisten Anwendungen gut genug

Ben Strasser – Connection ScanFolie 48 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 94: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Umstiege Pareto-optimieren

Beobachtung:Man kann die Shift-Operation so modifizieren, dass vn die fruhesteAnkunftszeit ohne beschrankte Umstiege ist.Die Bedeutung von vi fur i < n bleibt erhalten: hochstens i AusstiegeIst in manchen Anwendungen nutzlich

Modifiziertes ShiftEingabe: (x1, x2, x3, x4, x5, x6, x7, x8)

Ausgabe: (∞, x1, x2, x3, x5, x6,min{x7, x8})

Ben Strasser – Connection ScanFolie 49 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 95: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Zeit Kompression

Problem: Algorithmus ist memory-boundDer Speicher ist fast vollstandig mit Ankunftszeiten gefullt→ Komprimiere Ankunftszeiten

Beobachtung: Nicht an jedem Zeitpunkt fahrt ein Zug

Idee: Berechne fur jeden Stop ein geordnetes Array von Zeitpunktent0, t1, . . . , tn an denen ein Zug abfahrt oder ankommt

Indizes respektieren die zeitliche Ordnung, d.h., ti < tj ⇐⇒ i < jIndizes passen oft in 16 BitKopiere Indizes anstatt von Zeitpunkten

FußwegeNicht triviale Interaktion mit Fußwegen (nicht in der Vorlesung)

Ben Strasser – Connection ScanFolie 50 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 96: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Zeit Kompression

Problem: Algorithmus ist memory-boundDer Speicher ist fast vollstandig mit Ankunftszeiten gefullt→ Komprimiere Ankunftszeiten

Beobachtung: Nicht an jedem Zeitpunkt fahrt ein Zug

Idee: Berechne fur jeden Stop ein geordnetes Array von Zeitpunktent0, t1, . . . , tn an denen ein Zug abfahrt oder ankommt

Indizes respektieren die zeitliche Ordnung, d.h., ti < tj ⇐⇒ i < jIndizes passen oft in 16 BitKopiere Indizes anstatt von Zeitpunkten

FußwegeNicht triviale Interaktion mit Fußwegen (nicht in der Vorlesung)

Ben Strasser – Connection ScanFolie 50 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 97: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Pfadentpackung

Option 1:Speichere an jeder Ankunftszeit das erste Leg einer entsprechendenJourneyEntpacke Journeys rekursiv

Option 2:Traversiere Fahrplan DFS-massig von source in der Zeit vorwartsBenutze Profile um fruhzeitig zu prunenKann genutzt werden um eine Journey zu findenKann auch genutzt werden um alle optimalen Journeys zu finden

Ben Strasser – Connection ScanFolie 51 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 98: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Pfadentpackung

Option 1:Speichere an jeder Ankunftszeit das erste Leg einer entsprechendenJourneyEntpacke Journeys rekursiv

Option 2:Traversiere Fahrplan DFS-massig von source in der Zeit vorwartsBenutze Profile um fruhzeitig zu prunenKann genutzt werden um eine Journey zu findenKann auch genutzt werden um alle optimalen Journeys zu finden

Ben Strasser – Connection ScanFolie 51 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 99: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Laufzeiten

London Instanz mit 4 850 431 Connections.

Fruheste Ankunft One-to-One:Time-Expanded: 64.4 msTime-Dependent: 10.9 msConnection Scan: 2.0 ms

Fruheste Ankunft One-to-All:Time-Expanded: 876.2 msTime-Dependent: 18.9 msConnection Scan: 9.7 ms

(Time-Dependent kriegt man etwas schneller, mit Ideeen die nicht im Kursvorkommen.)

Ben Strasser – Connection ScanFolie 52 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 100: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Laufzeiten

Non-Pareto Profil All-to-One:Self-Pruning-Connection-Setting : 1 262 msConnection Scan: 177 ms+ constant eval: 134 ms+ time compress: 104 ms

Pareto Profil All-to-One (mit hochstens 8 Zugen pro Journey):RAPTOR : 1 179 msConnection Scan: 255 ms+ SSE: 221 ms

Connection Scan mit expandierten Fußwegen

Ben Strasser – Connection ScanFolie 53 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik

Page 101: Connection Scan - KIT€¦ · Ben Strasser – Connection Scan Folie 4 – 11. Juli 2016 Institut fur Theoretische Informatik¨ Lehrstuhl Algorithmik. Connection Scan Problem der

Literatur I

Julian Dibbelt, Thomas Pajor, Ben Strasser, and Dorothea Wagner.Intriguingly simple and fast transit routing.In Proceedings of the 12th International Symposium on Experimental Algorithms(SEA’13), volume 7933 of Lecture Notes in Computer Science, pages 43–54. Springer,2013.

Ben Strasser and Dorothea Wagner.Connection scan accelerated.In Proceedings of the 16th Meeting on Algorithm Engineering and Experiments(ALENEX’14), pages 125–137. SIAM, 2014.

Ben Strasser – Connection ScanFolie 54 – 11. Juli 2016

Institut fur Theoretische InformatikLehrstuhl Algorithmik