0% found this document useful (0 votes)
62 views7 pages

18: Shortest Paths IV - Speeding Up Dijkstra: (Stop If U T!)

This document discusses techniques for speeding up the Dijkstra shortest path algorithm. It covers bidirectional search, which performs simultaneous forward and backward searches from the source and target nodes. It also discusses goal-directed or A* search, which modifies edge weights based on a potential function to guide the search towards the target. Finally, it describes using landmark nodes to define heuristic potentials for goal-directed search.

Uploaded by

INNOVAULT
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views7 pages

18: Shortest Paths IV - Speeding Up Dijkstra: (Stop If U T!)

This document discusses techniques for speeding up the Dijkstra shortest path algorithm. It covers bidirectional search, which performs simultaneous forward and backward searches from the source and target nodes. It also discusses goal-directed or A* search, which modifies edge weights based on a potential function to guide the search towards the target. Finally, it describes using landmark nodes to define heuristic potentials for goal-directed search.

Uploaded by

INNOVAULT
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Lecture 18 Shortest Paths IV: Speeding Up Dijkstra 6.

006 Fall 2011

Lecture 18: Shortest Paths IV - Speeding


up Dijkstra
Lecture Overview
• Single-source single-target Dijkstra

• Bidirectional search

• Goal directed search - potentials and landmarks

Readings
Wagner, Dorothea, and Thomas Willhalm. ”Speed-up Techniques for Shortest-Path
Computations.” Proceedings of the 24th International Symposium on Theoretical
Aspects of Computer Science (STACS 2007): 23-36. Read up to Section 3.2.

DIJKSTRA single-source, single-target

Initialize()
Q ← V [G]
while Q = φ
do u ← EXTRACT MIN(Q) (stop if u = t!)
for each vertex v t Adj[u]
do RELAX(u, v, w)

Observation: If only shortest path from s to t is required, stop when t is removed


from Q, i.e., when u = t

1
Lecture 18 Shortest Paths IV: Speeding Up Dijkstra 6.006 Fall 2011

S t

backward search
forward search

Figure 1: Bi-directional Search Idea.

Bi-Directional Search
Note: Speedup techniques covered here do not change worst-case behavior, but reduce
the number of visited vertices in practice.

Bi-D Search

Alternate forward search from s


backward search from t
(follow edges backward)
df (u) distances for forward search
db (u) distances for backward search

Algorithm terminates when some vertex w has been processed, i.e., deleted from the
queue of both searches, Qf and Qb
Subtlety: After search terminates, find node x with minimum value of df (x) + db (x).
x may not be the vertex w that caused termination as in example to the left!
Find shortest path from s to x using Πf and shortest path backwards from t to x
using Πb . Note: x will have been deleted from either Qf or Qb or both.

2
Lecture 18 Shortest Paths IV: Speeding Up Dijkstra 6.006 Fall 2011

u u’
3

3
3

s t
5
5

Figure 2: Bi-D Search Example.

Minimum value for df (x) + db (x) over all vertices that have been processed in at least
one search (see Figure 3):

df (u) + db (u) = 3 + 6 = 9

df (u' ) + db (u' ) = 6 + 3 = 9
df (w) + db (w) = 5 + 5 = 10

3
Lecture 18 Shortest Paths IV: Speeding Up Dijkstra 6.006 Fall 2011

Goal-Directed Search or A∗
Modify edge weights with potential function over vertices.

w (u, v) = w (u, v) − λ(u) + λ(v)

Search toward target as shown in Figure 4:

Correctness
w(p) = w(p) − λt (s) + λt (t)
So shortest paths are maintained in modified graph with w weights (see Figure 5).
To apply Dijkstra, we need w(u, v) ≥ 0 for all (u, v).
Choose potential function appropriately, to be feasible.

Landmarks
Small set of landmarks LCV . For all u ∈ V, l ∈ L, pre-compute δ(u, l).
(l)
Potential λt (u) = δ(u, l) − δ(t, l) for each l.
(l)
CLAIM: λt is feasible.

Feasibility

(l) (l)
w(u, v) = w(u, v) − λt (u) + λt (v)
= w(u, v) − δ(u, l) + δ(t, l) + δ(v, l) − δ(t, l)
= w(u, v) − δ(u, l) + δ(v, l) ≥ 0 by the Δ -inequality
(l)
λt (u) = max λt (u) is also feasible
lEL

4
Lecture 18 Shortest Paths IV: Speeding Up Dijkstra 6.006 Fall 2011

u u’ Backward u u’
Forward 3 3

3 df (u) = 3
3 3 db(u’) = 3 3
s
s t
5 5 t db(t) = 0
df (s) = 0 5 5

w df (w) = 5
w db (w) = 5

df (u’) = 6 db(u’) = 3
u u’ u u’
Forward 3 Backward 3

3 3 3
3 db(u) = 6
df (u) = 3
s s t
t
5 5 db(t) = 0
df (s) = 0 5 5

df (w) = 5 w db (w) = 5
w

u u’ u u’ db(u’) = 3
Forward 3 Backward 3
df (u’) = 6 df (u’) = 6
3 3 3
3 df (u) = 3 df (u) = 3
db(u) = 6
s s t
t
5 5 db(t) = 0
5 df (t) = 10 df (s) = 0 5
df (s) = 0 df (t) = 10
db (s) = 10
df (w) = 5 w db (w) = 5
w
df (w) = 5
deleted from both queues
so terminate!

Figure 3: Forward and Backward Search and Termination.

5
Lecture 18 Shortest Paths IV: Speeding Up Dijkstra 6.006 Fall 2011

v’ v
5 5
increase decrease
go uphill go downhill

Figure 4: Targeted Search

p
s t

p’

Figure 5: Modifying Edge Weights.

6
MIT OpenCourseWare
http://ocw.mit.edu

6.006 Introduction to Algorithms


Fall 2011

For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy