Outline and Reading. Minimum Spanning Trees. Minimum Spanning Tree. Cycle Property. Prim-Jarnik s Algorithm. Partition Property

Similar documents
CSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) Total 92.

Solutions to Homework 6

The Union-Find Problem Kruskal s algorithm for finding an MST presented us with a problem in data-structure design. As we looked at each edge,

CIS 700: algorithms for Big Data

Social Media Mining. Graph Essentials

Analysis of Algorithms, I

GRAPH THEORY LECTURE 4: TREES

Distributed Computing over Communication Networks: Maximal Independent Set

SCAN: A Structural Clustering Algorithm for Networks

Any two nodes which are connected by an edge in a graph are called adjacent node.

Euclidean Minimum Spanning Trees Based on Well Separated Pair Decompositions Chaojun Li. Advised by: Dave Mount. May 22, 2014

Graph Theory and Topology Design

Exponential time algorithms for graph coloring

Handout #Ch7 San Skulrattanakulchai Gustavus Adolphus College Dec 6, Chapter 7: Digraphs

The Goldberg Rao Algorithm for the Maximum Flow Problem

Institut für Informatik Lehrstuhl Theoretische Informatik I / Komplexitätstheorie. An Iterative Compression Algorithm for Vertex Cover

Outline 2.1 Graph Isomorphism 2.2 Automorphisms and Symmetry 2.3 Subgraphs, part 1

Computer Algorithms. NP-Complete Problems. CISC 4080 Yanjun Li

High degree graphs contain large-star factors

Lecture 17 : Equivalence and Order Relations DRAFT

Closest Pair Problem

Chapter 6: Graph Theory

Approximation Algorithms

Zachary Monaco Georgia College Olympic Coloring: Go For The Gold

136 CHAPTER 4. INDUCTION, GRAPHS AND TREES

Cpt S 223. School of EECS, WSU

Network (Tree) Topology Inference Based on Prüfer Sequence

Sorting revisited. Build the binary search tree: O(n^2) Traverse the binary tree: O(n) Total: O(n^2) + O(n) = O(n^2)

CSC2420 Fall 2012: Algorithm Design, Analysis and Theory

SEMITOTAL AND TOTAL BLOCK-CUTVERTEX GRAPH

Data Structures. Chapter 8

Distance Degree Sequences for Network Analysis

CS 598CSC: Combinatorial Optimization Lecture date: 2/4/2010

Minimum Spanning Trees

IE 680 Special Topics in Production Systems: Networks, Routing and Logistics*

BOUNDARY EDGE DOMINATION IN GRAPHS

Binary Search Trees. Data in each node. Larger than the data in its left child Smaller than the data in its right child

Algorithms and Data Structures

arxiv: v1 [cs.dc] 7 Dec 2014

The Binary Blocking Flow Algorithm. Andrew V. Goldberg Microsoft Research Silicon Valley goldberg/

Graphs without proper subgraphs of minimum degree 3 and short cycles

Load Balancing. Load Balancing 1 / 24

5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.

UPPER BOUNDS ON THE L(2, 1)-LABELING NUMBER OF GRAPHS WITH MAXIMUM DEGREE

Exam study sheet for CS2711. List of topics

8.1 Min Degree Spanning Tree

Binary Heaps * * * * * * * / / \ / \ / \ / \ / \ * * * * * * * * * * * / / \ / \ / / \ / \ * * * * * * * * * *

Attacking Anonymized Social Network

Examination paper for MA0301 Elementær diskret matematikk

The Binary Blocking Flow Algorithm. Andrew V. Goldberg Microsoft Research Silicon Valley goldberg/

B AB 5 C AC 3 D ABGED 9 E ABGE 7 F ABGEF 8 G ABG 6 A BEDA 3 C BC 1 D BCD 2 E BE 1 F BEF 2 G BG 1

Analysis of Computer Algorithms. Algorithm. Algorithm, Data Structure, Program

Computational Geometry. Lecture 1: Introduction and Convex Hulls

V. Adamchik 1. Graph Theory. Victor Adamchik. Fall of 2005

