red-rule blue-rule demo prim’s algorithm demo kruskal...

74
Lecture slides by Kevin Wayne Copyright © 2005 Pearson-Addison Wesley http://www.cs.princeton.edu/~wayne/kleinberg-tardos Last updated on 2/26/18 4:51 PM 4. G REEDY A LGORITHMS II red-rule blue-rule demo Prim’s algorithm demo Kruskal’s algorithm demo reverse-delete algorithm demo Boruvka’s algorithm demo

Upload: dinhthien

Post on 05-Oct-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Lecture slides by Kevin WayneCopyright © 2005 Pearson-Addison Wesley

http://www.cs.princeton.edu/~wayne/kleinberg-tardos

Last updated on 2/26/18 4:51 PM

4. GREEDY ALGORITHMS II

‣ red-rule blue-rule demo

‣ Prim’s algorithm demo

‣ Kruskal’s algorithm demo

‣ reverse-delete algorithm demo

‣ Boruvka’s algorithm demo

4. GREEDY ALGORITHMS II

‣ red-rule blue-rule demo

‣ Prim’s algorithm demo

‣ Kruskal’s algorithm demo

‣ reverse-delete algorithm demo

‣ Boruvka’s algorithm demo

SECTION 6.1

Red-rule blue-rule demo

Red rule. Let C be a cycle with no red edges. Select an uncolored edge of Cof max weight and color it red.

Blue rule. Let D be a cutset with no blue edges. Select an uncolored edge in

D of min weight and color it blue.

3

1 5

3

9 2

47 6

8

the input graph

Red-rule blue-rule demo

Red rule. Let C be a cycle with no red edges. Select an uncolored edge of Cof max weight and color it red.

4

3

9 2

4

8

apply the red rule to the cycle

1

Red-rule blue-rule demo

5

current set of red and blue edges

Red-rule blue-rule demo

Red rule. Let C be a cycle with no red edges. Select an uncolored edge of Cof max weight and color it red.

6

2

47

8

apply the red rule to the cycle

Red-rule blue-rule demo

Red rule. Let C be a cycle with no red edges. Select an uncolored edge of Cof max weight and color it red.

7

current set of red and blue edges

Red-rule blue-rule demo

Blue rule. Let D be a cutset with no blue edges. Select an uncolored edge in

D of min weight and color it blue.

8

1 5 47 6

apply the blue rule to the cutset

Red-rule blue-rule demo

9

current set of red and blue edges

Red-rule blue-rule demo

Blue rule. Let D be a cutset with no blue edges. Select an uncolored edge in

D of min weight and color it blue.

10

5

3

9

apply the blue rule to the cutset

Red-rule blue-rule demo

11

current set of red and blue edges

Red-rule blue-rule demo

Red rule. Let C be a cycle with no red edges. Select an uncolored edge of Cof max weight and color it red.

12

2

46

apply the red rule to the cycle

Red-rule blue-rule demo

13

current set of red and blue edges

Red-rule blue-rule demo

Blue rule. Let D be a cutset with no blue edges. Select an uncolored edge in

D of min weight and color it blue.

14

9 2

4

8

apply the blue rule to the cutset

7

Red-rule blue-rule demo

15

current set of red and blue edges

Red-rule blue-rule demo

Blue rule. Let D be a cutset with no blue edges. Select an uncolored edge in

D of min weight and color it blue.

16

46

8

apply the blue rule to the cutset

Red-rule blue-rule demo

17

current set of red and blue edges

Red-rule blue-rule demo

Blue rule. Let D be a cutset with no blue edges. Select an uncolored edge in

D of min weight and color it blue.

18

9

7

8

apply the blue rule to the cutset

Red-rule blue-rule demo

19

current set of red and blue edges

Red-rule blue-rule demo

Blue rule. Let D be a cutset with no blue edges. Select an uncolored edge in

D of min weight and color it blue.

20

1 5

3

apply the red rule to the cycle

Red-rule blue-rule demo

21

current set of red and blue edges

Red-rule blue-rule demo

Greedy algorithm. Upon termination, the blue edges form a MST.

22

1

3

2

47

a minimum spanning tree

4. GREEDY ALGORITHMS II

‣ red-rule blue-rule demo

‣ Prim’s algorithm demo

‣ Kruskal’s algorithm demo

‣ reverse-delete algorithm demo

‣ Boruvka’s algorithm demo

SECTION 4.5

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

24

1 6

4

7 3

9

2

10

11

58 12

13

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

25

3 11

5

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

26

3

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

27

7 11

58 12

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

28

5

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

29

7 11

8

13 2

10

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

30

2

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

31

7

9

10

11

8

13

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

32

7

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

33

1 6 9

11

8

13

10

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

34

1

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

35

6

4

9

11

8

13

10

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

36

4

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

37

9

11

10

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

38

9

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

39

Prim’s algorithm demo

Initialize S = any node, T = ∅.

Repeat n – 1 times:

・Add to T a min-weight edge with one endpoint in S.

・Add new node to S.

40

1

4

3

9

2

5

7

4. GREEDY ALGORITHMS II

‣ red-rule blue-rule demo

‣ Prim’s algorithm demo

‣ Kruskal’s algorithm demo

‣ reverse-delete algorithm demo

