PowerPoint-PrΓ€sentation

Algorithmen für Geographische
Informationssysteme
3. Vorlesung: 29. April 2015
Thomas van Dijk
basiert auf Folien von Jan-Henrik Haunert
Map Matching
Problemformulierung
Gegeben:
Das Straßennetz als planar eingebetteter Graph 𝐺 = 𝑉, 𝐸
Die GPS-Trajektorie als Folge 𝑃 = 𝑝1 , 𝑝2 , … , 𝑝𝑛 von Punkten
Gesucht:
Weg in 𝐺, der minimale Distanz zu 𝑃 hat.
Map Matching
Hausdorff-Distanz
𝑑hdorff 𝑃1 , 𝑃2 = max 𝑑hdorff 𝑃1 , 𝑃2 , 𝑑hdorff 𝑃2 , 𝑃1
mit 𝑑hdorff 𝑃1 , 𝑃2 = max 𝑑 𝑝1 , 𝑃2
und
𝑑 𝑝1 , 𝑃2 = min 𝑑 𝑝1 , 𝑝2
𝑝1 ∈ 𝑃1
𝑝2 ∈ 𝑃2
𝑃1
𝑑hdorff 𝑃1 , 𝑃2
𝑃2
Fréchet-Distanz
Herrchen läuft entlang 𝑃1 ohne jemals umzukehren.
Hund läuft entlang 𝑃2 ohne jemals umzukehren.
Herrchen und Hund sind über Hundeleine verbunden.
Wie lang ist die Hundeleine mindestens?
𝑃2
𝑃1
Fréchet-Distanz
Definition: 𝑑
fréchet =
min
𝛼: 0,1 β†’ 0,π‘šβˆ’1
𝛽: 0,1 β†’ 0,π‘›βˆ’1
max
π‘‘βˆˆ 0,1
𝑑 𝑝1 𝛼 𝑑 , 𝑝2 𝛽 𝑑
wobei 𝛼 und 𝛽 monoton wachsende und stetige Funktionen sind und
𝛼 0 = 𝛽 0 = 1, 𝛼 1 = π‘š βˆ’ 1, 𝛽 1 = 𝑛 βˆ’ 1.
𝑃2
𝑃1
Fréchet-Distanz
Berechnung:
Löse Entscheidungsproblem: Ist 𝑑fréchet ≀ πœ–?
dann parametrische Suche...
𝑃2
𝑃1
Fréchet-Distanz
Ist 𝑑fréchet ≀ πœ–?
Spezialfall:
𝑃1
𝑝1 0.6
𝑃2
𝑝2 0.75
πœ–
Fréchet-Distanz
Ist 𝑑fréchet ≀ πœ–?
Spezialfall:
𝑃1
𝑝1 0.6
Zuordnung 0.6,0.75 ist zulässig!
𝑃2
𝑝2 0.75
πœ–
Fréchet-Distanz
Ist 𝑑fréchet ≀ πœ–?
Spezialfall:
𝑃1
Zuordnung 0.1,0.9 ist nicht zulässig!
𝑃2
𝑝2 0.9
𝑝1 0.1
πœ–
Fréchet-Distanz
Ist 𝑑fréchet ≀ πœ–?
Spezialfall:
𝑃1
𝑃1
𝑃2
πœ–
1
1
𝑃2
Fréchet-Distanz
Ist 𝑑fréchet ≀ πœ–?
Spezialfall:
𝑃1
Zuordnung 0.6,0.75 ist zulässig!
𝑃1
𝑃2
πœ–
1
1
𝑃2
Fréchet-Distanz
Ist 𝑑fréchet ≀ πœ–?
Spezialfall:
𝑃1
Zuordnung 0.6,0.75 ist zulässig!
Zuordnung 0.1,0.9 ist nicht zulässig!
𝑃1
𝑃2
πœ–
1
1
𝑃2
Fréchet-Distanz
Ist 𝑑fréchet ≀ πœ–?
Spezialfall:
Freiraum
πΉπœ– = 𝑠, 𝑑 ∈ 0,1 2 𝑑 𝑝1 𝑠 , 𝑝2 𝑑
hat die Form einer Ellipse!
𝑃1
β‰€πœ–
Zuordnung 0.6,0.75 ist zulässig!
Zuordnung 0.1,0.9 ist nicht zulässig!
𝑃1
𝑃2
1
πΉπœ–
πœ–
1
𝑃2
Fréchet-Distanz
Freiraum
πΉπœ– = 𝑠, 𝑑 ∈ 0,1 2 𝑑 𝑝1 𝑠 , 𝑝2 𝑑
hat die Form einer Ellipse!
𝑑fréchet ≀ πœ–
⇔ Es gibt einen Pfad
von 0,0 nach 1,1
im inneren von πΉπœ– ,
der in beide Richtungen
monoton ist.
𝑃1
1
πΉπœ–
1
𝑃2
β‰€πœ–
Fréchet-Distanz
Freiraum
πΉπœ– = 𝑠, 𝑑 ∈ 0,1 2 𝑑 𝑝1 𝑠 , 𝑝2 𝑑
hat die Form einer Ellipse!
𝑑fréchet ≀ πœ–
⇔ Es gibt einen Pfad
von 0,0 nach 1,1
im inneren von πΉπœ– ,
der in beide Richtungen
monoton ist.
β‰€πœ–
𝑃1
1
πΉπœ–
1
𝑃2
Hier gibt es ihn nicht, da 0,0 βˆ‰ πΉπœ– !
Fréchet-Distanz
Freiraum
πΉπœ– = 𝑠, 𝑑 ∈ 0,1 2 𝑑 𝑝1 𝑠 , 𝑝2 𝑑
hat die Form einer Ellipse!
𝑑fréchet ≀ πœ–
⇔ Es gibt einen Pfad
von 0,0 nach 1,1
im inneren von πΉπœ– ,
der in beide Richtungen
monoton ist.
β‰€πœ–
𝑃1
1
πΉπœ–
1
𝑃2
Für größeres πœ– gibt es einen Pfad!
Fréchet-Distanz
Freiraum
πΉπœ– = 𝑠, 𝑑 ∈ 0, π‘š βˆ’ 1 × 0, 𝑛 βˆ’ 1
𝑑 𝑝1 𝑠 , 𝑝2 𝑑
β‰€πœ–
𝑃2
𝑑fréchet ≀ πœ–
⇔ Es gibt einen Pfad
von 0,0 nach π‘š, 𝑛
im inneren von πΉπœ– ,
der in beide Richtungen
monoton ist.
𝑃1
πœ–
𝑃2
𝑃1
Fréchet-Distanz
Freiraum
πΉπœ– = 𝑠, 𝑑 ∈ 0, π‘š βˆ’ 1 × 0, 𝑛 βˆ’ 1
𝑑 𝑝1 𝑠 , 𝑝2 𝑑
β‰€πœ–
𝑃2
𝑑fréchet ≀ πœ–
⇔ Es gibt einen Pfad
von 0,0 nach π‘š, 𝑛
im inneren von πΉπœ– ,
der in beide Richtungen
monoton ist.
πΉπœ– kann in 𝑂 π‘šπ‘› Zeit
berechnet werden.
𝑃1
πœ–
𝑃2
𝑃1
Fréchet-Distanz
Freiraum
πΉπœ– = 𝑠, 𝑑 ∈ 0, π‘š βˆ’ 1 × 0, 𝑛 βˆ’ 1
𝑑 𝑝1 𝑠 , 𝑝2 𝑑
β‰€πœ–
𝑃2
𝑑fréchet ≀ πœ–
⇔ Es gibt einen Pfad
von 0,0 nach π‘š, 𝑛
im inneren von πΉπœ– ,
der in beide Richtungen
monoton ist.
πΉπœ– kann in 𝑂 π‘šπ‘› Zeit
berechnet werden.
𝑃1
πœ–
𝑃2
Finde zulässigen Pfad in πΉπ‘ƒπœ–1.
Fréchet-Distanz
Kanten einer Freiraumzelle:
𝐹
𝐹
𝐹
𝐹
𝐡𝑖,𝑗 , 𝐡𝑖,𝑗+1 , 𝐿𝑖,𝑗 , 𝐿𝑖+1,𝑗
𝑩𝑹
π’Š,𝒋+𝟏
𝑳𝑹
π’Š+𝟏,𝒋
𝑳𝑹
π’Š,𝒋
Teile dieser Kanten,
die von (0,0) aus
erreichbar sind:
𝑅
𝑅
𝑅
𝑅
𝐡𝑖,𝑗 , 𝐡𝑖,𝑗+1 , 𝐿𝑖,𝑗 , 𝐿𝑖+1,𝑗
𝑅
𝑅
𝐡𝑖,𝑗 , 𝐿𝑖,𝑗
𝑩𝑹
π’Š,𝒋 = βˆ…
bekannt
𝑅
β‡’ 𝐡𝑖,𝑗+1
, 𝐿𝑅𝑖+1,𝑗
Fréchet-Distanz
Algorithmus
Fréchet-Distanz
Berechnung:
Löse Entscheidungsproblem: Ist 𝑑fréchet ≀ πœ–?
𝑃2
𝑃1
Fréchet-Distanz
Berechnung:
Löse Entscheidungsproblem: Ist 𝑑fréchet ≀ πœ–?
dann parametrische Suche...
𝑂 π‘šπ‘› log π‘šπ‘› Zeit
(hier ohne Details)
𝑃2
𝑃1
Map Matching
Problemformulierung
Gegeben:
Das Straßennetz als planar eingebetteter Graph 𝐺 = 𝑉, 𝐸
Die GPS-Trajektorie als Folge 𝑃 = 𝑝1 , 𝑝2 , … , 𝑝𝑛 von Punkten
Gesucht:
Weg in 𝐺, der
minimale Distanz
zu 𝑃 hat.
Map Matching
Map Matching
Problemformulierung
Gegeben:
Das Straßennetz als planar eingebetteter Graph 𝐺 = 𝑉, 𝐸
Die GPS-Trajektorie als Folge 𝑃 = 𝑝1 , 𝑝2 , … , 𝑝𝑛 von Punkten
Gesucht:
Weg in 𝐺, der
minimale Fréchet-Distanz
zu 𝑃 hat.
Map Matching
Map Matching
Entscheidungsproblem
Gegeben:
Das Straßennetz als planar eingebetteter Graph 𝐺 = 𝑉, 𝐸
Die GPS-Trajektorie als Folge 𝑃 = 𝑝1 , 𝑝2 , … , 𝑝𝑛 von Punkten
Zulässige Distanz πœ–
Gibt es einen Weg in 𝐺, dessen
Fréchet-Distanz
zu 𝑃 kleiner ist als πœ–?
Map Matching
Map Matching
Entscheidungsproblem
Freiraumdiagramm für zwei Polygonzüge
𝑃2
𝑃1
Map Matching
Entscheidungsproblem
Freiraumdiagramm für zwei Polygonzüge
𝑃2
𝑃1
Idee: Freiraumdiagramm für Polygonzug und Graph
Map Matching
Idee: Freiraumdiagramm für Polygonzug und Graph
Map Matching
Idee: Freiraumdiagramm für Polygonzug und Graph
Map Matching
Freiraumdiagramm für
Polygonzug und eine Kante
Idee: Freiraumdiagramm für Polygonzug und Graph
Map Matching
Suche einen zulässigen Pfad
von links nach rechts.
Idee: Freiraumdiagramm für Polygonzug und Graph
Map Matching
Entscheidbar in 𝑢 𝑬 𝑷 π₯𝐨𝐠 𝑬
Suche einen zulässigen Pfad
von links nach rechts.
Alt et al. 2003:
Matching Planar Maps
J. Algorithm.
Zeit.
Map Matching
Lösbar in 𝑢 𝑬 𝑷 π₯𝐨𝐠 𝑬 π₯𝐨𝐠 𝑬 𝑷
Finde einen zulässigen
Pfad mit minimaler
Fréchet-Distanz
Alt et al. 2003:
Matching Planar Maps
J. Algorithm.
Zeit.
Map Matching
Problemformulierung
Gegeben:
Das Straßennetz als planar eingebetteter Graph 𝐺 = 𝑉, 𝐸
Die GPS-Trajektorie als Folge 𝑃 = 𝑝1 , 𝑝2 , … , 𝑝𝑛 von Punkten
VIDEO
Gesucht:
Weg in 𝐺, der
minimale Fréchet-Distanz
zu 𝑃 hat.
Lösbar in 𝑢 𝑬 𝑷 π₯𝐨𝐠 𝑬 π₯𝐨𝐠 𝑬 𝑷
Map Matching
Zeit.
Map Matching
Problem:
GPS-Punkte der Trajektorie weisen einen relativ großen Abstand
zueinander auf.
Map Matching
Problem:
GPS-Punkte der Trajektorie weisen einen relativ großen Abstand
zueinander auf.
β†’ Direkte Verbindung zwischen Punkten ist
schlechte Näherung
Map Matching
Problem:
GPS-Punkte der Trajektorie weisen einen relativ großen Abstand
zueinander auf.
Ergebnis mit minimaler
Fréchet-Distanz
Idee:
Fahrer wählen bevorzugt kürzeste Wege im Straßennetz.
Map Matching
Problem:
GPS-Punkte der Trajektorie weisen einen relativ großen Abstand
zueinander auf.
kürzeste Route
Idee:
Fahrer wählen bevorzugt kürzeste Wege im Straßennetz.
Map Matching
Ansatz über kürzeste Wege
Lou et al.:
Map-Matching for Low-Sampling-Rate GPS Trajectories,
Proc. ACM GIS 2009.
Ein Punkt etwa alle zwei Minuten
(z.B. zur Aufzeichnung & Analyse von
P. Newson und J. Krum:
Taxirouten)
Hidden Markov Map Matching
Through Noise and Sparseness,
Proc. ACM GIS 2009
Eisner et al.:
Algorithms for Matching and Predicting Trajectories,
Proc. ALENEX 2011
Map Matching
Ansatz über kürzeste Wege
Lou et al.:
Map-Matching for Low-Sampling-Rate GPS Trajectories,
Proc. ACM GIS 2009.
P. Newson und J. Krum:
Hidden Markov Map Matching Through Noise and Sparseness,
Proc. ACM GIS 2009
= Maximum-likelihood estimation + Markov Chains + Hidden Markov Models
Eisner et al.:
Algorithms for Matching and Predicting Trajectories,
Proc. ALENEX 2011
Maximum-likelihood estimation
Probability versus Likelihood
β€’ Flipping a coin:
– 𝑃[β„Žπ‘’π‘Žπ‘‘π‘ ] = 𝑝
– 𝑃 π‘‘π‘Žπ‘–π‘™π‘  = 1 βˆ’ 𝑝
β€’ Do three independent flips.
β€’ The coin is fair (p = ½).
Model
Parameter value
Outcome?
β€’ What is the probability of getting outcome x=(H,H,T)?
𝑃 π‘₯ = 𝐻, 𝐻, 𝑇 ; 𝑝 = 1 2
𝒑 is not a random variable!
𝑃 π‘₯ = 𝐻, 𝐻, 𝑇 | 𝑝 = 1 2 = 1 2 β‹… 1 2 β‹… 1 βˆ’ 1 2 = 0.125
Maximum-likelihood estimation
Probability versus Likelihood
β€’ Flipping a coin:
– 𝑃[β„Žπ‘’π‘Žπ‘‘π‘ ] = 𝑝
– 𝑃 π‘‘π‘Žπ‘–π‘™π‘  = 1 βˆ’ 𝑝
β€’ Did three independent flips.
β€’ The result was x=(H,H,T).
Model
Parameter value?
Outcome
β€’ What is the likelihood that the coin is fair (p = ½)?
Maximum-likelihood estimation
Likelihood functions
β€’ Given the outcome π‘₯,
how β€œlikelyβ€œ is a certain parameter value πœƒ?
β€’ Assuming parameter value πœƒ,
what is the probability of outcome π‘₯?
β€’ Define likelihood function β„’ πœƒ π‘₯ = 𝑃[π‘₯; πœƒ]
Not a probability!
β€’ The result was (H,H,T).
β€’ What is the likelihood that the coin is fair (p = ½)?
β€’ β„’ 𝒑 = 𝟏 𝟐 | π‘₯ = 𝐻, 𝐻, 𝑇 = 1 2 β‹… 1 2 β‹… 1 2 = 0.125
β€’ β„’ 𝒑 = 𝟎. 𝟏 | π‘₯ = 𝐻, 𝐻, 𝑇 = 0.1 β‹… 0.1 β‹… 0.9 = 0.009
β€’ β„’ 𝒑 = 𝟐 πŸ‘ | π‘₯ = 𝐻, 𝐻, 𝑇 = 2 3 β‹… 2 3 β‹… 1 3 = 0. 148
Maximum-likelihood estimation
Predictions versus Estimates
β€’ Most probable outcome
– Given parameter 𝑝 = 2 3…
– … the most probably outcome is (𝐻, 𝐻, 𝐻).
β€’ Maximum-Likelihood Estimate (β€œMLEβ€œ)
–
–
–
–
Given outcome (𝑇, 𝐻, 𝑇)…
…maximum-likelihood estimate is 𝑝 = 1 3.
This value of 𝑝 β€œbest explains the observed outcome.β€œ
This value of 𝑝 makes the outcome ”least surprising.”
Maximum-likelihood estimation
Maximum-likelihood map matching?
β€’ Model? Parameter? Outcome?
β€’ Most probable outcome
– Given a path in a road network …
– … what is the most probable GPS trajectory to observe? (Noisy.)
β€’ Maximum-Likelihood Estimate (MLE)
– Given the observed GPS trajectory (noisy) …
– … what is the most likely path through the road network?
– β€œWhich path through the network best explains the
observed GPS trajectory?β€œ
ΠŸΠ°Ρ„Π½ΡƒΜΡ‚ΠΈΠΉ Π§Π΅Π±Ρ‹ΡˆΡ‘Π²
1821 - 1894
ΠœΠ°ΜΡ€ΠΊΠΎΠ² Chains
АндрС́й ΠœΠ°ΜΡ€ΠΊΠΎΠ²
1856 - 1922
Π“Π΅ΠΎΡ€Π³Ρ–ΠΉ Π’ΠΎΡ€ΠΎΠ½ΠΈΠΉ
1868 - 1908
Бори́с ДСлонС́
1890 - 1980
WacΕ‚aw SierpiΕ„ski
1882 - 1969
Chebyshev
1821 - 1894
ΠœΠ°ΜΡ€ΠΊΠΎΠ² Chains
Markov
1856 - 1922
Voronoi
1856 - 1922
Delaunay
1890 - 1980
Sierpinski
1882 - 1969
Markov Chains
β€’ Sequence of random variables 𝑋1 , 𝑋2 , 𝑋3 , …
β€’ Markov Property:
Pr 𝑋n+1 𝑋𝑛 = π‘₯𝑛 , π‘‹π‘›βˆ’1 = π‘₯π‘›βˆ’1 , … , 𝑋1 = π‘₯1 ]
= Pr 𝑋𝑛+1 𝑋𝑛 = π‘₯𝑛 ]
β€’ β€œGiven the present,
the future is independent of the past.”
β€’ Represent as Pr[𝑋1 ], Pr[𝑋2 |𝑋1 ], Pr 𝑋3 𝑋2 , …
Markov Chains
Example
β€’ Possible states 𝑍 = π‘†π‘œπ‘›π‘›π‘’, 𝑅𝑒𝑔𝑒𝑛
β€’ Pr[ 𝑋1 = 𝑅𝑒𝑔𝑒𝑛 ] = 0.3
β€’ Pr 𝑋1 = π‘†π‘œπ‘›π‘›π‘’ = 0.7
β€’
β€’
β€’
β€’
Pr
Pr
Pr
Pr
𝑋𝑛+1 = 𝑅𝑒𝑔𝑒𝑛
𝑋𝑛+1 = π‘†π‘œπ‘›π‘›π‘’
𝑋𝑛+1 = 𝑅𝑒𝑔𝑒𝑛
𝑋𝑛+1 = π‘†π‘œπ‘›π‘›π‘’
𝑋𝑛 = 𝑅𝑒𝑔𝑒𝑛 ] = 0.7
𝑋𝑛 = 𝑅𝑒𝑔𝑒𝑛 ] = 0.3
𝑋𝑛 = π‘†π‘œπ‘›π‘›π‘’ ] = 0.2
𝑋𝑛 = π‘†π‘œπ‘›π‘›π‘’ ] = 0.8
Markov Chains
Example
β€’ Possible states 𝑍 = π‘†π‘œπ‘›π‘›π‘’, 𝑅𝑒𝑔𝑒𝑛
β€’ Pr[ 𝑋1 = 𝑅𝑒𝑔𝑒𝑛 ] = 0.3
β€’ Pr 𝑋1 = π‘†π‘œπ‘›π‘›π‘’ = 0.7
Pr 𝑋2 = π‘†π‘œπ‘›π‘›π‘’ ?
0.2
0.8
0.7
Sonne
Regen
0.3
Markov Chains
Example
β€’ Possible states 𝑍 = π‘†π‘œπ‘›π‘›π‘’, 𝑅𝑒𝑔𝑒𝑛
β€’ Pr[ 𝑋2 = 𝑅𝑒𝑔𝑒𝑛 ] = 0.35
β€’ Pr 𝑋2 = π‘†π‘œπ‘›π‘›π‘’ = 0.65
Pr 𝑋3 = 𝑅𝑒𝑔𝑒𝑛 ?
0.2
0.8
0.7
Sonne
Regen
0.3
Hidden Markov Models
β€’ Markov Chain
– At every time step, it has a certain state
β€’ But the states are hidden
– We cannot β€œsee” its state
β€’ Emission (β€œoutput”)
– At every time step, get an observation
– Probability distribution depends on state
– Emission at each step is independent
This slide intentionally left blank.
Using maximum likelihood estimation
Map Matching
1. Für jeden GPS-Punkt 𝑝𝑖 suche Menge
von Kandidatenkanten 𝑒𝑖1 , … , π‘’π‘–π‘˜ , die
(teilweise) innerhalb eines Kreises mit
Radius π‘Ÿ um 𝑝𝑖 liegen.
Map Matching
1. Für jeden GPS-Punkt 𝑝𝑖 suche Menge
von Kandidatenkanten 𝑒𝑖1 , … , π‘’π‘–π‘˜ , die
(teilweise) innerhalb eines Kreises mit
Radius π‘Ÿ um 𝑝𝑖 liegen.
2. Suche Menge von Kandidatenpunkten
𝑗
𝑐𝑖1 , … , π‘π‘–π‘˜ , wobei 𝑐𝑖 der nächste Punkt
𝑗
auf 𝑒𝑖 zu 𝑝𝑖 ist.
Map Matching
1. Für jeden GPS-Punkt 𝑝𝑖 suche Menge
von Kandidatenkanten 𝑒𝑖1 , … , π‘’π‘–π‘˜ , die
(teilweise) innerhalb eines Kreises mit
Radius π‘Ÿ um 𝑝𝑖 liegen.
2. Suche Menge von Kandidatenpunkten
𝑗
𝑐𝑖1 , … , π‘π‘–π‘˜ , wobei 𝑐𝑖 der nächste Punkt
𝑗
auf 𝑒𝑖 zu 𝑝𝑖 ist.
𝑗
3. Bewerte jeden Kandidatenpunkt 𝑐𝑖 mit
𝑗
einer Wahrscheinlichkeit 𝑁 𝑐𝑖
𝑁
𝑗
𝑐𝑖
=
1
2πœ‹πœŽ
𝑗 2
𝑒
βˆ’
𝑑 𝑝𝑖 ,𝑐𝑖
2𝜎 2
(Normalverteilung)
𝜎 = 20 m
Map Matching
1. Für jeden GPS-Punkt 𝑝𝑖 suche Menge
von Kandidatenkanten 𝑒𝑖1 , … , π‘’π‘–π‘˜ , die
(teilweise) innerhalb eines Kreises mit
Radius π‘Ÿ um 𝑝𝑖 liegen.
2. Suche Menge von Kandidatenpunkten
𝑗
𝑐𝑖1 , … , π‘π‘–π‘˜ , wobei 𝑐𝑖 der nächste Punkt
𝑗
auf 𝑒𝑖 zu 𝑝𝑖 ist.
𝑗
3. Bewerte jeden Kandidatenpunkt 𝑐𝑖 mit
𝑗
einer Wahrscheinlichkeit 𝑁 𝑐𝑖
4. Bewerte jedes Paar aufeinander
folgender Kandidatenpunkte mit einer
Übergangswahrscheinlichkeit
𝑑 π‘π‘–βˆ’1 , 𝑝𝑖
π‘Ÿ
𝑠
𝑇 π‘π‘–βˆ’1 , 𝑐𝑖 =
π‘Ÿ
𝑑shortestβˆ’path π‘π‘–βˆ’1
, 𝑐𝑖𝑠
Länge des kürzesten Weges von
π‘Ÿ
π‘π‘–βˆ’1
nach 𝑐𝑖𝑠 im Straßennetz
Map Matching
1. Für jeden GPS-Punkt 𝑝𝑖 suche Menge
von Kandidatenkanten 𝑒𝑖1 , … , π‘’π‘–π‘˜ , die
(teilweise) innerhalb eines Kreises mit
Radius π‘Ÿ um 𝑝𝑖 liegen.
2. Suche Menge von Kandidatenpunkten
𝑗
𝑐𝑖1 , … , π‘π‘–π‘˜ , wobei 𝑐𝑖 der nächste Punkt
𝑗
auf 𝑒𝑖 zu 𝑝𝑖 ist.
𝑗
3. Bewerte jeden Kandidatenpunkt 𝑐𝑖 mit
𝑗
einer Wahrscheinlichkeit 𝑁 𝑐𝑖
4. Bewerte jedes Paar aufeinander
folgender Kandidatenpunkte mit einer
Übergangswahrscheinlichkeit
π‘Ÿ
𝑇 π‘π‘–βˆ’1
, 𝑐𝑖𝑠
Map Matching
1. Für jeden GPS-Punkt 𝑝𝑖 suche Menge
von Kandidatenkanten 𝑒𝑖1 , … , π‘’π‘–π‘˜ , die
(teilweise) innerhalb eines Kreises mit
Radius π‘Ÿ um 𝑝𝑖 liegen.
2. Suche Menge von Kandidatenpunkten
𝑗
𝑐𝑖1 , … , π‘π‘–π‘˜ , wobei 𝑐𝑖 der nächste Punkt
𝑗
auf 𝑒𝑖 zu 𝑝𝑖 ist.
𝑗
3. Bewerte jeden Kandidatenpunkt 𝑐𝑖 mit
𝑗
einer Wahrscheinlichkeit 𝑁 𝑐𝑖
4. Bewerte jedes Paar aufeinander
folgender Kandidatenpunkte mit einer
Übergangswahrscheinlichkeit
π‘Ÿ
𝑇 π‘π‘–βˆ’1
, 𝑐𝑖𝑠
Ziel:
Wähle für jeden Punkt 𝑝𝑖 einen Kandidatenpunkt 𝑐𝑖 aus der Menge 𝑐𝑖1 , … , π‘π‘–π‘˜ , so dass
𝑁 𝑐1 β‹… 𝑇 𝑐1 , 𝑐2 β‹… 𝑁 𝑐2 β‹… 𝑇 𝑐2 , 𝑐3 β‹… … β‹… 𝑁 𝑐𝑛
maximal ist.
Map Matching
Ziel:
Wähle für jeden Punkt 𝑝𝑖 einen Kandidaten-punkt 𝑐𝑖 aus der Menge
𝑐𝑖1 , … , π‘π‘–π‘˜ , so dass
log 𝑁 𝑐1 β‹… 𝑇 𝑐1 , 𝑐2
+ log 𝑁 𝑐2 β‹… 𝑇 𝑐2 , 𝑐3
...
+ log 𝑁 π‘π‘›βˆ’1 β‹… 𝑇 π‘π‘›βˆ’1 , 𝑐𝑛
+ log 𝑁 𝑐𝑛
maximal ist.
Map Matching
Ziel:
Wähle für jeden Punkt 𝑝𝑖 einen Kandidaten-punkt 𝑐𝑖 aus der Menge
𝑐𝑖1 , … , π‘π‘–π‘˜ , so dass
log 𝑁 𝑐1 β‹… 𝑇 𝑐1 , 𝑐2
+ log 𝑁 𝑐2 β‹… 𝑇 𝑐2 , 𝑐3
Modellierung als Graph-Problem:
...
𝑐13
+ log 𝑁 π‘π‘›βˆ’1 β‹… 𝑇 π‘π‘›βˆ’1 , 𝑐𝑛
+ log 𝑁 𝑐𝑛
maximal ist.
𝑐22
𝑐12
𝑠
𝑐11
𝑐33
𝑐32
𝑐21
Kandidatenmenge für 𝑝1
𝑐31
𝑑
Map Matching
Ziel:
Wähle für jeden Punkt 𝑝𝑖 einen Kandidaten-punkt 𝑐𝑖 aus der Menge
𝑐𝑖1 , … , π‘π‘–π‘˜ , so dass
log 𝑁 𝑐1 β‹… 𝑇 𝑐1 , 𝑐2
+ log 𝑁 𝑐2 β‹… 𝑇 𝑐2 , 𝑐3
Modellierung als Graph-Problem:
...
𝑐13
+ log 𝑁 π‘π‘›βˆ’1 β‹… 𝑇 π‘π‘›βˆ’1 , 𝑐𝑛
+ log 𝑁 𝑐𝑛
maximal ist.
𝑐22
𝑐12
𝑠
𝑐11
𝑐33
𝑐32
𝑐21
𝑐31
Kandidatenmenge für 𝑝2
𝑑
Map Matching
Ziel:
Wähle für jeden Punkt 𝑝𝑖 einen Kandidaten-punkt 𝑐𝑖 aus der Menge
𝑐𝑖1 , … , π‘π‘–π‘˜ , so dass
log 𝑁 𝑐1 β‹… 𝑇 𝑐1 , 𝑐2
+ log 𝑁 𝑐2 β‹… 𝑇 𝑐2 , 𝑐3
Modellierung als Graph-Problem:
...
𝑐13
+ log 𝑁 π‘π‘›βˆ’1 β‹… 𝑇 π‘π‘›βˆ’1 , 𝑐𝑛
+ log 𝑁 𝑐𝑛
maximal ist.
𝑐22
𝑐12
𝑠
𝑐11
𝑐33
𝑐32
𝑐21
𝑐31
Kandidatenmenge für 𝑝3
𝑑
Map Matching
Ziel:
Wähle für jeden Punkt 𝑝𝑖 einen Kandidaten-punkt 𝑐𝑖 aus der Menge
𝑐𝑖1 , … , π‘π‘–π‘˜ , so dass
log 𝑁 𝑐1 β‹… 𝑇 𝑐1 , 𝑐2
+ log 𝑁 𝑐2 β‹… 𝑇 𝑐2 , 𝑐3
Modellierung als Graph-Problem:
...
𝑐13
+ log 𝑁 π‘π‘›βˆ’1 β‹… 𝑇 π‘π‘›βˆ’1 , 𝑐𝑛
+ log 𝑁 𝑐𝑛
maximal ist.
𝑐22
𝑐12
𝑠
𝑐11
𝑐33
𝑐32
𝑐21
Dummy-Knoten
𝑐31
𝑑
Map Matching
Ziel:
Wähle für jeden Punkt 𝑝𝑖 einen Kandidaten-punkt 𝑐𝑖 aus der Menge
𝑐𝑖1 , … , π‘π‘–π‘˜ , so dass
log 𝑁 𝑐1 β‹… 𝑇 𝑐1 , 𝑐2
+ log 𝑁 𝑐2 β‹… 𝑇 𝑐2 , 𝑐3
Modellierung als Graph-Problem:
...
𝑐13
+ log 𝑁 π‘π‘›βˆ’1 β‹… 𝑇 π‘π‘›βˆ’1 , 𝑐𝑛
+ log 𝑁 𝑐𝑛
maximal ist.
𝑐22
𝑐12
𝑠
𝑐11
𝑐33
𝑐32
𝑐21
𝑑
𝑐31
Jeder 𝑠-𝑑-Pfad steht für eine Lösung
des Map-Matching-Problems
Map Matching
Ziel:
Wähle für jeden Punkt 𝑝𝑖 einen Kandidaten-punkt 𝑐𝑖 aus der Menge
𝑐𝑖1 , … , π‘π‘–π‘˜ , so dass
log 𝑁 𝑐1 β‹… 𝑇 𝑐1 , 𝑐2
+ log 𝑁 𝑐2 β‹… 𝑇 𝑐2 , 𝑐3
...
Modellierung als Graph-Problem
Definiere Kantenlängen:
𝑐13
+ log 𝑁 π‘π‘›βˆ’1 β‹… 𝑇 π‘π‘›βˆ’1 , 𝑐𝑛
+ log 𝑁 𝑐𝑛
𝑐22
𝑐12
maximal ist.
𝑠
𝑐11
𝑐33
𝑐32
𝑐21
𝑑
𝑐31
log 𝑁 𝑐31
0
log 𝑁 𝑐11 β‹… 𝑇 𝑐11 , 𝑐21
Map Matching
Ziel:
Wähle für jeden Punkt 𝑝𝑖 einen Kandidaten-punkt 𝑐𝑖 aus der Menge
𝑐𝑖1 , … , π‘π‘–π‘˜ , so dass
log 𝑁 𝑐1 β‹… 𝑇 𝑐1 , 𝑐2
+ log 𝑁 𝑐2 β‹… 𝑇 𝑐2 , 𝑐3
...
Modellierung als Graph-Problem
Definiere Kantenlängen:
𝑐13
+ log 𝑁 π‘π‘›βˆ’1 β‹… 𝑇 π‘π‘›βˆ’1 , 𝑐𝑛
+ log 𝑁 𝑐𝑛
𝑐12
maximal ist.
𝑠
Lösung:
Längster 𝑠-𝑑-Pfad
𝑐22
𝑐11
𝑐33
𝑐32
𝑐21
𝑑
𝑐31
log 𝑁 𝑐31
0
log 𝑁 𝑐11 β‹… 𝑇 𝑐11 , 𝑐21
Map Matching
Ziel:
Wähle für jeden Punkt 𝑝𝑖 einen Kandidaten-punkt 𝑐𝑖 aus der Menge
𝑐𝑖1 , … , π‘π‘–π‘˜ , so dass
log 𝑁 𝑐1 β‹… 𝑇 𝑐1 , 𝑐2
+ log 𝑁 𝑐2 β‹… 𝑇 𝑐2 , 𝑐3
...
Modellierung als Graph-Problem
Definiere Kantenlängen:
𝑐13
+ log 𝑁 π‘π‘›βˆ’1 β‹… 𝑇 π‘π‘›βˆ’1 , 𝑐𝑛
+ log 𝑁 𝑐𝑛
maximal ist.
𝑐22
𝑐12
𝑠
𝑐11
Lösung:
Längster 𝑠-𝑑-Pfad
Allgemein ist das Longest-Path-Problem NP-schwer!
𝑐33
𝑐32
𝑐21
𝑐31
𝑑
Map Matching
Ziel:
Wähle für jeden Punkt 𝑝𝑖 einen Kandidaten-punkt 𝑐𝑖 aus der Menge
𝑐𝑖1 , … , π‘π‘–π‘˜ , so dass
log 𝑁 𝑐1 β‹… 𝑇 𝑐1 , 𝑐2
+ log 𝑁 𝑐2 β‹… 𝑇 𝑐2 , 𝑐3
...
Modellierung als Graph-Problem
Definiere Kantenlängen:
𝑐13
+ log 𝑁 π‘π‘›βˆ’1 β‹… 𝑇 π‘π‘›βˆ’1 , 𝑐𝑛
+ log 𝑁 𝑐𝑛
maximal ist.
Lösung:
Längster 𝑠-𝑑-Pfad
𝑐22
𝑐12
𝑠
𝑐11
𝑐33
𝑐32
𝑐21
𝑑
𝑐31
Für gerichtete azyklische Graphen mit π‘š Kanten und
𝑛 Ecken ist das Longest-Path-Problem in 𝑂 π‘šπ‘› Zeit
lösbar!
Map Matching
Ziel:
Wähle für jeden Punkt 𝑝𝑖 einen Kandidaten-punkt 𝑐𝑖 aus der Menge
𝑐𝑖1 , … , π‘π‘–π‘˜ , so dass
log 𝑁 𝑐1 β‹… 𝑇 𝑐1 , 𝑐2
+ log 𝑁 𝑐2 β‹… 𝑇 𝑐2 , 𝑐3
...
Modellierung als Graph-Problem
Definiere Kantenlängen:
𝑐13
+ log 𝑁 π‘π‘›βˆ’1 β‹… 𝑇 π‘π‘›βˆ’1 , 𝑐𝑛
+ log 𝑁 𝑐𝑛
maximal ist.
Lösung:
Längster 𝑠-𝑑-Pfad
𝑐22
𝑐12
𝑠
𝑐11
𝑐33
𝑐32
𝑐21
𝑑
𝑐31
Für gerichtete azyklische Graphen mit π‘š Kanten und
𝑛 Ecken ist das Longest-Path-Problem in 𝑂 π‘šπ‘› Zeit
lösbar!
Wie?
Map Matching
Aufgabe:
Finde längsten Pfad in gerichtetem azyklischen Graphen.
Lösung:
1. Bringe die Ecken in topologische Ordnung β†’ 𝑣1 … 𝑣𝑛
2. Löse das Problem durch dynamische Programmierung:
𝑑 𝑣1 , 𝑣1 = 0
for 𝑖 = 2 to 𝑛
// Berechne 𝑑 𝑣1 , 𝑣𝑖 = Länge eines längsten 𝑣1 -𝑣𝑖 -Pfades
π‘šπ‘Žπ‘₯ = βˆ’βˆž
for 𝑣𝑗 , 𝑣𝑖 ∈ 𝐴
if 𝑑 𝑣1 , 𝑣𝑖 + β„“ 𝑣𝑖 , 𝑣𝑗 > π‘šπ‘Žπ‘₯ then // β„“ 𝑣𝑗 , 𝑣𝑖 = Länge der Kante 𝑣𝑗 , 𝑣𝑖
π‘šπ‘Žπ‘₯ = 𝑑 𝑣1 , 𝑣𝑖 + β„“ 𝑣𝑖 , 𝑣𝑗
𝑑 𝑣1 , 𝑣𝑗 = π‘šπ‘Žπ‘₯
π‘π‘Ÿπ‘’π‘‘π‘’π‘π‘’π‘ π‘ π‘œπ‘Ÿ 𝑗 = 𝑖