100% found this document useful (1 vote)
283 views

Single Source Shortest Path Unit-3

The document summarizes the single-source shortest paths problem in directed weighted graphs. It discusses how the problem can be formulated as single-source single-destination, single-source all-destination, single-destination, or all-pairs variants. It also covers properties like optimal substructure, no negative cycles, and triangle inequality. Finally, it introduces Dijkstra's algorithm, which uses relaxation to iteratively find shortest paths from a single source vertex to all others.

Uploaded by

Phani Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
283 views

Single Source Shortest Path Unit-3

The document summarizes the single-source shortest paths problem in directed weighted graphs. It discusses how the problem can be formulated as single-source single-destination, single-source all-destination, single-destination, or all-pairs variants. It also covers properties like optimal substructure, no negative cycles, and triangle inequality. Finally, it introduces Dijkstra's algorithm, which uses relaxation to iteratively find shortest paths from a single source vertex to all others.

Uploaded by

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

SINGLE-SOURCE SHORTEST PATHS

Shortest 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.

t x
6
3 9
3
4
2 1
s 0 2 7
5 3
5 6 11
y z
Example
8 6
1
2 3
3 1
16
6 7 4 5 10
4
2 4 7
5 3

14

• Consider Source node 1 and destination node 7


• A direct path between Nodes 1 and 7 will cost 14
Example
8 6
1
2 3
3 1
16
6 7 4 5 10
4
2 4 7
5 3

14

• A shorter path will cost only 11


Shortest-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


Shortest-Path Variants (Cont’d)
• 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

1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3
Shortest-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.
Shortest-Path Variants

Single-Source Single-Destination (1-1) Single-Source All-Destination (1-M)

-No good solution that beats 1-M variant -Need to be solved (several algorithms)
-Thus, this problem is mapped to the 1-M -We will study this one
variant

All-Sources Single-Destination (M-1) All-Sources All-Destinations (M-M)

-Reverse all edges in the graph -Need to be solved (several algorithms)


-Thus, it is mapped to the (1-M) variant -We will study it (if time permits)
Shortest-Path Variants

Single-Source Single-Destination (1-1) Single-Source All-Destination (1-M)

-No good solution that beats 1-M variant -Need to be solved (several algorithms)
-Thus, this problem is mapped to the 1-M -We will study this one
variant

All-Sources Single-Destination (M-1) All-Sources All-Destinations (M-M)

-Reverse all edges in the graph -Need to be solved (several algorithms)


-Thus, it is mapped to the (1-M) variant -We will study it (if time permits)
Introduction

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
k 1
w( p)   w(vi , vi 1 )
i 1
Shortest Path
Shortest Path = Path of minimum weight

δ(u,v)=

p
min{ω(p) : u v}; if there is a path from u to v,
 otherwise.
Several Properties
1- Optimal Substructure Property

Theorem: Subpaths of shortest paths are also shortest paths

• Let δ(1,k) = <v1, ..i, .. j.., .. ,vk > be a shortest path from v1 to vk
• Let δ(i,j) = <vi, ... ,vj > be subpath of δ(1,k) from vi to vj
for any i, j
• Then δ(I,j) is a shortest path from vi to vj
1- Optimal Substructure Property

Proof: By cut and paste

v0 v1 v2 v3 v4 v5 v6 v7

