Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 97 trang
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