CMU 15-251 Graph Algorithms Teachers: Anil Ada Ariel Procaccia - - PowerPoint PPT Presentation

β–Ά
cmu 15 251
SMART_READER_LITE
LIVE PREVIEW

CMU 15-251 Graph Algorithms Teachers: Anil Ada Ariel Procaccia - - PowerPoint PPT Presentation

CMU 15-251 Graph Algorithms Teachers: Anil Ada Ariel Procaccia (this time) Depth-First Search For each 7 unexplored 6 1 DFS( ,u) o DFS(graph , ) 3 mark as explored 5 2 for each


slide-1
SLIDE 1

CMU 15-251

Graph Algorithms

Teachers: Anil Ada Ariel Procaccia (this time)

slide-2
SLIDE 2

Depth-First Search

  • For each

unexplored 𝑣 ∈ π‘Š

  • DFS(𝐻,u)

DFS(graph 𝐻, 𝑣 ∈ 𝐹)

  • mark 𝑣 as explored
  • for each {𝑣, 𝑀} ∈ 𝐹
  • if 𝑀 is

unexplored then DFS(𝐻, v)

2

3 6 1 7 5 4 2 𝑃(𝑛 + π‘œ)

slide-3
SLIDE 3

Graph Search Problems

  • 𝐻
  • 𝑑

𝑒

  • 𝐻
  • 𝐻
  • 3
slide-4
SLIDE 4

Topological Sorting

  • 𝐻

𝑔: π‘Š β†’ {1, … , π‘œ} 𝑣, 𝑀 ∈ 𝐹 𝑔 𝑣 < 𝑔(𝑀)

4

𝑏 𝑓 𝑒 𝑐 𝑑 𝑓 𝑒 𝑏 𝑐 𝑑

slide-5
SLIDE 5

Topological Sorting

5 21 127 15 122 15 251 15 112 15 150 15 210 15 451

slide-6
SLIDE 6

Topological Sorting

  • 𝑣, 𝑀 ∈ π‘Š

𝑣, 𝑀 ∈ 𝐹

  • 6
slide-7
SLIDE 7

Topological Sorting

  • 7
slide-8
SLIDE 8

Proof of Lemma

  • π‘œ

∎

8

slide-9
SLIDE 9

NaΓ―ve Algorithm

  • π‘ž ← π‘œ
  • while π‘ž β‰₯ 1
  • If the graph doesn’t

have a sink then return β€œnot acyclic”

  • else find a sink 𝑀 and

remove it from 𝐻

  • 𝑔 𝑀 ← π‘ž
  • π‘ž ← π‘ž βˆ’ 1

9

3 1 5 4 2

slide-10
SLIDE 10

Better Algorithm Via DFS

  • π‘ž ← π‘œ
  • For each unexplored 𝑣 ∈ π‘Š,

DFS(𝐻,u) DFS(graph 𝐻, 𝑣 ∈ 𝐹)

  • mark 𝑣 as explored
  • for each {𝑣, 𝑀} ∈ 𝐹, if 𝑀 is

unexplored then DFS(𝐻, v)

  • 𝑔 𝑣 ← π‘ž
  • π‘ž ← π‘ž βˆ’ 1

10

2 3 1 4 5

slide-11
SLIDE 11

Correctness

  • 𝐻

𝑣, 𝑀 ∈ 𝐹 𝑔 𝑣 < 𝑔(𝑀)

  • 𝑣

𝑀 𝑣, 𝑀 ∈ 𝐹 𝑀 (𝐻, 𝑣)

  • 𝑀

𝑣 𝑣 (𝐻, 𝑀) (𝐻, 𝑣) (𝐻, 𝑀) ∎

11

slide-12
SLIDE 12

Weighted Graphs

  • 𝑑: 𝐹 β†’ ℝ+

12

5 8 10 3 2 30 18 12 16 14 26 4

slide-13
SLIDE 13

Minimum Spanning Tree

13

slide-14
SLIDE 14

14

slide-15
SLIDE 15

Minimum Spanning Tree

  • 𝐻

