Title: SINGLE-SOURCE SHORTEST PATHS
1SINGLE-SOURCE SHORTEST PATHS
2Shortest Path Problems
- Directed weighted graph.
- Path length is sum of weights of edges on path.
- The vertex at which the path begins is the source
vertex. - The vertex at which the path ends is the
destination vertex.
3Example
- Consider Source node 1 and destination node 7
- A direct path between Nodes 1 and 7 will cost 14
4Example
- A shorter path will cost only 11
5Shortest-Path Variants
- Single-source single-destination (1-1) Find the
shortest path from source s to destination v. - Single-source all-destination(1-Many) Find the
shortest path from s to each vertex v. - Single-destination shortest-paths (Many-1) Find
a shortest path to a given destination vertex t
from each vertex v. - All-pairs shortest-paths problem (Many-Many)
Find a shortest path from u to v for every pair
of vertices u and v.
We talk about directed, weighted graphs
6Shortest-Path Variants (Contd)
- For un-weighted graphs, the shortest path problem
is mapped to BFS - Since all weights are the same, we search for the
smallest number of edges
BFS creates a tree called BFS-Tree
7Shortest-Path Variants
No need to consider different solution or
algorithm for each variant (we reduce it into
two types)
- Single-source single-destination (1-1) Find the
shortest path from source s to destination v. - Single-source all-destination(1-Many) Find the
shortest path from s to each vertex v. - Single-destination shortest-paths (Many-1) Find
a shortest path to a given destination vertex t
from each vertex v. - All-pairs shortest-paths problem (Many-Many)
Find a shortest path from u to v for every pair
of vertices u and v.
8Shortest-Path Variants
Single-Source Single-Destination (1-1) No good solution that beats 1-M variant Thus, this problem is mapped to the 1-M variant Single-Source All-Destination (1-M) Need to be solved (several algorithms) We will study this one
All-Sources Single-Destination (M-1) Reverse all edges in the graph Thus, it is mapped to the (1-M) variant All-Sources All-Destinations (M-M) Need to be solved (several algorithms) We will study it (if time permits)
9Shortest-Path Variants
Single-Source Single-Destination (1-1) No good solution that beats 1-M variant Thus, this problem is mapped to the 1-M variant Single-Source All-Destination (1-M) Need to be solved (several algorithms) We will study this one
All-Sources Single-Destination (M-1) Reverse all edges in the graph Thus, it is mapped to the (1-M) variant All-Sources All-Destinations (M-M) Need to be solved (several algorithms) We will study it (if time permits)
10Introduction
- Generalization of BFS to handle weighted graphs
- Direct Graph G ( V, E ), edge weight fn w E
? R - In BFS w(e)1 for all e Î E
-
- Weight of path p v1 v2 vk is
11Shortest Path
- Shortest Path Path of minimum weight
- d(u,v)
p
min?(p) u v if there is a path from u
to v, ? otherwise.
12Several Properties
131- Optimal Substructure Property
- Theorem Subpaths of shortest paths are also
shortest paths - Let d(1,k) ltv1, ..i, .. j.., .. ,vk gt be a
shortest path from v1 to vk - Let d(i,j) ltvi, ... ,vj gt be subpath of d(1,k)
from vi to vj - for any i, j
- Then d(I,j) is a shortest path from vi to vj
141- Optimal Substructure Property
- Proof By cut and paste
-
- If some subpath were not a shortest path
- We could substitute a shorter subpath to create a
shorter total path - Hence, the original path would not be shortest
path
v5
v7
v1
v4
v6
v3
v0
v2
152- No Cycles in Shortest Path
- Definition
- d(u,v) weight of the shortest path(s) from u to
v - Negative-weight cycle The problem is undefined
- can always get a shorter path by going around the
cycle again - Positive-weight cycle can be taken out and
reduces the cost
cycle lt 0
s
v
163- Negative-weight edges
- No problem, as long as no negative-weight cycles
are reachable from the source (allowed)
174- Triangle Inequality
- Lemma 1 for a given vertex s in V and for every
edge (u,v) in E, - d(s,v) d(s,u) w(u,v)
- Proof shortest path s v is no longer than
any other path. - in particular the path that takes the shortest
path s v and - then takes cycle (u,v)
-
u
v
s
18Algorithms to Cover
- Dijkstras Algorithm
- Shortest Path is DAGs
19Initialization
- Maintain dv for each v in V
- dv is called shortest-path weight estimate
- and it is upper bound on d(s,v)
INIT(G, s) for each v ? V do dv ?
8 pv ? NIL ds ? 0
Upper bound
Parent node
20Relaxation
RELAX(u, v) if dv gt duw(u,v)
then dv ? duw(u,v)
pv ? u
When you find an edge (u,v) then check this
condition and relax dv if possible
u
v
u
v
2
2
5
5
9
6
Change dv
No chnage
5
7
5
6
2
2
v
u
v
u
21Algorithms to Cover
- Dijkstras Algorithm
- Shortest Path is DAGs
22Dijkstras Algorithm For Shortest Paths
- Non-negative edge weight
- Like BFS If all edge weights are equal, then use
BFS, otherwise use this algorithm -
- Use Q min-priority queue keyed on dv values
-
23Dijkstras Algorithm For Shortest Paths
- DIJKSTRA(G, s)
- INIT(G, s)
- S?Ø gt set of discovered nodes
- Q?VG
- while Q ?Ø do
- u?EXTRACT-MIN(Q)
- S?S U u
- for each v in Adju do
- RELAX(u, v) gt May cause
- gt DECREASE-KEY(Q, v, dv)
-
24Example Initialization Step
25Example
3
26Example
2
27Example
2
28Example
10
29Example
30Example
u
5
31Dijkstras Algorithm Analysis
O(V)
O(V Log V)
Total in the loop O(V Log V)
Total in the loop O(E Log V)
Time Complexity O (E Log V)
32Algorithms to Cover
- Dijkstras Algorithm
- Shortest Path is DAGs
33Key Property in DAGs
- If there are no cycles ? it is called a DAG
- In DAGs, nodes can be sorted in a linear order
such that all edges are forward edges - Topological sort
34Single-Source Shortest Paths in DAGs
- Shortest paths are always well-defined in dags
- no cycles gt no negative-weight cycles even if
there are negative-weight edges - Idea If we were lucky
- To process vertices on each shortest path from
left to right, we would be done in 1 pass
35Single-Source Shortest Paths in DAGs
- DAG-SHORTEST PATHS(G, s)
- TOPOLOGICALLY-SORT the vertices of G
- INIT(G, s)
- for each vertex u taken in topologically
sorted order do - for each v in Adju do
- RELAX(u, v)
36Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
?
?
?
?
4
3
2
37Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
?
?
?
?
4
3
2
38Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
2
6
?
?
4
3
2
39Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
2
6
6
4
4
3
2
40Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
2
6
5
4
4
3
2
41Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
2
6
5
3
4
3
2
42Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
2
6
5
3
4
3
2
43Single-Source Shortest Paths in DAGs Analysis
O(VE)
- DAG-SHORTEST PATHS(G, s)
- TOPOLOGICALLY-SORT the vertices of G
- INIT(G, s)
- for each vertex u taken in topologically
sorted order do - for each v in Adju do
- RELAX(u, v)
O(V)
Total O(E)
Time Complexity O (V E)