Minimum Spanning Trees

Slides:



Advertisements
Similar presentations
© 2004 Goodrich, Tamassia Minimum Spanning Trees1 JFK BOS MIA ORD LAX DFW SFO BWI PVD
Advertisements

Chapter 9 Greedy Technique. Constructs a solution to an optimization problem piece by piece through a sequence of choices that are: b feasible - b feasible.
© 2004 Goodrich, Tamassia Campus Tour1. © 2004 Goodrich, Tamassia Campus Tour2 Graph Assignment Goals Learn and implement the adjacency matrix structure.
© 2004 Goodrich, Tamassia Minimum Spanning Trees1 JFK BOS MIA ORD LAX DFW SFO BWI PVD
Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.
1 Minimum Spanning Tree Prim-Jarnik algorithm Kruskal algorithm.
Spring 2007Shortest Paths1 Minimum Spanning Trees JFK BOS MIA ORD LAX DFW SFO BWI PVD
CSE 780 Algorithms Advanced Algorithms Minimum spanning tree Generic algorithm Kruskal’s algorithm Prim’s algorithm.
Chapter 9: Greedy Algorithms The Design and Analysis of Algorithms.
Greedy Algorithms Reading Material: Chapter 8 (Except Section 8.5)
Minimum Spanning Trees1 JFK BOS MIA ORD LAX DFW SFO BWI PVD
© 2004 Goodrich, Tamassia Minimum Spanning Trees1 Minimum Spanning Trees (§ 13.7) Spanning subgraph Subgraph of a graph G containing all the vertices of.
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
Minimum Spanning Trees1 JFK BOS MIA ORD LAX DFW SFO BWI PVD
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 11 Instructor: Paul Beame.
CSC311: Data Structures 1 Chapter 13: Graphs II Objectives: Graph ADT: Operations Graph Implementation: Data structures Graph Traversals: DFS and BFS Directed.
1 prepared from lecture material © 2004 Goodrich & Tamassia COMMONWEALTH OF AUSTRALIA Copyright Regulations 1969 WARNING This material.
CSC 213 Lecture 24: Minimum Spanning Trees. Announcements Final exam is: Thurs. 5/11 from 8:30-10:30AM in Old Main 205.
Minimum Spanning Trees What is a MST (Minimum Spanning Tree) and how to find it with Prim’s algorithm and Kruskal’s algorithm.
Minimum Spanning Trees
1 Minimum Spanning Tree Problem Topic 10 ITS033 – Programming & Algorithms Asst. Prof. Dr. Bunyarit Uyyanonvara IT Program, Image and Vision Computing.
Shortest Paths C B A E D F
Graphs Part 2. Shortest Paths C B A E D F
10/2/2015 3:00 PMCampus Tour1. 10/2/2015 3:00 PMCampus Tour2 Outline and Reading Overview of the assignment Review Adjacency matrix structure (§12.2.3)
2IL05 Data Structures Fall 2007 Lecture 13: Minimum Spanning Trees.
Lecture 19 Greedy Algorithms Minimum Spanning Tree Problem.
Shortest Paths 1 Chapter 7 Shortest Paths C B A E D F
© 2010 Goodrich, Tamassia Minimum Spanning Trees1 JFK BOS MIA ORD LAX DFW SFO BWI PVD
CSC 213 – Large Scale Programming. Minimum Spanning Tree (MST)  Spanning subgraph  Subgraph w/ all vertices ORD PIT ATL STL DEN DFW DCA
1 Weighted Graphs CSC401 – Analysis of Algorithms Lecture Notes 16 Weighted Graphs Objectives: Introduce weighted graphs Present shortest path problems,
Data Structures and Algorithms1 Data Structures and algorithms (IS ZC361) Weighted Graphs – Shortest path algorithms – MST S.P.Vimal BITS-Pilani
Minimum- Spanning Trees
CHAPTER 13 GRAPH ALGORITHMS ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA.
© 2010 Goodrich, Tamassia Minimum Spanning Trees1 JFK BOS MIA ORD LAX DFW SFO BWI PVD
1 COMP9024: Data Structures and Algorithms Week Twelve: Graphs (II) Hui Wu Session 1, 2014
Shortest Paths C B A E D F Shortest Paths
Graphs Part 2.
14 Graph Algorithms Hongfei Yan June 8, 2016.
COMP9024: Data Structures and Algorithms
Minimum Spanning Trees
Introduction to Algorithms
Minimum Spanning Trees
Shortest Path 6/18/2018 4:22 PM Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia,
Shortest Paths C B A E D F Shortest Paths 1
Minimum Spanning Trees
Lecture 22 Minimum Spanning Tree
Chapter 14 Graph Algorithms
Lecture 12 Algorithm Analysis
Greedy Algorithms / Minimum Spanning Tree Yin Tat Lee
Minimum Spanning Tree 11/3/ :04 AM Minimum Spanning Tree
Shortest Paths C B A E D F
Campus Tour 11/16/2018 3:14 PM Campus Tour Campus Tour
Minimum Spanning Tree.
Minimum Spanning Tree.
Minimum Spanning Tree.
Minimum Spanning Trees
Algorithms and Data Structures Lecture XII
Minimum Spanning Trees
Chapter 13 Graph Algorithms
Minimum Spanning Tree Section 7.3: Examples {1,2,3,4}
Lecture 12 Algorithm Analysis
Graphs Part 2.
Graph Algorithms shortest paths, minimum spanning trees, etc.
Campus Tour 2/23/ :26 AM Campus Tour Campus Tour
Minimum Spanning Trees
Minimum Spanning Tree.
Shortest Paths.
Minimum Spanning Trees
Weighted Graphs C B A E D F Sequences
Lecture 12 Algorithm Analysis
Presentation transcript:

