You are on page 1of 28

Algorithms

Shortest Paths II
• Bellman-Ford algorithm
• Floyd-Warshal algorithm
4

November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.1
Negative-weight cycles
Recall: If a graph G = (V, E) contains a negative-
weight cycle, then some shortest paths may not exist.

Example:
<0

uu

vv
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.2
Bellman-Ford algorithm
for each v ∈ V
do d[v] ← ∞ initialization
d[s] ← 0
for i ← 1 to ????
do for each edge (u, v) ∈ E
do if d[v] > d[u] + w(u, v) relaxation
then d[v] ← d[u] + w(u, v) step

Intuition: In the beginning start with paths 0 edges.


At step i: consider paths that use upto i edges.

November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.3
Bellman-Ford algorithm
for each v ∈ V
do d[v] ← ∞ initialization
d[s] ← 0
for i ← 1 to | V | –
1 do for each edge (u, v) ∈ E
do if d[v] > d[u] + w(u, v) relaxation
then d[v] ← d[u] + w(u, v) step

November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.4
Correctness
Theorem. If G = (V, E) contains no negative-
weight cycles, then after the Bellman-Ford
algorithm executes, d[v] = δ(s, v) for all v ∈ V.

Theorem. If G = (V, E) contains no negative-


weight cycles, then after k iterations of
Bellman-Ford algorithm every node knows
the shortest path from v that uses at most k
edges and the distance of this path.

November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.5
All-pairs shortest paths
Input: Digraph G = (V, E), where V = {1, 2,
…, n}, with edge-weight function w : E → R.
Output: n × n matrix of shortest-path lengths
δ(i, j) for all i, j ∈ V.

November 21, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.6
Floyd-Warshall
for k ← 1 to n
do for i ← 1 to n
do for j ← 1 to n
do if dij > dik + dkj
relaxation
then dij ← dik + dkj
Notes:
• In step k above: dij =cost of shortest path from i to j that
uses intermediate nodes only from set {1,2,…k}
• Base k=0: no intermediate nodes; dij = cost of edge <i,j>
• Runs in Θ(V3) time. Simple & Efficient to code.

November 21, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.7
Example of Bellman-Ford

–1 B 2

3 B 2
A 1 E
A 4 –3 E
C 5
D
C D

November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.9
Example of Bellman-Ford


–1 B 2
0 ∞
3 B 2
A 1 EE
A 4 –3
C 5
D
C D
Initialization.
∞ ∞
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.10
Example of Bellman-Ford


–1 B 1
2
0 7 3 ∞
4
3 B 2
A 5 1 8
E
2
A 4 6
–3 E
C 5
D
C D
Order of∞edge relaxation.

November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.11
Example of Bellman-Ford


–1 B 1
2
0 7 3 ∞
4
3 B 2
A 5 1 8
E
2
A 4 6
–3 E
C 5
D
C D
∞ ∞
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.12
Example of Bellman-Ford


–1 B 1
2
0 7 3 ∞
4
3 B 2
A 5 1 8
E
2
A 4 6
–3 E
C 5
D
C D
∞ ∞
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.13
Example of Bellman-Ford


–1 B 1
2
0 7 3 ∞
4
3 B 2
A 5 1 8
E
2
A 4 6
–3 E
C 5
D
C D
∞ ∞
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.14
Example of Bellman-Ford



1 1
2
–1
0
4
7 B 3 ∞
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C D
∞ ∞
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.15
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 ∞
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D

C D
4 ∞
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.16
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 ∞
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C D
4 ∞
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.17
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 ∞
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
4
C D
2 ∞
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.18
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 ∞
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C D
2 ∞
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.19
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 ∞
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C D
End
2 of pass∞1.
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.20
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 1

A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C D
2 ∞
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.21
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 1
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C D
2 ∞
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.22
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 1
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C ∞
D
2 1
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.23
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 1
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C D
2 1
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.24
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 1
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C D
2 1
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.25
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 1
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C D
2 1
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.26
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 1
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C D
2 1
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.27
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 1
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C 1
D
2 −
2
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.28
Example of Bellman-Ford


1 1
2
–1
0
4
7 B 3 1
A 3 2 E
5 B1 2 8

A 4 6
–3 E
C 5
D
C D
End of pass
2 2 (and
− 3 and 4).
2
November 16, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L18.29

You might also like