Floyd-Warshall DP algorithm

10
All-Pairs Shortest Paths Given: Digraph G=(V,E), where V={1,2,…,n}, possibly negative costs c(i,j), BUT no negative cycles! ( c(i,j) = means no edge (i,j) in G ) Compute: D(i,j) = cost of cheapest path from i to j, for all i,j in V. Later, will also want an algorithm that, given (i,j), finds a cheapest path from i to j. Observation: Every cheapest path from i to j must be simple, i.e., with no cycles! Floyd-Warshall DP algorithm Step 1: Array Step 2: Recurrence Lecture 11 Monday, June 12, 2017 11:10 PM slide_11 Page 1

Transcript of Floyd-Warshall DP algorithm

Page 1: Floyd-Warshall DP algorithm

All-Pairs Shortest Paths

Given: Digraph G=(V,E), where V={1,2,…,n}, possibly negative costs c(i,j), BUT no negative cycles! ( c(i,j) = means no edge (i,j) in G )

Compute: D(i,j) = cost of cheapest path from i to j, for all i,j in V.

Later, will also want an algorithm that, given (i,j), finds a cheapest path from i to j.

Observation: Every cheapest path from i to j must be simple, i.e., with no cycles!

Floyd-Warshall DP algorithm

Step 1: Array

Step 2: Recurrence

Lecture 11Monday, June 12, 2017 11:10 PM

slide_11 Page 1

Page 2: Floyd-Warshall DP algorithm

Step 3: Algorithm to fill in the array.

Step 4: Recover shortest paths from the array

slide_11 Page 2

Page 3: Floyd-Warshall DP algorithm

slide_11 Page 3

Page 4: Floyd-Warshall DP algorithm

slide_11 Page 4

Page 5: Floyd-Warshall DP algorithm

slide_11 Page 5

Page 6: Floyd-Warshall DP algorithm

slide_11 Page 6

Page 7: Floyd-Warshall DP algorithm

slide_11 Page 7

Page 8: Floyd-Warshall DP algorithm

slide_11 Page 8

Page 9: Floyd-Warshall DP algorithm

slide_11 Page 9

Page 10: Floyd-Warshall DP algorithm

slide_11 Page 10