Lec20_21_Prim

# Lec20_21_Prim - Minimum Spanning Tree Algorithms Prims...

This preview shows pages 1–10. Sign up to view the full content.

Minimum Spanning Tree Algorithms Prim’s Algorithm

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
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? Can an unconnected graph have a spanning tree?
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?

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Example of a Problem that Translates into a MST The Problem Several pins of an electronic circuit must be connected using the least amount of wire. Modeling the Problem The graph is a complete, undirected graph G = ( V, E ,W ), where V is the set of pins, E is the set of all possible interconnections between the pairs of pins and w ( e ) is the length of the wire needed to connect the pair of vertices . Find a 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)

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
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 tree-node and a non-tree node and add to the tree
The Prim 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 add the selected edge and its new vertex to the tree } return tree 6 4 5 2 15 8 10 14 3 u v b a c d f

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Implementation Issues How is the graph implemented? Assume that we just added node u to the tree. The distance of the nodes adjacent to u to the tree may now be decreased. There must be fast access to all the adjacent vertices. So using adjacency lists seems better Alternatively, adjacency matrix can also be used easily How should the set of non-tree vertices be represented? The operations are: build set delete node closest to tree decrease the distance of a non-tree node from the tree check whether a node is a non- tree node
Implementation Issues How should the set of non-tree vertices be represented? A priority queue PQ

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
This is the end of the preview. Sign up to access the rest of the document.

## This document was uploaded on 01/04/2010.

### Page1 / 36

Lec20_21_Prim - Minimum Spanning Tree Algorithms Prims...

This preview shows document pages 1 - 10. Sign up to view the full document.

View Full Document
Ask a homework question - tutors are online