Minimum Spanning Trees 6/4/2018 11:39 PM Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Minimum Spanning Trees Minimum Spanning Trees

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

Prim-Jarnik’s Algorithm Similar to Dijkstra’s algorithm pick an arbitrary vertex s to start grow the MST as a cloud of vertices store with each vertex v label d(v) smallest weight of an edge connecting v to a vertex in the cloud At each step: add to the cloud the vertex u outside the cloud with the smallest distance label update the labels of the vertices adjacent to u Minimum Spanning Trees

Minimum Spanning Trees Example  7 D 2 B 4 8 9  5 2 F C 8 3 8 E A 7 7 Minimum Spanning Trees

Minimum Spanning Trees Example  7 D 2 B 4 8 9  5 2 F C 8 3 8 E A 7 7 7 7 D 2 B 4 5 9  5 2 F C 8 3 8 E A 7 7 Minimum Spanning Trees

Minimum Spanning Trees Example  B D C A F E 7 4 2 8 5 3 9  7 D 2 B 4 8 9  5 2 F C 8 3 8 E A 7 7 7 7 D 2 B 4 5 9  5 2 F C 8 3 8 E A 7 7 Minimum Spanning Trees

Minimum Spanning Trees Example  B D C A F E 7 4 2 8 5 3 9  7 D 2 B 4 8 9  5 2 F C 8 3 8 E A 7 7 7 B D C A F E 7 4 2 8 5 3 9 7 D 2 B 4 5 9  5 2 F C 8 3 8 E A 7 7 Minimum Spanning Trees

Minimum Spanning Trees Example (contd.) 7 7 D 2 B 4 9 4 5 5 2 F C 8 3 8 E A 3 7 7 7 D 2 B 4 5 9 4 5 2 F C 8 3 8 E A 3 7 Minimum Spanning Trees

Prim-Jarnik Pseudo-code //u is new vertex in the cloud //for each adjacent v of u Minimum Spanning Trees

Minimum Spanning Trees Analysis Similar to Dijkstra’s algorithm n insertions to Q O(n log n) [O(n) bottom-up heap construction] n removeMin operations with Q O(n log n) m replaceKey operations with Q O(m log n) Total: O((n + m) log n) Minimum Spanning Trees

Minimum Spanning Trees Kruskal’s Algorithm Discuss some properties that the algorithm uses Minimum Spanning Trees

Minimum Spanning Trees Cycle Property 8 4 2 3 6 7 9 e C f 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 Let C be the cycle formed by adding e to T For every edge f of C, weight(f)  weight(e) Minimum Spanning Trees

Cycle Property Cycle Property: C C 8 f 4 2 3 6 7 9 e C f 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 Let C be the cycle formed by adding e to 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 Replacing f with e yields a better spanning tree 8 4 2 3 6 7 9 C e f Minimum Spanning Trees

Minimum Spanning Trees Partition Property U V 7 f 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 4 9 5 2 8 8 3 e 6 Minimum Spanning Trees

Partition Property Partition Property: U V 7 f 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 4 9 5 2 8 8 3 e 6 Replacing f with e yields another MST U V 7 f 4 9 5 2 8 8 3 e 6 Minimum Spanning Trees