OPTIMAL DESIGN OF DISTRIBUTED SENSOR NETWORKS FOR FIELD RECONSTRUCTION

Large induced subgraphs with all degrees odd

An Empirical Study of Two MIS Algorithms

Offline sorting buffers on Line

ONLINE DEGREE-BOUNDED STEINER NETWORK DESIGN. Sina Dehghani Saeed Seddighin Ali Shafahi Fall 2015

INTERSECTION OF LINE-SEGMENTS

root node level: internal node edge leaf node Data Structures & Algorithms McQuain

Finding and counting given length cycles

Graph Theory Problems and Solutions

Big graphs for big data: parallel matching and clustering on billion-vertex graphs

Ph.D. Thesis. Judit Nagy-György. Supervisor: Péter Hajnal Associate Professor

Every tree contains a large induced subgraph with all degrees odd

Network Design with Coverage Costs

The positive minimum degree game on sparse graphs

Minimum cost maximum flow, Minimum cost circulation, Cost/Capacity scaling

A Practical Scheme for Wireless Network Operation

Talk Announcement CSC Lecture 5 Intra-Domain Routing Protocols. Administrivia. This Time

Union-Find Algorithms. network connectivity quick find quick union improvements applications

Connectivity and cuts

Odd induced subgraphs in graphs of maximum degree three

Motivation Suppose we have a database of people We want to gure out who is related to whom Initially, we only have a list of people, and information a

CS711008Z Algorithm Design and Analysis

THE PROBLEM WORMS (1) WORMS (2) THE PROBLEM OF WORM PROPAGATION/PREVENTION THE MINIMUM VERTEX COVER PROBLEM

Discrete Mathematics & Mathematical Reasoning Chapter 10: Graphs

Tools for parsimonious edge-colouring of graphs with maximum degree three. J.L. Fouquet and J.M. Vanherpe. Rapport n o RR

Cpt S 223. School of EECS, WSU

Bicolored Shortest Paths in Graphs with Applications to Network Overlay Design

On the independence number of graphs with maximum degree 3

Algorithm Design and Analysis

Weighted Sum Coloring in Batch Scheduling of Conflicting Jobs

Mean Ramsey-Turán numbers

Scheduling Shop Scheduling. Tim Nieberg

Introduced by Stuart Kauffman (ca. 1986) as a tunable family of fitness landscapes.

Class One: Degree Sequences

5.1 Bipartite Matching

Network File Storage with Graceful Performance Degradation

1 Introduction. Dr. T. Srinivas Department of Mathematics Kakatiya University Warangal , AP, INDIA

Outline. NP-completeness. When is a problem easy? When is a problem hard? Today. Euler Circuits

Small Maximal Independent Sets and Faster Exact Graph Coloring

Efficient Recovery of Secrets

On Integer Additive Set-Indexers of Graphs

6 March Array Implementation of Binary Trees

A fast and robust algorithm to count topologically persistent holes in noisy clouds

All trees contain a large induced subgraph having all degrees 1 (mod k)

Approximated Distributed Minimum Vertex Cover Algorithms for Bounded Degree Graphs

Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs

Transcription:

Outline and Reading Minimum Spanning Trees 6 PV 1 16 61 JK 1 15 Minimum Spanning Trees (.) efinitions crucial fact The Prim-Jarnik lgorithm (..) Kruskal's lgorithm (..1) aruvka's lgorithm (..) Minimum Spanning Trees 1 Minimum Spanning Trees Minimum Spanning Tree 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 pplications ommunications networks Transportation networks N 1 STL 1 TL Minimum Spanning Trees 6 5 PIT ycle Property ycle 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 be the cycle formed by e with T or every edge f of, weight(f) weight(e) Proof: y contradiction If weight(f) > weight(e) we can get a spanning tree of smaller weight by replacing e with f 6 Minimum Spanning Trees f 6 f e e Replacing f with e yields a better spanning tree Partition Property U V f Partition Property: onsider a partition of the vertices of G into subsets U and V Let e be an edge of minimum weight across the partition e There is a minimum spanning tree of G containing edge e Proof: Replacing f with e yields another MST Let T be an MST of G If T does not contain e, consider the U V cycle formed by e with T and let f f be an edge of across the partition y the cycle property, weight(f) weight(e) Thus, weight(f) = weight(e) e We obtain another MST by replacing f with e Minimum Spanning Trees 5 Prim-Jarnik s lgorithm Similar to ijkstra 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 t 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 6

