introduction to algorithms - uab...

59
November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.1 Introduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I Properties of shortest paths Dijkstra’s algorithm Correctness Analysis Breadth-first search Prof. Erik Demaine

Upload: others

Post on 22-Aug-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.1

Introduction to Algorithms6.046J/18.401J

LECTURE 17Shortest Paths I

• Properties of shortest paths

• Dijkstra’s algorithm

• Correctness

• Analysis

• Breadth-first search

Prof. Erik Demaine

Page 2: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.2

Paths in graphs

Consider a digraph G = (V, E) with edge-weight function w : E o R. The weight of path p = v1 o

v2 o�o vk is defined to be

¦�

� 1

11),()(

k

iii vvwpw .

Page 3: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.3

Paths in graphs

Consider a digraph G = (V, E) with edge-weight function w : E o R. The weight of path p = v1 o

v2 o�o vk is defined to be

¦�

� 1

11),()(

k

iii vvwpw .

v1v1

v2v2

v3v3

v4v4

v5v54 –2 –5 1

Example:

w(p) = –2

Page 4: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.4

Shortest paths

A shortest path from u to v is a path of

minimum weight from u to v. The shortest-

path weight from u to v is defined as

G(u, v) = min{w(p) : p is a path from u to v}.

Note: G(u, v) = f if no path from u to v exists.

Page 5: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.5

Optimal substructure

Theorem. A subpath of a shortest path is a shortest path.

Page 6: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.6

Optimal substructure

Theorem. A subpath of a shortest path is a shortest path.

Proof. Cut and paste:

Page 7: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.7

Optimal substructure

Theorem. A subpath of a shortest path is a shortest path.

Proof. Cut and paste:

Page 8: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.8

Triangle inequality

Theorem. For all u, v, x � V, we have

G(u, v) d G(u, x) + G(x, v).

Page 9: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.9

Triangle inequality

Theorem. For all u, v, x � V, we have

G(u, v) d G(u, x) + G(x, v).

uu

Proof.

xx

vvG(u, v)

G(u, x) G(x, v)

Page 10: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.10

Well-definedness of shortest paths

If a graph G contains a negative-weight cycle, then some shortest paths may not exist.

Page 11: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.11

Well-definedness of shortest paths

If a graph G contains a negative-weight cycle, then some shortest paths may not exist.

Example:

uu vv

< 0

Page 12: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.12

Single-source shortest paths

Problem. From a given source vertex s � V, find the shortest-path weights G(s, v) for all v � V.

If all edge weights w(u, v) are nonnegative, all shortest-path weights must exist.

IDEA: Greedy.1. Maintain a set S of vertices whose shortest-

path distances from s are known.2. At each step add to S the vertex v � V – S

whose distance estimate from s is minimal.3. Update the distance estimates of vertices

adjacent to v.

Page 13: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.13

Dijkstra’s algorithm

d[s] m 0for each v � V – {s}

do d[v] mf

S m�

Q m V � Q is a priority queue maintaining V – S

Page 14: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.14

Dijkstra’s algorithm

d[s] m 0for each v � V – {s}

do d[v] mf

S m�

Q m V � Q is a priority queue maintaining V – S

while Q z �do u m EXTRACT-MIN(Q)

S m S � {u}for each v � Adj[u]

do if d[v] > d[u] + w(u, v)then d[v] m d[u] + w(u, v)

�[MXL�Z�JVSQ�5

MJ�H?YA�!�MRJMRMX]��FVIEO�� 238)��EPP�VIQEMRMRKZIVXMGIW�EVI�RSXEGGIWWMFPI�JVSQWSYVGI

Page 15: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.15

Dijkstra’s algorithm

d[s] m 0for each v � V – {s}

do d[v] mf

S m�

Q m V � Q is a priority queue maintaining V – S

while Q z �do u m EXTRACT-MIN(Q)

S m S � {u}for each v � Adj[u]

do if d[v] > d[u] + w(u, v)then d[v] m d[u] + w(u, v)

Implicit DECREASE-KEY

relaxation step

�TVIZ?ZA��!�Y