Minimum Spanning Trees Kruskal’s Approach Maintain a partition of the vertices into clusters(clouds) Initially, single-vertex clusters Keep an MST for each cluster Merge “closest” clusters and their MSTs A priority queue stores the edges outside clusters Key: weight; Element: edge At the end of the algorithm One cluster and one MST Minimum Spanning Trees

Example G 8 B 4 E 9 6 5 1 F C 3 11 2 7 H D A 10 Campus Tour

Example G 8 B 4 E 9 6 5 1 F C 3 11 2 7 H D A 10 B G C A F D 4 1 3 5 10 Campus Tour

Example B G C A F D 4 1 3 5 10 2 8 7 6 E H 11 9 G 8 B 4 E 9 6 5 1 F C Campus Tour

Example B G C A F D 4 1 3 5 10 2 8 7 6 E H 11 9 G 8 B 4 E 9 6 5 1 F C Campus Tour

Example (contd.) G 8 B 4 E 9 6 5 1 F C 3 11 2 7 H D A 10 Campus Tour

Example (contd.) G 8 B 4 E 9 6 5 1 F C 3 11 2 7 H D A 10 B G C A F D 4 Campus Tour

Example (contd.) two steps B G C A F D 4 1 3 5 10 2 8 7 6 E H 11 9 G 8 Campus Tour

Example (contd.) four steps two steps B G C A F D 4 1 3 5 10 2 8 7 6 E H 11 9 G 8 B 4 E 9 6 5 1 F C 3 11 2 7 H D A 10 four steps two steps B G C A F D 4 1 3 5 10 2 8 7 6 E H 11 9 B G C A F D 4 1 3 5 10 2 8 7 6 E H 11 9 Campus Tour

Minimum Spanning Trees Kruskal’s Algorithm Minimum Spanning Trees

Analysis of Kruskal’s Algorithm m insertions into Q (priority queue) m removeMin operations from Q Clustering the vertices Minimum Spanning Trees

Data structure for a partition a collection of disjoint sets, with operations: makeSet(u): create a set consisting of u find(u): return the set storing u union(A, B): replace set A with their union Minimum Spanning Trees

Minimum Spanning Trees List-based Partition Each set is stored in a sequence Each element has a reference back to the set find(u) returns the set of which u is a member O(1) time union(A,B) move the elements of the smaller set to the sequence of the larger set and update their references O(min(|A|, |B|)) time Minimum Spanning Trees

Union operations When doing a union n vertices (n-1 unions) O(n log n) move elements from the smaller set to the larger set Each time an element is moved it goes to a set of size at least double its old set Thus, each element can be moved at most O(log n) times n vertices (n-1 unions) Each vertex is moved at most O(log n) times O(n log n) Union-Find

Partition-Based Implementation Priority Queue operations: O(m log n) m insertions: O(m log m) [O(m) bottom-up heap] m removeMin operations: O(m log m) m = O(n^2) O(log m) = O(log n^2) = O(2 log n) = O(log n) O(m log m) = O(m log n) Minimum Spanning Trees

Partition-Based Implementation Priority Queue operations: O(m log n) m insertions: O(m log m) [O(m) bottom-up heap] m removeMin operations: O(m log m) m = O(n^2) O(log m) = O(log n^2) = O(2 log n) = O(log n) O(m log m) = O(m log n) Union-Find operations: O(m + n log n) 2m find operations: O(m) n - 1 union operations: O(n log n) Total: O( m log n + m + n log n) O((n+ m) log n) Minimum Spanning Trees

Complexity of MST algorithms Prim-Jarnik Kruskal Time complexity O( (n+m) log n ) Easier to implement Easier conceptually Minimum Spanning Trees

Minimum Spanning Trees Skipping the rest Minimum Spanning Trees

Baruvka’s Algorithm (Exercise) Like Kruskal’s Algorithm, Baruvka’s algorithm grows many clusters at once and maintains a forest T Each iteration of the while loop halves the number of connected components in forest T The running time is O(m log n) 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 Minimum Spanning Trees

Example of Baruvka’s Algorithm (animated) Slide by Matt Stallmann included with permission. Example of Baruvka’s Algorithm (animated) 4 9 6 8 2 4 3 8 5 9 4 7 3 1 6 6 5 4 1 5 4 3 2 9 6 8 7 Minimum Spanning Trees