shortest path graphalgorithms

77
Graph Algorithms Shortest path problems

Upload: adit-kumar

Post on 11-Nov-2015

42 views

Category:

Documents


1 download

DESCRIPTION

shortest path

TRANSCRIPT

PowerPoint Presentationweight function w: E R and a vertex sV,
find for all vertices vV the minimum possible weight for
path from s to v.
We will discuss two general case algorithms:
Dijkstra's (positive edge weights only)
Bellman-Ford (positive end negative edge weights)
If all edge weights are equal (let's say 1), the problem
is solved by BFS in (V+E) time.
Graph Algorithms
if d[v] > d[u] + w(u,v) then
d[v] d[u] + w(u,v)
p[v] u
Relax(u,v,w)
d[v]
Relax(u,v,w)
d[v]
if d[v] > d[u] + w(u,v) then
d[v] d[u] + w(u,v)
p[v] u
T(V,E) = TI(V,E) + (V) + V (log V) + E TR(V,E) =
= (V) + (V) + V (log V) + E (1) = (E + V log V)
Graph Algorithms
Graph Algorithms
for (u,v) E[G] do
Relax(u,v,w)
if d[v] > d[u] + w(u,v) then
return false
return true
Graph Algorithms
for (u,v) E[G] do
Relax(u,v,w)
if d[v] > d[u] + w(u,v) then
return false
return true
= (V) + V E (1) + E =
= (V E)
Graph Algorithms
SSSP-DAG(graph (G,w), vertex s)
InitializeSingleSource(G, s)
for each vertex u taken in topologically sorted order do
for each vertex v Adj[u] do
Relax(u,v,w)
5
2
7
-1
-2
6
1
3
4
2












6
6
6
4
6
6
4
6
5
4
6
5
4
6
5
3
6
5
3
T(V,E) = (V + E) + (V) + (V) + E (1) = (V + E)
SSSP-DAG(graph (G,w), vertex s)
InitializeSingleSource(G, s)
for each vertex u taken in topologically sorted order do
for each vertex v Adj[u] do
Relax(u,v,w)
Graph Algorithms
Graph Algorithms
Graph Algorithms
Graph Algorithms
Graph Algorithms
Graph Algorithms
Graph Algorithms
Graph Algorithms
Graph Algorithms
Given graph (directed or undirected) G = (V,E) with
weight function w: E R find for all pairs of vertices
u,v V the minimum possible weight for path from u to v.
Graph Algorithms
Floyd-Warshall Algorithm - Idea
ds,t(i) – the shortest path from s to t containing only vertices
v1, ..., vi
ds,t(0) = w(s,t)
Graph Algorithms
dij(k) min(dij(k-1), dik(k-1) + dkj(k-1))
Graph Algorithms
dij(k) min(dij(k-1), dik(k-1) + dkj(k-1))
Graph Algorithms
Graph Algorithms