click to begin demo - sjtuxiaojuan/algo16/slides/6demo... · 2016. 10. 13. · 4.2 kosaraju-sharir...

95
Algorithms, 4 th Edition Robert Sedgewick and Kevin Wayne Copyright © 2002–2012 September 10, 2014 11:22:46 AM 4.2 Kosaraju-Sharir Algorithm click to begin demo

Upload: others

Post on 21-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

Algorithms, 4th Edition ∙ Robert Sedgewick and Kevin Wayne ∙ Copyright © 2002–2012 ∙ September 10, 2014 11:22:46 AM

4.2 Kosaraju-Sharir Algorithm

click to begin demo

Page 2: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

2

Phase 1. Compute reverse postorder in GR.

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

digraph G

1

4

9

2

5

3

0

1211

10

8 76 8 76

Page 3: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

3

‣ DFS in reverse graph

‣ DFS in original graph

Page 4: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

4

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

digraph G

1

4

9

2

5

3

0

1211

10

8 76 8 76

Page 5: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

5

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

0

1211

10

1

8 76

Kosaraju-Sharir

reverse digraph GR

0

1

2

3

4

5

6

7

8

9

10

11

12

marked[v]v

Page 6: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

6

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

0

1211

10

1

8 76

Kosaraju-Sharir

visit 0

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

F

F

F

F

F

F

F

F

F

F

F

marked[v]v

Page 7: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

7

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

0

1211

10

1

8 76

Kosaraju-Sharir

visit 6

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

F

F

F

F

T

F

F

F

F

F

F

marked[v]v

Page 8: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

8

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

0

1211

10

1

8 76

Kosaraju-Sharir

visit 8

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

F

F

F

F

T

F

T

F

F

F

F

marked[v]v

Page 9: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

9

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

0

1211

10

1

8 76

Kosaraju-Sharir

8 done

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

F

F

F

F

T

F

T

F

F

F

F

marked[v]v

8

6

Page 10: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

10

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

0

1211

10

1

7

Kosaraju-Sharir

visit 6

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

F

F

F

F

T

F

T

F

F

F

F

6

marked[v]v

8

Page 11: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

11

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

0

1211

10

1

7

Kosaraju-Sharir

visit 7

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

F

F

F

F

T

T

T

F

F

F

F

6

marked[v]v

8

Page 12: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

12

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

0

1211

10

1

7

Kosaraju-Sharir

7 done

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

F

F

F

F

T

T

T

F

F

F

F

6

marked[v]v

7 8

6

Page 13: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

13

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

0

1211

10

1

Kosaraju-Sharir

6 done

0

1

2

3

4

5

6

7

8

9

10

11

12

6

marked[v]v

6 7 8

T

F

F

F

F

F

T

T

T

F

F

F

F

0

Page 14: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

14

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

1211

10

1

Kosaraju-Sharir

visit 0

0

1

2

3

4

5

6

7

8

9

10

11

12

0marked[v]v

6 7 8

T

F

F

F

F

F

T

T

T

F

F

F

F

Page 15: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

15

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

1211

10

1

Kosaraju-Sharir

visit 2

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

F

F

T

T

T

F

F

F

F

0marked[v]v

6 7 8

Page 16: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

16

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

1211

10

1

Kosaraju-Sharir

visit 4

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

F

F

F

F

0

6 7 8

marked[v]v

Page 17: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

17

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

1211

10

1

Kosaraju-Sharir

visit 11

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

F

F

T

F

0marked[v]v

6 7 8

Page 18: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

18

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

1211

10

1

Kosaraju-Sharir

visit 9

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

T

F

T

F

0marked[v]v

6 7 8

Page 19: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

19

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

1211

10

1

Kosaraju-Sharir

visit 12

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

T

F

T

T

0marked[v]v

6 7 8

Page 20: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

20

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

1211

10

1

Kosaraju-Sharir

visit 12

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

T

F

