Minimum Spanning Trees

Similar documents
Minimum Spanning Trees

Prim & Kruskal Algorithm

Minimum Spanning Trees

Graphs Weighted Graphs. Reading: 12.5, 12.6, 12.7

Graph Algorithms shortest paths, minimum spanning trees, etc.

Graph Algorithms shortest paths, minimum spanning trees, etc.

Minimum Spanning Trees

Outline and Reading. Minimum Spanning Tree. Minimum Spanning Tree. Cycle Property. Minimum Spanning Trees ( 12.7)

Graphs ORD SFO LAX DFW. Data structures and Algorithms

Graphs ORD SFO LAX DFW. Graphs 1

Shortest Paths D E. Shortest Paths 1

CHAPTER 13 GRAPH ALGORITHMS

Graphs ORD SFO LAX DFW Goodrich, Tamassia Graphs 1

Lecture 17: Weighted Graphs, Dijkstra s Algorithm. Courtesy of Goodrich, Tamassia and Olga Veksler

CHAPTER 14 GRAPH ALGORITHMS ORD SFO LAX DFW

Routing & Congestion Control

Weighted Graphs ( 12.5) Shortest Paths. Shortest Paths ( 12.6) Shortest Path Properties PVD ORD SFO LGA HNL LAX DFW MIA PVD PVD ORD ORD SFO SFO LGA

Minimum-Spanning-Tree problem. Minimum Spanning Trees (Forests) Minimum-Spanning-Tree problem

Minimum Spanning Trees

Week 12: Minimum Spanning trees and Shortest Paths

Minimum Spanning Trees My T. UF

Algorithms and Theory of Computation. Lecture 5: Minimum Spanning Tree

UC Berkeley CS 170: Efficient Algorithms and Intractable Problems Handout 8 Lecturer: David Wagner February 20, Notes 8 for CS 170

Complexity of Prim s Algorithm

Algorithms and Theory of Computation. Lecture 5: Minimum Spanning Tree

Minimum Spanning Trees

CSE 100 Minimum Spanning Trees Prim s and Kruskal

Minimum Spanning Trees. CSE 373 Data Structures

2 A Template for Minimum Spanning Tree Algorithms

Week 11: Minimum Spanning trees

Minimum Spanning Trees

What is a minimal spanning tree (MST) and how to find one

Minimum Spanning Trees. Minimum Spanning Trees. Minimum Spanning Trees. Minimum Spanning Trees

The big picture: from Perception to Planning to Control

Decreasing a key FIB-HEAP-DECREASE-KEY(,, ) 3.. NIL. 2. error new key is greater than current key 6. CASCADING-CUT(, )

managing an evolving set of connected components implementing a Union-Find data structure implementing Kruskal s algorithm

CSE373: Data Structures & Algorithms Lecture 17: Minimum Spanning Trees. Dan Grossman Fall 2013

Chapter 4. Greedy Algorithms. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

Partha Sarathi Manal

Minimum Spanning Trees

CS2210 Data Structures and Algorithms

CS 310 Advanced Data Structures and Algorithms

Minimum Spanning Trees

CIS 121 Data Structures and Algorithms Minimum Spanning Trees

Chapter 23. Minimum Spanning Trees

Chapter 9. Greedy Technique. Copyright 2007 Pearson Addison-Wesley. All rights reserved.

Minimum Spanning Trees

Lecture Notes for Chapter 23: Minimum Spanning Trees

22 Elementary Graph Algorithms. There are two standard ways to represent a

Minimum Spanning Trees

Minimum Spanning Trees. Application: Connecting a Network

CSE331 Introduction to Algorithms Lecture 15 Minimum Spanning Trees

6.1 Minimum Spanning Trees

Graphs and Network Flows ISE 411. Lecture 7. Dr. Ted Ralphs

CS 341: Algorithms. Douglas R. Stinson. David R. Cheriton School of Computer Science University of Waterloo. February 26, 2019

CSE 431/531: Algorithm Analysis and Design (Spring 2018) Greedy Algorithms. Lecturer: Shi Li

COP 4531 Complexity & Analysis of Data Structures & Algorithms

Minimum Spanning Tree

22 Elementary Graph Algorithms. There are two standard ways to represent a

CS 561, Lecture 9. Jared Saia University of New Mexico

Chapter 4. Greedy Algorithms. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

Greedy Algorithms. At each step in the algorithm, one of several choices can be made.

Minimum spanning trees

2.1 Greedy Algorithms. 2.2 Minimum Spanning Trees. CS125 Lecture 2 Fall 2016

Minimum-Cost Spanning Tree. Example

CSE 100: GRAPH ALGORITHMS

Example. Minimum-Cost Spanning Tree. Edge Selection Greedy Strategies. Edge Selection Greedy Strategies