��[MXL�Z�JVSQ�5

MJ�H?YA�!�MRJMRMX]��FVIEO�� 238)��EPP�VIQEMRMRKZIVXMGIW�EVI�RSXEGGIWWMFPI�JVSQWSYVGI

Page 16: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.16

Example of Dijkstra’s algorithm

AA

BB DD

CC EE

10

3

1 4 7 98

2

2

Graph with nonnegative edge weights:

Page 17: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.17

Example of Dijkstra’s algorithm

AA

BB DD

CC EE

10

3

1 4 7 98

2

2

Initialize:

0

f f

Q: A B C D E

0 f f f f f f

S: {}

Page 18: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.18

Example of Dijkstra’s algorithm

AA

BB DD

CC EE

10

3

1 4 7 98

2

2

0

f f“A” m EXTRACT-MIN(Q):

Q: A B C D E

0 f f f f f f

S: { A }

Page 19: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.19

Example of Dijkstra’s algorithm

AA

BB DD

CC EE

10

3

1 4 7 98

2

2Q: A B C D E

0 f f f f

0

10 f

10 �

Relax all edges leaving A:

f f3 f

S: { A }

Page 20: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.20

Example of Dijkstra’s algorithm

AA

BB DD

CC EE

10

3

1 4 7 98

2

2A B C D EQ:

0 f f f f

0

10 f

10 �

“C” m EXTRACT-MIN(Q):

f f3 f

S: { A, C }

Page 21: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.21

Example of Dijkstra’s algorithm

AA

BB DD

CC EE

10

3

1 4 7 98

2

2A B C D EQ:

0 f f f f

0

7 11

10

S: { A, C }

7 11 5

Relax all edges leaving C:

f f3 5

Page 22: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.22

Example of Dijkstra’s algorithm

AA

BB DD

CC EE

10

3

1 4 7 98

2

2A B C D EQ:

0 f f f f

0

7 11

10 �

7 11 5

“E” m EXTRACT-MIN(Q):

f f3 5

S: { A, C, E }

Page 23: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.23

Example of Dijkstra’s algorithm

AA

BB DD

CC EE

10

3

1 4 7 98

2

2A B C D EQ:

0 f f f f

0

7 11

10

S: { A, C, E }

� f f

7 11 5

7 11

Relax all edges leaving E:

3 5

Page 24: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.24

Example of Dijkstra’s algorithm

AA

BB DD

CC EE

10

3

1 4 7 98

2

2A B C D EQ:

0 f f f f

0

7 11

10 � f f

7 11 5

7 11

“B” m EXTRACT-MIN(Q):

3 5

S: { A, C, E, B }

Page 25: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.25

Example of Dijkstra’s algorithm

AA

BB DD

CC EE

10

3

1 4 7 98

2

2A B C D EQ:

0 f f f f

0

7 9

10

S: { A, C, E, B }

� f f

7 11 5

7 11

Relax all edges leaving B:

9

3 5

Page 26: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.26

Example of Dijkstra’s algorithm

AA

BB DD

CC EE

10

3

1 4 7 98

2

2A B C D EQ:

0 f f f f

0

7 9

10

S: { A, C, E, B, D }

� f f

7 11 5

7 11

9

“D” m EXTRACT-MIN(Q):

3 5

Page 27: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.27

Correctness — Part I

Lemma. Initializing d[s] m 0 and d[v] mf for all v � V – {s} establishes d[v] t G(s, v) for all v � V, and this invariant is maintained over any sequence of relaxation steps.

Page 28: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.28

Correctness — Part I

Lemma. Initializing d[s] m 0 and d[v] mf for all v � V – {s} establishes d[v] t G(s, v) for all v � V, and this invariant is maintained over any sequence of relaxation steps.Proof. Suppose not. Let v be the first vertex for which d[v] < G(s, v), and let u be the vertex that caused d[v] to change: d[v] = d[u] + w(u, v). Then,

d[v] < G(s, v) suppositiond G(s, u) + G(u, v) triangle inequalityd G(s,u) + w(u, v) sh. path d specific pathd d[u] + w(u, v) v is first violation

Contradiction.

Page 29: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.29

Correctness — Part II

Lemma. Let u be v’s predecessor on a shortest path from s to v. Then, if d[u] = G(s, u) and edge (u, v) is relaxed, we have d[v] G(s, v) after the relaxation.