Prim-Jarnik s lgorithm (cont.) priority queue stores the vertices outside the cloud Key: distance lement: 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: istance Parent edge in MST Locator in priority queue lgorithm PrimJarnikMST(G) Q new heap-based priority queue s a vertex of G for all v G.vertices() if v = s setistance(v, ) else setistance(v, ) setparent(v, ) l Q.insert(getistance(v),v) setlocator(v,l) while Q.ismpty() u Q.removeMin() for all e G.incidentdges(u) z G.opposite(u,e) r weight(e) if r < getistance(z) setistance(z,r) setparent(z,e) Q.replaceKey(getLocator(z),r) Minimum Spanning Trees 5 5 5 Minimum Spanning Trees (contd.) 5 5 Minimum Spanning Trees nalysis Graph operations Method incidentdges is called once for each vertex Label operations We set/get the distance, parent and locator labels of vertex zo(deg(z)) times Setting/getting a label takes O(1) time Priority queue operations ach 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 1 Kruskal s lgorithm priority queue stores the edges outside the cloud Key: weight lement: edge t the end of the algorithm We are left with one cloud that encompasses the MST tree T which is our MST lgorithm KruskalMST(G) for each vertex V in G do define a loud(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 loud(v) loud(u) then dd edge e to T Merge loud(v) and loud(u) return T ata Structure for Kruskal lgortihm The algorithm maintains a forest of trees n 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 11 Minimum Spanning Trees 1

Representation of a Partition ach set is stored in a sequence ach 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 1 Partition-ased Implementation partition-based version of Kruskal s lgorithm performs cloud merges as unions and tests as finds. lgorithm Kruskal(G): Input: weighted graph G. Output: n 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.removeMinlement() if P.find(u)!= P.find(v) then dd (u,v) to T P.union(u,v) return T Running time: O((n+m)log n) Minimum Spanning Trees 1 Kruskal 6 6 PV 1 16 61 JK 1 15 PV 1 16 61 JK 1 15 Minimum Spanning Trees 15 Minimum Spanning Trees 16 6 6 PV 1 16 61 JK 1 15 PV 1 16 61 JK 1 15 Minimum Spanning Trees 1 Minimum Spanning Trees 1

6 6 PV 1 16 61 JK 1 15 PV 1 16 61 JK 1 15 Minimum Spanning Trees 1 Minimum Spanning Trees 6 6 PV 1 16 61 JK 1 15 PV 1 16 61 JK 1 15 Minimum Spanning Trees 1 Minimum Spanning Trees 6 6 PV 1 16 61 JK 1 15 PV 1 16 61 JK 1 15 Minimum Spanning Trees Minimum Spanning Trees

6 6 PV 1 16 61 JK 1 15 PV 1 16 61 JK 1 15 Minimum Spanning Trees 5 Minimum Spanning Trees 6 6 PV 1 16 61 JK 1 15 Minimum Spanning Trees 6 PV 1 16 61 JK 1 15 Minimum Spanning Trees aruvka s lgorithm Like Kruskal s lgorithm, aruvka s algorithm grows many clouds at once. lgorithm aruvkamst(g) T V {just the vertices of G} while T has fewer than n-1 edges do for each connected component in T do Let edge e be the smallest-weight edge from to another component in T. if e is not already in T then dd edge e to T return T ach iteration of the while-loop halves the number of connected compontents in T. The running time is O(m log n). aruvka 16 6 PV 1 JK 61 1 15 Minimum Spanning Trees Minimum Spanning Trees

Minimum Spanning Trees 1 JK PV 6 1 15 1 16 61 Minimum Spanning Trees JK PV 6 1 15 1 16 61