Transcript
Page 1: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

Chapter 23

Minimum Spanning Trees

Page 2: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

2

Minimum Spanning Trees

• Find a minimum-cost set of edges that connect all vertices of a graph

• Applications– Connect “nodes” with a minimum of “wire”

• Networking

• Circuit design

Page 3: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

3

Minimum Spanning Trees

• Find a minimum-cost set of edges that connect all vertices of a graph

• Applications– Collect nearby nodes

• Clustering, taxonomy construction

Page 4: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

4

Minimum Spanning Trees

• Find a minimum-cost set of edges that connect all vertices of a graph

• Applications– Approximating graphs

Page 5: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

5

Minimum Spanning Trees

• A tree is an acyclic, undirected, connected graph

• A spanning tree of a graph is a tree containing all

vertices from the graph

• A minimum spanning tree is a spanning tree,

where the sum of the weights on the tree’s edges

are minimal

Page 6: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

6

Minimum Spanning Trees

• A minimum spanning tree is a spanning tree,

where the sum of the weights on the tree’s edges

are minimal

Page 7: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

7

Minimum Spanning Trees

• Problem formulation– Given an undirected, weighted graph with

weights for each edge

– Find an acyclic subset that connects all of the vertices and minimizes the total weight:

– The minimum spanning tree is • Minimum spanning tree may be not unique (can be more than

one)

Page 8: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

8

Minimum Spanning Trees

• Both Kruskal’s and Prim’s Algorithms work with undirected graphs

• Both work with weighted and unweighted graphs but are more interesting when edges are weighted

• Both are greedy algorithms that produce optimal solutions

Page 9: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

9

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm – Work with edges

– Two steps:• Sort edges by increasing edge weight

• Select the first |V| - 1 edges that do not generate a cycle

– Walk through:

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10

Page 10: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

10

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

Sort the edges by increasing edge weight

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10 edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Page 11: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

11

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

Select first |V|–1 edges which do not

generate a cycle

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10 edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Page 12: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

12

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10 edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Select first |V|–1 edges which do not

generate a cycle

Page 13: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

13

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10 edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Accepting edge (E,G) would create a cycle

Select first |V|–1 edges which do not

generate a cycle

Page 14: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

14

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10 edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Select first |V|–1 edges which do not

generate a cycle

Page 15: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

15

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10 edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Select first |V|–1 edges which do not

generate a cycle

Page 16: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

16

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10 edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Select first |V|–1 edges which do not

generate a cycle

Page 17: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

17

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10 edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Select first |V|–1 edges which do not

generate a cycle

Page 18: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

18

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10 edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Select first |V|–1 edges which do not

generate a cycle

Page 19: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

19

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10 edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Select first |V|–1 edges which do not

generate a cycle

Page 20: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

20

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10 edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Select first |V|–1 edges which do not

generate a cycle

Page 21: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

21

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G 3

2

4

6

3

4

3

4

8

4

3

10 edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Select first |V|–1 edges which do not

generate a cycle

Page 22: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

22

Minimum Spanning Trees

• Solution 1: Kruskal’s algorithm

edge dv

(D,E) 1

(D,G) 2

(E,G) 3

(C,D) 3

(G,H) 3

(C,F) 3

(B,C) 4

5

1

A

H

B

F

E

D

C

G

2

3

3

3

edge dv

(B,E) 4

(B,F) 4

(B,H) 4

(A,H) 5

(D,F) 6

(A,B) 8

(A,F) 10

Done

Total Cost = 21

4

} no

t

co

ns

ide

red

Select first |V|–1 edges which do not

generate a cycle

Page 23: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

23

Minimum Spanning Trees

• Solution 2: Prim’s algorithm – Work with nodes (instead of edges)

– Two steps • Select node with minimum distance

• Update distances of adjacent, unselected nodes

– Walk through:

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10

2

Page 24: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

24

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

Initialize array

K dv pv

A F

B F

C F

D F

E F

F F

G F

H F

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10

2

K : whether in the tree

dv : distance to the tree

pv : closest node that is in the tree

Page 25: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

25

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10

