Algorithmen für Routenplanung - KIT - ITI Algorithmik I...Mill Hill East Rickmansworth Perivale...
Transcript of Algorithmen für Routenplanung - KIT - ITI Algorithmik I...Mill Hill East Rickmansworth Perivale...
INSTITUT FÜR THEORETISCHE INFORMATIK · ALGORITHMIK · PROF. DR. DOROTHEA WAGNER
Algorithmen für Routenplanung2. Sitzung, Sommersemester 2014
Julian Dibbelt | 16. April 2014
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
Julian Dibbelt – Algorithmen für RoutenplanungFolie 2 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Abgrenzung zu Straßennetzwerken
Eingabe bei StraßennetzenStraßenkarte bestehend ausKreuzungenStraßensegmentenVerschiedene Metriken (Reisezeit, Distanz, . . . )
Was ist Eingabe bei der Fahrplanauskunft?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 3 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Abgrenzung zu Straßennetzwerken
Eingabe bei StraßennetzenStraßenkarte bestehend ausKreuzungenStraßensegmentenVerschiedene Metriken (Reisezeit, Distanz, . . . )
Was ist Eingabe bei der Fahrplanauskunft?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 3 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneGegeben (Fahrplan):
Menge B von Bahnhöfen (Stops, Bahnsteigen, . . . ),Menge Z von Zügen (Bussen, Trams, etc)Menge C von elementaren VerbindungenZur Modellierung von Umstiegen:
Mindestumstiegszeiten am Bahnhof: transfer : B → N.Fußwege zwischen (nahen) Bahnhöfen: footpath : B × B → N
Elementare Verbindung: Tupel bestehend ausZug Z ∈ ZAbfahrtsbahnhof Sdep ∈ BZielbahnhof Sarr ∈ BAbfahrtszeit τdep ∈ Π
Ankunftszeit τarr ∈ Π
Interpretation: Zug Z fährt von Sdep nach Sarr ohneZwischenhalt von τdep bis τarr Uhr
Julian Dibbelt – Algorithmen für RoutenplanungFolie 4 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneGegeben (Fahrplan):
Menge B von Bahnhöfen (Stops, Bahnsteigen, . . . ),Menge Z von Zügen (Bussen, Trams, etc)Menge C von elementaren VerbindungenZur Modellierung von Umstiegen:
Mindestumstiegszeiten am Bahnhof: transfer : B → N.Fußwege zwischen (nahen) Bahnhöfen: footpath : B × B → N
Elementare Verbindung: Tupel bestehend ausZug Z ∈ ZAbfahrtsbahnhof Sdep ∈ BZielbahnhof Sarr ∈ BAbfahrtszeit τdep ∈ Π
Ankunftszeit τarr ∈ Π
Interpretation: Zug Z fährt von Sdep nach Sarr ohneZwischenhalt von τdep bis τarr Uhr
Julian Dibbelt – Algorithmen für RoutenplanungFolie 4 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
FahrpläneGegeben (Fahrplan):
Menge B von Bahnhöfen (Stops, Bahnsteigen, . . . ),Menge Z von Zügen (Bussen, Trams, etc)Menge C von elementaren VerbindungenZur Modellierung von Umstiegen:
Mindestumstiegszeiten am Bahnhof: transfer : B → N.Fußwege zwischen (nahen) Bahnhöfen: footpath : B × B → N
Elementare Verbindung: Tupel bestehend ausZug Z ∈ ZAbfahrtsbahnhof Sdep ∈ BZielbahnhof Sarr ∈ BAbfahrtszeit τdep ∈ Π
Ankunftszeit τarr ∈ Π
Interpretation: Zug Z fährt von Sdep nach Sarr ohneZwischenhalt von τdep bis τarr Uhr
Julian Dibbelt – Algorithmen für RoutenplanungFolie 4 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Fahrpläne II
TripsFahrt eines Zuges ZVon Endstation zu EndstationAbfahrten an den Stops zu bestimmten Zeiten
RoutenPartitionierung der TripsZwei Trips t1, t2 gehören zur gleichen Route, gdw.t1 und t2 folgen der genau gleichen Sequenz von Stops
Julian Dibbelt – Algorithmen für RoutenplanungFolie 5 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Fahrpläne II
TripsFahrt eines Zuges ZVon Endstation zu EndstationAbfahrten an den Stops zu bestimmten Zeiten
RoutenPartitionierung der TripsZwei Trips t1, t2 gehören zur gleichen Route, gdw.t1 und t2 folgen der genau gleichen Sequenz von Stops
Julian Dibbelt – Algorithmen für RoutenplanungFolie 5 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Fahrpläne, Beispiel
Beispiel für einen Fahrplan: Menge elementarer Verbindungen
(IR 2269, Karlsruhe Hbf, Pforzheim Hbf, 10:05, 10:23)(IR 2269, Pforzheim Hbf, Muehlacker, 10:25, 10:33)(IR 2269, Muehlacker, Vaihingen(Enz), 10:34, 10:40)(IR 2269, Vaihingen(Enz), Stuttgart Hbf, 10:41, 10:57)...(ICE 791, Stuttgart Hbf, Ulm Hbf, 11:12, 12:06)(ICE 791, Ulm Hbf, Augsburg Hbf, 12:08, 12:47)(ICE 791, Augsburg Hbf, Muenchen Hbf, 12:49, 13:21)
mit Zug-ID, Abfahrtshalt, Ankunftshalt und Anfahrts-/Ankunftszeit.
Weiteres: (kurze) Fußwege für Umstiege, z.B. Bahnhof zuBahnhofsvorplatz; Mindestumstiegszeiten
Frage: Wie Fahrplan modellieren?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 6 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Fahrpläne, Beispiel
Beispiel für einen Fahrplan: Menge elementarer Verbindungen
(IR 2269, Karlsruhe Hbf, Pforzheim Hbf, 10:05, 10:23)(IR 2269, Pforzheim Hbf, Muehlacker, 10:25, 10:33)(IR 2269, Muehlacker, Vaihingen(Enz), 10:34, 10:40)(IR 2269, Vaihingen(Enz), Stuttgart Hbf, 10:41, 10:57)...(ICE 791, Stuttgart Hbf, Ulm Hbf, 11:12, 12:06)(ICE 791, Ulm Hbf, Augsburg Hbf, 12:08, 12:47)(ICE 791, Augsburg Hbf, Muenchen Hbf, 12:49, 13:21)
mit Zug-ID, Abfahrtshalt, Ankunftshalt und Anfahrts-/Ankunftszeit.
Weiteres: (kurze) Fußwege für Umstiege, z.B. Bahnhof zuBahnhofsvorplatz; Mindestumstiegszeiten
Frage: Wie Fahrplan modellieren?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 6 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung von Fahrplänen
Zwei grundlegende Ansätze1 Modellierung als gerichteter Graph2 Keine besondere Modellierung (benutze Fahrplan "direkt")
Jetzt ersteres, später zweiteres.
Modellierung als GraphReduziere auf (bekanntes) kürzeste-Wege-ProblemOptimale Reiserouten entsprechen kürzesten WegenFrage: Wie die Zeitabhängigkeit (Abfahrten/Ankünfte) kodieren?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 7 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung von Fahrplänen
Zwei grundlegende Ansätze1 Modellierung als gerichteter Graph2 Keine besondere Modellierung (benutze Fahrplan "direkt")
Jetzt ersteres, später zweiteres.
Modellierung als GraphReduziere auf (bekanntes) kürzeste-Wege-ProblemOptimale Reiserouten entsprechen kürzesten WegenFrage: Wie die Zeitabhängigkeit (Abfahrten/Ankünfte) kodieren?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 7 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung von Fahrplänen
Zwei grundlegende Ansätze1 Modellierung als gerichteter Graph2 Keine besondere Modellierung (benutze Fahrplan "direkt")
Jetzt ersteres, später zweiteres.
Modellierung als GraphReduziere auf (bekanntes) kürzeste-Wege-ProblemOptimale Reiserouten entsprechen kürzesten WegenFrage: Wie die Zeitabhängigkeit (Abfahrten/Ankünfte) kodieren?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 7 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung: Zwei Ansätze
1. Zeitexpandiert
Zeitabhängigkeiten ausrollenKnoten entsprechenEreignissen im FahrplanKanten verbinden Ereignissemiteinander
Zugfahrt eines Zuges,Umstieg zwischen Zügen,Warten
- Großer Graph (viele Knotenund Kanten)
+ Einfacher Anfragealgorithmus(Dijkstra)
2. Zeitabhängig
Zeitabhängigkeit an denKantenKnoten entsprechenBahnhöfenKante⇔ Zug verbindetBahnhöfe
Transferzeiten?
+ Kleiner Graph- Zeitabhängige
KW-Algorithmen?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 8 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung: Zwei Ansätze1. Zeitexpandiert 2. Zeitabhängig
S1 S2
Z3
Z1, Z2
Z1, Z2, Z3
Z1, Z2
Z3
Arrival-, Transfer- undDeparture-EreignisseFür jeden ZugKantengewicht = Zeitdiff.(alternativ: ungewichtet,Knotenlabel = Ereigniszeit)
Pro Bahnhof: StationsknotenKanten: zeitabhängigUmstiege?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 9 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Modellierung: Zwei Ansätze1. Zeitexpandiert 2. Zeitabhängig
S1 S2
Z3
Z1, Z2
Arrival-, Transfer- undDeparture-EreignisseFür jeden ZugKantengewicht = Zeitdiff.(alternativ: ungewichtet,Knotenlabel = Ereigniszeit)
Pro Bahnhof: StationsknotenPartitioniere Züge in RoutenPro Route: Route-KnotenRoutenkanten: zeitabhängigStationskanten: Transferzeit
Julian Dibbelt – Algorithmen für RoutenplanungFolie 9 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Zeitabhängige KantenElem. Verbindungen modelliert durch stückweise lineare Funktionen
Elem. Verbindungen zw. Si und Sj :
id dep.-time travel-time1 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 Verbindung: Connection Point (τ,w)τ =̂ Abfahrtszeit, w =̂ Reisezeit (bzw. Ankunftszeit)
Zwischen Verbindungen: Lineares Warten
Julian Dibbelt – Algorithmen für RoutenplanungFolie 10 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Zeitabhängige KantenElem. Verbindungen modelliert durch stückweise lineare Funktionen
Elem. Verbindungen zw. Si und Sj :
id dep.-time travel-time1 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 Verbindung: Connection Point (τ,w)τ =̂ Abfahrtszeit, w =̂ Reisezeit (bzw. Ankunftszeit)
Zwischen Verbindungen: Lineares Warten
Julian Dibbelt – Algorithmen für RoutenplanungFolie 10 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
FIFO-Eigenschaft (Wdh.)
DefinitionSei f : R+
0 → R+0 eine Reisezeit-Funktion. f erfüllt die
FIFO-Eigenschaft, wenn für jedes ε > 0 und alle τ ∈ R+0 gilt, dass
f (τ) ≤ ε+ f (τ + ε).
DiskussionInterpretation: “Warten lohnt sich nie”Kürzeste Wege auf Graphen mit non-FIFO Funktionen zu findenist NP-schwer.(wenn Warten an Knoten nicht erlaubt ist)
⇒ Sicherstellen, dass Funktionen FIFO-Eigenschaft erfüllen.
Julian Dibbelt – Algorithmen für RoutenplanungFolie 11 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
FIFO-Eigenschaft (Wdh.)
DefinitionSei f : R+
0 → R+0 eine Ankunftszeit-Funktion. f erfüllt die
FIFO-Eigenschaft, wenn für jedes ε > 0 und alle τ ∈ R+0 gilt, dass
f (τ) ≤ f (τ + ε).
DiskussionInterpretation: “Warten lohnt sich nie”Kürzeste Wege auf Graphen mit non-FIFO Funktionen zu findenist NP-schwer.(wenn Warten an Knoten nicht erlaubt ist)
⇒ Sicherstellen, dass Funktionen FIFO-Eigenschaft erfüllen.
Julian Dibbelt – Algorithmen für RoutenplanungFolie 11 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Anfrageszenarien
Zeit-Anfrage:finde kürzesten Weg für Abfahrtszeit τanalog zu Dijkstra?
Profil-Anfrage:finde kürzesten Weg für alle Abfahrtszeitpunkteanalog zu Dijkstra?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 12 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Anfrageszenarien
Zeit-Anfrage:finde kürzesten Weg für Abfahrtszeit τanalog zu Dijkstra?
Profil-Anfrage:finde kürzesten Weg für alle Abfahrtszeitpunkteanalog zu Dijkstra?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 12 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Zeit-Anfragen
Gegeben: Startbahnhof S, Zielbahnhof T und Abfahrtszeit τS
1. Zeitexpandiert 2. Zeitabhängig
Startknoten:Erstes Transferevent in Smit Zeit τ ≥ τS.
Zielknoten:Im Vorraus unbekannt!Stoppkriterium: Erstergesettleter Knoten an Tinduziert schnellsteVerbindung zu T
Startknoten:Bahnhofsknoten S
Zielknoten:Bahnhofsknoten T
Anfrage:Time-Dependent Dijkstra mitZeit τS
Hier: Ankunftszeit imVorraus unbekannt
Julian Dibbelt – Algorithmen für RoutenplanungFolie 13 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Zeit-Anfragen
Gegeben: Startbahnhof S, Zielbahnhof T und Abfahrtszeit τS
1. Zeitexpandiert 2. Zeitabhängig
Startknoten:Erstes Transferevent in Smit Zeit τ ≥ τS.
Zielknoten:Im Vorraus unbekannt!Stoppkriterium: Erstergesettleter Knoten an Tinduziert schnellsteVerbindung zu T
Startknoten:Bahnhofsknoten S
Zielknoten:Bahnhofsknoten T
Anfrage:Time-Dependent Dijkstra mitZeit τS
Hier: Ankunftszeit imVorraus unbekannt
Julian Dibbelt – Algorithmen für RoutenplanungFolie 13 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Zeit-Anfragen
Algorithm 1: Time-Dijkstra(G = (V ,E),s,τ )
d [s] = 01
Q.clear(), Q.add(s,0)2
while !Q.empty() do3
u ← Q.deleteMin()4
for all edges e = (u, v) ∈ E do5
// len(e, ·) = f edep(·)
if d [u] + len(e, τ + d [u]) < d [v ] then6
d [v ]← d [u] + len(e, τ + d [u])7
p[v ]← u8
if v ∈ Q then Q.decreaseKey(v ,d [v ])9
else Q.insert(v ,d [v ])10
Julian Dibbelt – Algorithmen für RoutenplanungFolie 14 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Zeit-Anfragen
Algorithm 2: Time-Dijkstra(G = (V ,E),s,τ )
d [s] = τ1
Q.clear(), Q.add(s,0)2
while !Q.empty() do3
u ← Q.deleteMin()4
for all edges e = (u, v) ∈ E do5
// len(e, ·) = f earr(·)
if len(e,d [u]) < d [v ] then6
d [v ]← len(e,d [u])7
p[v ]← u8
if v ∈ Q then Q.decreaseKey(v ,d [v ])9
else Q.insert(v ,d [v ])10
Julian Dibbelt – Algorithmen für RoutenplanungFolie 14 – 16. April 2014
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 (notfalls Multikanten)
In unserem Szenario:Sicherstellen dass alle Routen FIFO sind.Für alle Trips ti , tj der Route muss gelten:ti fährt an jeder Station jeweils vor tj ab (oder andersherum).
Julian Dibbelt – Algorithmen für RoutenplanungFolie 15 – 16. April 2014
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 (notfalls Multikanten)
In unserem Szenario:Sicherstellen dass alle Routen FIFO sind.Für alle Trips ti , tj der Route muss gelten:ti fährt an jeder Station jeweils vor tj ab (oder andersherum).
Julian Dibbelt – Algorithmen für RoutenplanungFolie 15 – 16. April 2014
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 (notfalls Multikanten)
In unserem Szenario:Sicherstellen dass alle Routen FIFO sind.Für alle Trips ti , tj der Route muss gelten:ti fährt an jeder Station jeweils vor tj ab (oder andersherum).
Julian Dibbelt – Algorithmen für RoutenplanungFolie 15 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Profil-Anfragen
Gegeben: Startbahnhof S, Zielbahnhof T
1. Zeitexpandiert 2. Zeitabhängig
?Geht, aber nicht Teil der VL
Startknoten:Bahnhofsknoten S
Zielknoten:Bahnhofsknoten T
Anfrage:Label-CorrectingAlgorithmus von S
Julian Dibbelt – Algorithmen für RoutenplanungFolie 16 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Profil-Anfragen
Gegeben: Startbahnhof S, Zielbahnhof T
1. Zeitexpandiert 2. Zeitabhängig
?Geht, aber nicht Teil der VL
Startknoten:Bahnhofsknoten S
Zielknoten:Bahnhofsknoten T
Anfrage:Label-CorrectingAlgorithmus von S
Julian Dibbelt – Algorithmen für RoutenplanungFolie 16 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Profil-Anfragen
Algorithm 3: Profile-Search(G = (V ,E),s)
d∗[s] = 01
Q.clear(), Q.add(s,0)2
while !Q.empty() do3
u ← Q.deleteMin()4
for all edges e = (u, v) ∈ E do5
if d∗[u]⊕ len(e) � d∗[v ] then6
d∗[v ]← min(d∗[u]⊕ len(e),d∗[v ])7
if v ∈ Q then Q.decreaseKey(v ,d [v ])8
else Q.insert(v ,d [v ])9
Julian Dibbelt – Algorithmen für RoutenplanungFolie 17 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Diskussion Profil-Anfragen
Beobachtungen:Operationen auf FunktionenKnotenlabel: FunktionKnotenlabel nicht skalar⇒ keine Totalordnung der KnotenlabelWonach pqueue ordnen?Priorität im Prinzip frei wählbar(d [u] ist das Minimum der Funktion d∗[u])Knoten können mehrfach besucht werden⇒ label-correcting
Julian Dibbelt – Algorithmen für RoutenplanungFolie 18 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Operationen
Funktion gegeben durch:Menge von InterpolationspunktenI f := {(t f
1,wf1), . . . , (t f
k ,wfk )}
3 Operationen notwendig:AuswertungLinken ⊕Minimumsbildung
Julian Dibbelt – Algorithmen für RoutenplanungFolie 19 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Auswertung
departure
travel time
Evaluation von f (τ):Suche Punkte mit ti ≥ τ und ti − τ minimaldann Evaluation durch
f (τ) = wi + (ti − τ)
Problem:Finden von ti und ti+1
Theoretisch:Lineare Suche: O(|I|)Binäre Suche: O(log2 |I|)
praktisch:|I| < 30: Lineare SucheSonst: Lineare Suche mit Startpunkt τ
Π· |I|
Julian Dibbelt – Algorithmen für RoutenplanungFolie 20 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Auswertung
departure
travel time
Evaluation von f (τ):Suche Punkte mit ti ≥ τ und ti − τ minimaldann Evaluation durch
f (τ) = wi + (ti − τ)
Problem:Finden von ti und ti+1
Theoretisch:Lineare Suche: O(|I|)Binäre Suche: O(log2 |I|)
praktisch:|I| < 30: Lineare SucheSonst: Lineare Suche mit Startpunkt τ
Π· |I|
Julian Dibbelt – Algorithmen für RoutenplanungFolie 20 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Linken
DefinitionSeien f : R+
0 → R+0 und g : R+
0 zwei Reisezeit-Funktionen die dieFIFO-Eigenschaft erfüllen. Die Linkoperation f ⊕ g ist dann definiertdurch
f ⊕ g := f + g ◦ (id +f )
Oder(f ⊕ g)(τ) := f (τ) + g(τ + f (τ))
Julian Dibbelt – Algorithmen für RoutenplanungFolie 21 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Linken
DefinitionSeien f : R+
0 → R+0 und g : R+
0 zwei Ankunftszeit-Funktionen die dieFIFO-Eigenschaft erfüllen. Die Linkoperation f ⊕ g ist dann definiertdurch
f ⊕ g := g ◦ f
Oder(f ⊕ g)(τ) := f (τ) + g(τ + f (τ))
Julian Dibbelt – Algorithmen für RoutenplanungFolie 21 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Link
u
v
w
7:00 - 55 min8:00 - 55 min9:00 - 55 min
09:00 - 60 min12:00 - 60 min16:00 - 60 min
Linken zweier Funktionen f und g
Für jeden Punkt (t fi ,w
fi ) bestimme den Verbindungspunkt (tg
j ,wgj ) mit
tgj − t f
i − w fi ≥ 0 minimal
Erste Verbindung, die man auf g erreichen kannFüge (t f
i , tgj + wg
j − t fi ) hinzu
Wenn zwei Punkte den gleichenVerbindungspunkt haben,behalte nur den mit größerem t f
i
Sweep-Algorithmus
Julian Dibbelt – Algorithmen für RoutenplanungFolie 22 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Link
u
v
w
7:00 - 55 min8:00 - 55 min9:00 - 55 min
09:00 - 60 min12:00 - 60 min16:00 - 60 min
8:00 - 120 min9:00 - 240 min
Linken zweier Funktionen f und g
Für jeden Punkt (t fi ,w
fi ) bestimme den Verbindungspunkt (tg
j ,wgj ) mit
tgj − t f
i − w fi ≥ 0 minimal
Erste Verbindung, die man auf g erreichen kannFüge (t f
i , tgj + wg
j − t fi ) hinzu
Wenn zwei Punkte den gleichenVerbindungspunkt haben,behalte nur den mit größerem t f
i
Sweep-Algorithmus
Julian Dibbelt – Algorithmen für RoutenplanungFolie 22 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Link
u
v
w
7:00 - 55 min8:00 - 55 min9:00 - 55 min
09:00 - 60 min12:00 - 60 min16:00 - 60 min
8:00 - 120 min9:00 - 240 min
Linken zweier Funktionen f und gFür jeden Punkt (t f
i ,wfi ) bestimme den Verbindungspunkt (tg
j ,wgj ) mit
tgj − t f
i − w fi ≥ 0 minimal
Erste Verbindung, die man auf g erreichen kann
Füge (t fi , t
gj + wg
j − t fi ) hinzu
Wenn zwei Punkte den gleichenVerbindungspunkt haben,behalte nur den mit größerem t f
i
Sweep-Algorithmus
Julian Dibbelt – Algorithmen für RoutenplanungFolie 22 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Link
u
v
w
7:00 - 55 min8:00 - 55 min9:00 - 55 min
09:00 - 60 min12:00 - 60 min16:00 - 60 min
8:00 - 120 min9:00 - 240 min
Linken zweier Funktionen f und gFür jeden Punkt (t f
i ,wfi ) bestimme den Verbindungspunkt (tg
j ,wgj ) mit
tgj − t f
i − w fi ≥ 0 minimal
Erste Verbindung, die man auf g erreichen kannFüge (t f
i , tgj + wg
j − t fi ) hinzu
Wenn zwei Punkte den gleichenVerbindungspunkt haben,behalte nur den mit größerem t f
i
Sweep-Algorithmus
Julian Dibbelt – Algorithmen für RoutenplanungFolie 22 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Link
u
v
w
7:00 - 55 min8:00 - 55 min9:00 - 55 min
09:00 - 60 min12:00 - 60 min16:00 - 60 min
8:00 - 120 min9:00 - 240 min
Linken zweier Funktionen f und gFür jeden Punkt (t f
i ,wfi ) bestimme den Verbindungspunkt (tg
j ,wgj ) mit
tgj − t f
i − w fi ≥ 0 minimal
Erste Verbindung, die man auf g erreichen kannFüge (t f
i , tgj + wg
j − t fi ) hinzu
Wenn zwei Punkte den gleichenVerbindungspunkt haben,behalte nur den mit größerem t f
i
Sweep-Algorithmus
Julian Dibbelt – Algorithmen für RoutenplanungFolie 22 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Link
u
v
w
7:00 - 55 min8:00 - 55 min9:00 - 55 min
09:00 - 60 min12:00 - 60 min16:00 - 60 min
8:00 - 120 min9:00 - 240 min
Linken zweier Funktionen f und gFür jeden Punkt (t f
i ,wfi ) bestimme den Verbindungspunkt (tg
j ,wgj ) mit
tgj − t f
i − w fi ≥ 0 minimal
Erste Verbindung, die man auf g erreichen kannFüge (t f
i , tgj + wg
j − t fi ) hinzu
Wenn zwei Punkte den gleichenVerbindungspunkt haben,behalte nur den mit größerem t f
i
Sweep-Algorithmus
Julian Dibbelt – Algorithmen für RoutenplanungFolie 22 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Diskussion Link
LaufzeitSweep-AlgorithmusO(|I f |+ |Ig |)Zum Vergleich: Zeitunabhängig: O(1)
SpeicherverbrauchGelinkte Funktion hat min{|I f |, |Ig |} Interpolationspunkte
Julian Dibbelt – Algorithmen für RoutenplanungFolie 23 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Diskussion Link
LaufzeitSweep-AlgorithmusO(|I f |+ |Ig |)Zum Vergleich: Zeitunabhängig: O(1)
SpeicherverbrauchGelinkte Funktion hat min{|I f |, |Ig |} Interpolationspunkte
Julian Dibbelt – Algorithmen für RoutenplanungFolie 23 – 16. April 2014
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 )
Keine Schnittepunkte möglich(!)
Vorgehen:Linearer Sweep
departure time
travel time
Julian Dibbelt – Algorithmen für RoutenplanungFolie 24 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Merge
Minimum zweier Funktionen f und gFü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 )
Keine Schnittepunkte möglich(!)
Vorgehen:Linearer Sweep
departure time
travel time
Julian Dibbelt – Algorithmen für RoutenplanungFolie 24 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Merge
Minimum zweier Funktionen f und gFü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 )
Keine Schnittepunkte möglich(!)
Vorgehen:Linearer Sweep
departure time
travel time
Julian Dibbelt – Algorithmen für RoutenplanungFolie 24 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Diskussion Merge
LaufzeitSweep-AlgorithmusO(|I f |+ |Ig |)Zum Vergleich: Zeitunabhängig: O(1)
SpeicherverbrauchKeine Schnittpunkte
⇒ Minimum-Funktion kann maximal |I f |+ |Ig | Interpolationspunkteenthalten
Julian Dibbelt – Algorithmen für RoutenplanungFolie 25 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Public Transport: Diskussion Merge
LaufzeitSweep-AlgorithmusO(|I f |+ |Ig |)Zum Vergleich: Zeitunabhängig: O(1)
SpeicherverbrauchKeine Schnittpunkte
⇒ Minimum-Funktion kann maximal |I f |+ |Ig | Interpolationspunkteenthalten
Julian Dibbelt – Algorithmen für RoutenplanungFolie 25 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Profil-Anfragen
Gegeben:Zeitabhängiges Netzwerk G = (V ,E) und Startbahnhof S.
Problem (Profil-Anfrage):Berechne die Reisezeitfunktion distS(v , τ), so dass distS(v , τ) dieLänge des kürzesten Weges von S nach v in G zur Abfahrtszeit τ anS für alle τ ∈ Π und v ∈ V ist.
Bisheriger Ansatz:Erweitere Dijkstra’s Algorithmus zu Label-Correcting Algorithmus
Benutze Funktionen statt KonstantenVerliert Label-Setting Eigenschaft von DijkstraDeutlich langsamer als Dijkstra (≈ Faktor 50)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 26 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Profil-Anfragen
Gegeben:Zeitabhängiges Netzwerk G = (V ,E) und Startbahnhof S.
Problem (Profil-Anfrage):Berechne die Reisezeitfunktion distS(v , τ), so dass distS(v , τ) dieLänge des kürzesten Weges von S nach v in G zur Abfahrtszeit τ anS für alle τ ∈ Π und v ∈ V ist.
Bisheriger Ansatz:Erweitere Dijkstra’s Algorithmus zu Label-Correcting Algorithmus
Benutze Funktionen statt KonstantenVerliert Label-Setting Eigenschaft von DijkstraDeutlich langsamer als Dijkstra (≈ Faktor 50)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 26 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Profil-Anfragen
Gegeben:Zeitabhängiges Netzwerk G = (V ,E) und Startbahnhof S.
Problem (Profil-Anfrage):Berechne die Reisezeitfunktion distS(v , τ), so dass distS(v , τ) dieLänge des kürzesten Weges von S nach v in G zur Abfahrtszeit τ anS für alle τ ∈ Π und v ∈ V ist.
Bisheriger Ansatz:Erweitere Dijkstra’s Algorithmus zu Label-Correcting Algorithmus
Benutze Funktionen statt KonstantenVerliert Label-Setting Eigenschaft von DijkstraDeutlich langsamer als Dijkstra (≈ Faktor 50)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 26 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
HauptideeBeobachtung:Jeder Reiseplan ab S (irgendwohin) beginnt mit einer Verb. an S.
Naiver AnsatzFür jede ausgehende Verbindung ci an S:Separate Zeitanfrage mit Abfahrtszeit τdep(ci ).
NachteileZu viele redundante BerechnungenNicht jede Verbindung ab 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
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”)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 27 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
HauptideeBeobachtung:Jeder Reiseplan ab S (irgendwohin) beginnt mit einer Verb. an S.
Naiver AnsatzFür jede ausgehende Verbindung ci an S:Separate Zeitanfrage mit Abfahrtszeit τdep(ci ).
NachteileZu viele redundante BerechnungenNicht jede Verbindung ab 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
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”)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 27 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
HauptideeBeobachtung:Jeder Reiseplan ab S (irgendwohin) beginnt mit einer Verb. an S.
Naiver AnsatzFür jede ausgehende Verbindung ci an S:Separate Zeitanfrage mit Abfahrtszeit τdep(ci ).
NachteileZu viele redundante BerechnungenNicht jede Verbindung ab 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
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”)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 27 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
HauptideeBeobachtung:Jeder Reiseplan ab S (irgendwohin) beginnt mit einer Verb. an S.
Naiver AnsatzFür jede ausgehende Verbindung ci an S:Separate Zeitanfrage mit Abfahrtszeit τdep(ci ).
NachteileZu viele redundante BerechnungenNicht jede Verbindung ab 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
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”)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 27 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
HauptideeBeobachtung:Jeder Reiseplan ab S (irgendwohin) beginnt mit einer Verb. an S.
Naiver AnsatzFür jede ausgehende Verbindung ci an S:Separate Zeitanfrage mit Abfahrtszeit τdep(ci ).
NachteileZu viele redundante BerechnungenNicht jede Verbindung ab 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
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”)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 27 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
HauptideeBeobachtung:Jeder Reiseplan ab S (irgendwohin) beginnt mit einer Verb. an S.
Naiver AnsatzFür jede ausgehende Verbindung ci an S:Separate Zeitanfrage mit Abfahrtszeit τdep(ci ).
NachteileZu viele redundante BerechnungenNicht jede Verbindung ab 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”)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 27 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning
Beobachtung:Verbindungen können sich dominieren.
Einführung: Self-Pruning (SP):
1. Benutze eine gemeinsame Queue2. Keys sind Ankunftszeiten3. Sortiere Verb. ci an S nach
Abfahrtszeit
Dep: 10:00Dep: 11:00
s
Beim Settlen von Knoten v und Verb.-Index i :Prüfe ob v bereits gesettled mit Verbindung j > i ; Dann Prune i an v
Julian Dibbelt – Algorithmen für RoutenplanungFolie 28 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning
Beobachtung:Verbindungen können sich dominieren.
Einführung: Self-Pruning (SP):
1. Benutze eine gemeinsame Queue2. Keys sind Ankunftszeiten3. Sortiere Verb. ci an S nach
Abfahrtszeit
Dep: 10:00Dep: 11:00
s
Arr: 12:00
Beim Settlen von Knoten v und Verb.-Index i :Prüfe ob v bereits gesettled mit Verbindung j > i ; Dann Prune i an v
Julian Dibbelt – Algorithmen für RoutenplanungFolie 28 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning
Beobachtung:Verbindungen können sich dominieren.
Einführung: Self-Pruning (SP):
1. Benutze eine gemeinsame Queue2. Keys sind Ankunftszeiten3. Sortiere Verb. ci an S nach
Abfahrtszeit
Dep: 10:00Dep: 11:00
s
Arr: 12:00Arr: 11:30
Beim Settlen von Knoten v und Verb.-Index i :Prüfe ob v bereits gesettled mit Verbindung j > i ; Dann Prune i an v
Julian Dibbelt – Algorithmen für RoutenplanungFolie 28 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning
Beobachtung:Verbindungen können sich dominieren.
Einführung: Self-Pruning (SP):
1. Benutze eine gemeinsame Queue2. Keys sind Ankunftszeiten3. Sortiere Verb. ci an S nach
Abfahrtszeit Dep: 10:00Dep: 11:00
s
Arr: 12:00Arr: 11:30
Beim Settlen von Knoten v und Verb.-Index i :Prüfe ob v bereits gesettled mit Verbindung j > i ; Dann Prune i an v
Julian Dibbelt – Algorithmen für RoutenplanungFolie 28 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning II
Integration von Self-Pruning (SP):
Verwalte Label maxconn(v) an jedem Knoten vGibt maximale Verbindung an mit der v gesettled wurde
Update maxconn(v) beim Settlen von v
Wiederherstellung von Dijkstra’s Label-Setting Eigenschaft proVerbindung
⇒ Self-Pruning Connection-Setting Algorithmus (SPCS)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 29 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning II
Integration von Self-Pruning (SP):
Verwalte Label maxconn(v) an jedem Knoten vGibt maximale Verbindung an mit der v gesettled wurde
Update maxconn(v) beim Settlen von v
Beim Settlen von Knoten v und Verb.-Index i :Prüfe ob v bereits gesettled mit Verbindung j > i ; Dann Prune i an v
Wiederherstellung von Dijkstra’s Label-Setting Eigenschaft proVerbindung
⇒ Self-Pruning Connection-Setting Algorithmus (SPCS)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 29 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning II
Integration von Self-Pruning (SP):
Verwalte Label maxconn(v) an jedem Knoten vGibt maximale Verbindung an mit der v gesettled wurde
Update maxconn(v) beim Settlen von v
Beim Settlen von Knoten v und Verb.-Index i :Prüfe ob maxconn(v) > i ; Dann Prune i an v
Wiederherstellung von Dijkstra’s Label-Setting Eigenschaft proVerbindung
⇒ Self-Pruning Connection-Setting Algorithmus (SPCS)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 29 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning II
Integration von Self-Pruning (SP):
Verwalte Label maxconn(v) an jedem Knoten vGibt maximale Verbindung an mit der v gesettled wurde
Update maxconn(v) beim Settlen von v
Beim Settlen von Knoten v und Verb.-Index i :Prüfe ob maxconn(v) > i ; Dann Prune i an v
Wiederherstellung von Dijkstra’s Label-Setting Eigenschaft proVerbindung
⇒ Self-Pruning Connection-Setting Algorithmus (SPCS)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 29 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Self-Pruning II
Integration von Self-Pruning (SP):
Verwalte Label maxconn(v) an jedem Knoten vGibt maximale Verbindung an mit der v gesettled wurde
Update maxconn(v) beim Settlen von v
Beim Settlen von Knoten v und Verb.-Index i :Prüfe ob maxconn(v) > i ; Dann Prune i an v
Wiederherstellung von Dijkstra’s Label-Setting Eigenschaft proVerbindung
⇒ Self-Pruning Connection-Setting Algorithmus (SPCS)
Julian Dibbelt – Algorithmen für RoutenplanungFolie 29 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Parallelisierung: IdeeGegeben:Shared Memory Processing mit p Cores
Idee:Verteile Verbindungen 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 derVerbindungen ausErgebnisse werden im Anschluss zu distS(v , ·) zusammengeführtFühre Connection Reduction auf gemergtem Ergebnis durch
Julian Dibbelt – Algorithmen für RoutenplanungFolie 30 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Parallelisierung: IdeeGegeben:Shared Memory Processing mit p Cores
Idee:Verteile Verbindungen 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 derVerbindungen ausErgebnisse werden im Anschluss zu distS(v , ·) zusammengeführtFühre Connection Reduction auf gemergtem Ergebnis durch
Julian Dibbelt – Algorithmen für RoutenplanungFolie 30 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Stoppkriterium
Dijkstra’s Algorithmus:Breche die Suche ab, sobald T abgearbeitet wurde.
kann adaptiert werden durch
Parallel Self-Pruning Connection-Setting:Verwalte globales Label Tm := −∞Wenn Verbindung i an T abgearbeitet wird, setzeTm := max{Tm, i}Prune alle Verbindungen j < Tm (an jedem Knoten)Halte an, wenn Priority-Queue leer läuft
Julian Dibbelt – Algorithmen für RoutenplanungFolie 31 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Stoppkriterium
Dijkstra’s Algorithmus:Breche die Suche ab, sobald T abgearbeitet wurde.
kann adaptiert werden durch
Parallel Self-Pruning Connection-Setting:Verwalte globales Label Tm := −∞
Wenn Verbindung i an T abgearbeitet wird, setzeTm := max{Tm, i}Prune alle Verbindungen j < Tm (an jedem Knoten)Halte an, wenn Priority-Queue leer läuft
Julian Dibbelt – Algorithmen für RoutenplanungFolie 31 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Stoppkriterium
Dijkstra’s Algorithmus:Breche die Suche ab, sobald T abgearbeitet wurde.
kann adaptiert werden durch
Parallel Self-Pruning Connection-Setting:Verwalte globales Label Tm := −∞Wenn Verbindung i an T abgearbeitet wird, setzeTm := max{Tm, i}
Prune alle Verbindungen j < Tm (an jedem Knoten)Halte an, wenn Priority-Queue leer läuft
Julian Dibbelt – Algorithmen für RoutenplanungFolie 31 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Stoppkriterium
Dijkstra’s Algorithmus:Breche die Suche ab, sobald T abgearbeitet wurde.
kann adaptiert werden durch
Parallel Self-Pruning Connection-Setting:Verwalte globales Label Tm := −∞Wenn Verbindung i an T abgearbeitet wird, setzeTm := max{Tm, i}Prune alle Verbindungen j < Tm (an jedem Knoten)
Halte an, wenn Priority-Queue leer läuft
Julian Dibbelt – Algorithmen für RoutenplanungFolie 31 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Stoppkriterium
Dijkstra’s Algorithmus:Breche die Suche ab, sobald T abgearbeitet wurde.
kann adaptiert werden durch
Parallel Self-Pruning Connection-Setting:Verwalte globales Label Tm := −∞Wenn Verbindung i an T abgearbeitet wird, setzeTm := max{Tm, i}Prune alle Verbindungen j < Tm (an jedem Knoten)Halte an, wenn Priority-Queue leer läuft
Julian Dibbelt – Algorithmen für RoutenplanungFolie 31 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Eingabe
Netzwerk von Los Angeles:
15 581 Stationen,1 046 580 elem. Verbindungen
Zugnetz von Europa:
30 517 Stationen,1 775 533 elem. Verbindungen
Auswertung durch 1 000 Anfragen wobei Start- und Zielbahnhöfegleichverteilt zufällig gewählt.
Julian Dibbelt – Algorithmen für RoutenplanungFolie 32 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Eingabe
Netzwerk von Los Angeles:
15 581 Stationen,1 046 580 elem. Verbindungen
Zugnetz von Europa:
30 517 Stationen,1 775 533 elem. Verbindungen
Auswertung durch 1 000 Anfragen wobei Start- und Zielbahnhöfegleichverteilt zufällig gewählt.
Julian Dibbelt – Algorithmen für RoutenplanungFolie 32 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
One-to-All Anfragen
Los Angeles EuropeSettled 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 —EQUICONN 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 deutlich weniger Verbindungen als LCPSPCS skaliert sehr gut mit zunehmender Anzahl CoresEinfache Partitionierung liefert bereits gute Ergebnisse
Julian Dibbelt – Algorithmen für RoutenplanungFolie 33 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
One-to-All Anfragen
Los Angeles EuropeSettled 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 —EQUICONN 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 deutlich weniger Verbindungen als LC
PSPCS skaliert sehr gut mit zunehmender Anzahl CoresEinfache Partitionierung liefert bereits gute Ergebnisse
Julian Dibbelt – Algorithmen für RoutenplanungFolie 33 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
One-to-All Anfragen
Los Angeles EuropeSettled 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 —EQUICONN 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 deutlich weniger Verbindungen als LCPSPCS skaliert sehr gut mit zunehmender Anzahl Cores
Einfache Partitionierung liefert bereits gute Ergebnisse
Julian Dibbelt – Algorithmen für RoutenplanungFolie 33 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
One-to-All Anfragen
Los Angeles EuropeSettled 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 —EQUICONN 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 deutlich weniger Verbindungen als LCPSPCS skaliert sehr gut mit zunehmender Anzahl CoresEinfache Partitionierung liefert bereits gute Ergebnisse
Julian Dibbelt – Algorithmen für RoutenplanungFolie 33 – 16. April 2014
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
Route zu t die an s nicht früher als τ abfährt,und an t frühstmöglich ankommt.
Reicht uns das?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 34 – 16. April 2014
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
Route zu t die an s nicht früher als τ abfährt,und an t frühstmöglich ankommt.
Reicht uns das?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 34 – 16. April 2014
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
Route zu t die an s nicht früher als τ abfährt,und an t frühstmöglich ankommt.
Reicht uns das?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 34 – 16. April 2014
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
Idee: Berechne „gute“ Routen für Ankunftszeit und Anzahl Umstiege.
Julian Dibbelt – Algorithmen für RoutenplanungFolie 35 – 16. April 2014
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
Idee: Berechne „gute“ Routen für Ankunftszeit und Anzahl Umstiege.
Julian Dibbelt – Algorithmen für RoutenplanungFolie 35 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Pareto-Menge
Definition (Pareto-Optimum)Zu einer Menge M von n-Tupeln heißt ein Tupel mi = (x1, . . . , xn) ∈ MPareto-Optimum, wenn es kein anderes mj ∈ M gibt, so dass mj inallen Werten besser als mi ist (mj dominiert mi ).
Die 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?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 36 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Pareto-Menge
Definition (Pareto-Optimum)Zu einer Menge M von n-Tupeln heißt ein Tupel mi = (x1, . . . , xn) ∈ MPareto-Optimum, wenn es kein anderes mj ∈ M gibt, so dass mj inallen Werten besser als mi ist (mj dominiert mi ).
Die 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?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 36 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Pareto-Menge
Definition (Pareto-Optimum)Zu einer Menge M von n-Tupeln heißt ein Tupel mi = (x1, . . . , xn) ∈ MPareto-Optimum, wenn es kein anderes mj ∈ M gibt, so dass mj inallen Werten besser als mi ist (mj dominiert mi ).
Die 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?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 36 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Pareto-Menge
Definition (Pareto-Optimum)Zu einer Menge M von n-Tupeln heißt ein Tupel mi = (x1, . . . , xn) ∈ MPareto-Optimum, wenn es kein anderes mj ∈ M gibt, so dass mj inallen Werten besser als mi ist (mj dominiert mi ).
Die 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?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 36 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Pareto-Menge
Definition (Pareto-Optimum)Zu einer Menge M von n-Tupeln heißt ein Tupel mi = (x1, . . . , xn) ∈ MPareto-Optimum, wenn es kein anderes mj ∈ M gibt, so dass mj inallen Werten besser als mi ist (mj dominiert mi ).
Die 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?
Julian Dibbelt – Algorithmen für RoutenplanungFolie 36 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Multi-Label-Correcting Ansatz
IdeeBenutze (zeitabhängiges) GraphmodellGrundlage: Dijkstra’s Algorithmus
r2r1
. . . aber. . .
Label ` sind 2-Tupel aus Ankunftszeit und # UmstiegeAn jedem Knoten u ∈ V : Pareto-Menge Bu von LabelnPriority Queue verwaltet Label statt KnotenPriorität ist AnkunftszeitWieder: keine Totalordnung der Label⇒ Label-correcting Algo
Dominanz von Labeln in Bu on-the-fly
Julian Dibbelt – Algorithmen für RoutenplanungFolie 37 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Multi-Label-Correcting Ansatz
IdeeBenutze (zeitabhängiges) GraphmodellGrundlage: Dijkstra’s Algorithmus
r2r1
. . . aber. . .
Label ` sind 2-Tupel aus Ankunftszeit und # UmstiegeAn jedem Knoten u ∈ V : Pareto-Menge Bu von LabelnPriority Queue verwaltet Label statt KnotenPriorität ist AnkunftszeitWieder: keine Totalordnung der Label⇒ Label-correcting Algo
Dominanz von Labeln in Bu on-the-fly
Julian Dibbelt – Algorithmen für RoutenplanungFolie 37 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Multi-Label-Correcting (MLC)
MLC(G = (V ,E), s, τ )
Bu ← {} for each u ∈ V ; Bs ← {(τ,0)}1
Q.clear(), Q.insert(s, (τ,0))2
while !Q.empty() do3
u and ` = (τ, tr)← Q.deleteMin()4
for all edges e = (u, v) ∈ E do5
if e is a transfer edge then tr ′ ← tr + 1 else tr ′ ← tr6
`′ ← (τ + len(e, τ), tr ′)7
if `′ is not dominated by any `′′ ∈ Bv then8
Bv .insert(`′)9
Remove non-Pareto-optimal labels from Bv10
Q.insert(v , `′)11
Julian Dibbelt – Algorithmen für RoutenplanungFolie 38 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Diskussion: MLC
Diskussion:Pareto-Mengen Bu sind dynamische Datenstrukturen teuer!Sehr viele Queue-OperationenTesten der Dominanz in O(|Bu|) möglichStoppkriterium?
Verbesserungen für MLC:Jedes Bu verwaltet bestes ungesettletes Label selbst⇒ Priority Queue auf Knoten statt LabelnLabel-Forwarding:Wenn Kante keine Kosten hat, überspringe QueueTarget-Pruning:An Knoten u, verwerfe Label `′, wenn Bt dominiert `′
Julian Dibbelt – Algorithmen für RoutenplanungFolie 39 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Diskussion: MLC
Diskussion:Pareto-Mengen Bu sind dynamische Datenstrukturen teuer!Sehr viele Queue-OperationenTesten der Dominanz in O(|Bu|) möglichStoppkriterium?
Verbesserungen für MLC:Jedes Bu verwaltet bestes ungesettletes Label selbst⇒ Priority Queue auf Knoten statt LabelnLabel-Forwarding:Wenn Kante keine Kosten hat, überspringe QueueTarget-Pruning:An Knoten u, verwerfe Label `′, wenn Bt dominiert `′
Julian Dibbelt – Algorithmen für RoutenplanungFolie 39 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik
Nächste Termine
Mittwoch, 23.4.2014Montag, 28.4.2014
Mittwoch, 30.4.2014
Julian Dibbelt – Algorithmen für RoutenplanungFolie 40 – 16. April 2014
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 Proceedings of the 7th Workshop on Experimental Algorithms (WEA’08),volume 5038 of Lecture Notes in Computer Science, pages 347–361. Springer,June 2008.
Daniel Delling, Thomas Pajor, and Dorothea Wagner.Engineering time-expanded graphs for faster timetable information.In Robust and Online Large-Scale Optimization, volume 5868 of Lecture Notes inComputer Science, 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.
Julian Dibbelt – Algorithmen für RoutenplanungFolie 41 – 16. April 2014
Institut für Theoretische InformatikLehrstuhl Algorithmik