Download Algorithm Analysis Neil Tang 01/22/2008

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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