# SINGLE-SOURCE SHORTEST PATHS - PowerPoint PPT Presentation

PPT – SINGLE-SOURCE SHORTEST PATHS PowerPoint presentation | free to download - id: 670605-YTNmZ

The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
Title:

## SINGLE-SOURCE SHORTEST PATHS

Description:

### SINGLE-SOURCE SHORTEST PATHS Single-Source Shortest Paths in DAGs Shortest paths are always well-defined in dags no cycles = no negative-weight cycles even if there ... – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 44
Provided by: UmutT
Category:
Tags:
Transcript and Presenter's Notes

Title: SINGLE-SOURCE SHORTEST PATHS

1
SINGLE-SOURCE SHORTEST PATHS
2
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.

3
Example
• Consider Source node 1 and destination node 7
• A direct path between Nodes 1 and 7 will cost 14

4
Example
• A shorter path will cost only 11

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

8
Shortest-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)
9
Shortest-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)
10
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

11
Shortest 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.
12
Several Properties
13
1- 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

14
1- 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
15
2- 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
16
3- Negative-weight edges
• No problem, as long as no negative-weight cycles
are reachable from the source (allowed)

17
4- 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
18
Algorithms to Cover
• Dijkstras Algorithm
• Shortest Path is DAGs

19
Initialization
• 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

20
Relaxation
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
21
Algorithms to Cover
• Dijkstras Algorithm
• Shortest Path is DAGs

22
Dijkstras 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

23
Dijkstras 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)

24
Example Initialization Step
25
Example
3
26
Example
2
27
Example
2
28
Example
10
29
Example
30
Example
u
5
31
Dijkstras 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)
32
Algorithms to Cover
• Dijkstras Algorithm
• Shortest Path is DAGs

33
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

34
Single-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

35
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 Adju do
• RELAX(u, v)

36
Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
?
?
?
?
4
3
2
37
Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
?
?
?
?
4
3
2
38
Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
2
6
?
?
4
3
2
39
Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
2
6
6
4
4
3
2
40
Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
2
6
5
4
4
3
2
41
Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
2
6
5
3
4
3
2
42
Example
6
1
u
r
t
s
v
w
5
2
7
2
1
?
0
2
6
5
3
4
3
2
43
Single-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)