chapter 25 all pairs shortest paths n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Chapter 25: All-Pairs Shortest-Paths PowerPoint Presentation
Download Presentation
Chapter 25: All-Pairs Shortest-Paths

Loading in 2 Seconds...

play fullscreen
1 / 44

Chapter 25: All-Pairs Shortest-Paths - PowerPoint PPT Presentation


  • 119 Views
  • Uploaded on

Chapter 25: All-Pairs Shortest-Paths. Some Algorithms. When no negative edges Using Dijkstra’s algorithm: O(V 3 ) Using Binary heap implementation: O(VE lg V ) Using Fibonacci heap: O( VE + V 2 log V ) When no negative cycles Floyd- Warshall [1962] : O(V 3 ) time

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Chapter 25: All-Pairs Shortest-Paths' - bonner


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
some algorithms
Some Algorithms
  • When no negative edges
    • Using Dijkstra’salgorithm: O(V3)
    • Using Binary heap implementation: O(VE lg V)
    • Using Fibonacci heap: O(VE + V2logV)
  • When no negative cycles
    • Floyd-Warshall[1962]: O(V3) time
  • When negativecycles
    • Using Bellman-Ford algorithm: O(V2 E) = O(V4 )
    • Johnson [1977]: O(VE + V2log V) time based on a clever combination of Bellman-Ford and Dijkstra
notations
Notations
  • G = (V, E) with w: E -> R
  • Input form: matrix W= (wij)
  • wij=0 if i = j ,
  • wij= the weight of the directed edge if i≠j and (i, j) єE,
  • Otherwise wij= ∞
  • Output: D = (dij),
  • dij = δ(i,j) the shortest weight path from i to j
a dynamic programming approach
A dynamic programming approach

1. characterize the structure of an optimal solution,

2. recursively define the value of an optimal solution,

3. compute the value of an optimal solution in a bottom-up fashion.

the structure of an optimal solution
The structure of an optimal solution
  • Consider a shortest path p from vertex i to vertex j, and suppose that p contains at most m edges. Assume that there are no negative-weight cycles. Hence m ≤ n-1 is finite.
the structure of an optimal solution1
The structure of an optimal solution
  • If i= j, then p has weight 0 and no edge.
  • If i≠j, we decompose p into i ~ k -> j where p’ contains at most m-1 edges.
  • Moreover, p’is a shortest path from i to k and δ(i,j) = δ(i,k) + wkj
recursive solution to the all pairs shortest path problem
Recursive solution to the all-pairs shortest-path problem
  • Define: lij(m) = minimum weight of any path from i to j that contains at most m edges.

0 if i = j

  • lij(0) =

∞ if i ≠ j

  • Then lij(m) = min{ lij(m-1), min1≤k≤n {lik(m-1) + wkj}} = min1≤k≤n {lik(m-1) + wkj} (why?)
recursive solution to the all pairs shortest path problem1
Recursive solution to the all-pairs shortest-path problem
  • Since shortest path from i to j contains at most n-1 edges,

δ(i,j) = lij(n-1) = lij(n) = lij(n+1) = …

  • Computing the shortest-path weight bottom up:
    • Compute L(1) ,L(2) ,…., L(n-1)where

L(m)=(lij(m))

    • Note that L(1) = W.
extended shortest paths l w
EXTENDED-SHORTEST-PATHS(L, W)
  • Given matrices L(m-1) and W return L(m)
  • n <- L.row
  • Let L’= (l’ij) be a new n x n matrix
  • for i = 1 to n
  • for j = 1 to n
  • l’ij=∞
  • for k = 1 to n
  • l’ij= min(l’ij, lik + wkj)
  • return L’
slide10

Example:

W =

2

4

3

8

1

3

7

1

-5

-4

2

5

4

6

matrix multiplication
Matrix Multiplication

Cij = k=1 to naik‧bkj

lij(m) = min1≤k≤n {lik(m-1) + wkj}

Let l(m-1) -> a

w -> b

l(m) ->c

min -> +

+ -> ‧

time complexity : O(n3)

slow all pairs shortest paths w
SLOW-ALL-PAIRS-SHORTEST-PATHS(W)

L(1) = L(0) ‧W = W

L(2) = L(1) ‧W = W2

L(3) = L(2) ‧W = W3

L(n-1) = L(n-2) ‧W = Wn-1

slow all pairs shortest paths w1
SLOW-ALL-PAIRS-SHORTEST-PATHS(W)

1 n = W.rows

2 L(1) = W

  • for m = 2 to n-1
  • let L(m) be a new n x n matrix
  • L(m) = EXTENDED-SHORTEST- PATHS( L(m-1), W )
  • return L(n-1)

Time complexity : O(n4)

improving the running time
Improving the running time

