INSTITUT FÜR THEORETISCHE INFORMATIK · ALGORITHMIK · PROF. DR. DOROTHEA WAGNER
Algorithmen für Routenplanung18. Vorlesung, Sommersemester 2021
Adrian Feilhauer | 21. Juni 2021
KIT – Universität des Landes Baden-Württemberg undnationales Großforschungszentrum in der Helmholtz-Gemeinschaft
www.kit.edu
Fahrplanauskunft
Transport for London August 2011
Key to symbols Explanation of zones
1
3
45
6
2
7
8
9
Station in both zones
Station in both zones
Station in both zones
Station in Zone 9
Station in Zone 6
Station in Zone 5
Station in Zone 3Station in Zone 2
Station in Zone 1
Station in Zone 4
Station in Zone 8
Station in Zone 7
Station closed
Riverboat services
AirportTramlink
Interchange stations
Step-free access from street to platform
Step-free access from street to train
National Rail
Blackfriars
Check before you travel
Key to lines
Bank Waterloo & City line open 0615 until 2148 Mondays to Fridays and 0800 until 1830 Saturdays. Closed Sundays and Public Holidays---------------------------------------------------------------------------Blackfriars Underground station closed until late 2011---------------------------------------------------------------------------Camden Town From 1300 until 1730 Sundays open for interchange and exit only---------------------------------------------------------------------------Canary Wharf Step-free interchange between Underground, Canary Wharf DLR and Heron Quays DLR stations at street level---------------------------------------------------------------------------Cannon Street Open until 2100 Mondays to Fridays. Closed Saturdays and Sundays---------------------------------------------------------------------------Heron Quays Step-free interchange between Heron Quays and Canary Wharf Underground station at street level---------------------------------------------------------------------------Hounslow West Step-free access for wheelchair users only---------------------------------------------------------------------------Tottenham Northern line trains will not Court Road stop at Tottenham Court Road until late 2011 ---------------------------------------------------------------------------Turnham Green Served by Piccadilly line trains early mornings and late evenings only---------------------------------------------------------------------------Victoria Major escalator refurbishment works until early 2012. Use nearby stations or alternative routes---------------------------------------------------------------------------Waterloo Waterloo & City line open 0615 until 2148 Mondays to Fridays and 0800 until 1830 Saturdays. Closed Sundays and Public Holidays---------------------------------------------------------------------------West India Quay Not served by DLR trains from Bank towards Lewisham before 1900 on Mondays to Fridays---------------------------------------------------------------------------
Northern
Metropolitan
Victoria
District
Circle
Central
Bakerloo
DLR
London Overground
Piccadilly
Waterloo & City
Jubilee
Hammersmith & City
River Thames
A
B
C
D
E
F
1 2 3 4 5 6 7 8 9
1 2 3 4 5 76 8 9
A
B
C
D
E
F
2 2
22
2
5
8 8 6
2
4
4
65
41
3
2
43
3
36 3 1
1
3
3
59 7 7Special fares apply
5
5
4
4
4
AmershamChorleywood
Mill Hill East
Rickmansworth
Perivale
KentishTown West
CamdenRoad
Dalston Kingsland
Wanstead Park
Vauxhall
Hanger Lane
Edgware
Burnt Oak
Colindale
Hendon Central
Brent Cross
Golders Green
West Silvertown
Pontoon Dock
London City Airport
Woolwich Arsenal
King George V
Hampstead
Belsize Park
Chalk Farm
Chalfont &Latimer
Chesham
New Cross Gate
Moor Park
NorthwoodNorthwoodHills
Pinner
North Harrow
Custom House for ExCeL
Prince Regent
Royal Albert
Beckton Park
Cyprus
Gallions Reach
Beckton
Watford
Croxley
Fulham Broadway
LambethNorth
HeathrowTerminal 4
Harrow-on-the-Hill
KensalRise
BethnalGreen
Westferry
SevenSisters
Blackwall
BrondesburyPark
HampsteadHeath
HarringayGreen Lanes
LeytonstoneHigh Road
LeytonMidland Road
Hackney Central
NorthwickPark
PrestonRoad
RoyalVictoria
WembleyPark
Rayners Lane
Watford High Street
RuislipGardens
South Ruislip
Greenford
Northolt
South Harrow
Sudbury Hill
Sudbury Town
Alperton
Pimlico
Park Royal
North Ealing
Acton Central
South Acton
Ealing Broadway
Watford Junction
West Ruislip
Bushey
Carpenders Park
Hatch End
North Wembley
West Brompton
Ealing Common
South Kenton
Kenton
Wembley Central
Kensal Green
Queen’s Park
Gunnersbury
Kew Gardens
Richmond
Stockwell
Bow Church
Stonebridge Park
Harlesden
Camden Town
Willesden Junction
Headstone Lane
Parsons Green
Putney Bridge
East Putney
Southfields
Wimbledon Park
Wimbledon
Island Gardens
Greenwich
Deptford Bridge
South Quay
Crossharbour
Mudchute
Heron Quays
West India Quay
Elverson Road
Oakwood
Cockfosters
Southgate
Arnos Grove
Bounds Green
Theydon Bois
Epping
Debden
Loughton
Buckhurst Hill
WalthamstowQueen’s Road
Woodgrange Park
Leytonstone
Leyton
Wood Green
Turnpike Lane
Manor House
Stanmore
Canons Park
Queensbury
Kingsbury
High Barnet
Totteridge & Whetstone
Woodside Park
West Finchley
Finchley CentralWoodford
South Woodford
Snaresbrook
Hainault
Fairlop
Barkingside
Newbury Park
East Finchley
Highgate
Archway
Devons Road
Langdon Park
All Saints
Tufnell Park
Kentish Town
Neasden
Dollis Hill
Willesden Green
South Tottenham
Swiss Cottage
ImperialWharf
Brixton
Kilburn
West Hampstead
Blackhorse Road
Acton Town
CanningTown
Finchley Road
Highbury &Islington
Canary Wharf
Stratford
StratfordInternational
FinsburyPark
Elephant & Castle
Stepney Green
Barking
East Ham
Plaistow
Upton Park
Poplar
West Ham
Upper Holloway
PuddingMill Lane
Kennington
Borough
Elm ParkDagenham
East
DagenhamHeathway
Becontree
Upney
Heathrow Terminal 5
Finchley Road& Frognal
Crouch Hill
Northfields
Boston Manor
South Ealing
Osterley
Hounslow Central
Hounslow East
Clapham North
Oval
Clapham Common
Clapham South
Balham
Tooting Bec
Tooting Broadway
Colliers Wood
South Wimbledon
Arsenal
Holloway Road
Caledonian Road
Morden
West Croydon
HounslowWest
Hatton Cross
HeathrowTerminals 1, 2, 3
ClaphamJunction
WestHarrow
Brondesbury CaledonianRoad &
Barnsbury
TottenhamHale
WalthamstowCentral
HackneyWick
Homerton
WestActon
Limehouse EastIndia
Crystal Palace
ChiswickPark
RodingValley
GrangeHill
Chigwell
Redbridge
GantsHill
Wanstead
NorthGreenwichfor The O2
Ickenham
TurnhamGreen
Uxbridge
Hillingdon Ruislip
GospelOak
Mile End
Bow Road
Bromley-by-Bow
Upminster
Upminster Bridge
Hornchurch
Norwood Junction
Sydenham
Forest Hill
Anerley
Penge West
Honor Oak Park
Brockley
Harrow &Wealdstone
Cutty Sark for Maritime Greenwich
Ruislip Manor
Eastcote
Wapping
Shadwell
New Cross
CanadaWater
Surrey Quays
Whitechapel
Lewisham
Kilburn Park
Regent’s Park
KilburnHigh Road
EdgwareRoad
SouthHampstead
GoodgeStreet
Shepherd’s BushMarket
Goldhawk Road
Hammersmith
Bayswater
Warren Street
Aldgate
Euston
Farringdon
BarbicanRussellSquare
Kensington(Olympia)
MorningtonCrescent
High StreetKensington
Old Street
St. John’s Wood
Green Park
BakerStreet
NottingHill Gate
Victoria
AldgateEast
Blackfriars
Mansion House
Cannon Street
OxfordCircus
BondStreet
TowerHill
Westminster
PiccadillyCircus
CharingCross
Holborn
Tower Gateway
Monument
Moorgate
Leicester Square
London Bridge
St. Paul’s
Hyde Park Corner
Knightsbridge
StamfordBrook
RavenscourtPark
WestKensington
NorthActon
HollandPark
Marylebone
Angel
Queensway MarbleArch
SouthKensington
Earl’sCourt
SloaneSquare
Covent Garden
LiverpoolStreet
GreatPortland
Street
Bank
EastActon
ChanceryLane
LancasterGate
Warwick AvenueMaida Vale
Fenchurch Street
Paddington
BaronsCourt
GloucesterRoad St. James’s
Park Temple
Latimer Road
Ladbroke Grove
Royal Oak
Westbourne Park
Bermondsey
Rotherhithe
ShoreditchHigh Street
Dalston Junction
Haggerston
Hoxton
Wood Lane
Shepherd’sBush
WhiteCity
King’s CrossSt. Pancras
EustonSquareEdgware
Road
Southwark
Embankment
Stratford High Street
Abbey Road
Star Lane
Waterloo
TottenhamCourt Road
Canonbury
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 2 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Abgrenzung zu Straßennetzwerken
Eingabe bei Straßennetzen:Straßenkarte modelliert als Graph, bestehend aus
Kreuzungen =̂ KnotenStraßensegmenten =̂ KantenMetriken (Reisezeit, Distanz, . . . ) =̂ Kantengewichte
Was ist die Eingabe bei ÖV-Netzwerken?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 3 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Abgrenzung zu Straßennetzwerken
Eingabe bei Straßennetzen:Straßenkarte modelliert als Graph, bestehend aus
Kreuzungen =̂ KnotenStraßensegmenten =̂ KantenMetriken (Reisezeit, Distanz, . . . ) =̂ Kantengewichte
Was ist die Eingabe bei ÖV-Netzwerken?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 3 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneFahrplan:
Menge S von Stops (Bahnhöfe, Bahnsteige, Haltestellen, . . . )Menge C von Connections (elementare Verbindungen)Menge T von Trips (Züge, Busse, Trams, . . . )
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 4 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneFahrplan:
Menge S von Stops (Bahnhöfe, Bahnsteige, Haltestellen, . . . )Menge C von Connections (elementare Verbindungen)Menge T von Trips (Züge, Busse, Trams, . . . )
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 4 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneFahrplan:
Menge S von Stops (Bahnhöfe, Bahnsteige, Haltestellen, . . . )Menge C von Connections (elementare Verbindungen)Menge T von Trips (Züge, Busse, Trams, . . . )
Abfahrtszeit τdep(c) ∈ Π
Ankunftszeit τarr(c) ∈ Π
Kein Zwischenhalt!
Connection: 5-Tupel c =(vdep(c), varr(c), τdep(c), τarr(c), trip(c)
)Abfahrtsstop vdep(c) ∈ SAnkunftsstop varr(c) ∈ STrip trip(c) ∈ T
8:00
8:30
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 4 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneFahrplan:
Menge S von Stops (Bahnhöfe, Bahnsteige, Haltestellen, . . . )Menge C von Connections (elementare Verbindungen)Menge T von Trips (Züge, Busse, Trams, . . . )
Trip:Folge von Connections T = (c1, . . . , ck )
Fahrt eines Zuges (Busses, . . . )von Endstation zu EndstationAbfahrten an den Stops zu bestimmten Zeiten
8:00
8:30
9:00 9:10 9:20 9:40
Trip 1
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 4 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneFahrplan:
Menge S von Stops (Bahnhöfe, Bahnsteige, Haltestellen, . . . )Menge C von Connections (elementare Verbindungen)Menge T von Trips (Züge, Busse, Trams, . . . )
Trip:Folge von Connections T = (c1, . . . , ck )
Fahrt eines Zuges (Busses, . . . )von Endstation zu EndstationAbfahrten an den Stops zu bestimmten Zeiten
9:00
9:30
10:00 10:10 10:20 10:40
Trip 2
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 4 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneFahrplan:
Menge S von Stops (Bahnhöfe, Bahnsteige, Haltestellen, . . . )Menge C von Connections (elementare Verbindungen)Menge T von Trips (Züge, Busse, Trams, . . . )
Routen: (Linien)
Partitionierung der TripsZwei Trips T1,T2 gehören zur gleichen Route⇔ T1 und T2 besuchen genau die gleiche Sequenz von StopsIst bei realen Zug-/Bahnlinien nicht immer der Fall!
Route 1
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 4 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneFahrplan:
Menge S von Stops (Bahnhöfe, Bahnsteige, Haltestellen, . . . )Menge C von Connections (elementare Verbindungen)Menge T von Trips (Züge, Busse, Trams, . . . )
Routen: (Linien)
Partitionierung der TripsZwei Trips T1,T2 gehören zur gleichen Route⇔ T1 und T2 besuchen genau die gleiche Sequenz von StopsIst bei realen Zug-/Bahnlinien nicht immer der Fall!
Route 1Route 2
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 4 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneFahrplan:
Menge S von Stops (Bahnhöfe, Bahnsteige, Haltestellen, . . . )Menge C von Connections (elementare Verbindungen)Menge T von Trips (Züge, Busse, Trams, . . . )
Routen: (Linien)
Partitionierung der TripsZwei Trips T1,T2 gehören zur gleichen Route⇔ T1 und T2 besuchen genau die gleiche Sequenz von StopsIst bei realen Zug-/Bahnlinien nicht immer der Fall!
Route 1keine Route!
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 4 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneFahrplan:
Menge S von Stops (Bahnhöfe, Bahnsteige, Haltestellen, . . . )Menge C von Connections (elementare Verbindungen)Menge T von Trips (Züge, Busse, Trams, . . . )
Routen: (Linien)
Partitionierung der TripsZwei Trips T1,T2 gehören zur gleichen Route⇔ T1 und T2 besuchen genau die gleiche Sequenz von StopsIst bei realen Zug-/Bahnlinien nicht immer der Fall!
Route 1Route 2Route 3
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 4 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneFahrplan:
Menge S von Stops (Bahnhöfe, Bahnsteige, Haltestellen, . . . )Menge C von Connections (elementare Verbindungen)Menge T von Trips (Züge, Busse, Trams, . . . )
Zur Modellierung von Umstiegen:Mindestumstiegszeiten an Stops: τch : S → N0
Fußwege zwischen (nahen) Stops: τwalk : S × S → N0 ∪ {∞}
5 min2 min
1 min
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 4 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Journeys
Gegenstück zu einem Pfad in einem Straßennetzwerk?
Journey:Modelliert Reise eines Passagiers durch das NetzwerkFolge von Legs: Teilsequenzen von Trips aus dem Fahrplan(Möglicherweise mit Umstiegen/Fußwegen dazwischen)
Journey ist konsistent, wenn . . .Erster Stop von Leg Ti+1 entspricht letztem Stop von Leg Ti(Oder es existiert Fußweg dazwischen)
Abfahrt von Ti+1 ist nach Ankunft von Ti(+ Zeit für Umstieg/Fußweg)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 5 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Journeys
Gegenstück zu einem Pfad in einem Straßennetzwerk?
Journey:Modelliert Reise eines Passagiers durch das NetzwerkFolge von Legs: Teilsequenzen von Trips aus dem Fahrplan(Möglicherweise mit Umstiegen/Fußwegen dazwischen)
Journey ist konsistent, wenn . . .Erster Stop von Leg Ti+1 entspricht letztem Stop von Leg Ti(Oder es existiert Fußweg dazwischen)
Abfahrt von Ti+1 ist nach Ankunft von Ti(+ Zeit für Umstieg/Fußweg)
2 min
1 min
5 min
s
t
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 5 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Journeys
Gegenstück zu einem Pfad in einem Straßennetzwerk?
Journey:Modelliert Reise eines Passagiers durch das NetzwerkFolge von Legs: Teilsequenzen von Trips aus dem Fahrplan(Möglicherweise mit Umstiegen/Fußwegen dazwischen)
Journey ist konsistent, wenn . . .Erster Stop von Leg Ti+1 entspricht letztem Stop von Leg Ti(Oder es existiert Fußweg dazwischen)
Abfahrt von Ti+1 ist nach Ankunft von Ti(+ Zeit für Umstieg/Fußweg)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 5 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung von Fahrplänen
Zwei grundlegende Ansätze:
1 Modellierung als gerichteter Graph2 Benutze Fahrplan „direkt“
Dijkstra Neue Algorithmen
Jetzt ersteres, später zweiteres.
Modellierung als Graph:Reduziere auf (bekanntes) Kürzeste-Wege-ProblemOptimale Journeys entsprechen kürzesten Wegen
Frage: Wie die Zeitabhängigkeit (Abfahrten/Ankünfte) kodieren?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 6 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung von Fahrplänen
Zwei grundlegende Ansätze:
1 Modellierung als gerichteter Graph2 Benutze Fahrplan „direkt“
Dijkstra Neue Algorithmen
Jetzt ersteres, später zweiteres.
Modellierung als Graph:Reduziere auf (bekanntes) Kürzeste-Wege-ProblemOptimale Journeys entsprechen kürzesten Wegen
Frage: Wie die Zeitabhängigkeit (Abfahrten/Ankünfte) kodieren?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 6 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung von Fahrplänen
Zwei grundlegende Ansätze:
1 Modellierung als gerichteter Graph2 Benutze Fahrplan „direkt“
Dijkstra Neue Algorithmen
Jetzt ersteres, später zweiteres.
Modellierung als Graph:Reduziere auf (bekanntes) Kürzeste-Wege-ProblemOptimale Journeys entsprechen kürzesten Wegen
Frage: Wie die Zeitabhängigkeit (Abfahrten/Ankünfte) kodieren?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 6 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung von Fahrplänen
Zwei grundlegende Ansätze:
1 Modellierung als gerichteter Graph2 Benutze Fahrplan „direkt“
Dijkstra Neue Algorithmen
Jetzt ersteres, später zweiteres.
Modellierung als Graph:Reduziere auf (bekanntes) Kürzeste-Wege-ProblemOptimale Journeys entsprechen kürzesten Wegen
Frage: Wie die Zeitabhängigkeit (Abfahrten/Ankünfte) kodieren?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 6 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung: Zwei Ansätze
1. Zeitexpandiert
Zeitabhängigkeiten ausrollenKnoten entsprechenEreignissen im FahrplanKanten verbinden Ereignissemiteinander
Fahrt mit ConnectionUmstieg zwischen TripsWarten auf Trip
– Großer Graph+ Einfacher Anfragealgorithmus
(Dijkstra)
2. Zeitabhängig
Zeitabhängigkeit in denKantengewichtenKnoten entsprechen StopsKante⇔ Connectionverbindet Stops
Umstiegszeiten?
+ Kleiner Graph– Zeitabhängige Algorithmen?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 7 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung: Zwei Ansätze
1. Zeitexpandiert 2. Zeitabhängig
v1 v2T1,T2, T3
T1,T2 T1,T2
T3 T3
Arrival-, Transfer- undDeparture-EreignisseFür jede ConnectionKantengewicht = Zeitdiff.(alternativ: ungewichtet,Knotenlabel = Ereigniszeit)
Pro Stop: StationsknotenKanten: zeitabhängigUmstiege?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 8 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung: Zwei Ansätze
1. Zeitexpandiert 2. Zeitabhängig
v1 v2
T1,T2
T3
Arrival-, Transfer- undDeparture-EreignisseFür jede ConnectionKantengewicht = Zeitdiff.(alternativ: ungewichtet,Knotenlabel = Ereigniszeit)
Pro Stop: StationsknotenPartitioniere Trips in RoutenPro Route: Routen-KnotenRoutenkanten: zeitabhängigStationskanten: Transferzeit
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 8 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Zeitabhängige KantenConnections modelliert durch stückweise lineare Funktionen f e
dur, fearr
Connections zwischen vi und vj :
id dep. time travel time
1 06:00 3 h 00 min2 15:00 9 h 00 min3 21:00 4 h 30 min...
......
Entsprechende Funktion:
fdur(τ )
6:00 12:00 18:00 24:00
6 h
12 h
τ
Für jede Connection: Connection Point (τ,w)τ =̂ Abfahrtszeit, w =̂ Reisezeit (bzw. Ankunftszeit)
Zwischen Connections: Lineares Warten
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 9 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Zeitabhängige Kanten
Connections modelliert durch stückweise lineare Funktionen f edur, f
earr
Connections zwischen vi und vj :
id dep. time travel time
1 06:00 3 h 00 min2 15:00 9 h 00 min3 21:00 4 h 30 min...
......
Entsprechende Funktion:
farr(τ )
6:00 12:00 18:00 24:00
25:30
τ9:00
24:00
Für jede Connection: Connection Point (τ,w)τ =̂ Abfahrtszeit, w =̂ Reisezeit (bzw. Ankunftszeit)
Zwischen Connections: Lineares Warten
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 9 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
FIFO-Eigenschaft (Wdh.)
DefinitionSei fdur : R+
0 → R+0 eine Reisezeit-Funktion. f erfüllt die
FIFO-Eigenschaft, wenn für jedes ε > 0 und alle τ ∈ R+0 gilt, dass
fdur(τ) ≤ ε+ fdur(τ + ε).
Diskussion:Interpretation: „Warten lohnt sich nie“Kürzeste-Wege-Problem ohne FIFO-Eigenschaft ist NP-schwer(wenn Warten an Knoten nicht erlaubt ist)
⇒ Sicherstellen, dass Funktionen FIFO-Eigenschaft erfüllen
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 10 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
FIFO-Eigenschaft (Wdh.)
DefinitionSei farr : R+
0 → R+0 eine Ankunftszeit-Funktion. f erfüllt die
FIFO-Eigenschaft, wenn für jedes ε > 0 und alle τ ∈ R+0 gilt, dass
farr(τ) ≤ farr(τ + ε).
Diskussion:Interpretation: „Warten lohnt sich nie“Kürzeste-Wege-Problem ohne FIFO-Eigenschaft ist NP-schwer(wenn Warten an Knoten nicht erlaubt ist)
⇒ Sicherstellen, dass Funktionen FIFO-Eigenschaft erfüllen
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 10 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Fahrplanauskunft mit Dijkstra
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 11 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Anfrageszenarien
Gegeben: Startstop s, Zielstop t
Zeit-Anfrage (Earliest Arrival Query):Finde schnellste Journey für Abfahrtszeit τdep
Analog zu Dijkstra?
Profil-Anfrage (Profile Query):Finde schnellste Journey für jeden Abfahrtszeitpunkt τ ∈ Π
Analog zu Dijkstra?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 12 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Anfrageszenarien
Gegeben: Startstop s, Zielstop t
Zeit-Anfrage (Earliest Arrival Query):Finde schnellste Journey für Abfahrtszeit τdep
Analog zu Dijkstra?
Profil-Anfrage (Profile Query):Finde schnellste Journey für jeden Abfahrtszeitpunkt τ ∈ Π
Analog zu Dijkstra?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 12 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Anfrageszenarien
Gegeben: Startstop s, Zielstop t
Zeit-Anfrage (Earliest Arrival Query):Finde schnellste Journey für Abfahrtszeit τdep
Analog zu Dijkstra?
Profil-Anfrage (Profile Query):Finde schnellste Journey für jeden Abfahrtszeitpunkt τ ∈ Π
Analog zu Dijkstra?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 12 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Zeit-Anfragen
Gegeben: Startstop s, Zielstop t und Abfahrtszeit τdep
1. Zeitexpandiert 2. Zeitabhängig
Startknoten:Erstes Transferevent von smit Zeit τ ≥ τdep
Zielknoten:Im Voraus unbekannt!Stoppkriterium: Erstergesettleter Knoten an tinduziert schnellsteVerbindung zu t
Startknoten:Stationsknoten s
Zielknoten:Stationsknoten t
Anfrage:Time-Dependent Dijkstra mitZeit τdep
Nur Ankunftszeit im Vorausunbekannt
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 13 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Zeit-Anfragen
Gegeben: Startstop s, Zielstop t und Abfahrtszeit τdep
1. Zeitexpandiert 2. Zeitabhängig
Startknoten:Erstes Transferevent von smit Zeit τ ≥ τdep
Zielknoten:Im Voraus unbekannt!Stoppkriterium: Erstergesettleter Knoten an tinduziert schnellsteVerbindung zu t
Startknoten:Stationsknoten s
Zielknoten:Stationsknoten t
Anfrage:Time-Dependent Dijkstra mitZeit τdep
Nur Ankunftszeit im Vorausunbekannt
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 13 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Zeit-Anfragen
Algorithm 1: Time-Dijkstra(G = (V ,E), s, τdep)
1 d [s] = 02 Q.clear(), Q.insert(s,0)
3 while !Q.empty() do4 u ← Q.deleteMin()
5 for all edges e = (u, v) ∈ E do
// len(e, ·) = f edur(·)
6 if d [u] + len(e, τdep + d [u]) < d [v ] then7 d [v ]← d [u] + len(e, τdep + d [u])8 p[v ]← u
9 if v ∈ Q then Q.decreaseKey(v ,d [v ])10 else Q.insert(v ,d [v ])
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 14 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Zeit-Anfragen
Algorithm 2: Time-Dijkstra(G = (V ,E), s, τdep)
1 d [s] = τdep
2 Q.clear(), Q.insert(s, τdep)
3 while !Q.empty() do4 u ← Q.deleteMin()
5 for all edges e = (u, v) ∈ E do
// len(e, ·) = f earr(·)
6 if len(e,d [u]) < d [v ] then7 d [v ]← len(e,d [u])8 p[v ]← u
9 if v ∈ Q then Q.decreaseKey(v ,d [v ])10 else Q.insert(v ,d [v ])
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 14 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Diskussion Zeit-Anfragen
Beobachtung:Nur ein Unterschied zu DijkstraAuswertung der Kanten
Non-FIFO-Netzwerke:Im Kreis fahren kann sich lohnenNP-schwer (wenn Warten an Knoten nicht erlaubt ist)Transportnetzwerke sind FIFO-modellierbar
In unserem Szenario:Sicherstellen, dass jede Route FIFO-Eigenschaft erfülltFür alle Trips Ti ,Tj der Route muss gelten:Ti fährt an jedem Stop jeweils vor Tj ab (oder andersherum)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 15 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Diskussion Zeit-Anfragen
Beobachtung:Nur ein Unterschied zu DijkstraAuswertung der Kanten
Non-FIFO-Netzwerke:Im Kreis fahren kann sich lohnenNP-schwer (wenn Warten an Knoten nicht erlaubt ist)Transportnetzwerke sind FIFO-modellierbar
In unserem Szenario:Sicherstellen, dass jede Route FIFO-Eigenschaft erfülltFür alle Trips Ti ,Tj der Route muss gelten:Ti fährt an jedem Stop jeweils vor Tj ab (oder andersherum)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 15 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Diskussion Zeit-Anfragen
Beobachtung:Nur ein Unterschied zu DijkstraAuswertung der Kanten
Non-FIFO-Netzwerke:Im Kreis fahren kann sich lohnenNP-schwer (wenn Warten an Knoten nicht erlaubt ist)Transportnetzwerke sind FIFO-modellierbar
In unserem Szenario:Sicherstellen, dass jede Route FIFO-Eigenschaft erfülltFür alle Trips Ti ,Tj der Route muss gelten:Ti fährt an jedem Stop jeweils vor Tj ab (oder andersherum)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 15 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Profil-Anfragen
Gegeben: Startstop s, Zielstop t
1. Zeitexpandiert 2. Zeitabhängig
?(Geht, aber nicht Teil der VL)
Startknoten:Stationsknoten s
Zielknoten:Stationsknoten t
Anfrage:Label-Correcting-Algorithmus von s aus
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 16 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Profil-Anfragen
Gegeben: Startstop s, Zielstop t
1. Zeitexpandiert 2. Zeitabhängig
?(Geht, aber nicht Teil der VL)
Startknoten:Stationsknoten s
Zielknoten:Stationsknoten t
Anfrage:Label-Correcting-Algorithmus von s aus
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 16 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Profil-Anfragen
Algorithm 3: Profile-Search(G = (V ,E), s)
1 d∗[s] = 02 Q.clear(), Q.insert(s,0)
3 while !Q.empty() do4 u ← Q.deleteMin()
5 for all edges e = (u, v) ∈ E do
6 if d∗[u]⊕ len(e) � d∗[v ] then7 d∗[v ]← min(d∗[u]⊕ len(e),d∗[v ])
8 if v ∈ Q then Q.decreaseKey(v ,d [v ])9 else Q.insert(v ,d [v ])
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 17 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Diskussion Profil-Anfragen
Beobachtungen:Operationen auf FunktionenKnotenlabel: FunktionKnotenlabel nicht skalar⇒ keine Totalordnung der KnotenlabelWonach Priority Queue ordnen?Priorität im Prinzip frei wählbar(z.B.: d [u] := Minimum der Funktion d∗[u])
Knoten können mehrfach besucht werden⇒ label-correcting
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 18 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Operationen
Funktion gegeben durch:Menge von InterpolationspunktenAbfahrtszeit und DauerI f := {(t f
1,wf1), . . . , (t f
k ,wfk )}
3 Operationen notwendig:AuswertungLinken ⊕Minimumsbildung
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 19 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Auswertung
τ
fdur(τ )
Auswertung von f (τ):Suche Punkt (ti ,wi ) mit ti ≥ τ und ti minimalDann Evaluation durch
f (τ) = wi + (ti − τ)
Problem:Finden von tiTheoretisch:
Lineare Suche: O(|I|)Binäre Suche: O(log2 |I|)
Praktisch:ggf. lineare Suche mit Startpunkt τ
Π· |I|
(wobei Π die Periodendauer ist)Benchmarken!
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 20 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Auswertung
τ
fdur(τ )
Auswertung von f (τ):Suche Punkt (ti ,wi ) mit ti ≥ τ und ti minimalDann Evaluation durch
f (τ) = wi + (ti − τ)
Problem:Finden von tiTheoretisch:
Lineare Suche: O(|I|)Binäre Suche: O(log2 |I|)
Praktisch:ggf. lineare Suche mit Startpunkt τ
Π· |I|
(wobei Π die Periodendauer ist)Benchmarken!
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 20 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Auswertung
τ
fdur(τ )
Auswertung von f (τ):Suche Punkt (ti ,wi ) mit ti ≥ τ und ti minimalDann Evaluation durch
f (τ) = wi + (ti − τ)
Problem:Finden von tiTheoretisch:
Lineare Suche: O(|I|)Binäre Suche: O(log2 |I|)
Praktisch:ggf. lineare Suche mit Startpunkt τ
Π· |I|
(wobei Π die Periodendauer ist)Benchmarken!
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 20 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Linken
DefinitionSeien f : R+
0 → R+0 und g : R+
0 → R+0 zwei Reisezeit-Funktionen, die
die FIFO-Eigenschaft erfüllen. Die Linkoperation f ⊕ g ist danndefiniert durch
f ⊕ g := f + g ◦ (id +f )
Oder(f ⊕ g)(τ) := f (τ) + g(τ + f (τ))
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 21 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Linken
DefinitionSeien f : R+
0 → R+0 und g : R+
0 → R+0 zwei Ankunftszeit-Funktionen,
die die FIFO-Eigenschaft erfüllen. Die Linkoperation f ⊕ g ist danndefiniert durch
f ⊕ g := g ◦ f
Oder(f ⊕ g)(τ) := g(f (τ))
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 21 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Link
u
v
w
(07:00, 55 min)(08:00, 55 min)(09:00, 55 min)
(09:00, 60 min)(12:00, 60 min)(16:00, 60 min)
Linken zweier Funktionen f und g:
Für jeden Punkt (t fi ,w
fi ) bestimme:
Verbindungspunkt (tgj ,w
gj ) mit tg
j ≥ t fi + w f
i minimal(Erste Verbindung, die man auf g erreichen kann)
Füge (t fi , t
gj − t f
i + wgj ) zum Ergebnis hinzu
Wenn zwei Punkte den gleichen Verbindungspunkt haben:Behalte nur den mit größerem t f
i
⇒ Sweep-Algorithmus
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 22 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Link
u
v
w
(07:00, 55 min)(08:00, 55 min)(09:00, 55 min)
(09:00, 60 min)(12:00, 60 min)(16:00, 60 min)
(08:00, 120 min)(09:00, 240 min)
Linken zweier Funktionen f und g:
Für jeden Punkt (t fi ,w
fi ) bestimme:
Verbindungspunkt (tgj ,w
gj ) mit tg
j ≥ t fi + w f
i minimal(Erste Verbindung, die man auf g erreichen kann)
Füge (t fi , t
gj − t f
i + wgj ) zum Ergebnis hinzu
Wenn zwei Punkte den gleichen Verbindungspunkt haben:Behalte nur den mit größerem t f
i
⇒ Sweep-Algorithmus
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 22 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Link
u
v
w
(07:00, 55 min)(08:00, 55 min)(09:00, 55 min)
(09:00, 60 min)(12:00, 60 min)(16:00, 60 min)
(08:00, 120 min)(09:00, 240 min)
Linken zweier Funktionen f und g:Für jeden Punkt (t f
i ,wfi ) bestimme:
Verbindungspunkt (tgj ,w
gj ) mit tg
j ≥ t fi + w f
i minimal(Erste Verbindung, die man auf g erreichen kann)
Füge (t fi , t
gj − t f
i + wgj ) zum Ergebnis hinzu
Wenn zwei Punkte den gleichen Verbindungspunkt haben:Behalte nur den mit größerem t f
i
⇒ Sweep-Algorithmus
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 22 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Link
u
v
w
(07:00, 55 min)(08:00, 55 min)(09:00, 55 min)
(09:00, 60 min)(12:00, 60 min)(16:00, 60 min)
(08:00, 120 min)(09:00, 240 min)
Linken zweier Funktionen f und g:Für jeden Punkt (t f
i ,wfi ) bestimme:
Verbindungspunkt (tgj ,w
gj ) mit tg
j ≥ t fi + w f
i minimal(Erste Verbindung, die man auf g erreichen kann)
Füge (t fi , t
gj − t f
i + wgj ) zum Ergebnis hinzu
Wenn zwei Punkte den gleichen Verbindungspunkt haben:Behalte nur den mit größerem t f
i
⇒ Sweep-Algorithmus
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 22 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Link
u
v
w
(07:00, 55 min)(08:00, 55 min)(09:00, 55 min)
(09:00, 60 min)(12:00, 60 min)(16:00, 60 min)
(08:00, 120 min)(09:00, 240 min)
Linken zweier Funktionen f und g:Für jeden Punkt (t f
i ,wfi ) bestimme:
Verbindungspunkt (tgj ,w
gj ) mit tg
j ≥ t fi + w f
i minimal(Erste Verbindung, die man auf g erreichen kann)
Füge (t fi , t
gj − t f
i + wgj ) zum Ergebnis hinzu
Wenn zwei Punkte den gleichen Verbindungspunkt haben:Behalte nur den mit größerem t f
i
⇒ Sweep-Algorithmus
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 22 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Link
u
v
w
(07:00, 55 min)(08:00, 55 min)(09:00, 55 min)
(09:00, 60 min)(12:00, 60 min)(16:00, 60 min)
(08:00, 120 min)(09:00, 240 min)
Linken zweier Funktionen f und g:Für jeden Punkt (t f
i ,wfi ) bestimme:
Verbindungspunkt (tgj ,w
gj ) mit tg
j ≥ t fi + w f
i minimal(Erste Verbindung, die man auf g erreichen kann)
Füge (t fi , t
gj − t f
i + wgj ) zum Ergebnis hinzu
Wenn zwei Punkte den gleichen Verbindungspunkt haben:Behalte nur den mit größerem t f
i
⇒ Sweep-Algorithmus
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 22 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Diskussion Link
Laufzeit:Sweep-AlgorithmusO(|I f |+ |Ig |)
Speicherverbrauch:Gelinkte Funktion hat ≤ min{|I f |, |Ig |} Interpolationspunkte
Auf Straßengraphen (zum Vergleich):Laufzeit auch O(|I f |+ |Ig |)Aber ≈ |I f |+ |Ig | Interpolationspunkte
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 23 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Diskussion Link
Laufzeit:Sweep-AlgorithmusO(|I f |+ |Ig |)
Speicherverbrauch:Gelinkte Funktion hat ≤ min{|I f |, |Ig |} Interpolationspunkte
Auf Straßengraphen (zum Vergleich):Laufzeit auch O(|I f |+ |Ig |)Aber ≈ |I f |+ |Ig | Interpolationspunkte
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 23 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Diskussion Link
Laufzeit:Sweep-AlgorithmusO(|I f |+ |Ig |)
Speicherverbrauch:Gelinkte Funktion hat ≤ min{|I f |, |Ig |} Interpolationspunkte
Auf Straßengraphen (zum Vergleich):Laufzeit auch O(|I f |+ |Ig |)Aber ≈ |I f |+ |Ig | Interpolationspunkte
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 23 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Merge
Minimum zweier Funktionen f und g:
Für alle (t fi ,w
fi ): Behalte Punkt, wenn w f
i ≤ g(t fi )
Für alle (tgj ,w
gj ): Behalte Punkt, wenn wg
j ≤ f (tgj )
(Bei Gleichheit Duplikate entfernen)
Keine Schnittpunkte möglich!
Vorgehen:Linearer Sweep
τ
fdur(τ )
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 24 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Merge
Minimum zweier Funktionen f und g:Für alle (t f
i ,wfi ): Behalte Punkt, wenn w f
i ≤ g(t fi )
Für alle (tgj ,w
gj ): Behalte Punkt, wenn wg
j ≤ f (tgj )
(Bei Gleichheit Duplikate entfernen)
Keine Schnittpunkte möglich!
Vorgehen:Linearer Sweep
τ
fdur(τ )
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 24 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Merge
Minimum zweier Funktionen f und g:Für alle (t f
i ,wfi ): Behalte Punkt, wenn w f
i ≤ g(t fi )
Für alle (tgj ,w
gj ): Behalte Punkt, wenn wg
j ≤ f (tgj )
(Bei Gleichheit Duplikate entfernen)
Keine Schnittpunkte möglich!
Vorgehen:Linearer Sweep
τ
fdur(τ )
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 24 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Diskussion Merge
Laufzeit:Sweep-AlgorithmusO(|I f |+ |Ig |)
Speicherverbrauch:Keine Schnittpunkte
⇒ Minimum-Funktion hat maximal |I f |+ |Ig | Interpolationspunkte
Auf Straßengraphen (zum Vergleich):Laufzeit auch O(|I f |+ |Ig |)Aber mehr als |I f |+ |Ig | Interpolationspunkte (Schnittpunkte!)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 25 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Diskussion Merge
Laufzeit:Sweep-AlgorithmusO(|I f |+ |Ig |)
Speicherverbrauch:Keine Schnittpunkte
⇒ Minimum-Funktion hat maximal |I f |+ |Ig | Interpolationspunkte
Auf Straßengraphen (zum Vergleich):Laufzeit auch O(|I f |+ |Ig |)Aber mehr als |I f |+ |Ig | Interpolationspunkte (Schnittpunkte!)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 25 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Diskussion Merge
Laufzeit:Sweep-AlgorithmusO(|I f |+ |Ig |)
Speicherverbrauch:Keine Schnittpunkte
⇒ Minimum-Funktion hat maximal |I f |+ |Ig | Interpolationspunkte
Auf Straßengraphen (zum Vergleich):Laufzeit auch O(|I f |+ |Ig |)Aber mehr als |I f |+ |Ig | Interpolationspunkte (Schnittpunkte!)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 25 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-PruningConnection-Setting
(SPCS)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 26 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Profil-Anfragen
Gegeben:Zeitabhängiges Netzwerk G = (V ,E) und Startstop s.
Problem (Profil-Anfrage):Berechne Reisezeitfunktion dists(v , τ) für alle τ ∈ Π und v ∈ V :Länge des kürzesten Weges von s nach v in G zur Abfahrtszeit τ
Bisheriger Ansatz:Erweitere Dijkstras Algorithmus zu Label-Correcting-Algorithmus
Benutze Funktionen statt KonstantenVerliert Label-Setting-Eigenschaft von DijkstraDeutlich langsamer als Dijkstra (≈ Faktor 50)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 27 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Profil-Anfragen
Gegeben:Zeitabhängiges Netzwerk G = (V ,E) und Startstop s.
Problem (Profil-Anfrage):Berechne Reisezeitfunktion dists(v , τ) für alle τ ∈ Π und v ∈ V :Länge des kürzesten Weges von s nach v in G zur Abfahrtszeit τ
Bisheriger Ansatz:Erweitere Dijkstras Algorithmus zu Label-Correcting-Algorithmus
Benutze Funktionen statt KonstantenVerliert Label-Setting-Eigenschaft von DijkstraDeutlich langsamer als Dijkstra (≈ Faktor 50)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 27 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Profil-Anfragen
Gegeben:Zeitabhängiges Netzwerk G = (V ,E) und Startstop s.
Problem (Profil-Anfrage):Berechne Reisezeitfunktion dists(v , τ) für alle τ ∈ Π und v ∈ V :Länge des kürzesten Weges von s nach v in G zur Abfahrtszeit τ
Bisheriger Ansatz:Erweitere Dijkstras Algorithmus zu Label-Correcting-Algorithmus
Benutze Funktionen statt KonstantenVerliert Label-Setting-Eigenschaft von DijkstraDeutlich langsamer als Dijkstra (≈ Faktor 50)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 27 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
HauptideeBeobachtung: Jede Journey ab s (irgendwohin) beginnt
mit einer initialen Connection an s.
Naiver AnsatzFür jede ausgehende Connection ci an s:Separate Zeitanfrage mit Abfahrtszeit τdep(ci ).
Nachteile:Zu viele redundante BerechnungenNicht jede initiale Connection an s trägt zu dists(v , ·) beiLangsame Züge für weite Reisen machen wenig Sinn
06:308:30
17:048:30
29:2614:28
310:3414:28
411:0814:28
512:4214:28
613:0116:46
713:5816:46
816:4623:30
918:2423:30
1019:2023:30
1121:0823:30
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 28 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
HauptideeBeobachtung: Jede Journey ab s (irgendwohin) beginnt
mit einer initialen Connection an s.
Naiver AnsatzFür jede ausgehende Connection ci an s:Separate Zeitanfrage mit Abfahrtszeit τdep(ci ).
Nachteile:Zu viele redundante BerechnungenNicht jede initiale Connection an s trägt zu dists(v , ·) beiLangsame Züge für weite Reisen machen wenig Sinn
06:308:30
17:048:30
29:2614:28
310:3414:28
411:0814:28
512:4214:28
613:0116:46
713:5816:46
816:4623:30
918:2423:30
1019:2023:30
1121:0823:30
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 28 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
HauptideeBeobachtung: Jede Journey ab s (irgendwohin) beginnt
mit einer initialen Connection an s.
Naiver AnsatzFür jede ausgehende Connection ci an s:Separate Zeitanfrage mit Abfahrtszeit τdep(ci ).
Nachteile:Zu viele redundante BerechnungenNicht jede initiale Connection an s trägt zu dists(v , ·) beiLangsame Züge für weite Reisen machen wenig Sinn
06:308:30
17:048:30
29:2614:28
310:3414:28
411:0814:28
512:4214:28
613:0116:46
713:5816:46
816:4623:30
918:2423:30
1019:2023:30
1121:0823:30
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 28 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
HauptideeBeobachtung: Jede Journey ab s (irgendwohin) beginnt
mit einer initialen Connection an s.
Naiver AnsatzFür jede ausgehende Connection ci an s:Separate Zeitanfrage mit Abfahrtszeit τdep(ci ).
Nachteile:Zu viele redundante BerechnungenNicht jede initiale Connection an s trägt zu dists(v , ·) beiLangsame Züge für weite Reisen machen wenig Sinn
06:308:30
17:048:30
29:2614:28
310:3414:28
411:0814:28
512:4214:28
613:0116:46
713:5816:46
816:4623:30
918:2423:30
1019:2023:30
1121:0823:30
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 28 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
HauptideeBeobachtung: Jede Journey ab s (irgendwohin) beginnt
mit einer initialen Connection an s.
Naiver AnsatzFür jede ausgehende Connection ci an s:Separate Zeitanfrage mit Abfahrtszeit τdep(ci ).
Nachteile:Zu viele redundante BerechnungenNicht jede initiale Connection an s trägt zu dists(v , ·) beiLangsame Züge für weite Reisen machen wenig Sinn
06:308:30
17:048:30
29:2614:28
310:3414:28
411:0814:28
512:4214:28
613:0116:46
713:5816:46
816:4623:30
918:2423:30
1019:2023:30
1121:0823:30
(“Connection reduction”)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 28 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning
Beobachtung:Initiale Connections können sich dominieren.
Self-Pruning (SP):Benutze eine gemeinsame QueueSortiere initiale Connections ciaufsteigend nach AbfahrtszeitSpeichere an erreichten KnotenIndex der initialen ConnectionKeys sind Ankunftszeiten
Dep: 10:00Dep: 11:00
s
Beim Settlen von Knoten v und Conn.-Index i :Falls v bereits gesettled mit initialer Connection j > i , prune i an v
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 29 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning
Beobachtung:Initiale Connections können sich dominieren.
Self-Pruning (SP):Benutze eine gemeinsame QueueSortiere initiale Connections ciaufsteigend nach AbfahrtszeitSpeichere an erreichten KnotenIndex der initialen ConnectionKeys sind Ankunftszeiten
Dep: 10:00Dep: 11:00
s
Arr: 12:00
Beim Settlen von Knoten v und Conn.-Index i :Falls v bereits gesettled mit initialer Connection j > i , prune i an v
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 29 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning
Beobachtung:Initiale Connections können sich dominieren.
Self-Pruning (SP):Benutze eine gemeinsame QueueSortiere initiale Connections ciaufsteigend nach AbfahrtszeitSpeichere an erreichten KnotenIndex der initialen ConnectionKeys sind Ankunftszeiten
Dep: 10:00Dep: 11:00
s
Arr: 12:00Arr: 11:30
Beim Settlen von Knoten v und Conn.-Index i :Falls v bereits gesettled mit initialer Connection j > i , prune i an v
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 29 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning
Beobachtung:Initiale Connections können sich dominieren.
Self-Pruning (SP):Benutze eine gemeinsame QueueSortiere initiale Connections ciaufsteigend nach AbfahrtszeitSpeichere an erreichten KnotenIndex der initialen ConnectionKeys sind Ankunftszeiten
Dep: 10:00Dep: 11:00
s
Arr: 12:00Arr: 11:30
Beim Settlen von Knoten v und Conn.-Index i :Falls v bereits gesettled mit initialer Connection j > i , prune i an v
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 29 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning II
Integration von Self-Pruning:Verwalte Label maxconn(v) an jedem Knoten vGibt maximale initiale Connection an, mit der v gesettled wurde
Update maxconn(v) beim Settlen von v
Dijkstras Label-Setting-Eigenschaft pro initialer Connectionwiederhergestellt
⇒ Self-Pruning Connection-Setting Algorithmus (SPCS)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 30 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning II
Integration von Self-Pruning:Verwalte Label maxconn(v) an jedem Knoten vGibt maximale initiale Connection an, mit der v gesettled wurde
Update maxconn(v) beim Settlen von v
Beim Settlen von Knoten v und Conn.-Index i :Falls v bereits gesettled mit initialer Connection j > i , prune i an v
Dijkstras Label-Setting-Eigenschaft pro initialer Connectionwiederhergestellt
⇒ Self-Pruning Connection-Setting Algorithmus (SPCS)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 30 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning II
Integration von Self-Pruning:Verwalte Label maxconn(v) an jedem Knoten vGibt maximale initiale Connection an, mit der v gesettled wurde
Update maxconn(v) beim Settlen von v
Beim Settlen von Knoten v und Conn.-Index i :Falls maxconn(v) > i , prune i an v
Dijkstras Label-Setting-Eigenschaft pro initialer Connectionwiederhergestellt
⇒ Self-Pruning Connection-Setting Algorithmus (SPCS)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 30 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning II
Integration von Self-Pruning:Verwalte Label maxconn(v) an jedem Knoten vGibt maximale initiale Connection an, mit der v gesettled wurde
Update maxconn(v) beim Settlen von v
Beim Settlen von Knoten v und Conn.-Index i :Falls maxconn(v) > i , prune i an v
Dijkstras Label-Setting-Eigenschaft pro initialer Connectionwiederhergestellt
⇒ Self-Pruning Connection-Setting Algorithmus (SPCS)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 30 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning II
Integration von Self-Pruning:Verwalte Label maxconn(v) an jedem Knoten vGibt maximale initiale Connection an, mit der v gesettled wurde
Update maxconn(v) beim Settlen von v
Beim Settlen von Knoten v und Conn.-Index i :Falls maxconn(v) > i , prune i an v
Dijkstras Label-Setting-Eigenschaft pro initialer Connectionwiederhergestellt
⇒ Self-Pruning Connection-Setting Algorithmus (SPCS)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 30 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Stoppkriterium
(Falls Zielknoten t gegeben)
Dijkstras Algorithmus:Breche die Suche ab, sobald t abgearbeitet wurde.
kann adaptiert werden durch
Self-Pruning Connection-Setting:Verwalte Label Tm := −∞Wenn t mit initialer Connection i gesettled wird, setzeTm := max{Tm, i}Prune alle Labels mit init. Connection j ≤ Tm (an jedem Knoten)Halte an, wenn Priority-Queue leer läuft
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 31 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Stoppkriterium
(Falls Zielknoten t gegeben)
Dijkstras Algorithmus:Breche die Suche ab, sobald t abgearbeitet wurde.
kann adaptiert werden durch
Self-Pruning Connection-Setting:Verwalte Label Tm := −∞
Wenn t mit initialer Connection i gesettled wird, setzeTm := max{Tm, i}Prune alle Labels mit init. Connection j ≤ Tm (an jedem Knoten)Halte an, wenn Priority-Queue leer läuft
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 31 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Stoppkriterium
(Falls Zielknoten t gegeben)
Dijkstras Algorithmus:Breche die Suche ab, sobald t abgearbeitet wurde.
kann adaptiert werden durch
Self-Pruning Connection-Setting:Verwalte Label Tm := −∞Wenn t mit initialer Connection i gesettled wird, setzeTm := max{Tm, i}
Prune alle Labels mit init. Connection j ≤ Tm (an jedem Knoten)Halte an, wenn Priority-Queue leer läuft
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 31 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Stoppkriterium
(Falls Zielknoten t gegeben)
Dijkstras Algorithmus:Breche die Suche ab, sobald t abgearbeitet wurde.
kann adaptiert werden durch
Self-Pruning Connection-Setting:Verwalte Label Tm := −∞Wenn t mit initialer Connection i gesettled wird, setzeTm := max{Tm, i}Prune alle Labels mit init. Connection j ≤ Tm (an jedem Knoten)
Halte an, wenn Priority-Queue leer läuft
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 31 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Stoppkriterium
(Falls Zielknoten t gegeben)
Dijkstras Algorithmus:Breche die Suche ab, sobald t abgearbeitet wurde.
kann adaptiert werden durch
Self-Pruning Connection-Setting:Verwalte Label Tm := −∞Wenn t mit initialer Connection i gesettled wird, setzeTm := max{Tm, i}Prune alle Labels mit init. Connection j ≤ Tm (an jedem Knoten)Halte an, wenn Priority-Queue leer läuft
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 31 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Parallelisierung: Idee
Gegeben:Shared-Memory-Parallelisierung mit p Cores
Idee:Verteile initiale Connections ci von s auf verschiedene Threads
Thread 0 Thread 1 Thread 2 Thread 3
6:300
7:041
9:262
10:343
11:084
12:425
13:016
13:587
16:468
18:249
19:2010
21:0811
Jeder Thread führt SPCS auf seiner Teilmenge der ConnectionsausErgebnisse werden im Anschluss zu dists(v , ·) zusammengeführtFühre Connection Reduction auf gemergtem Ergebnis durch
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 32 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Parallelisierung: Idee
Gegeben:Shared-Memory-Parallelisierung mit p Cores
Idee:Verteile initiale Connections ci von s auf verschiedene Threads
Thread 0 Thread 1 Thread 2 Thread 3
6:300
7:041
9:262
10:343
11:084
12:425
13:016
13:587
16:468
18:249
19:2010
21:0811
Jeder Thread führt SPCS auf seiner Teilmenge der ConnectionsausErgebnisse werden im Anschluss zu dists(v , ·) zusammengeführtFühre Connection Reduction auf gemergtem Ergebnis durch
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 32 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Eingabe
Netzwerk von Los Angeles:15 581 Stops1 046 580 Connections
Zugnetz von Europa:30 517 Stops1 775 533 Connections
Auswertung von 1 000 AnfragenWähle Start- und Zielstops zufällig gleichverteilt
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 33 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Eingabe
Netzwerk von Los Angeles:15 581 Stops1 046 580 Connections
Zugnetz von Europa:30 517 Stops1 775 533 Connections
Auswertung von 1 000 AnfragenWähle Start- und Zielstops zufällig gleichverteilt
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 33 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
One-to-All-Anfragen
Los Angeles Europe
Settled Time Spd Std- Settled Time Spd Std-p Conns [ms] Up Dev Conns [ms] Up Dev
PSPCS 1 2.5 M 1209.0 1.0 — 3.3 M 2152.0 1.0 —2 2.5 M 690.0 1.8 14.7 % 3.1 M 1054.2 2.0 16.1 %
4 2.5 M 417.4 2.9 18.2 % 3.4 M 673.8 3.2 24.4 %
8 2.5 M 267.7 4.5 20.0 % 4.2 M 510.9 4.2 23.8 %
LC 1 18.9 M 1482.1 — — 17.4 M 2497.1 — —
PSPCS betrachtet deutlich weniger Connections als LCPSPCS skaliert sehr gut mit zunehmender Anzahl Cores
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 34 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
One-to-All-Anfragen
Los Angeles Europe
Settled Time Spd Std- Settled Time Spd Std-p Conns [ms] Up Dev Conns [ms] Up Dev
PSPCS 1 2.5 M 1209.0 1.0 — 3.3 M 2152.0 1.0 —2 2.5 M 690.0 1.8 14.7 % 3.1 M 1054.2 2.0 16.1 %
4 2.5 M 417.4 2.9 18.2 % 3.4 M 673.8 3.2 24.4 %
8 2.5 M 267.7 4.5 20.0 % 4.2 M 510.9 4.2 23.8 %
LC 1 18.9 M 1482.1 — — 17.4 M 2497.1 — —
PSPCS betrachtet deutlich weniger Connections als LC
PSPCS skaliert sehr gut mit zunehmender Anzahl Cores
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 34 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
One-to-All-Anfragen
Los Angeles Europe
Settled Time Spd Std- Settled Time Spd Std-p Conns [ms] Up Dev Conns [ms] Up Dev
PSPCS 1 2.5 M 1209.0 1.0 — 3.3 M 2152.0 1.0 —2 2.5 M 690.0 1.8 14.7 % 3.1 M 1054.2 2.0 16.1 %
4 2.5 M 417.4 2.9 18.2 % 3.4 M 673.8 3.2 24.4 %
8 2.5 M 267.7 4.5 20.0 % 4.2 M 510.9 4.2 23.8 %
LC 1 18.9 M 1482.1 — — 17.4 M 2497.1 — —
PSPCS betrachtet deutlich weniger Connections als LCPSPCS skaliert sehr gut mit zunehmender Anzahl Cores
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 34 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Multi-Label-Correcting(MLC)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 35 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Bis jetzt. . .
Erinnerung: Ein Fahrplan besteht ausStops (Bahnhöfe, Bahnsteige, . . . ),Routen (Bus-, U-Bahn-Linien, . . . ),Trips mit Abfahrt-/Ankunftszeiten,und Fußwegen zum Umsteigen.
Victoria Line Services from this station towards Brixton Underground Station
Walt
ham
stow C
entra
l Und
ergr
ound
Sta
tion
Blackh
orse
Roa
d Und
ergr
ound
Sta
tion
Totte
nham
Hale
Und
ergr
ound
Sta
tion
Seven
Sist
ers U
nder
grou
nd S
tatio
n
Finsbu
ry P
ark U
nder
grou
nd S
tatio
n
Highbu
ry &
Islin
gton
Und
ergr
ound
Sta
tion
King’s
Cross
St.P
ancr
as U
nder
grou
nd S
tatio
n
Eusto
n Und
ergr
ound
Sta
tion
War
ren
Street
Und
ergr
ound
Sta
tion
Oxford
Circ
us U
nder
grou
nd S
tatio
n
Green
Par
k Und
ergr
ound
Sta
tion
2
Victor
ia Und
ergr
ound
Sta
tion
4
Pimlic
o Und
ergr
ound
Sta
tion
6
Vauxh
all U
nder
grou
nd S
tatio
n
8
Stock
well U
nder
grou
nd S
tatio
n
10
Brixto
n Und
ergr
ound
Sta
tion
13You are here
off peakjourney timein minutes
Monday - FridayFirst trains
05350540054405510557
6am to Midnightabout every
2-5minutes
Last trains000300080018 a
0018 b
0029 a
0029 b
a=not on Fridays b=only Friday
Saturday (also Good Friday)First trains
05350540054405510557
6am to Midnightabout every
2-6minutes
Last trains0003000800180029
Sunday and other Public HolidaysFirst trains
070707210732074007470755
8am to 11pmabout every
2-5minutes
Last trains230023052310231523202325233223402349
13.10.2011 Oxford Circus Underground Station
MAYOROF LONDON
24 hour London Travel Information
0843 222 1234Textphone
020 7918 3015Operatedfor London Underground
Earliest Arrival Problem:Gegeben Stops s, t und Abfahrtszeit τ , berechne
Journey zu t , die an s nicht früher als τ abfährtund an t frühestmöglich ankommt.
Reicht uns das?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 36 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Bis jetzt. . .
Erinnerung: Ein Fahrplan besteht ausStops (Bahnhöfe, Bahnsteige, . . . ),Routen (Bus-, U-Bahn-Linien, . . . ),Trips mit Abfahrt-/Ankunftszeiten,und Fußwegen zum Umsteigen.
Victoria Line Services from this station towards Brixton Underground Station
Walt
ham
stow C
entra
l Und
ergr
ound
Sta
tion
Blackh
orse
Roa
d Und
ergr
ound
Sta
tion
Totte
nham
Hale
Und
ergr
ound
Sta
tion
Seven
Sist
ers U
nder
grou
nd S
tatio
n
Finsbu
ry P
ark U
nder
grou
nd S
tatio
n
Highbu
ry &
Islin
gton
Und
ergr
ound
Sta
tion
King’s
Cross
St.P
ancr
as U
nder
grou
nd S
tatio
n
Eusto
n Und
ergr
ound
Sta
tion
War
ren
Street
Und
ergr
ound
Sta
tion
Oxford
Circ
us U
nder
grou
nd S
tatio
n
Green
Par
k Und
ergr
ound
Sta
tion
2
Victor
ia Und
ergr
ound
Sta
tion
4
Pimlic
o Und
ergr
ound
Sta
tion
6
Vauxh
all U
nder
grou
nd S
tatio
n
8
Stock
well U
nder
grou
nd S
tatio
n
10
Brixto
n Und
ergr
ound
Sta
tion
13You are here
off peakjourney timein minutes
Monday - FridayFirst trains
05350540054405510557
6am to Midnightabout every
2-5minutes
Last trains000300080018 a
0018 b
0029 a
0029 b
a=not on Fridays b=only Friday
Saturday (also Good Friday)First trains
05350540054405510557
6am to Midnightabout every
2-6minutes
Last trains0003000800180029
Sunday and other Public HolidaysFirst trains
070707210732074007470755
8am to 11pmabout every
2-5minutes
Last trains230023052310231523202325233223402349
13.10.2011 Oxford Circus Underground Station
MAYOROF LONDON
24 hour London Travel Information
0843 222 1234Textphone
020 7918 3015Operatedfor London Underground
Earliest Arrival Problem:Gegeben Stops s, t und Abfahrtszeit τ , berechne
Journey zu t , die an s nicht früher als τ abfährtund an t frühestmöglich ankommt.
Reicht uns das?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 36 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Bis jetzt. . .
Erinnerung: Ein Fahrplan besteht ausStops (Bahnhöfe, Bahnsteige, . . . ),Routen (Bus-, U-Bahn-Linien, . . . ),Trips mit Abfahrt-/Ankunftszeiten,und Fußwegen zum Umsteigen.
Victoria Line Services from this station towards Brixton Underground Station
Walt
ham
stow C
entra
l Und
ergr
ound
Sta
tion
Blackh
orse
Roa
d Und
ergr
ound
Sta
tion
Totte
nham
Hale
Und
ergr
ound
Sta
tion
Seven
Sist
ers U
nder
grou
nd S
tatio
n
Finsbu
ry P
ark U
nder
grou
nd S
tatio
n
Highbu
ry &
Islin
gton
Und
ergr
ound
Sta
tion
King’s
Cross
St.P
ancr
as U
nder
grou
nd S
tatio
n
Eusto
n Und
ergr
ound
Sta
tion
War
ren
Street
Und
ergr
ound
Sta
tion
Oxford
Circ
us U
nder
grou
nd S
tatio
n
Green
Par
k Und
ergr
ound
Sta
tion
2
Victor
ia Und
ergr
ound
Sta
tion
4
Pimlic
o Und
ergr
ound
Sta
tion
6
Vauxh
all U
nder
grou
nd S
tatio
n
8
Stock
well U
nder
grou
nd S
tatio
n
10
Brixto
n Und
ergr
ound
Sta
tion
13You are here
off peakjourney timein minutes
Monday - FridayFirst trains
05350540054405510557
6am to Midnightabout every
2-5minutes
Last trains000300080018 a
0018 b
0029 a
0029 b
a=not on Fridays b=only Friday
Saturday (also Good Friday)First trains
05350540054405510557
6am to Midnightabout every
2-6minutes
Last trains0003000800180029
Sunday and other Public HolidaysFirst trains
070707210732074007470755
8am to 11pmabout every
2-5minutes
Last trains230023052310231523202325233223402349
13.10.2011 Oxford Circus Underground Station
MAYOROF LONDON
24 hour London Travel Information
0843 222 1234Textphone
020 7918 3015Operatedfor London Underground
Earliest Arrival Problem:Gegeben Stops s, t und Abfahrtszeit τ , berechne
Journey zu t , die an s nicht früher als τ abfährtund an t frühestmöglich ankommt.
Reicht uns das?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 36 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Einbeziehen von Umstiegen
Umstiege zu betrachten ist wichtig!
Ankunft 11:08 Uhr, 2 Umstiege Ankunft 11:09 Uhr, 0 Umstiege
Berechne „gute“ Journeys für Ankunftszeit und Anzahl Umstiege.
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 37 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Einbeziehen von Umstiegen
Umstiege zu betrachten ist wichtig!
Ankunft 11:08 Uhr, 2 Umstiege Ankunft 11:09 Uhr, 0 Umstiege
Berechne „gute“ Journeys für Ankunftszeit und Anzahl Umstiege.
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 37 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Wiederholung – Pareto-Menge
Definition (Pareto-Optimum)Gegeben eine Menge M von n-Tupeln:
Tupel mi = (x1, . . . , xn) ∈ M heißt Pareto-Optimum⇔
@mj ∈ M : j 6= i und mj ist in allen Werten besser als mi(mj dominiert mi )
Menge M heißt Pareto-Menge, wenn alle m ∈ M Pareto-optimal.
Beispiel: Betrachte Tupel aus Ankunftszeit und # Umstiege.
M = {(14:00 Uhr,5), (15:13 Uhr,3), (13:45 Uhr,4), (15:15 Uhr,0)}
Wie effizient berechnen?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 38 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Wiederholung – Pareto-Menge
Definition (Pareto-Optimum)Gegeben eine Menge M von n-Tupeln:
Tupel mi = (x1, . . . , xn) ∈ M heißt Pareto-Optimum⇔
@mj ∈ M : j 6= i und mj ist in allen Werten besser als mi(mj dominiert mi )
Menge M heißt Pareto-Menge, wenn alle m ∈ M Pareto-optimal.
Beispiel: Betrachte Tupel aus Ankunftszeit und # Umstiege.
M = {(14:00 Uhr,5), (15:13 Uhr,3), (13:45 Uhr,4), (15:15 Uhr,0)}
Wie effizient berechnen?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 38 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Wiederholung – Pareto-Menge
Definition (Pareto-Optimum)Gegeben eine Menge M von n-Tupeln:
Tupel mi = (x1, . . . , xn) ∈ M heißt Pareto-Optimum⇔
@mj ∈ M : j 6= i und mj ist in allen Werten besser als mi(mj dominiert mi )
Menge M heißt Pareto-Menge, wenn alle m ∈ M Pareto-optimal.
Beispiel: Betrachte Tupel aus Ankunftszeit und # Umstiege.
M = {(14:00 Uhr,5), (15:13 Uhr,3), (13:45 Uhr,4), (15:15 Uhr,0)}
Wie effizient berechnen?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 38 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Wiederholung – Pareto-Menge
Definition (Pareto-Optimum)Gegeben eine Menge M von n-Tupeln:
Tupel mi = (x1, . . . , xn) ∈ M heißt Pareto-Optimum⇔
@mj ∈ M : j 6= i und mj ist in allen Werten besser als mi(mj dominiert mi )
Menge M heißt Pareto-Menge, wenn alle m ∈ M Pareto-optimal.
Beispiel: Betrachte Tupel aus Ankunftszeit und # Umstiege.
M = {(14:00 Uhr,5), (15:13 Uhr,3), (13:45 Uhr,4), (15:15 Uhr,0)}
Wie effizient berechnen?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 38 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Wiederholung – Pareto-Menge
Definition (Pareto-Optimum)Gegeben eine Menge M von n-Tupeln:
Tupel mi = (x1, . . . , xn) ∈ M heißt Pareto-Optimum⇔
@mj ∈ M : j 6= i und mj ist in allen Werten besser als mi(mj dominiert mi )
Menge M heißt Pareto-Menge, wenn alle m ∈ M Pareto-optimal.
Beispiel: Betrachte Tupel aus Ankunftszeit und # Umstiege.
M = {(14:00 Uhr,5), (15:13 Uhr,3), (13:45 Uhr,4), (15:15 Uhr,0)}
Wie effizient berechnen?
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 38 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Multi-Label-Correcting – Ansatz
Idee:Benutze (zeitabhängiges) GraphmodellGrundlage: Dijkstras Algorithmus
R2R1
Aber:Label ` sind 2-Tupel aus Ankunftszeit und # UmstiegeAn jedem Knoten v ∈ V : Pareto-Menge Bv von LabelnPriority Queue verwaltet Label statt KnotenPriorität ist Ankunftszeit(Wieder: keine Totalordnung der Label⇒ label-correcting)
Dominanz von Labeln in Bv on-the-fly
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 39 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Multi-Label-Correcting – Ansatz
Idee:Benutze (zeitabhängiges) GraphmodellGrundlage: Dijkstras Algorithmus
R2R1
Aber:Label ` sind 2-Tupel aus Ankunftszeit und # UmstiegeAn jedem Knoten v ∈ V : Pareto-Menge Bv von LabelnPriority Queue verwaltet Label statt KnotenPriorität ist Ankunftszeit(Wieder: keine Totalordnung der Label⇒ label-correcting)
Dominanz von Labeln in Bv on-the-fly
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 39 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Multi-Label-Correcting (MLC)
MLC(G = (V ,E), s, τdep)
1 Bv ← {} for each v ∈ V ; Bs ← {(τdep,0)}2 Q.clear(), Q.insert(s, (τdep,0))
3 while !Q.empty() do4 u and ` = (τ, tr)← Q.deleteMin()5 for all edges e = (u, v) ∈ E do
6 if e is a transfer edge then tr ′ ← tr + 17 else tr ′ ← tr
8 `′ ← (τ + len(e, τ), tr ′)
9 if `′ is not dominated by any `′′ ∈ Bv then10 Bv .insert(`′)11 Remove non-Pareto-optimal labels from Bv and Q12 Q.insert(v , `′)
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 40 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
MLC – Diskussion
Diskussion:Pareto-Mengen Bv sind dynamische Datenstrukturen teuer!Sehr viele Queue-OperationenTesten der Dominanz in O(|Bv |) möglichStoppkriterium?
Verbesserungen für MLC:Jedes Bv verwaltet bestes ungesettletes Label selbst⇒ Priority Queue auf Knoten statt LabelnLabel-Forwarding:Wenn Kante keine Kosten hat, überspringe QueueTarget-Pruning:Verwerfe Label `′ an Knoten v , wenn es von Bt dominiert wird
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 41 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
MLC – Diskussion
Diskussion:Pareto-Mengen Bv sind dynamische Datenstrukturen teuer!Sehr viele Queue-OperationenTesten der Dominanz in O(|Bv |) möglichStoppkriterium?
Verbesserungen für MLC:Jedes Bv verwaltet bestes ungesettletes Label selbst⇒ Priority Queue auf Knoten statt LabelnLabel-Forwarding:Wenn Kante keine Kosten hat, überspringe QueueTarget-Pruning:Verwerfe Label `′ an Knoten v , wenn es von Bt dominiert wird
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 41 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Literatur I
Daniel Delling, Bastian Katz, and Thomas Pajor.Parallel Computation of Best Connections in Public Transportation Networks.ACM Journal of Experimental Algorithmics, 17(4):4.1–4.26, July 2012.
Yann Disser, Matthias Müller–Hannemann, and Mathias Schnee.Multi-Criteria Shortest Paths in Time-Dependent Train Networks.In Catherine C. McGeoch, editor, Proceedings of the 7th Workshop onExperimental Algorithms (WEA’08), volume 5038 of Lecture Notes in ComputerScience, pages 347–361. Springer, June 2008.
Daniel Delling, Thomas Pajor, and Dorothea Wagner.Engineering Time-Expanded Graphs for Faster Timetable Information.In Ravindra K. Ahuja, Rolf H. Möhring, and Christos Zaroliagis, editors, Robustand Online Large-Scale Optimization, volume 5868 of Lecture Notes in ComputerScience, pages 182–206. Springer, 2009.
Evangelia Pyrga, Frank Schulz, Dorothea Wagner, and Christos Zaroliagis.Efficient Models for Timetable Information in Public Transportation Systems.ACM Journal of Experimental Algorithmics, 12(2.4):1–39, 2008.
Adrian Feilhauer – Algorithmen für RoutenplanungFolie 42 – 21. Juni 2021
Institut für Theoretische InformatikLehrstuhl Algorithmik
Top Related