Page 30: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.30

Correctness — Part II

Lemma. Let u be v’s predecessor on a shortest path from s to v. Then, if d[u] = G(s, u) and edge (u, v) is relaxed, we have d[v] G(s, v) after the relaxation.

Proof. Observe that G(s, v) = G(s, u) + w(u, v). Suppose that d[v] > G(s, v) before the relaxation. (Otherwise, we’re done.) Then, the test d[v] > d[u] + w(u, v) succeeds, because d[v] > G(s, v) = G(s, u) + w(u, v) = d[u] + w(u, v), and the algorithm sets d[v] = d[u] + w(u, v) = G(s, v).

Page 31: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.31

Correctness — Part III

Theorem. Dijkstra’s algorithm terminates with d[v] = G(s, v) for all v � V.

Page 32: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.32

Correctness — Part III

Theorem. Dijkstra’s algorithm terminates with d[v] = G(s, v) for all v � V.

Proof. It suffices to show that d[v] = G(s, v) for every v � V when v is added to S. Suppose u is the first vertex added to S for which d[u] ! G(s, u). Let y be the first vertex in V – S along a shortest path from s to u, and let x be its predecessor:

ssxx yy

uu

S, just before adding u.

Page 33: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.33

Correctness — Part III (continued)

ssxx yy

uuS

Since u is the first vertex violating the claimed invariant, we have d[x] = G(s, x). When x was added to S, the edge (x, y) was relaxed, which implies that d[y] = G(s, y) d G(s, u) � d[u]. But, d[u] d d[y] by our choice of u. Contradiction.

Page 34: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.34

Analysis of Dijkstra

while Q z �do u m EXTRACT-MIN(Q)

S m S � {u}for each v � Adj[u]

do if d[v] > d[u] + w(u, v)then d[v] m d[u] + w(u, v)

Page 35: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.35

Analysis of Dijkstra

while Q z �do u m EXTRACT-MIN(Q)

S m S � {u}for each v � Adj[u]

do if d[v] > d[u] + w(u, v)then d[v] m d[u] + w(u, v)

|V |times

Page 36: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.36

Analysis of Dijkstra

degree(u)times

|V |times

while Q z �do u m EXTRACT-MIN(Q)

S m S � {u}for each v � Adj[u]

do if d[v] > d[u] + w(u, v)then d[v] m d[u] + w(u, v)

Page 37: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.37

Analysis of Dijkstra

degree(u)times

|V |times

Handshaking Lemma �4(E) implicit DECREASE-KEY’s.

while Q z �do u m EXTRACT-MIN(Q)

S m S � {u}for each v � Adj[u]

do if d[v] > d[u] + w(u, v)then d[v] m d[u] + w(u, v)

Page 38: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.38

Analysis of Dijkstra

degree(u)times

|V |times

Handshaking Lemma �4(E) implicit DECREASE-KEY’s.

while Q z �do u m EXTRACT-MIN(Q)

S m S � {u}for each v � Adj[u]

do if d[v] > d[u] + w(u, v)then d[v] m d[u] + w(u, v)

Time = 4(V·TEXTRACT-MIN+ E·TDECREASE-KEY

)

Note: Same formula as in the analysis of Prim’s minimum spanning tree algorithm.

Page 39: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.39

Analysis of Dijkstra (continued)

Time = 4(V)·TEXTRACT-MIN+ 4(E)·TDECREASE-KEY

TotalQ T TDECREASE-KEYEXTRACT-MIN

Page 40: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.40

Analysis of Dijkstra (continued)

Time = 4(V)·TEXTRACT-MIN+ 4(E)·TDECREASE-KEY

TotalQ T TDECREASE-KEYEXTRACT-MIN

array O(V) O(1) O(V2)

Page 41: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.41

Analysis of Dijkstra (continued)

Time = 4(V)·TEXTRACT-MIN+ 4(E)·TDECREASE-KEY

TotalQ T TDECREASE-KEYEXTRACT-MIN

array O(V) O(1) O(V2)

binary heap

O(lg V) O(lg V) O(E lg V)

Page 42: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.42

Analysis of Dijkstra (continued)

