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. P. Newson und J. Krum: Hidden Markov Map Matching Through Noise and Sparseness, Proc. ACM GIS 2009 Eisner et al.: Algorithms for Matching and Predicting Trajectories, Proc. ALENEX 2011
Ein Punkt etwa alle zwei Minuten (z.B. zur Aufzeichnung & Analyse von Taxirouten)
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 Eisner et al.: Algorithms for Matching and Predicting Trajectories, Proc. ALENEX 2011
= Maximum-likelihood estimation + Markov Chains + Hidden Markov Models
Maximum-likelihood estimation Probability versus Likelihood
• Flipping a coin:
– 𝑃[ℎ𝑒𝑎𝑑𝑠] = 𝑝
– 𝑃 𝑡𝑎𝑖𝑙𝑠 = 1 − 𝑝
• Do three independent flips.
• The coin is fair (p = ½).
• What is the probability of getting outcome x=(H,H,T)?
Model
Outcome?
Parameter value
𝑃 𝑥 = 𝐻,𝐻, 𝑇 | 𝑝 = 12 = 1 2 ⋅ 1 2 ⋅ 1 − 1
2 = 0.125 𝑃 𝑥 = 𝐻, 𝐻, 𝑇 ; 𝑝 = 12
𝒑 is not a random variable!
• Flipping a coin:
– 𝑃[ℎ𝑒𝑎𝑑𝑠] = 𝑝
– 𝑃 𝑡𝑎𝑖𝑙𝑠 = 1 − 𝑝
• Did three independent flips.
• The result was x=(H,H,T).
• What is the likelihood that the coin is fair (p = ½)?
Maximum-likelihood estimation Probability versus Likelihood
Model
Parameter value?
Outcome
• Given the outcome 𝑥, how “likely“ is a certain parameter value 𝜃?
• Assuming parameter value 𝜃, what is the probability of outcome 𝑥?
• Define likelihood function ℒ 𝜃 𝑥 = 𝑃[𝑥; 𝜃]
• The result was (H,H,T).
• What is the likelihood that the coin is fair (p = ½)?
• ℒ 𝒑 = 𝟏 𝟐 | 𝑥 = 𝐻,𝐻, 𝑇 = 12 ⋅ 1 2 ⋅ 1 2 = 0.125
• ℒ 𝒑 = 𝟎. 𝟏 | 𝑥 = 𝐻,𝐻, 𝑇 = 0.1 ⋅ 0.1 ⋅ 0.9 = 0.009
• ℒ 𝒑 = 𝟐 𝟑 | 𝑥 = 𝐻,𝐻, 𝑇 = 23 ⋅ 2 3 ⋅ 1 3 = 0. 148
Maximum-likelihood estimation Likelihood functions
Not a probability!
• Most probable outcome
– Given parameter 𝑝 = 23 …
– … the most probable outcome is
• Maximum-Likelihood Estimate (“MLE“)
– Given outcome (𝑇, 𝐻, 𝑇)…
– …maximum-likelihood estimate is 𝑝 =
– This value of 𝑝 “best explains the observed outcome.“
– This value of 𝑝 makes the outcome ”least surprising.”
Maximum-likelihood estimation Predictions versus Estimates
(𝐻,𝐻, 𝐻).
13 .
• 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?“
Maximum-likelihood estimation Maximum-likelihood map matching?
Марков Chains
Андрей Марков 1856 - 1922
Георгій Вороний 1868 - 1908
Борис Делоне 1890 - 1980
Wacław Sierpiński 1882 - 1969
Пафнутий Чебышёв 1821 - 1894
Марков Chains
Voronoi 1856 - 1922
Delaunay 1890 - 1980
Sierpinski 1882 - 1969
Chebyshev 1821 - 1894
Markov 1856 - 1922
• 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
• Possible states 𝑍 = 𝑆𝑜𝑛𝑛𝑒, 𝑅𝑒𝑔𝑒𝑛
• Pr [ 𝑋1 = 𝑅𝑒𝑔𝑒𝑛 ] = 0.3
• Pr 𝑋1 = 𝑆𝑜𝑛𝑛𝑒 = 0.7
• Pr 𝑋𝑛+1 = 𝑅𝑒𝑔𝑒𝑛 𝑋𝑛 = 𝑅𝑒𝑔𝑒𝑛 ] = 0.7
• Pr 𝑋𝑛+1 = 𝑆𝑜𝑛𝑛𝑒 𝑋𝑛 = 𝑅𝑒𝑔𝑒𝑛 ] = 0.3
• Pr 𝑋𝑛+1 = 𝑅𝑒𝑔𝑒𝑛 𝑋𝑛 = 𝑆𝑜𝑛𝑛𝑒 ] = 0.2
• Pr 𝑋𝑛+1 = 𝑆𝑜𝑛𝑛𝑒 𝑋𝑛 = 𝑆𝑜𝑛𝑛𝑒 ] = 0.8
Markov Chains Example
• Possible states 𝑍 = 𝑆𝑜𝑛𝑛𝑒, 𝑅𝑒𝑔𝑒𝑛
• Pr [ 𝑋1 = 𝑅𝑒𝑔𝑒𝑛 ] = 0.3
• Pr 𝑋1 = 𝑆𝑜𝑛𝑛𝑒 = 0.7
Markov Chains
Sonne Regen
0.8 0.7
0.2
0.3
Pr 𝑋2 = 𝑆𝑜𝑛𝑛𝑒 ?
Example
• Possible states 𝑍 = 𝑆𝑜𝑛𝑛𝑒, 𝑅𝑒𝑔𝑒𝑛
• Pr [ 𝑋2 = 𝑅𝑒𝑔𝑒𝑛 ] = 0.35
• Pr 𝑋2 = 𝑆𝑜𝑛𝑛𝑒 = 0.65
Markov Chains
Sonne Regen
0.8 0.7
0.2
0.3
Pr 𝑋3 = 𝑅𝑒𝑔𝑒𝑛 ?
Example
• 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
Hidden Markov Models
Hidden Markov Model
Hidden Markov Model
Gegeben:
Beobachtungen O = 〈o1, . . . , on〉, je eine pro Zeitpunkt
mogliche Systemzustande Z
fur jeden Systemzustand z ∈ Z und jede Beobachtung o
– die Wahrscheinlichkeit Pr(o | z) oder
– die Wahrscheinlichkeitsdichte f (o | z),
dass o bei Zustand z beobachtet wird
fur jedes Paar von Zustanden z1, z2 ∈ Z die Wahrscheinlichkeit
Pr(z2 | was z1 before),
also die Wahrscheinlichkeit fur z2 bei Kenntnis, dass zuvor z1vorherrschte (Ubergangswahrscheinlichkeit)
fur jeden Zustand z ∈ Z die (a-priori-)Wahrscheinlichkeit Pr(z)
Hidden Markov Model
Gegeben:
Beobachtungen O = 〈o1, . . . , on〉, je eine pro Zeitpunkt
mogliche Systemzustande Z
fur jeden Systemzustand z ∈ Z und jede Beobachtung o
– die Wahrscheinlichkeit Pr(o | z) oder
– die Wahrscheinlichkeitsdichte f (o | z),
dass o bei Zustand z beobachtet wird
fur jedes Paar von Zustanden z1, z2 ∈ Z die Wahrscheinlichkeit
Pr(z2 | was z1 before),
also die Wahrscheinlichkeit fur z2 bei Kenntnis, dass zuvor z1vorherrschte (Ubergangswahrscheinlichkeit)
fur jeden Zustand z ∈ Z die (a-priori-)Wahrscheinlichkeit Pr(z)
Hidden Markov Model
Gegeben:
Beobachtungen O = 〈o1, . . . , on〉, je eine pro Zeitpunkt
mogliche Systemzustande Z
fur jeden Systemzustand z ∈ Z und jede Beobachtung o
– die Wahrscheinlichkeit Pr(o | z) oder
– die Wahrscheinlichkeitsdichte f (o | z),
dass o bei Zustand z beobachtet wird
fur jedes Paar von Zustanden z1, z2 ∈ Z die Wahrscheinlichkeit
Pr(z2 | was z1 before),
also die Wahrscheinlichkeit fur z2 bei Kenntnis, dass zuvor z1vorherrschte (Ubergangswahrscheinlichkeit)
fur jeden Zustand z ∈ Z die (a-priori-)Wahrscheinlichkeit Pr(z)
Hidden Markov Model
Gegeben:
Beobachtungen O = 〈o1, . . . , on〉, je eine pro Zeitpunkt
mogliche Systemzustande Z
fur jeden Systemzustand z ∈ Z und jede Beobachtung o
– die Wahrscheinlichkeit Pr(o | z) oder
– die Wahrscheinlichkeitsdichte f (o | z),
dass o bei Zustand z beobachtet wird
fur jedes Paar von Zustanden z1, z2 ∈ Z die Wahrscheinlichkeit
Pr(z2 | was z1 before),
also die Wahrscheinlichkeit fur z2 bei Kenntnis, dass zuvor z1vorherrschte (Ubergangswahrscheinlichkeit)
fur jeden Zustand z ∈ Z die (a-priori-)Wahrscheinlichkeit Pr(z)
Hidden Markov Model
Gegeben:
Beobachtungen O = 〈o1, . . . , on〉, je eine pro Zeitpunkt
mogliche Systemzustande Z
fur jeden Systemzustand z ∈ Z und jede Beobachtung o
– die Wahrscheinlichkeit Pr(o | z) oder
– die Wahrscheinlichkeitsdichte f (o | z),
dass o bei Zustand z beobachtet wird
fur jedes Paar von Zustanden z1, z2 ∈ Z die Wahrscheinlichkeit
Pr(z2 | was z1 before),
also die Wahrscheinlichkeit fur z2 bei Kenntnis, dass zuvor z1vorherrschte (Ubergangswahrscheinlichkeit)
fur jeden Zustand z ∈ Z die (a-priori-)Wahrscheinlichkeit Pr(z)
Hidden Markov Model
Pr(S | O) = f (O | S) · Pr(S)/f (O)
Gesucht:Folge S = 〈z1, . . . , zn〉 von Zustanden, die sich am besten mitgegebenen Beobachtungen erklaren lasst, also Pr(S | O)maximimiert.
Hidden Markov Model
Pr(S | O) = f (O | S) · Pr(S)/f (O)
Gesucht:Folge S = 〈z1, . . . , zn〉 von Zustanden, die sich am besten mitgegebenen Beobachtungen erklaren lasst, also Pr(S | O)maximimiert.
Hidden Markov Model
Pr(S | O) = f (O | S) · Pr(S)/f (O)
f (O | S) = f (o1 | z1) · . . . · f (on | zn)
Gesucht:Folge S = 〈z1, . . . , zn〉 von Zustanden, die sich am besten mitgegebenen Beobachtungen erklaren lasst, also Pr(S | O)maximimiert.
Hidden Markov Model
Pr(S | O) = f (O | S) · Pr(S)/f (O)
Pr(S) = Pr(z1) ·Pr(z2 | was z1 before) · . . . ·Pr(zn | was zn−1 before)
Gesucht:Folge S = 〈z1, . . . , zn〉 von Zustanden, die sich am besten mitgegebenen Beobachtungen erklaren lasst, also Pr(S | O)maximimiert.
Hidden Markov Model
s t
z02
z12
z22
z01
z11
z21
z03
z13
z23
f (o1 | z01 ) · Pr(z02 | was z01 before) f (o2 | z02 ) · Pr(z03 | was z02 before)
f (o3 | z03 )Pr(z01 )
Z1 Z2 Z3
Hidden Markov Model
s t
z02
z12
z22
z01
z11
z21
z03
z13
z23
f (o1 | z01 ) · Pr(z02 | was z01 before) f (o2 | z02 ) · Pr(z03 | was z02 before)
f (o3 | z03 )Pr(z01 )
s-t-path of maximum weight product= state sequence S that maximizes Pr (S | O)
Z1 Z2 Z3
Hidden Markov Model – ein BeispielGegeben:
Folge von BeobachtungenO = 〈o1, . . . , on〉 = 〈nass, nass, trocken, nass, trocken〉Menge moglicher Systemzustande: Z = {Sonne, Regen}Beobachtungswahrscheinlichkeiten:
Pr(nass | Sonne) = 0.1Pr(trocken | Sonne) = 0.9Pr(nass | Regen) = 0.95Pr(trocken | Regen) = 0.05
Ubergangswahrscheinlichkeiten:
Pr(Regen | zuvor Regen) = 0.7Pr(Sonne | zuvor Regen) = 0.3Pr(Regen | zuvor Sonne) = 0.2Pr(Sonne | zuvor Sonne) = 0.8
A-Priori-Wahrscheinlichkeiten: Pr(Regen) = 0.3, Pr(Sonne) = 0.7
Gesucht: Folge S = 〈s1, . . . , sn〉 von Zustanden, so dass Pr(S | O) maximal ist.
Hidden Markov Model – ein Beispiel
Sonne Sonne Sonne Sonne Sonne
Regen Regen Regen Regen Regen
s t
〈o1, o2, o3, o4, o5〉 = 〈nass, nass, trocken, nass, trocken〉
Hidden Markov Model – ein Beispiel
s t
〈o1, o2, o3, o4, o5〉 = 〈nass, nass, trocken, nass, trocken〉
Hidden Markov Model – ein Beispiel
s t
Pr(o1 | Sonne) · Pr(Sonne | war Sonne zuvor)
〈o1, o2, o3, o4, o5〉 = 〈nass, nass, trocken, nass, trocken〉
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
〈o1, o2, o3, o4, o5〉 = 〈nass, nass, trocken, nass, trocken〉
Pr(nass | Sonne) · Pr(Sonne | war Sonne zuvor)
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
0.1 · 0.8
〈o1, o2, o3, o4, o5〉 = 〈nass, nass, trocken, nass, trocken〉
0.1 · 0.8 0.9 · 0.8 0.1 · 0.8
0.95 · 0.7 0.95 · 0.7 0.05 · 0.7 0.95 · 0.7
0.95 · 0.3 0.95 · 0.3 0.05 · 0.3 0.95 · 0.3
0.1 · 0.2 0.1 · 0.2 0.9 · 0.2 0.1 · 0.2
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
〈o1, o2, o3, o4, o5〉 = 〈nass, nass, trocken, nass, trocken〉
0.08 0.08 0.72 0.08
0.665 0.035
0.285 0.285 0.015 0.285
0.02 0.02 0.18 0.02
0.665 0.6651
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
〈o1, o2, o3, o4, o5〉 = 〈nass, nass, trocken, nass, trocken〉
0.08 0.08 0.72 0.08
0.665 0.035
0.285 0.285 0.015 0.285
0.02 0.02 0.18 0.02
0.665 0.665
Pr(trocken | Sonne)
Pr(trocken | Regen)
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
〈o1, o2, o3, o4, o5〉 = 〈nass, nass, trocken, nass, trocken〉
0.08 0.08 0.72 0.08
0.665 0.035
0.285 0.285 0.015 0.285
0.02 0.02 0.18 0.02
0.665 0.665
0.9
0.051
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
〈o1, o2, o3, o4, o5〉 = 〈nass, nass, trocken, nass, trocken〉
0.08 0.08 0.72 0.08
0.665 0.035
0.285 0.285 0.015 0.285
0.02 0.02 0.18 0.02
0.665 0.665
0.9
0.05
Pr(Sonne)
Pr(Regen)
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
〈o1, o2, o3, o4, o5〉 = 〈nass, nass, trocken, nass, trocken〉
0.08 0.08 0.72 0.08
0.665 0.035
0.285 0.285 0.015 0.285
0.02 0.02 0.18 0.02
0.665 0.665
0.9
0.05
0.7
0.31
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
〈o1, o2, o3, o4, o5〉 = 〈nass, nass, trocken, nass, trocken〉
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
log2
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.7371
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
−1.737
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
−1.737
−0.515
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
−1.737
−0.515
−2.326
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
−1.737
−0.515
−2.326
−3.548
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
−1.737
−0.515
−2.326
−3.548
−2.915
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
−4.137
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
−1.737
−0.515
−2.326
−3.548
−2.915
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
−6.611
−4.137
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
−1.737
−0.515
−2.326
−3.548
−2.915
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
−6.611
−4.137
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
−1.737
−0.515
−2.326
−3.548
−2.915
−4.611
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
−7.200−6.611
−4.137
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
−1.737
−0.515
−2.326
−3.548
−2.915
−4.611
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
−7.200−6.611
−4.137
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
−1.737
−0.515
−2.326
−3.548
−2.915
−4.611 −8.255
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
−7.200−6.611
−4.137
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
−1.737
−0.515
−2.326
−3.548
−2.915
−4.611 −8.255 −8.407
1
2 4
3
6
5
8
7
10
9
Hidden Markov Model – ein Beispiel
−7.200−6.611
−4.137
s t
−3.644 −3.644 −0.474 −3.644
−0.589 −4.837
−1.811 −1.811 −6.059 −1.811
−5.644 −5.644 −2.474 −5.644
−0.589 −0.589
−0.152
−4.322
−0.515
−1.737
−1.737
−0.515
−2.326
−3.548
−2.915
−4.611 −8.255 −8.407
O = 〈o1, o2, o3, o4, o5〉 = 〈nass, nass, trocken, nass, trocken〉S = 〈Regen, Regen, Sonne, Sonne, Sonne〉
1
2 4
3
6
5
8
7
10
9
Algorithmus
Bring V in topologische Ordnung → v1, . . . , vnv1.d = 0v1.π = ni lfor j = 2 to n do
vj .d = −∞vj .π = ni lfor vivj ∈ A do
if vi .d + w(vivj) > vj .d thenvj .d = vi .d + w(vivj)vj .π = vi
LongestPath(directed acyclic graph G = (V ,A))
u.d : Lange des langsten Wegs von v1 nach uu.π: Vorganger von u im langsten Weg von v1 nach uw(uv): Gewicht von Kante uv
Algorithmus
Bring V in topologische Ordnung → v1, . . . , vnv1.d = 0v1.π = ni lfor j = 2 to n do
vj .d = −∞vj .π = ni lfor vivj ∈ A do
if vi .d + w(vivj) > vj .d thenvj .d = vi .d + w(vivj)vj .π = vi
LongestPath(directed acyclic graph G = (V ,A))
u.d : Lange des langsten Wegs von v1 nach uu.π: Vorganger von u im langsten Weg von v1 nach uw(uv): Gewicht von Kante uv
Laufzeit: O(|V |+ |A|)
Algorithmus
Bring V in topologische Ordnung → v1, . . . , vnv1.d = 0v1.π = ni lfor j = 2 to n do
vj .d = −∞vj .π = ni lfor vivj ∈ A do
if vi .d + w(vivj) > vj .d thenvj .d = vi .d + w(vivj)vj .π = vi
LongestPath(directed acyclic graph G = (V ,A))
u.d : Lange des langsten Wegs von v1 nach uu.π: Vorganger von u im langsten Weg von v1 nach uw(uv): Gewicht von Kante uv
Laufzeit: O(|V |+ |A|) Laufzeit Dijkstra: O(|V | log |V |+ |A|)