Start with any node, say D

K dv pv

A

B

C

D T 0

E

F

G

H

2

Page 26: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

26

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10 K dv pv

A

B

C 3 D

D T 0

E 25 D

F 18 D

G 2 D

H

2 Update distances of

adjacent, unselected nodes

Page 27: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

27

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10 K dv pv

A

B

C 3 D

D T 0

E 25 D

F 18 D

G T 2 D

H

2 Select node with

minimum distance

Page 28: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

28

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10 K dv pv

A

B

C 3 D

D T 0

E 7 G

F 18 D

G T 2 D

H 3 G

2 Update distances of

adjacent, unselected nodes

Page 29: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

29

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10 K dv pv

A

B

C T 3 D

D T 0

E 7 G

F 18 D

G T 2 D

H 3 G

2 Select node with

minimum distance

Page 30: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

30

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10 K dv pv

A

B 4 C

C T 3 D

D T 0

E 7 G

F 3 C

G T 2 D

H 3 G

2 Update distances of

adjacent, unselected nodes

Page 31: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

31

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10 K dv pv

A

B 4 C

C T 3 D

D T 0

E 7 G

F T 3 C

G T 2 D

H 3 G

2 Select node with

minimum distance

Page 32: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

32

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10 K dv pv

A 10 F

B 4 C

C T 3 D

D T 0

E 2 F

F T 3 C

G T 2 D

H 3 G

2 Update distances of

adjacent, unselected nodes

Page 33: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

33

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10 K dv pv

A 10 F

B 4 C

C T 3 D

D T 0

E T 2 F

F T 3 C

G T 2 D

H 3 G

2 Select node with

minimum distance

Page 34: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

34

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10 K dv pv

A 10 F

B 4 C

C T 3 D

D T 0

E T 2 F

F T 3 C

G T 2 D

H 3 G

2

Table entries unchanged

Update distances of

adjacent, unselected nodes

Page 35: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

35

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10 K dv pv

A 10 F

B 4 C

C T 3 D

D T 0

E T 2 F

F T 3 C

G T 2 D

H T 3 G

2 Select node with

minimum distance

Page 36: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

36

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10 K dv pv

A 4 H

B 4 C

C T 3 D

D T 0

E T 2 F

F T 3 C

G T 2 D

H T 3 G

2 Update distances of

adjacent, unselected nodes

Page 37: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

37

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10 K dv pv

A T 4 H

B 4 C

C T 3 D

D T 0

E T 2 F

F T 3 C

G T 2 D

H T 3 G

2 Select node with

minimum distance

Page 38: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

38

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10

Update distances of

adjacent, unselected nodes

K dv pv

A T 4 H

B 4 C

C T 3 D

D T 0

E T 2 F

F T 3 C

G T 2 D

H T 3 G

2

Table entries unchanged

Page 39: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

39

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

25

A

H

B

F

E

D

C

G 7

2

10

18

3

4

3

7

8

9

3

10

Select node with

minimum distance

K dv pv

A T 4 H

B T 4 C

C T 3 D

D T 0

E T 2 F

F T 3 C

G T 2 D

H T 3 G

2

Page 40: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

40

Minimum Spanning Trees

• Solution 2: Prim’s algorithm

4

A

H

B

F

E

D

C

G

2

3

4

3

3

Cost of Minimum

Spanning Tree = 21

K dv pv

A T 4 H

B T 4 C

C T 3 D

D T 0

E T 2 F

F T 3 C

G T 2 D

H T 3 G

2

Done

Page 41: Chapter 23 Minimum Spanning Trees - UTKweb.eecs.utk.edu › ~leparker › Courses › CS581-spring14 › Lectures › … · Minimum Spanning Trees • A minimum spanning tree is

41

Minimum Spanning Trees

• Runtime – When using binary heaps, the runtime of the Kruskal’s

algorithm is

– When using binary heaps, the runtime of the Prim’s algorithm isWhen using the Fibonacci heaps, the runtime of the Prim’s algorithm becomes:

– So, when an undirected graph is dense (i.e., is much small than ), the Prim’s algorithm is more efficient


Top Related