T

T

0marked[v]v

6 7 8

Page 21: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

21

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

1211

10

1

Kosaraju-Sharir

visit 10

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

T

T

T

T

0marked[v]v

6 7 8

Page 22: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

22

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

1211

10

1

Kosaraju-Sharir

10 done

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

T

T

T

T

0marked[v]v

10 6 7 8

12

Page 23: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

23

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

9

2

5

3

11

1

Kosaraju-Sharir

12 done

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

T

T

T

T

0

12

marked[v]v

12 10 6 7 8

9

Page 24: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

24

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

2

5

3

11

1

Kosaraju-Sharir

visit 9

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

T

T

T

T

0

9

marked[v]v

12 10 6 7 8

Page 25: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

25

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

2

5

3

11

1

Kosaraju-Sharir

visit 9

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

T

T

T

T

0

9

marked[v]v

12 10 6 7 8

Page 26: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

26

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

2

5

3

11

1

Kosaraju-Sharir

9 done

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

T

T

T

T

0

9

marked[v]v

9 12 10 6 7 8

11

Page 27: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

27

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1

4

2

5

3

1

Kosaraju-Sharir

11 done

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

T

T

T

T

0

11

marked[v]v

11 9 12 10 6 7 8

4

Page 28: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

28

Phase 1. Compute reverse postorder in GR.

11 9 12 10 6 7 8

1

4

9

2

5

3

0

1211

10

1

8 76

1 2

5

3

1

Kosaraju-Sharir

visit 4

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

T

T

T

T

0

4

marked[v]v

Page 29: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

29

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1 2

5

3

1

Kosaraju-Sharir

visit 4

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

F

T

T

T

T

T

T

T

0

4

marked[v]v

11 9 12 10 6 7 8

Page 30: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

30

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1 2

5

3

1

Kosaraju-Sharir

visit 5

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

F

T

T

T

T

T

T

T

T

T

0

4

marked[v]v

11 9 12 10 6 7 8

Page 31: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

31

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1 2

5

3

1

Kosaraju-Sharir

visit 3

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

T

T

T

T

T

T

T

T

T

T

0

4

marked[v]v

11 9 12 10 6 7 8

Page 32: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

32

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1 2

5

3

1

Kosaraju-Sharir

visit 3

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

T

T

T

T

T

T

T

T

T

T

0

4

marked[v]v

11 9 12 10 6 7 8

Page 33: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

33

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1 2

5

3

1

Kosaraju-Sharir

3 done

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

T

T

T

T

T

T

T

T

T

T

0

4

marked[v]v

3 11 9 12 10 6 7 8

5

Page 34: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

34

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1 21

Kosaraju-Sharir

visit 5

0

1

2

3

4

5

6

7

8

9

10

11

12

T

F

T

T

T

T

T

T

T

T

T

T

T

0

4

5

marked[v]v

3 11 9 12 10 6 7 8

Page 35: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

35

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1 21

Kosaraju-Sharir

5 done

0

1

2

3

4

5

6

7

8

9

10

11

12

0

4

5

marked[v]v

5 3 11 9 12 10 6 7 8

T

F

T

T

T

T

T

T

T

T

T

T

T

4

Page 36: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

36

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

1 21

Kosaraju-Sharir

4 done

0

1

2

3

4

5

6

7

8

9

10

11

12

0

4

marked[v]v

4 5 3 11 9 12 10 6 7 8

T

F

T

T

T

T

T

T

T

T

T

T

T

2

Page 37: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

37

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

11

Kosaraju-Sharir

visit 2

0

1

2

3

4

5

6

7

8

9

10

11

12

0

2

marked[v]v

4 5 3 11 9 12 10 6 7 8

T

F

T

T

T

T

T

T

T

T

T

T

T

Page 38: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

38

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

11

Kosaraju-Sharir

2 done

0

1

2

3

4

5

6

7

8

9

10

11

12

0

