chapter 24: single-source shortest-pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/chapter...

51
1 Chapter 24: Single-Source Shortest-Path

Upload: others

Post on 13-Oct-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

1

Chapter 24: Single-Source Shortest-Path

Page 2: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

2

About this lecture

• What is the problem about ?

• Dijkstra’s Algorithm [1959]

• ~ Prim’s Algorithm [1957]

• Folklore Algorithm for DAG [???]

• Bellman-Ford Algorithm

• Discovered by Bellman [1958], Ford [1962]

• Allowing negative edge weights

Page 3: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

3

• Let G = (V,E) be a weighted graph

• the edges in G have weights

• can be directed/undirected

• can be connected/disconnected

• Let s be a special vertex, called source

Target: For each vertex v, compute the length of shortest path from s to v

Single-Source Shortest Path

Page 4: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

4

• E.g.,

Single-Source Shortest Path

4

8

11

8 7 9

10

14 4

2 1

2

6 7 s

4

8

11

8 7 9

10

14 4

2 1

2

6 7 s

0

4 12 19

21

11 9

14

8

Page 5: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

5

Relax • A common operation that is used in the

algorithms is called Relax :

when a vertex v can be reached from the source with a certain distance, we examine an outgoing edge, say (v,w), and check if we can improve w

• E.g., 4

8

11

8

1

2

6 7 s

0

4 ?

?

? ?

v Can we improve this?

Can we improve these?

If d(w) > d(v) + w(v, w)

d(w) = d(v) + w(v, w)

Page 6: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

6

Dijkstra’s Algorithm

Dijkstra(G, s)

For each vertex v,

Mark v as unvisited, and set d(v) = ∞ ; Set d(s) = 0 ;

while (there is unvisited vertex) {

v = unvisited vertex with smallest d ;

Visit v, and Relax all its outgoing edges; } return d ;

Page 7: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

7

Example

4

8

11

8 7

9

10

14 4

2 1

2

6 7

s ∞

∞ ∞

∞ 0

4

8

11

8 7 9

10

14 4

2 1

2

6 7 ∞

∞ 0

4

8

Relax

∞ s

Page 8: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

8

Example

4

8

11

8 7

9

10

14 4

2 1

2

6 7

s ∞

∞ ∞

∞ 0

4

8

4

8

11

8 7 9

10

14 4

2 1

2

6 7 ∞

∞ 0

4

8

Relax

12 s

Page 9: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

9

Example

4

8

11

8 7

9

10

14 4

2 1

2

6 7

s ∞

∞ 0

4

8

12

4

8

11

8 7 9

10

14 4

2 1

2

6 7 ∞

0

4

8

Relax

12

9

15

s

Page 10: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

10

Example

4

8

11

8 7

9

10

14 4

2 1

2

6 7

s ∞

0

4

8

12

9

15

4

8

11

8 7 9

10

14 4

2 1

2

6 7 ∞

0

4

8

Relax

12

9

15

11

s

Page 11: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

11

Example

4

8

11

8 7

9

10

14 4

2 1

2

6 7

s ∞

0

4

8

12

9

15

11

4

8

11

8 7 9

10

14 4

2 1

2

6 7 0

4

8

Relax

12

9

15

11

25

21

s

Page 12: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

12

Example

4

8

11

8 7

9

10

14 4

2 1

2

6 7

s 0

4

8

12

9

15

11

25

21

4

8

11

8 7 9

10

14 4

2 1

2

6 7 0

4

8

Relax

12

9

14

11

19

21

s

Page 13: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

13

Example

4

8

11

8 7

9

10

14 4

2 1

2

6 7

s 0

4

8

12

9

14

11

19

21

Relax

4

8

11

8 7

9

10

14 4

2 1

2

6 7

s 0

4

8

12

9

14

11

19

21

Page 14: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

14

Example

4

8

11

8 7

9

10

14 4

2 1

2

6 7

s 0

4

8

12

9

14

11

19

21

Relax

4

8

11

8 7

9

10

14 4

2 1

2

6 7

s 0

4

8

12

9

14

11

19

21

Page 15: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

15

Example

4

8

11

8 7

9

10

14 4

2 1

2

6 7

s 0

4

8

12

9

14

11

19

21

Relax

4

8

11

8 7

9

10

14 4

2 1

2

6 7

s 0

4

8

12

9

14

11

19

21

Page 16: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

16

Correctness

Theorem:

The kth vertex closest to the source s is selected at the kth step inside the while loop of Dijkstra’s algorithm

Also, by the time a vertex v is selected, d(v) will store the length of the shortest path from s to v

How to prove ? (By induction)

Page 17: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

17

Proof • Both statements are true for k = 1 ;

• Let vj = jth closest vertex from s

• Now, suppose both statements are true for k = 1, 2, …, r-1

• Consider the rth closest vertex vr

• If there is no path from s to vr

d(vr) = ∞ is never changed • Else, there must be a shortest path

from s to vr ; Let vt be the vertex immediately before vr in this path

Page 18: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

18

• Then, we have t r-1 (why??)

d(vr) is set correctly once vt is selected, and the edge (vt,vr) is relaxed (why??)

