1. Trang chủ
  2. » Công Nghệ Thông Tin

Minimum Spanning Tree potx

97 1.4K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Minimum Spanning Tree

  • Spanning Tree

  • What is A Spanning Tree?

  • DFS spanning tree

  • Example of generating spanning tree based on DFS

  • Slide 6

  • Minimal Spanning Tree.

  • Slide 8

  • Formal definition of minimum spanning tree

  • Greedy Choice

  • Notation

  • The Prim’s algorithm Main Idea

  • Slide 13

  • Prim’s algorithm

  • Slide 15

  • Example #01

  • Slide 17

  • Slide 18

  • Slide 19

  • Slide 20

  • Slide 21

  • Slide 22

  • Slide 23

  • Example #03

  • Slide 25

  • Slide 26

  • Slide 27

  • Slide 28

  • Slide 29

  • Slide 30

  • Slide 31

  • Slide 32

  • Slide 33

  • Slide 34

  • Slide 35

  • Slide 36

  • Implementation Issues

  • Slide 38

  • Slide 39

  • Slide 40

  • Slide 41

  • Prim’s Algorithm

  • Prim’s Algorithm Initialization

  • Building the MST

  • Time Analysis

  • Slide 46

  • Prim - extended Heap After Initialization

  • Prim - extended Heap Build tree - after PQ.extractMin

  • Update B adjacent to A

  • Update C adjacent to A

  • Build tree - after PQ.extractMin

  • Update C adjacent to B

  • Slide 53

  • Prim - unsorted list After Initialization

  • Slide 55

  • Update B, C adjacent to A

  • Slide 57

  • Update B adjacent to C

  • Slide 59

  • Slide 60

  • Slide 61

  • Slide 62

  • Kruskal's Algorithm: Main Idea

  • Slide 64

  • Kruskal's algorithm

  • Slide 66

  • Slide 67

  • Slide 68

  • Slide 69

  • Slide 70

  • Slide 71

  • Example #02

  • Slide 73

  • Slide 74

  • Slide 75

  • Slide 76

  • Slide 77

  • Slide 78

  • Slide 79

  • Slide 80

  • Slide 81

  • Slide 82

  • Slide 83

  • Slide 84

  • Slide 85

  • Slide 86

  • Slide 87

  • Kruskal's Algorithm:

  • Kruskal - Disjoint set After Initialization

  • Kruskal - add minimum weight edge if feasible

  • Slide 91

  • Slide 92

  • Slide 93

  • Slide 94

  • Kruskal's Algorithm: Time Analysis

  • Slide 96

  • Slide 97

Nội dung