Lecture 13. Reading: Weiss, Ch. 9, Ch 8 CSE 100, UCSD: LEC 13. Page 1 of 29

Dijkstra s algorithm for shortest paths when no edges have negative weight.

Dijkstra s Algorithm

Theory of Computing. Lecture 10 MAS 714 Hartmut Klauck

CSE 431/531: Analysis of Algorithms. Greedy Algorithms. Lecturer: Shi Li. Department of Computer Science and Engineering University at Buffalo

CSC 8301 Design & Analysis of Algorithms: Kruskal s and Dijkstra s Algorithms

We ve done. Introduction to the greedy method Activity selection problem How to prove that a greedy algorithm works Fractional Knapsack Huffman coding

Lecture 6 Basic Graph Algorithms

Algorithms for Minimum Spanning Trees

Algorithm Analysis Graph algorithm. Chung-Ang University, Jaesung Lee

Data Structures and Algorithms

CSE 421 Greedy Alg: Union Find/Dijkstra s Alg

2pt 0em. Computer Science & Engineering 423/823 Design and Analysis of Algorithms. Lecture 04 Minimum-Weight Spanning Trees (Chapter 23)

Representations of Weighted Graphs (as Matrices) Algorithms and Data Structures: Minimum Spanning Trees. Weighted Graphs

Campus Tour. 1/18/2005 4:08 AM Campus Tour 1

Introduction: (Edge-)Weighted Graph

CS 5321: Advanced Algorithms Minimum Spanning Trees. Acknowledgement. Minimum Spanning Trees

Computer Science & Engineering 423/823 Design and Analysis of Algorithms

Campus Tour Goodrich, Tamassia. Campus Tour 1

CSE 332: Data Structures & Parallelism Lecture 22: Minimum Spanning Trees. Ruth Anderson Winter 2018

CSC 505, Fall 2000: Week 7. In which our discussion of Minimum Spanning Tree Algorithms and their data Structures is brought to a happy Conclusion.

Spanning Trees. CSE373: Data Structures & Algorithms Lecture 17: Minimum Spanning Trees. Motivation. Observations. Spanning tree via DFS

tree follows. Game Trees

looking ahead to see the optimum

CSE 373 MAY 10 TH SPANNING TREES AND UNION FIND

Undirected Graphs. DSA - lecture 6 - T.U.Cluj-Napoca - M. Joldos 1

Greedy Algorithms Part Three

Lecture 4: Graph Algorithms

Kruskal s MST Algorithm

Minimum Spanning Trees and Union Find. CSE 101: Design and Analysis of Algorithms Lecture 7

Chapter 4. Greedy Algorithms. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

Elementary Graph Algorithms: Summary. Algorithms. CmSc250 Intro to Algorithms

CSC 1700 Analysis of Algorithms: Minimum Spanning Tree

Transcription:

Minimum Spanning Trees 04 6 33 49 PVD 1 40 146 61 14 15 0 Minimum Spanning Trees 1

Minimum Spanning Trees ( 1.) Spanning subgraph Subgraph of a graph G containing all the vertices of G Spanning tree 1 10 PIT Spanning subgraph that is itself a (free) tree Minimum spanning tree (MST) Spanning tree of a weighted graph with minimum total edge weight DEN 4 9 6 STL 3 5 DCA Applications Communications networks Transportation networks ATL Minimum Spanning Trees

Cycle Property Cycle Property: Let T be a minimum spanning tree of a weighted graph G Let e be an edge of G that is not in T and C let be the cycle formed by e with T For every edge f of C, weight(f) weight(e) Proof: By contradiction If weight(f) > weight(e) we can get a spanning tree of smaller weight by replacing e with f 6 6 Minimum Spanning Trees 3 f C f C 9 3 9 3 e 4 Replacing f with e yields a better spanning tree e 4

Partition Property Partition Property: Consider a partition of the vertices of G into subsets U and V Let e be an edge of minimum weight across the partition There is a minimum spanning tree of G containing edge e Proof: Let T be an MST of G If T does not contain e, consider the cycle C formed by e with T and let f be an edge of C across the partition By the cycle property, weight(f) weight(e) Thus, weight(f) = weight(e) We obtain another MST by replacing f with e U U Minimum Spanning Trees 4 5 5 f e f e 9 9 V 4 3 Replacing f with e yields another MST V 4 3

Kruskal s Algorithm ( 1..1) A priority queue stores the edges outside the cloud Key: weight Element: edge At the end of the algorithm We are left with one cloud that encompasses the MST A tree T which is our MST Algorithm KruskalMST(G) for each vertex V in G do define a Cloud(v) of {v} let Q be a priority queue. Insert all edges into Q using their weights as the key T while T has fewer than n-1 edges do edge e = T.removeMin() Let u, v be the endpoints of e if Cloud(v) Cloud(u) then Add edge e to T Merge Cloud(v) and Cloud(u) return T Minimum Spanning Trees 5