After that, d(vr) is fixed (why??)

d(vr) is correct when vr is selected ; also, vr must be selected at the rth step, because no unvisited nodes can have a smaller d value at that time

Thus, the proof of inductive case completes

Proof (cont)

Page 19: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

19

Performance

• Dijkstra’s algorithm is similar to Prim’s

• By simply store d(v) in the vth array.

• Relax (Decrease-Key): O(1)

• Pick vertex (Extract-Min): O(V)

• Running Time:

• the cost of |V| operation Extract-Min is O(V2)

• At most O(E) Decrease-Key

Total Time: O(E + V2) = O(V2)

Page 20: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

20

Performance

• By using binary Heap (Chapter 6),

• Relax Decrease-Key: O(log V)

• Pick vertex Extract-Min: O (log V)

• Running Time:

• the cost of each |V| operation Extract-Min is O(V log V)

• At most O(E) Decrease-Key

Total Time: O((E + V) log V)

= O(E log V)

Page 21: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

21

Performance

• By using Fibonacci Heap (Chapter 19),

• Relax Decrease-Key

• Pick vertex Extract-Min

• Running Time:

• the amortized cost of each |V| operation Extract-Min is O(log V)

• At most O(E) Decrease-Key

Total Time: O(E + V log V)

Page 22: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

22

Finding Shortest Path in DAG

We have a faster algorithm for DAG :

DAG-Shortest-Path(G, s)

Topological Sort G ;

For each v, set d(v) = ; Set d(s) = 0 ; for (k = 1 to |V|) {

v = kth vertex in topological order ;

Relax all outgoing edges of v ; } return d ;

Page 23: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

23

Example

Topological Sort

8

s 4 3 2 6

5

1

4

8

1

3

2

6 5

s

Page 24: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

24

Example

8

s 4 3 2 6

5

1

0

Process this node

8

s 4 3 2 6

5

1

Relax

0

Page 25: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

25

Example

8

s 4 3 2 6

5

1

0

8

s 4 3 2 6

5

1

Relax

0 3 1

Process this node

Page 26: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

26

Example

Process this node

8

s 4 3 2 6

5

1

0 3 1

8

s 4 3 2 6

5

1

Relax

0 3 1 5

Page 27: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

27

Example

Process this node

8

s 4 3 2 6

5

1

0 3 1 5

8

s 4 3 2 6

5

1

Relax

0 3 1 5 11

Page 28: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

28

Example

Process this node

8

s 4 3 2 6

5

1

0 3 1 5 11

8

s 4 3 2 6

5

1

Relax

0 3 1 5 11

Page 29: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

29

Example

Process this node

8

s 4 3 2 6

5

1

Relax

0 3 1 5 11

8

s 4 3 2 6

5

1

0 3 1 5 11

Page 30: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

30

Correctness

Theorem:

By the time a vertex v is selected, d(v) will store the length of the shortest path from s to v

How to prove ? (By induction)

Page 31: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

31

Proof • Let vj = jth vertex in the topological order

• We will show that d(vk) is set correctly when vk is selected, for k = 1,2, …, |V|

• When k = 1,

vk = v1 = leftmost vertex

If it is the source, d(vk) = 0

If it is not the source, d(vk) =

In both cases, d(vk) is correct (why?)

Base case is correct

Page 32: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

32

Proof (cont)

• Now, suppose the statement is true for k = 1, 2, …, r-1

• Consider the vertex vr

• If there is no path from s to vr

d(vr) = is never changed

• Else, we shall use similar arguments as proving the correctness of Dijkstra’s algorithm …

Page 33: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

33

• First, let vt be the vertex immediately before vr in the shortest path from s to vr

t r-1

d(vr) is set correctly once vt is selected, and the edge (vt,vr) is relaxed

After that, d(vr) is fixed

d(vr) is correct when vr is selected

Thus, the proof of inductive case completes

Proof (cont)

Page 34: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

34

Performance • DAG-Shortest-Path selects vertex

sequentially according to topological order

• no need to perform Extract-Min

• We can store the d values of the vertices in a single array Relax takes O(1) time

• Running Time:

• Topological sort : O(V + E) time

• O(V) select, O(E) Relax : O(V + E) time

Total Time: O(V + E)

Page 35: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

35

Handling Negative Weight Edges

• When a graph has negative weight edges, shortest path may not be well-defined

v 4

8

11 -7

s

-7

What is the shortest path from s to v?

E.g.,

Page 36: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

36

Handling Negative Weight Edges

• The problem is due to the presence of a cycle C, reachable by the source, whose total weight is negative

C is called a negative-weight cycle

• How to handle negative-weight edges ??

if input graph is known to be a DAG, DAG-Shortest-Path is still correct

For the general case, we can use Bellman-Ford algorithm

Page 37: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

37

Bellman-Ford Algorithm

Bellman-Ford(G, s) // runs in O(VE) time

For each v, set d(v) = ; Set d(s) = 0 ; for (k = 1 to |V|-1)

Relax all edges in G in any order ; /* check if s reaches a neg-weight cycle */

