Algorithm Analysis Neil Tang 01/22/2008

Download Report

Transcript Algorithm Analysis Neil Tang 01/22/2008

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