2

marked[v]v

2 4 5 3 11 9 12 10 6 7 8

T

F

T

T

T

T

T

T

T

T

T

T

T

0

Page 39: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

39

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

11

Kosaraju-Sharir

0 done

0

1

2

3

4

5

6

7

8

9

10

11

12

0marked[v]v

0 2 4 5 3 11 9 12 10 6 7 8

T

F

T

T

T

T

T

T

T

T

T

T

T

Page 40: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

40

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

11

Kosaraju-Sharir

visit 1

0

1

2

3

4

5

6

7

8

9

10

11

12

T

T

T

T

T

T

T

T

T

T

T

T

T

marked[v]v

0 2 4 5 3 11 9 12 10 6 7 8

Page 41: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

41

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

Kosaraju-Sharir

1 done

0

1

2

3

4

5

6

7

8

9

10

11

12

T

T

T

T

T

T

T

T

T

T

T

T

T

marked[v]v

1 0 2 4 5 3 11 9 12 10 6 7 8

1

Page 42: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

42

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

Kosaraju-Sharir

check 2 3 4 5 6 7 8 9 10 11 12

0

1

2

3

4

5

6

7

8

9

10

11

12

T

T

T

T

T

T

T

T

T

T

T

T

T

marked[v]v

1 0 2 4 5 3 11 9 12 10 6 7 8

Page 43: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

43

Phase 1. Compute reverse postorder in GR.

1

4

9

2

5

3

0

1211

10

1

8 76

Kosaraju-Sharir

1 0 2 4 5 3 11 9 12 10 6 7 8

reverse digraph GR

Page 44: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

44

‣ DFS in reverse graph

‣ DFS in original graph

Page 45: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

45

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

1

4

9

2

5

3

0

1211

10

8 76 8 76 0

1

2

3

4

5

6

7

8

9

10

11

12

scc[v]v

original digraph G

1 0 2 4 5 3 11 9 12 10 6 7 8

Page 46: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

46

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

1

4

9

2

5

3

0

1211

10

8 76 8 76

visit 1

0

1

2

3

4

5

6

7

8

9

10

11

12

0

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 47: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

47

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

11

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

4

9

2

5

3

0

1211

10

8 76 8 76

1 done

0

1

2

3

4

5

6

7

8

9

10

11

12

0

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 48: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

48

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

1

4

9

2

5

3

0

1211

10

8 76 8 76

strong component: 1

0

1

2

3

4

5

6

7

8

9

10

11

12

0

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 49: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

49

1

0

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

visit 0

4

9

2

5

3

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 50: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

50

1

0

1

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

visit 5

4

9

2

5

3

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 51: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

51

1

0

1

1

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

visit 4

4

9

2

5

3

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 52: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

52

1

0

1

1

1

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

visit 3

4

9

2

5

3

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 53: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

53

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

visit 3

4

9

2

5

3

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1

0

1

1

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 54: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

54

1

0

1

1

1

1

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

visit 2

4

9

2

5

3

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 55: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

55

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

visit 2

4

9

2

5

3

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1

0

1

1

1

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 56: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

56

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

22

4

9

5

3

0

1211

10

Kosaraju-Sharir

2 done

4

9

5

3

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1

0

1

1

1

1

3

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 57: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

57

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

3

4

9

2

5

0

1211

10

Kosaraju-Sharir

3 done

4

9

5

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1

0

1

1

1

1

3

4

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 58: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

58

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

visit 4

4

9

5

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1

0

1

1

1

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 59: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

59

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

9

2

5

3

0

1211

10

Kosaraju-Sharir

4 done

9

5

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1

0

1

1

1

1

44

5

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 60: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

60

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

5

4

9

2

3

0

1211

10

Kosaraju-Sharir

5 done

9

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1

0

1

1

1

1

5

0

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 61: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

61

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

4

9

2

5

3

0

1211

10

Kosaraju-Sharir