for each edge (u,v), if (d(v) > d(u) + weight(u,v)) return “something wrong !!” ;

return d ;

Page 38: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

38

Example 1

-2

Relax all

Relax all

Relax all

10

4

8

3 -7 s

8

-2

10 0

4

8

3 -7 s

8

-2

0

4

8

3 -7 s

8

-2

10 0

4

8

4

7

4

7

0

1

11

4

8

3 -7 s

8

10 0

∞ ∞

(1)

(2)

-2

(3)

(4)

(5)

(6)

(7)

Page 39: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

39

Example 1

After the 4th Relax all

10

4

8

3 -7 s

8

-2

0

4

7

0

10

After checking, we found that there is nothing wrong distances are correct

Page 40: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

40

Example 2

4

8

3 -7 s

8

-2

1

Relax all

0

∞ Relax all

Relax all

1

4

8

3 -7 s

8

-2

1 0

4

8

3 -7 s

8

-2

0

4

8

3 -7 s

8

-2

1 0

4

8

4

7

1 1

0

-7

2

∞ ∞

4

8

3 -7 s

8

1 0

∞ ∞

(1)

(2)

(3)

(4)

(5)

(6)

(7)

Page 41: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

41

Example 2

After the 4th Relax all

1

4

8

3 -7 s

8

-2

0

-7

-8

-15

-6

After checking, we found that something must be wrong distances are incorrect

This edge shows something must

be wrong …

Page 42: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

42

Correctness (Part 1)

Theorem:

There is a negative-weight cycle in the input graph if and only if when Bellman-Ford terminates,

d(v) > d(u) + weight(u,v)

for some edge (u,v)

How to prove ? (By contradiction)

Page 43: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

43

• Firstly, we know that there is a cycle

C = (v1, v2, … , vk, v1)

whose total weight is negative

• That is, Si = 1 to k weight(vi, v(i+1) mod k) ‹ 0

• Now, suppose on the contrary that

d(v) ≤ d(u) + weight(u,v)

for all edge (u,v) at termination

Proof

Page 44: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

44

• Can we obtain another bound for

Si = 1 to k weight(vi, v(i+1) mod k) ?

• By rearranging, for all edge (u,v)

weight(u,v) ≥ d(v) - d(u)

Si = 1 to k weight(vi, v(i+1) mod k)

≥ Si = 1 to k (d(v(i+1) mod k) - d(vi)) = 0 (why?)

Contradiction occurs !!

Proof (cont)

Page 45: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

45

Correctness (Part 2)

Theorem:

If the graph has no negative-weight cycle, then for any vertex v with shortest path from s consists of k edges, Bellman-Ford sets d(v) to the correct value after the kth Relax all (for any ordering of edges in each Relax all )

How to prove ?

Page 46: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

46

Proof • Consider any vertex v that is reachable

from s, and let p = (v0, v1, …, vk), where v0 = s and vk = v be any shortest path from s to v.

• p has at most lVl – 1 edges, and so k lVl – 1. Each of the lVl – 1 iterations relaxes all lEl edges.

• Among the edges relaxed in the ith iteration, for i = 1, 2,…k is (vi-1, vi).

• By the path-relaxation property, d(v) = d(vk) = the shortest path from s to v.

Page 47: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

47

Path-Relaxation Property

• Consider any shortest path p from s = v0 to vk, and let p = (v0, v1, …, vk). If we relax the edges (v0, v1), (v1, v2), …, (vk-1, vk) in order, then d(vk) is the shortest path from s to vk.

• Proof by induction

Page 48: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

48

Corollary

Corollary: If there is no negative-weight cycle, then when Bellman-Ford terminates,

d(v) ≤ d(u) + weight(u,v)

for all edge (u,v)

Proof: By previous theorem, d(u) and d(v) are the length of shortest path from s to u and v, respectively. Thus, we must have

d(v) ≤ length of any path from s to v

d(v) ≤ d(u) + weight(u,v)

Page 49: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

49

Performance

• When no negative edges

– Dijkstra’s algorithm • Using array O(V2)

• Using Binary heap implementation: O(E lg V)

• Using Fibonacci heap: O(E + Vlog V)

• When DAG

– DAG-Shortest-Paths: O(E + V) time

• When negative cycles

– Using Bellman-Ford algorithm: O(V E) = (V3 )

Page 50: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

50

Homework

• Practice at home: 24.1-3, 24.2-2, 24.2-4, 24.3-5, 24.3-7

• Exercises: 24.3-4, 24.3-8, 24.3-10 (Due: Jan. 3)

• Bonus: Write a Bellman-Ford algorithm to find one-to-all shortest path for a given graph G = (V, E)

Page 51: Chapter 24: Single-Source Shortest-Pathhscc.cs.nthu.edu.tw/~sheujp/lecture_note/13algorithm/Chapter 24 13.pdf · Single-Source Shortest Path . 4 • E.g., Single-Source Shortest Path

51

Quiz

Which of the following statements are true for the Minimum Spanning Tree (MST)?

a. MST is the spanning tree that have the minimum weight

b. MST of a graph is unique

c. MST has exactly |V| -1 edges