L(1) = W

L(2) = W2 =W.W

L(4) =W4 = W2.W2

.

.

.

i.e., using repeating squaring!

Time complexity: O(n3lg n)

faster all pairs shortest paths
FASTER-ALL-PAIRS-SHORTEST-PATHS

FASTER-ALL-PAIRS-SHORTEST-PATHS(W)

1. n =W.row

2. L(1) =W

3. m =1

4. whilem < n-1

5. let L(2m) be a new n x n matrix

6. L(2m) = Extend-Shorest-Path(L(m), L(m))

7. m=2m

8. return L(m)

the floyd warshall algorithm
The Floyd-Warshall algorithm
  • A different dynamic programming formulation

‧The structure of a shortest path:

Let V(G)={1,2,…,n}. For any pair ofvertices i, j єV, consider all paths from i to j whose intermediatevertices are drawn from {1, 2,…,k}, andlet p be aminimum weight path among them.

the structure of a shortest path
The structure of a shortest path
  • If k is not in p, then all intermediate vertices are in {1, 2,…,k-1}.
  • If k is an intermediate vertex of p, then p can be decomposed into i~ k ~ j where p1 is a shortest path from i to k with all the intermediate vertices in {1,2,…,k-1} and p2 is a shortest path from k to j with all the intermediate vertices in {1,2,…,k-1}.
a recursive solution to the all pairs shortest path
A recursive solution to the all-pairs shortest path
  • Let dijk =the weight of a shortest path from vertex i to vertex j with all intermediate vertices in the set {1,2,…,k}.

dij(k) = wij if k = 0

= min(dij(k-1), dik(k-1) + dkj(k-1)) if k ≥ 1

D(n) = (dij(n)) if the final solution!

floyd warshall w
FLOYD-WARSHALL(W)

1. n =W.rows

2. D(0)= W

3. fork=1to n

4. Let D(k) = (dij(k)) be a new n x n matrix

5. for i= 1 to n

6. for j=1to n

7. dij(k)=min(dij(k-1), dik(k-1)+dkj(k-1))

8. return D(n)

Complexity:O(n3)

constructing a shortest path
Constructing a shortest path
  • π(0), π(1),…, π(n)
  • πij(k) : is the predecessor of the vertex j on a shortest path from vertex i with all intermediate vertices in the set {1,2,…,k}.

πij(0) = NIL if i=j or wij = ∞

= i if i ≠j and wij < ∞

πij(k) = πij(k-1) if dij(k-1)≤ dik(k-1) + dkj(k-1)

=πkj(k-1) if dij(k-1) >dik(k-1) + dkj(k-1)

transitive closure of a directed graph
Transitive closure of a directed graph
  • Given adirected graph G = (V, E) with V = {1,2,…, n}
  • The transitive closure of G is G*= (V, E*) where E*={(i, j)| there is a path from i to j in G}.

Modify FLOYD-WARSHALL algorithm:

tij(0) = 0 if i≠j and (i,j) ∉ E

1 if i=j or (i,j) єE

for k ≥ 1

tij(k)= tij(k-1)(tik(k-1)tkj(k-1))

transitive closure g
TRANSITIVE-CLOSURE(G)
  • n=|G.V|
  • Let T(0) = (tij(0)) be a new n x n matrix

3 for i =1to n

4 for j=1 to n

5 ifi==j or(i, j) ∈ G.E

6tij(0)= 1

7 else tij(0)= 0

  • for k =1to n
  • Let T(k) = (tij(k)) be a new n x n matrix
  • for i=1to n

11 for j=1 to n

12tij(k)= tij(k-1)(tik(k-1) tkj(k-1))

123 return T(n)

Time complexity: O(n3)

example1
Example

some algorithms1
Some Algorithms
  • When no negative edges
    • Using Dijkstra’salgorithm: O(V3)
    • Using Binary heap implementation: O(VE lg V)
    • Using Fibonacci heap: O(VE + V2logV)
  • When no negative cycles
    • Floyd-Warshall[1962]: O(V3) time
  • When negativecycles
    • Using Bellman-Ford algorithm: O(V2 E) = O(V4 )
    • Johnson [1977]: O(VE + V2log V) time based on a clever combination of Bellman-Ford and Dijkstra
johnson s algorithm for sparse graphs
Johnson’s algorithm for sparse graphs
  • If all edge weights in G are nonnegative, we can find all shortest paths in O(V2lg V+VE)by using Dijkstra’s algorithm with Fibonacci heap
  • Bellman-Ford algorithm takes O(VE)
  • Using reweighting technique