‣ Boruvka’s algorithm demo

SECTION 4.5

Kruskal’s algorithm demo

Consider edges in ascending order of weight:

・Add to T unless it would create a cycle.

42

1 5

3

9 2

47 6

8

Kruskal’s algorithm demo

Consider edges in ascending order of weight:

・Add to T unless it would create a cycle.

43

1

Kruskal’s algorithm demo

Consider edges in ascending order of weight:

・Add to T unless it would create a cycle.

44

2

Kruskal’s algorithm demo

Consider edges in ascending order of weight:

・Add to T unless it would create a cycle.

45

3

Kruskal’s algorithm demo

Consider edges in ascending order of weight:

・Add to T unless it would create a cycle.

46

4

Kruskal’s algorithm demo

Consider edges in ascending order of weight:

・Add to T unless it would create a cycle.

47

5

Kruskal’s algorithm demo

Consider edges in ascending order of weight:

・Add to T unless it would create a cycle.

48

6

Kruskal’s algorithm demo

Consider edges in ascending order of weight:

・Add to T unless it would create a cycle.

49

7

Kruskal’s algorithm demo

Consider edges in ascending order of weight:

・Add to T unless it would create a cycle.

50

8

Kruskal’s algorithm demo

Consider edges in ascending order of weight:

・Add to T unless it would create a cycle.

51

9

Kruskal’s algorithm demo

Consider edges in ascending order of weight:

・Add to T unless it would create a cycle.

52

Kruskal’s algorithm demo

Consider edges in ascending order of weight:

・Add to T unless it would create a cycle.

53

1

3

2

47

4. GREEDY ALGORITHMS II

‣ red-rule blue-rule demo

‣ Prim’s algorithm demo

‣ Kruskal’s algorithm demo

‣ reverse-delete algorithm demo

‣ Boruvka’s algorithm demo

SECTION 4.5

Reverse-delete algorithm demo

Start with all edges in T and consider them in descending order of weight:

・Delete edge from T unless it would disconnect T.

55

1 5

3

9 2

47 6

8

Reverse-delete algorithm

Start with all edges in T and consider them in descending order of weight:

・Delete edge from T unless it would disconnect T.

56

9

Reverse-delete algorithm

Start with all edges in T and consider them in descending order of weight:

・Delete edge from T unless it would disconnect T.

57

8

Reverse-delete algorithm

Start with all edges in T and consider them in descending order of weight:

・Delete edge from T unless it would disconnect T.

58

7

Reverse-delete algorithm

Start with all edges in T and consider them in descending order of weight:

・Delete edge from T unless it would disconnect T.

59

6

Reverse-delete algorithm

Start with all edges in T and consider them in descending order of weight:

・Delete edge from T unless it would disconnect T.

60

5

Reverse-delete algorithm

Start with all edges in T and consider them in descending order of weight:

・Delete edge from T unless it would disconnect T.

61

4

Reverse-delete algorithm

Start with all edges in T and consider them in descending order of weight:

・Delete edge from T unless it would disconnect T.

62

3

Reverse-delete algorithm

Start with all edges in T and consider them in descending order of weight:

・Delete edge from T unless it would disconnect T.

63

2

Reverse-delete algorithm

Start with all edges in T and consider them in descending order of weight:

・Delete edge from T unless it would disconnect T.

64

1

Reverse-delete algorithm

Start with all edges in T and consider them in descending order of weight:

・Delete edge from T unless it would disconnect T.

65

Reverse-delete algorithm

Start with all edges in T and consider them in descending order of weight:

・Delete edge from T unless it would disconnect T.

66

1

3

2

47

4. GREEDY ALGORITHMS II

‣ red-rule blue-rule demo

‣ Prim’s algorithm demo

‣ Kruskal’s algorithm demo

‣ reverse-delete algorithm demo

‣ Boruvka’s algorithm demo

SECTION 6.2

Borůvka’s algorithm demo

Repeat until only one tree.

・Apply blue rule to cutset corresponding to each blue tree.

・Color all selected edges blue.

68

1 6

4

7 3

9

2

10

11

58 12

13

Borůvka’s algorithm demo

Repeat until only one tree.

・Apply blue rule to cutset corresponding to each blue tree.

・Color all selected edges blue.

69

1 6

4

7 3

9

2

10

11

58 12

13

Borůvka’s algorithm demo

Repeat until only one tree.

・Apply blue rule to cutset corresponding to each blue tree.

・Color all selected edges blue.

70

1 6

4

7 3

9

2

10

11

58 12

13

Borůvka’s algorithm demo

Repeat until only one tree.

・Apply blue rule to cutset corresponding to each blue tree.

・Color all selected edges blue.

71

7 11

58 12

13

Borůvka’s algorithm demo

Repeat until only one tree.

・Apply blue rule to cutset corresponding to each blue tree.

・Color all selected edges blue.

72

7 11

58 12

13

Borůvka’s algorithm demo

Repeat until only one tree.

・Apply blue rule to cutset corresponding to each blue tree.

・Color all selected edges blue.

73

Borůvka’s algorithm demo

Repeat until only one tree.

・Apply blue rule to cutset corresponding to each blue tree.

・Color all selected edges blue.

74

1

4

3

9

2

5

7