algorithmen für routenplanung

111
INSTITUT FÜR THEORETISCHE INFORMATIK · ALGORITHMIK · PROF.DR.DOROTHEA WAGNER Algorithmen für Routenplanung 18. Vorlesung, Sommersemester 2021 Adrian Feilhauer | 21. Juni 2021 KIT – Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Upload: others

Post on 23-Jan-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algorithmen für Routenplanung

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

Page 2: Algorithmen für Routenplanung

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

Page 3: Algorithmen für Routenplanung

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

Page 4: Algorithmen für Routenplanung

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

Page 5: Algorithmen für Routenplanung

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

Page 6: Algorithmen für Routenplanung

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

Page 7: Algorithmen für Routenplanung

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

Page 8: Algorithmen für Routenplanung

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

Page 9: Algorithmen für Routenplanung

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

Page 10: Algorithmen für Routenplanung

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

Page 11: Algorithmen für Routenplanung

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

Page 12: Algorithmen für Routenplanung

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

Page 13: Algorithmen für Routenplanung

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

Page 14: Algorithmen für Routenplanung

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

Page 15: Algorithmen für Routenplanung

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

Page 16: Algorithmen für Routenplanung

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

Page 17: Algorithmen für Routenplanung

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

Page 18: Algorithmen für Routenplanung

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

Page 19: Algorithmen für Routenplanung

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

Page 20: Algorithmen für Routenplanung

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

Page 21: Algorithmen für Routenplanung

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

Page 22: Algorithmen für Routenplanung

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

Page 23: Algorithmen für Routenplanung

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

Page 24: Algorithmen für Routenplanung

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

Page 25: Algorithmen für Routenplanung

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

Page 26: Algorithmen für Routenplanung

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

Page 27: Algorithmen für Routenplanung

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

Page 28: Algorithmen für Routenplanung

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

Page 29: Algorithmen für Routenplanung

Fahrplanauskunft mit Dijkstra

Adrian Feilhauer – Algorithmen für RoutenplanungFolie 11 – 21. Juni 2021

Institut für Theoretische InformatikLehrstuhl Algorithmik

Page 30: Algorithmen für Routenplanung

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

Page 31: Algorithmen für Routenplanung

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

Page 32: Algorithmen für Routenplanung

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

Page 33: Algorithmen für Routenplanung

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

Page 34: Algorithmen für Routenplanung

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

Page 35: Algorithmen für Routenplanung

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

Page 36: Algorithmen für Routenplanung

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

Page 37: Algorithmen für Routenplanung

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

Page 38: Algorithmen für Routenplanung

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

Page 39: Algorithmen für Routenplanung

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

Page 40: Algorithmen für Routenplanung

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

Page 41: Algorithmen für Routenplanung

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

Page 42: Algorithmen für Routenplanung

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

Page 43: Algorithmen für Routenplanung

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

Page 44: Algorithmen für Routenplanung

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

Page 45: Algorithmen für Routenplanung

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

Page 46: Algorithmen für Routenplanung

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

Page 47: Algorithmen für Routenplanung

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

Page 48: Algorithmen für Routenplanung

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

Page 49: Algorithmen für Routenplanung

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

Page 50: Algorithmen für Routenplanung

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

Page 51: Algorithmen für Routenplanung

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

Page 52: Algorithmen für Routenplanung

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

Page 53: Algorithmen für Routenplanung

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

Page 54: Algorithmen für Routenplanung

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

Page 55: Algorithmen für Routenplanung

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

Page 56: Algorithmen für Routenplanung

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

Page 57: Algorithmen für Routenplanung

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

Page 58: Algorithmen für Routenplanung

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

Page 59: Algorithmen für Routenplanung

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

Page 60: Algorithmen für Routenplanung

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

Page 61: Algorithmen für Routenplanung

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

Page 62: Algorithmen für Routenplanung

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

Page 63: Algorithmen für Routenplanung

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

Page 64: Algorithmen für Routenplanung

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

Page 65: Algorithmen für Routenplanung

Self-PruningConnection-Setting

(SPCS)

Adrian Feilhauer – Algorithmen für RoutenplanungFolie 26 – 21. Juni 2021

Institut für Theoretische InformatikLehrstuhl Algorithmik

Page 66: Algorithmen für Routenplanung

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

Page 67: Algorithmen für Routenplanung

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

Page 68: Algorithmen für Routenplanung

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

Page 69: Algorithmen für Routenplanung

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

Page 70: Algorithmen für Routenplanung

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

Page 71: Algorithmen für Routenplanung

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

Page 72: Algorithmen für Routenplanung

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

Page 73: Algorithmen für Routenplanung

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

Page 74: Algorithmen für Routenplanung

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

Page 75: Algorithmen für Routenplanung

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

Page 76: Algorithmen für Routenplanung

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

Page 77: Algorithmen für Routenplanung

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

Page 78: Algorithmen für Routenplanung

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

Page 79: Algorithmen für Routenplanung

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

Page 80: Algorithmen für Routenplanung

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

Page 81: Algorithmen für Routenplanung

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

Page 82: Algorithmen für Routenplanung

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

Page 83: Algorithmen für Routenplanung

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

Page 84: Algorithmen für Routenplanung

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

Page 85: Algorithmen für Routenplanung

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

Page 86: Algorithmen für Routenplanung

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

Page 87: Algorithmen für Routenplanung

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

Page 88: Algorithmen für Routenplanung

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

Page 89: Algorithmen für Routenplanung

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

Page 90: Algorithmen für Routenplanung

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

Page 91: Algorithmen für Routenplanung

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

Page 92: Algorithmen für Routenplanung

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

Page 93: Algorithmen für Routenplanung

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

Page 94: Algorithmen für Routenplanung

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

Page 95: Algorithmen für Routenplanung

Multi-Label-Correcting(MLC)

Adrian Feilhauer – Algorithmen für RoutenplanungFolie 35 – 21. Juni 2021

Institut für Theoretische InformatikLehrstuhl Algorithmik

Page 96: Algorithmen für Routenplanung

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

Page 97: Algorithmen für Routenplanung

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

Page 98: Algorithmen für Routenplanung

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

Page 99: Algorithmen für Routenplanung

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

Page 100: Algorithmen für Routenplanung

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

Page 101: Algorithmen für Routenplanung

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

Page 102: Algorithmen für Routenplanung

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

Page 103: Algorithmen für Routenplanung

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

Page 104: Algorithmen für Routenplanung

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

Page 105: Algorithmen für Routenplanung

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

Page 106: Algorithmen für Routenplanung

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

Page 107: Algorithmen für Routenplanung

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

Page 108: Algorithmen für Routenplanung

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

Page 109: Algorithmen für Routenplanung

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

Page 110: Algorithmen für Routenplanung

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

Page 111: Algorithmen für Routenplanung

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