Minimum Spanning Tree Spanning Tree • Given a connected weighted undirected graph G, a spanning tree of G is a subgraph of G that contains all of G’s nodes and enough of its edges to form a tree. v 1 v 4 v 3 v 5 v 2 Spanning tree Spanning tree is not unique! What is A Spanning Tree? u v b a c d e f • A spanning tree for an undirected graph G=(V,E) is a subgraph of G that is a tree and contains all the vertices of G • Can a graph have more than one spanning tree? Yes • Can an unconnected graph have a spanning tree? No DFS spanning tree • Generate the spanning tree edge during the DFS traversal. Algorithm dfsSpanningTree(v) mark v as visited; for (each unvisited node u adjacent to v) { mark the edge from u to v; dfsSpanningTree(u); } • Similar to DFS, the spanning tree edges can be generated based on BFS traversal. Example of generating spanning tree based on DFS v 1 v 4 v 3 v 5 v 2 G stack v 3 v 3 v 2 v 3 , v 2 v 1 v 3 , v 2 , v 1 backtrack v 3 , v 2 v 4 v 3 , v 2 , v 4 v 5 v 3 , v 2 , v 4 , v 5 backtrack v 3 , v 2 , v 4 backtrack v 3 , v 2 backtrack v 3 backtrack empty x x x x x Spanning Tree Use BFS and DFS 1. Find a spanning subgraph of G and draw it below. 2. Draw all the different spanning trees of G Minimal Spanning Tree. 4 4 3 2 9 15 8 10 14 3 u v b a c d e f Σ Mst T: w( T )= (u,v) ∈ T w(u,v ) is minimized • The weight of a subgraph is the sum of the weights of it edges. • A minimum spanning tree for a weighted graph is a spanning tree with minimum weight. • Can a graph have more then one minimum spanning tree? Yes, maybe Minimum Spanning Tree • Consider a connected undirected graph where – Each node x represents a country x – Each edge (x, y) has a number which measures the cost of placing telephone line between country x and country y • Problem: connecting all countries while minimizing the total cost • Solution: find a spanning tree with minimum total weight, that is, minimum spanning tree Formal definition of minimum spanning tree • Given a connected undirected graph G. • Let T be a spanning tree of G. • cost(T) = ∑ e∈T weight(e) • The minimum spanning tree is a spanning tree T which minimizes cost(T) v 1 v 4 v 3 v 5 v 2 5 2 3 7 8 4 Minimum spanning tree Greedy Choice We will show two ways to build a minimum spanning tree. • A MST can be grown from the current spanning tree by adding the nearest vertex and the edge connecting the nearest vertex to the MST. (Prim's algorithm) • A MST can be grown from a forest of spanning trees by adding the smallest edge connecting two spanning trees. (Kruskal's algorithm) [...]... Prim’s algorithm Main Idea Select a vertex to be a tree- node while (there are non -tree vertices) { if there is no edge connecting a tree node with a non -tree node return “no spanning tree select an edge of minimum weight between a tree node and a non -tree node 6 a 5 b u 14 2 10 c v 3 d add the selected edge and its new vertex to the tree } return tree 4 8 15 f Prim’s algorithm Algorithm PrimAlgorithm(v)...Notation • Tree- vertices: in the tree constructed so far • Non -tree vertices: rest of vertices Prim’s Selection rule • Select the minimum weight edge between a treenode and a non -tree node and add to the tree The Prim’s algorithm Main Idea This algorithm starts with one node It then, one by one, adds a node that is unconnected to the new tree to the new tree, each time selecting the... and include it in the minimum spanning tree; • while (there are unvisited nodes) { – find the minimum edge (v, u) between a visited node v and an unvisited node u; – mark u as visited; – add both v and (v, u) to the minimum spanning tree; } Some Examples Example #01 v1 v2 5 2 v3 v1 4 3 7 8 v4 v5 Start from v5, find the minimum edge attach to v5 v1 v2 5 2 v3 4 3 7 8 v4 v5 Find the minimum edge attach... edges The steps are: 1 The new tree is constructed - with one node from the old graph 2 While new tree has fewer than n nodes, 1 Find the node from the old graph with the smallest connecting edge to the new tree, 2 Add it to the new tree Every step will have joined one node, so that at the end we will have one tree with all the nodes and it will be a minimum spanning tree of the original graph The... vertices have been highlighted, the minimum spanning tree is shown in green In this case, it has weight 39 Fringe null Solution set A, D, F, B, E, C, G Example #03 Complete Graph 4 B 4 A C 2 4 E 1 F 2 D 1 3 10 5 G 5 6 3 4 I H 2 J 3 Old Graph 4 B 4 A New Tree C 2 4 E 1 1 F A 5 G 6 C 2 4 E 3 10 5 4 1 2 D 4 B F 2 D 1 3 10 5 G 3 5 4 6 3 I 4 H I 2 J 3 H 2 J 3 Old Graph 4 B 4 A New Tree C 2 4 E 1 1 F A 5 G 6 C... minimum edge attach to v2, v3 , v4 and v5 v2 5 2 v3 4 3 7 8 v4 v5 Find the minimum edge attach to v3 and v5 v1 v2 5 2 v1 v2 5 2 v3 4 3 7 8 v4 v5 Find the minimum edge attach to v2, v3 and v5 v3 4 3 7 8 v4 v5 Example #02 - 1 Description Not seen This is our original weighted graph This is not a tree because the definition of a tree requires that there are no cycles and this diagram contains cycles A... Graph 4 B 4 A New Tree C 2 4 E 1 1 F A 5 G 6 C 2 4 E 3 10 5 4 1 2 D 4 B F 2 D 1 3 10 5 G 3 5 4 6 3 I 4 H I 2 J 3 H 2 J 3 Old Graph 4 B 4 A New Tree C 2 4 E 1 1 F A 5 G 6 C 2 4 E 3 10 5 4 1 2 D 4 B F 2 D 1 3 10 5 G 3 5 4 6 3 I 4 H I 2 J 3 H 2 J 3 Old Graph 4 B 4 A New Tree C 2 4 E 1 1 F A 5 G 6 C 2 4 E 3 10 5 4 1 2 D 4 B F 2 D 1 3 10 5 G 3 5 4 6 3 I 4 H I 2 J 3 H 2 J 3 Old Graph 4 B 4 A New Tree C 2 4 E... Graph 4 B 4 A New Tree C 2 4 E 1 1 F A 5 G 6 C 2 4 E 3 10 5 4 1 2 D 4 B F 2 D 1 3 10 5 G 3 5 4 6 3 I 4 H I 2 J 3 H 2 J 3 Old Graph 4 B 4 A New Tree C 2 4 E 1 1 F A 5 G 6 C 2 4 E 3 10 5 4 1 2 D 4 B F 2 D 1 3 10 5 G 3 5 4 6 3 I 4 H I 2 J 3 H 2 J 3 Old Graph 4 B 4 A New Tree C 2 4 E 1 1 F A 5 G 6 C 2 4 E 3 10 5 4 1 2 D 4 B F 2 D 1 3 10 5 G 3 5 4 6 3 I 4 H I 2 J 3 H 2 J 3 Old Graph 4 B 4 A New Tree C 2 4 E... D 1 3 10 5 G 3 5 4 6 3 I 4 H I 2 J 3 H 2 J 3 Old Graph 4 B 4 A New Tree C 2 4 E 1 1 F A 5 G 6 C 2 4 E 3 10 5 4 1 2 D 4 B F 2 D 1 3 10 5 G 3 5 4 6 3 I 4 H I 2 J 3 H 2 J 3 Complete Graph 4 B 4 A Minimum Spanning Tree C 2 4 E 1 1 F A 5 G 6 C 2 E 3 10 5 4 1 2 D 4 B 1 F 2 D G 3 3 4 I H I 2 J 3 H 2 J 3 . edges. • A minimum spanning tree for a weighted graph is a spanning tree with minimum weight. • Can a graph have more then one minimum spanning tree? Yes, maybe Minimum Spanning Tree • Consider. find a spanning tree with minimum total weight, that is, minimum spanning tree Formal definition of minimum spanning tree • Given a connected undirected graph G. • Let T be a spanning tree of. ∑ e∈T weight(e) • The minimum spanning tree is a spanning tree T which minimizes cost(T) v 1 v 4 v 3 v 5 v 2 5 2 3 7 8 4 Minimum spanning tree Greedy Choice We will show two ways to build a minimum spanning tree. • A

Ngày đăng: 28/07/2014, 19:21

TỪ KHÓA LIÊN QUAN