Data Structure for Kruskal Algortihm ( 10.6.) The algorithm maintains a forest of trees An edge is accepted it if connects distinct trees We need a data structure that maintains a partition, i.e., a collection of disjoint sets, with the operations: -find(u): return the set storing u -union(u,v): replace the sets storing u and v with their union Minimum Spanning Trees 6

Representation of a Partition Each set is stored in a sequence Each element has a reference back to the set operation find(u) takes O(1) time, and returns the set of which u is a member. in operation union(u,v), we move the elements of the smaller set to the sequence of the larger set and update their references the time for operation union(u,v) is min(n u,n v ), where n u and n v are the sizes of the sets storing u and v Whenever an element is processed, it goes into a set of size at least double, hence each element is processed at most log n times Minimum Spanning Trees

Partition-Based Implementation A partition-based version of Kruskal s Algorithm performs cloud merges as unions and tests as finds. Algorithm Kruskal(G): Input: A weighted graph G. Output: An MST T for G. Let P be a partition of the vertices of G, where each vertex forms a separate set. Let Q be a priority queue storing the edges of G, sorted by their weights Let T be an initially-empty tree while Q is not empty do (u,v) Q.removeMinElement() if P.find(u)!= P.find(v) then Add (u,v) to T P.union(u,v) return T Running time: O((n+m)log n) Minimum Spanning Trees

Kruskal Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 9

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 10

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 11

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 1

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 13

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 14

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 15

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 16

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 1

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 1

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 19

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 0

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees 1

Example 04 6 33 49 40 146 61 0 PVD 1 14 15 Minimum Spanning Trees

Prim-Jarnik s Algorithm ( 1..) Similar to Dijkstra s algorithm (for a connected graph) We pick an arbitrary vertex s and we grow the MST as a cloud of vertices, starting from s We store with each vertex v a label d(v) = the smallest weight of an edge connecting v to a vertex in the cloud At each step: We add to the cloud the vertex u outside the cloud with the smallest distance label We update the labels of the vertices adjacent to u Minimum Spanning Trees 3

Prim-Jarnik s Algorithm (cont.) A priority queue stores the vertices outside the cloud Key: distance Element: vertex Locator-based methods insert(k,e) returns a locator replacekey(l,k) changes the key of an item We store three labels with each vertex: Distance Parent edge in MST Locator in priority queue Algorithm PrimJarnikMST(G) Q new heap-based priority queue s a vertex of G for all v G.vertices() if v = s setdistance(v, 0) else setdistance(v, ) setparent(v, ) l Q.insert(getDistance(v), v) setlocator(v,l) while Q.isEmpty() u Q.removeMin() for all e G.incidentEdges(u) z G.opposite(u,e) r weight(e) if r < getdistance(z) setdistance(z,r) setparent(z,e) Q.replaceKey(getLocator(z),r) Minimum Spanning Trees 4

Minimum Spanning Trees 5 Example B D C A F E 4 5 3 9 0 B D C A F E 4 5 3 9 0 5 B D C A F E 4 5 3 9 0 5 B D C A F E 4 5 3 9 0 5 4

Minimum Spanning Trees 6 Example (contd.) B D C A F E 4 5 3 9 0 3 5 4 B D C A F E 4 5 3 9 0 3 5 4

Analysis Graph operations Method incidentedges is called once for each vertex Label operations We set/get the distance, parent and locator labels of vertex z O(deg(z)) times Setting/getting a label takes O(1) time Priority queue operations Each vertex is inserted once into and removed once from the priority queue, where each insertion or removal takes O(log n) time The key of a vertex w in the priority queue is modified at most deg(w) times, where each key change takes O(log n) time Prim-Jarnik s algorithm runs in O((n + m) log n) time provided the graph is represented by the adjacency list structure Recall that Σ v deg(v) = m The running time is O(m log n) since the graph is connected Minimum Spanning Trees

Baruvka s Algorithm (Ex. C-1.) Like Kruskal s Algorithm, Baruvka s algorithm grows many clouds at once. Algorithm BaruvkaMST(G) T V {just the vertices of G} while T has fewer than n-1 edges do for each connected component C in T do Let edge e be the smallest-weight edge from C to another component in T. if e is not already in T then Add edge e to T return T Each iteration of the while-loop halves the number of connected compontents in T. The running time is O(m log n). Minimum Spanning Trees

Baruvka Example 04 6 33 146 61 0 40 49 PVD 1 14 15 Minimum Spanning Trees 9

Example 04 6 33 146 61 0 49 40 1 PVD 14 15 Minimum Spanning Trees 30

Example 04 6 33 146 61 0 49 40 1 PVD 14 15 Minimum Spanning Trees 31