visit 0

9

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

8 76

1

1

0

1

1

1

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 62: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

62

00

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

1211

10

8 76

Kosaraju-Sharir

0 done

9

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 63: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

63

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

3

0

1211

10

8 76

Kosaraju-Sharir

strong component: 0 2 3 4 5

9

0

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

5

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 64: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

64

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

8 76

Kosaraju-Sharir

check 2

9

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 65: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

65

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

8 76

Kosaraju-Sharir

check 4

9

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 66: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

66

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

8 76

Kosaraju-Sharir

check 5

9

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 67: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

67

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

8 76

Kosaraju-Sharir

check 3

9

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 68: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

68

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

8 76

Kosaraju-Sharir

visit 11

9

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 69: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

69

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

8 76

Kosaraju-Sharir

visit 11

9

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 70: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

70

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

8 76

Kosaraju-Sharir

visit 12

9

1211

10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

2

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 71: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

71

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

8 76

Kosaraju-Sharir

visit 9

9

12

10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

2

2

11

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 72: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

72

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

8 76

Kosaraju-Sharir

visit 9

9

12

10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

2

2

11

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 73: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

73

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

8 76

Kosaraju-Sharir

visit 10

9

12

10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

2

2

2

11

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 74: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

74

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

10

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

10 done

9

12

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

2

2

2

11

9 10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 75: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

75

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

9

1

4

2

5

3

0

1211

8 76

Kosaraju-Sharir

9 done

12

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

2

2

2

11

109

12

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 76: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

76

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

12

1

4

9

2

5

3

0

11

8 76

Kosaraju-Sharir

12 done

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

2

2

2

11

10

11 12

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 77: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

77

1111

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

12

8 76

Kosaraju-Sharir

11 done

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

2

2

2

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 78: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

78

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

strong component: 9 10 11 12

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

2

2

2

11

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 79: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

79

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

check 9

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

2

2

2

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 80: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

80

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

check 12

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

2

2

2

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 81: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

81

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

check 10

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

2

2

2

2

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 82: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

82

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

visit 6

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

2

2

2

2

86 7

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 83: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

83

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

visit 6

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

2

2

2

2

8 76

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 84: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

84

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

visit 6

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

2

2

2

2

8 76

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 85: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

85

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

visit 8

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

3

2

2

2

2

8 76

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 86: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

86

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

8

1

4

9

2

5

3

0

1211

7

Kosaraju-Sharir

8 done

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

3

2

2

2

2

7

10

6 866

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 87: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

87

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

visit 6

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

3

2

2

2

2

76

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 88: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

88

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

6 done

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

3

2

2

2

2

7

10

6

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 89: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

89

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 7

Kosaraju-Sharir

strong component: 6 8

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

3

2

2

2

2

7

10

6

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 90: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

90

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

visit 7

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

4

3

2

2

2

2

7

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 91: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

91

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

visit 7

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

4

3

2

2

2

2

7

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 92: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

92

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

7 done

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

4

3

2

2

2

2

7

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 93: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

93

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

8 76

Kosaraju-Sharir

strong component: 7

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

4

3

2

2

2

2

7

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 94: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

94

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

86 7

Kosaraju-Sharir

check 8

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

4

3

2

2

2

2

10

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v

Page 95: click to begin demo - SJTUxiaojuan/algo16/slides/6Demo... · 2016. 10. 13. · 4.2 Kosaraju-Sharir Algorithm click to begin demo. 2 Phase 1. Compute reverse postorder in GR. Phase

95

Phase 2. Run DFS in G, visiting unmarked vertices in reverse postorder of GR.

1

4

9

2

5

3

0

1211

10

86 7

Kosaraju-Sharir

done

0

1

2

3

4

5

6

7

8

9

10

11

12

1

0

1

1

1

1

3

4

3

2

2

2

2

1 0 2 4 5 3 11 9 12 10 6 7 8

scc[v]v