Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Minimum Spanning Tree Neil Tang 3/25/2010 CS223 Advanced Data Structures and Algorithms 1 Class Overview The minimum spanning tree problem Applications Prim’s algorithm Kruskal’s algorithm CS223 Advanced Data Structures and Algorithms 2 Minimum Spanning Tree Problem The cost of a tree: The sum of the weights of all links on the tree. The Minimum Spanning Tree (MST) problem: Given a weighted undirected graph G, find a minimum cost tree connecting all the vertices on the graph. CS223 Advanced Data Structures and Algorithms 3 Minimum Spanning Tree Problem CS223 Advanced Data Structures and Algorithms 4 Applications Broadcasting problem in computer networks: Find the minimum cost route to send packages from a source node to all the other nodes in the network. Multicasting problem in computer networks: Find the minimum cost route to send packages from a source node to a subset of other nodes in the network. CS223 Advanced Data Structures and Algorithms 5 Prim’s Algorithm CS223 Advanced Data Structures and Algorithms 6 Prim’s Algorithm CS223 Advanced Data Structures and Algorithms 7 Prim’s Algorithm CS223 Advanced Data Structures and Algorithms 8 Prim’s Algorithm Arbitrarily pick a vertex to start with. Relaxation: dw=min(dw, cwv), where v is the newly marked vertex, w is one of its unmarked neighbors, cwv is the weight of edge (w,v) and dw indicates the current distance between w and one of the marked vertices. CS223 Advanced Data Structures and Algorithms 9 Dijkstra’s Algorithm Need to be changed: CS223 Advanced Data Structures and Algorithms 10 Prim’s Algorithm Trivial: O(|V|2 + |E|) = O(|V|2) Heap: deleteMin |V| times + decreaseKey |E| times O(|V|log|V| + |E|log|V|) = O (|E|log|V|) CS223 Advanced Data Structures and Algorithms 11 Kruskal’s Algorithm CS223 Advanced Data Structures and Algorithms 12 Kruskal’s Algorithm CS223 Advanced Data Structures and Algorithms 13 Kruskal’s Algorithm O(|E|) O(|E|log|E|) O(|E|log|V|) O(|E|) Time complexity: O(|E|log|E|) = O (|E|log|V|) CS223 Advanced Data Structures and Algorithms 14