• 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
2- No Cycles in Shortest Path
Definition:
• δ(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

cycle
<0
s v
• Positive-weight cycle : can be taken out and reduces the cost
3- Negative-weight edges

• No problem, as long as no negative-weight cycles are


reachable from the source (allowed)
4- Triangle Inequality
Lemma 1: for a given vertex s in V and for every edge (u,v)  E,
• δ(s,v) ≤ δ(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
Algorithms to Cover

• Dijkstra’s Algorithm

• Shortest Path is DAGs


Initialization

• Maintain d[v] for each v in V


• d[v] is called shortest-path weight estimate
and it is upper bound on δ(s,v)
INIT(G, s)
for each v  V do Upper bound

d[v] ← ∞
π[v] ← NIL Parent node

d[s] ← 0
Relaxation
When you find an edge (u,v) then
RELAX(u, v) check this condition and relax d[v] if
if d[v] > d[u]+w(u,v) then possible

d[v] ← d[u]+w(u,v)
π[v] ← u
u v u v
2 2
   
Change d[v] No chnage

 2   2 
u v u v
Algorithms to Cover

• Dijkstra’s Algorithm

• Shortest Path is DAGs


Dijkstra’s 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 d[v] values


Dijkstra’s Algorithm For Shortest Paths
DIJKSTRA(G, s)
INIT(G, s)
S←Ø > set of discovered nodes
Q←V[G]
while Q ≠Ø do
u←EXTRACT-MIN(Q)
S←S U {u}
for each v in Adj[u] do
RELAX(u, v) > May cause
> DECREASE-KEY(Q, v, d[v])
Example: Initialization Step

DIJKSTRA(G, s)
u v
INIT(G, s)
1
S←Ø > set of discovered nodes ¥ ¥
10
Q←V[G]
2 3 9
while Q ≠Ø do s 0 4 6
u←EXTRACT-MIN(Q) 7
5
S←S U {u} ¥ ¥
2
for each v in Adj[u] do
x y
RELAX(u, v) > May cause
> DECREASE-KEY(Q, v, d[v])
Example
u v
1
 
10
2 3 9
s  4 6
7
5
 2 
x y
Example
DIJKSTRA(G, s) u v
INIT(G, s)
1
S←Ø > set of discovered nodes  
Q←V[G] 10
9
while Q ≠Ø do
2 3
u←EXTRACT-MIN(Q) s 4 6
S←S U {u} 
for each v in Adj[u] do 7
RELAX(u, v) > May cause 5
> DECREASE-KEY(Q, v, d[v])  2 
x y
Example
u v
DIJKSTRA(G, s)
INIT(G, s) 1
S←Ø > set of discovered nodes
 
10
Q←V[G]
while Q ≠Ø do 2 3 9
u←EXTRACT-MIN(Q) s  4 6
S←S U {u}
for each v in Adj[u] do 7
5
RELAX(u, v) > May cause
> DECREASE-KEY(Q, v, d[v])  2

x y
Example
DIJKSTRA(G, s) u v
INIT(G, s) 1
S←Ø > set of discovered nodes  
10
Q←V[G]
while Q ≠Ø do 2 3 9
u←EXTRACT-MIN(Q) s  4 6
S←S U {u}
for each v in Adj[u] do 7
5
RELAX(u, v) > May cause
> DECREASE-KEY(Q, v, d[v])
 2 
x y
Example
DIJKSTRA(G, s) u v
INIT(G, s) 1
S←Ø > set of discovered nodes  
Q←V[G] 10
while Q ≠Ø do
2 3 9
u←EXTRACT-MIN(Q) s
S←S U {u}
 4 6
for each v in Adj[u] do 7
RELAX(u, v) > May cause
5
> DECREASE-KEY(Q, v, d[v])  2 
x y
Example
u v
1
 
10
2 3 9
s  4 6
7
5
 2

x y
Dijkstra’s Algorithm Analysis
O(V)
DIJKSTRA(G, s)
INIT(G, s)
S←Ø > set of discovered nodes
Q←V[G] O(V Log V)
while Q ≠Ø do
u←EXTRACT-MIN(Q) Total in the loop: O(V Log V)
S←S U {u}
for each v in Adj[u] do
RELAX(u, v) > May cause
> DECREASE-KEY(Q, v, d[v])
Total in the loop: O(E Log V)

Time Complexity: O (E Log V)


Algorithms to Cover

• Dijkstra’s Algorithm

• Shortest Path is DAGs


Key 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
Single-Source Shortest Paths in DAGs

• Shortest paths are always well-defined in dags


 no cycles => 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
Single-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 Adj[u] do
RELAX(u, v)
Example
6 1
r s t u v w
5 2 7 –1 –2
 0    

4
3
2
Example
6 1
r s t u v w
5 2 7 –1 –2
 0    

4
3
2
Example
6 1
r s t u v w
5 2 7 –1 –2
 0 2 6  

4
3
2
Example
6 1
r s t u v w
5 2 7 –1 –2
 0 2 6 6 4

4
3
2
Example
6 1
r s t u v w
5 2 7 –1 –2
 0 2 6 5 4

4
3
2
Example
6 1
r s t u v w
5 2 7 –1 –2
 0 2 6 5 3

4
3
2
Example
6 1
r s t u v w
5 2 7 –1 –2
 0 2 6 5 3

4
3
2
Single-Source Shortest Paths in
DAGs: Analysis
O(V+E)
DAG-SHORTEST PATHS(G, s)
TOPOLOGICALLY-SORT the vertices of G
INIT(G, s) O(V)
for each vertex u taken in topologically sorted order do
for each v in Adj[u] do
RELAX(u, v) Total O(E)

Time Complexity: O (V + E)

You might also like