reweighting technique
Reweighting technique
  • If G has negative-weighted edge, we compute a new set of nonnegative weight that allows us to use the same method. The new set of edge weight ŵ satisfies:
  • 1. For all pairs of vertices u, v єV, a shortest path from u to v using weight function w is also a shortest path from u to v using the weight function ŵ
  • 2. ∀(u,v) єE(G), ŵ(u,v) is nonnegative
lemma reweighting doesn t change shortest paths
Lemma: (Reweighting doesn’t change shortest paths)
  • Given a weighted directed graph G = (V, E) with weight function w:E→R , let h:V →R be any function mapping vertices to real numbers. For each edge (u,v) єE, ŵ(u,v) = w(u,v) + h(u) – h(v)
  • Let P=<v0,v1,…,vk> be a path from vertex v0 to vk Then w(p) = δ(v0,vk) if and only if ŵ(p) = (v0,vk) Also, G has a negative-weight cycle using weight function w iff G has a negative weight cycle using weight function ŵ. 
proof
Proof
  • ŵ(p) = w(p) + h(v0) – h(vk)

ŵ(p) = ŵ(vi-1 ,vi)

= (w(vi-1 ,vi) + h(vi-1)-h(vi))

= w(vi-1 ,vi) + h(v0)-h(vk)

= w(p) + h(v0) – h(vk)

proof1
Proof
  • Because h(v0) and h(vk) do not depend on the path, if one path from v0 to vk is shorter than another using weight function w, then it is also shorter using ŵ. Thus,

w(p) = δ(v0,vk) if and only if ŵ(p) = (v0,vk)

proof2
Proof
  • G has a negative-weight cycle using w iff G has a negative-weight cycle using ŵ.
  • Consider any cycle C=<v0,v1,…,vk> with v0=vk . Then ŵ(C) = w(C) + h(v0) – h(vk) = w(C) .
producing nonnegative weight by reweighting
Producing nonnegative weight by reweighting
  • Given a weighted directed graph G = (V, E)
  • We make a new graph G’= (V’,E’), V’ = V ∪ {s}, E’ = E ∪{(s,v): v є V} and w(s,v) = 0, for all v in V
  • Let h(v) = δ(s, v) for all v V’
  • We have h(v) ≤ h(u) + w(u, v) (why?)
  • ŵ(u, v) = w(u, v) + h(u) – h(v) ≥ 0
slide36

Example:

2

3

4

8

3

1

2

1

-5

-4

7

5

4

6

slide37

2

0

-1

3

4

0

1

3

8

-5

0

S

0

2

0

1

-5

0

7

-4

-4

0

0

6

5

4

slide38

h(v) = δ(s, v)

  • ŵ(u, v) =w(u, v) + h(u) – h(v)

2

5

-1

0

4

1

1

3

13

0

-5

0

2

S

0

0

0

4

10

0

-4

0

0

2

4

5

johnson algorithm
JOHNSON algorithm

1 Computing G’, where G’.V = G.V ∪ {s}

and G’.E= G.E ∪{(s, v): vє G.V} and w(s, v) = 0.

2 if BELLMAN-FORD(G’, w, s)= FALSE

3 print “the input graph contains negative weight cycle”

4 else for each vertex v єG’.V

5 set h(v) to be the value of δ(s, v) computed by the BF algorithm

6 for each edge (u, v) єG’.E, ŵ(u, v) =w(u, v) + h(u) – h(v)

johnson algorithm1
JOHNSON algorithm

7 Let D = (duv) be a new n x n matrix

8 for each vertexu єG.V

run DIJKSTRA (G,ŵ, u) to compute (u, v)

for all v єV[G] .

10 for each vertex v єG.V

11 duv= (u, v) + h(v) – h(u)

12 return D

Complexity: O(V2lgV + VE)

slide41

2

4

0

2

0/0

1

3

0

13

4

2/1

2/3

0/-4

3

2

13

1

0/0

0

2/-3

0

10

2

0

0

2/-1

0/1

0

10

0

2

5

4

2/2

0/-4

2

5

4

2

4

0/4

0

3

13

1

0/0

2/7

2

0

0

10

0

2/3

0/5

2

5

4

slide42

2

2

4

0

2/5

1

3

4

0/-1

0

1

3

13

4/8

2/1

13

2/2

2

0/-5

2

0

0

0

10

0

0

0

10

0/0

2/6

2

2/-2

0/0

2

4

5

4

5

homework
Homework
  • Practice at home: Exercises: 25.1-5, 25.1-6, 25.1-7
  • Practice at home : 25.2-4, 25.2-5
  • Exercises: 25.2-8 (Due: Jan. 4)
  • Practice at home : 25.3-3
  • Exercises: 25.3-5 (Due: Jan. 4)
quiz 5

socks

under-shorts

shirt

shoes

pants

tie

belt

jacket

Quiz 5
  • Please show the ordering of the following vertices produced by Topological Sort Algorithm