Time = 4(V)·TEXTRACT-MIN+ 4(E)·TDECREASE-KEY

TotalQ T TDECREASE-KEYEXTRACT-MIN

array O(V) O(1) O(V2)

binary heap

O(lg V) O(lg V) O(E lg V)

Fibonacci heap

O(lg V)amortized

O(1)amortized

O(E + V lg V)worst case

Page 43: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.43

Unweighted graphs

Suppose that w(u, v) = 1 for all (u, v) � E. Can Dijkstra’s algorithm be improved?

Page 44: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.44

Unweighted graphs

• Use a simple FIFO queue instead of a priority queue.

Suppose that w(u, v) = 1 for all (u, v) � E. Can Dijkstra’s algorithm be improved?

Page 45: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.45

Unweighted graphs

while Q z �do u m DEQUEUE(Q)

for each v � Adj[u]do if d[v] = f

then d[v] m d[u] + 1ENQUEUE(Q, v)

Breadth-first search

• Use a simple FIFO queue instead of a priority queue.

Suppose that w(u, v) = 1 for all (u, v) � E. Can Dijkstra’s algorithm be improved?

Page 46: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.46

Unweighted graphs

while Q z �do u m DEQUEUE(Q)

for each v � Adj[u]do if d[v] = f

then d[v] m d[u] + 1ENQUEUE(Q, v)

Analysis: Time = O(V + E).

Breadth-first search

• Use a simple FIFO queue instead of a priority queue.

Suppose that w(u, v) = 1 for all (u, v) � E. Can Dijkstra’s algorithm be improved?

Page 47: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.47

Example of breadth-first search

aa

bb

cc

dd

ee

gg

ii

ff hh

Q:

Page 48: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.48

Example of breadth-first search

aa

bb

cc

dd

ee

gg

ii

ff hh0

Q: a0

Page 49: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.49

Example of breadth-first search

aa

bb

cc

dd

ee

gg

ii

ff hh0 1

1

Q: a b d

1 1

Page 50: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.50

Example of breadth-first search

aa

bb

cc

dd

ee

gg

ii

ff hh0 1

1

22

Q: a b d c e

1 2 2

Page 51: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.51

Example of breadth-first search

aa

bb

cc

dd

ee

gg

ii

ff hh0 1

1

22

Q: a b d c e

2 2

Page 52: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.52

Example of breadth-first search

aa

bb

cc

dd

ee

gg

ii

ff hh0 1

1

22

Q: a b d c e

2

Page 53: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.53

Example of breadth-first search

aa

bb

cc

dd

ee

gg

ii

ff hh0 1

31

2 32

Q: a b d c e g i

3 3

Page 54: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.54

Example of breadth-first search

aa

bb

cc

dd

ee

gg

ii

ff hh1

3

4

0

1

2 32

Q: a b d c e g i f

3 4

Page 55: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.55

Example of breadth-first search

aa

bb

cc

dd

ee

gg

ii

ff hh1

3

4 4

0

1

2 32

Q: a b d c e g i f h

4 4

Page 56: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.56

Example of breadth-first search

aa

bb

cc

dd

ee

gg

ii

ff hh1

3

4 4

0

1

2 32

Q: a b d c e g i f h

4

Page 57: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.57

Example of breadth-first search

aa

bb

cc

dd

ee

gg

ii

ff hh1

3

4 4

0

1

2 32

Q: a b d c e g i f h

Page 58: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.58

Example of breadth-first search

aa

bb

cc

dd

ee

gg

ii

ff hh1

3

4 4

0

1

2 32

Q: a b d c e g i f h

Page 59: Introduction to Algorithms - UAB Barcelonamat.uab.cat/~alseda/MasterOpt/DemaineLecture.pdfIntroduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I • Properties of shortest

November 14, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson L17.59

Correctness of BFS

Key idea:

The FIFO Q in breadth-first search mimics the priority queue Q in Dijkstra.

while Q z �do u m DEQUEUE(Q)

for each v � Adj[u]do if d[v] = f

then d[v] m d[u] + 1ENQUEUE(Q, v)

• Invariant: v comes after u in Q implies that d[v] = d[u] or d[v] = d[u] + 1.