𝑑: 𝐹 β†’ ℝ+

  • 𝐹′ βŠ† 𝐹

π‘Š, 𝐹′ π‘“βˆˆπΉβ€² 𝑑 𝑓

  • 42

15

5 8 10 3 2 30 18 12 16 14 26 4

slide-16
SLIDE 16

16

slide-17
SLIDE 17

Number of MSTs

  • 17

𝑧 𝑦 𝑨

slide-18
SLIDE 18

18

slide-19
SLIDE 19

Prim’s Algorithm

  • π‘Šβ€² ←

𝑣 , 𝐹′← βˆ…

  • While π‘Šβ€² β‰  π‘Š
  • Let (𝑣, 𝑀) be a

minimum cost edge such that 𝑣 ∈ π‘Šβ€², 𝑀 βˆ‰ π‘Šβ€²

  • 𝐹′ ← 𝐹 βˆͺ

𝑣, 𝑀

  • π‘Šβ€² ← π‘Šβ€² βˆͺ {𝑀}

19

5 8 10 3 2 30 18 12 16 14 26 4 2 3 5 12 4 16

slide-20
SLIDE 20

20

slide-21
SLIDE 21

Proof of Correctness

  • π‘ˆ

0 ≀ 𝑙 ≀ π‘œ 𝑙 π‘ˆ

  • 𝑙 = 0)
  • 𝑙

21

slide-22
SLIDE 22

Proof of Correctness

  • π‘Šβ€²
  • 𝑓 = {𝑏, 𝑐}
  • 𝑓

π‘ˆ

  • π‘ˆ

a β†’ 𝑐

  • 𝑓′ = (𝑑, 𝑒)

π‘Šβ€²

22

𝑏 𝑐 𝑒 𝑑 𝑓 𝑓′

slide-23
SLIDE 23

Proof of Correctness

  • π‘ˆβ€² = π‘ˆ βˆͺ 𝑓 βˆ– {𝑓′}
  • π‘ˆ
  • π‘œ βˆ’ 1
  • π‘ˆβ€²

𝑣 β†’ 𝑑 β†’ 𝑒 β†’ 𝑀 𝑓′ 𝑣 β†’ 𝑑 β†’ 𝑏 β†’ 𝑐 β†’ 𝑒 β†’ 𝑀

  • π‘ˆ

∎

23

𝑏 𝑐 𝑒 𝑑 𝑓 𝑓′

slide-24
SLIDE 24

24

slide-25
SLIDE 25

25

π‘Šβ€²

slide-26
SLIDE 26

The MST Cut Property

  • 𝐻

π‘Šβ€² βŠ† π‘Š 𝑓 π‘Šβ€² π‘Š βˆ– π‘Šβ€² 𝑓

  • 26
slide-27
SLIDE 27

Run-Time Race for MST

  • 𝑃 𝑛2
  • 𝑃(𝑛 log 𝑛)
  • 27
slide-28
SLIDE 28

Run Time Race for MST

𝑃(𝑛 log 𝑛) β†’ 𝑃(𝑛 logβˆ— 𝑛)

28

slide-29
SLIDE 29

Run Time Race for MST

𝑃(𝑛 logβˆ— 𝑛) β†’ 𝑃(𝑛 log(logβˆ— 𝑛))

29

slide-30
SLIDE 30

Run Time Race for MST

𝑃(𝑛 log(logβˆ— 𝑛)) β†’ 𝑃(𝑛 β‹… 𝛽 𝑛 ) 𝛽 β‹… ?

30

slide-31
SLIDE 31

Detour: 𝛽(β‹…)

  • logβˆ— 𝑛 =

log 2

  • logβˆ—βˆ—(𝑛) =

log* 2

  • logβˆ—βˆ—βˆ—(𝑛) =

log** 2

  • 𝛽 𝑛 =

logβˆ—β‹―βˆ— 𝑛 ≀ 2

31

slide-32
SLIDE 32

Run Time Race for MST

  • 32
slide-33
SLIDE 33

Summary

  • 33