Top Banner
Graph Algorithms Shortest path problems
77

Shortest Path Graphalgorithms

Nov 11, 2015

Download

Documents

Adit Kumar

shortest path
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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