On the distributed complexity of computing maximal matching Michal Hanckowiak, Michal Karonski, Allesandro Panconesi Presented by Maya Levy January 2016.

Slides:



Advertisements
Similar presentations
Randomness Conductors Expander Graphs Randomness Extractors Condensers Universal Hash Functions
Advertisements

Lecture 15. Graph Algorithms
Graphs: basic definitions and notation Definition A (undirected, unweighted) graph is a pair G = (V, E), where V = {v 1, v 2,..., v n } is a set of vertices,
Markov Networks Alan Ritter.
Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar
Graph Algorithms Carl Tropper Department of Computer Science McGill University.
Parallel Processing & Parallel Algorithm May 8, 2003 B4 Yuuki Horita.
Lecture 8: Asynchronous Network Algorithms
Gossip and its application Presented by Anna Kaplun.
Great Theoretical Ideas in Computer Science for Some.
1 Discrete Structures & Algorithms Graphs and Trees: III EECE 320.
1 Maximum flow sender receiver Capacity constraint Lecture 6: Jan 25.
Exact Inference in Bayes Nets
Lecture 7: Synchronous Network Algorithms
Distributed Breadth-First Search with 2-D Partitioning Edmond Chow, Keith Henderson, Andy Yoo Lawrence Livermore National Laboratory LLNL Technical report.
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS Fall 2011 Prof. Jennifer Welch CSCE 668 Self Stabilization 1.
LOCALITY IN DISTRIBUTED GRAPH ALGORITHMS Nathan Linial Presented by: Ron Ryvchin.
Course Presentation: A Polynomial Kernel for Multicut in Trees, STACS 2009 Authors: Nicolas Bousquet, Jean Daligault, Stephan Thomasse, Anders Yeo Speaker:
1 University of Freiburg Computer Networks and Telematics Prof. Christian Schindelhauer Wireless Sensor Networks 21st Lecture Christian Schindelhauer.
CS138A Maximum Bipartite Matching Peter Schröder.
1 Friday, September 29, 2006 If all you have is a hammer, then everything looks like a nail. -Anonymous.
CPSC 668Self Stabilization1 CPSC 668 Distributed Algorithms and Systems Spring 2008 Prof. Jennifer Welch.
1 University of Freiburg Computer Networks and Telematics Prof. Christian Schindelhauer Wireless Sensor Networks 20th Lecture Christian Schindelhauer.
Distributed Combinatorial Optimization
Maximal Independent Set Distributed Algorithms for Multi-Agent Networks Instructor: K. Sinan YILDIRIM.
Homework 2. Problem 1 Families 1…..N go out for dinner together. To increase their social interaction, no two members of the same family use the same.
Distributed Coloring Discrete Mathematics and Algorithms Seminar Melih Onus November
Copyright © Cengage Learning. All rights reserved. CHAPTER 10 GRAPHS AND TREES.
Graph Algorithms. Definitions and Representation An undirected graph G is a pair (V,E), where V is a finite set of points called vertices and E is a finite.
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 February 10, 2005 Session 9.
1 Broadcast. 2 3 Use a spanning tree Root 4 synchronous It takes the same time at link to send a message It takes the same time at each node to process.
Introduction to Graph Theory
Data Structures and Algorithms in Parallel Computing Lecture 2.
CS223 Advanced Data Structures and Algorithms 1 Maximum Flow Neil Tang 3/30/2010.
Speeding Up Enumeration Algorithms with Amortized Analysis Takeaki Uno (National Institute of Informatics, JAPAN)
CS 484 Load Balancing. Goal: All processors working all the time Efficiency of 1 Distribute the load (work) to meet the goal Two types of load balancing.
Exact Inference in Bayes Nets. Notation U: set of nodes in a graph X i : random variable associated with node i π i : parents of node i Joint probability:
Vertex Coloring Distributed Algorithms for Multi-Agent Networks
Homework #5 Due: October 31, 2000 Christine Kang Graph Concepts and Algorithms.
Christopher M. Bishop, Pattern Recognition and Machine Learning 1.
Prof. Swarat Chaudhuri COMP 382: Reasoning about Algorithms Fall 2015.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. Fast.
Leda Demos By: Kelley Louie Credits: definitions from Algorithms Lectures and Discrete Mathematics with Algorithms by Albertson and Hutchinson graphics.
Auburn University
Lower bound for the Stable Marriage Problem
Proof technique (pigeonhole principle)
Copyright © Zeph Grunschlag,
Michael Langberg: Open University of Israel
Auburn University COMP7330/7336 Advanced Parallel and Distributed Computing Mapping Techniques Dr. Xiao Qin Auburn University.
Minimum Spanning Tree 8/7/2018 4:26 AM
Algorithm Design and Analysis
Great Theoretical Ideas in Computer Science
Lecture 9: Asynchronous Network Algorithms
The Art Gallery Problem
Discrete Mathematics for Computer Science
The Art Gallery Problem
TexPoint fonts used in EMF.
Polygon Triangulation
R-MAT: A Recursive Model for Graph Mining
CSCI 5822 Probabilistic Models of Human and Machine Learning
High Performance Computing & Bioinformatics Part 2 Dr. Imad Mahgoub
A graphing calculator is required for some problems or parts of problems 2000.
Graphs.
Lecture 8: Synchronous Network Algorithms
Piyush Kumar (Lecture 6: MaxFlow MinCut Applications)
Joseph S.B. Mitchell, Stony Brook University
CSE 417: Algorithms and Computational Complexity
Constructing a m-connected k-Dominating Set in Unit Disc Graphs
Locality In Distributed Graph Algorithms
CS 201 Compiler Construction
Presentation transcript:

On the distributed complexity of computing maximal matching Michal Hanckowiak, Michal Karonski, Allesandro Panconesi Presented by Maya Levy January 2016

Maximal Matching

The model Undirected graph- vertices correspond to processors, edges to bidirectional communication links. Synchronous – in each round every processor receives messages from its neighbors, does any amount of calculations and sends messages to its neighbors. Each node has an integer from 1 to 𝑛 as a unique identifier and it knows it. Time complexity is determined by the number of rounds.

The approach נגדיר שידוך טוב ולכתוב הגדרה על הלוח

Definitions נגדיר שידוך טוב ולכתוב הגדרה על הלוח

Definitions

Definitions 𝐺𝑖𝑣𝑒𝑛 𝑎 𝑔𝑟𝑎𝑝ℎ 𝐺= 𝑉,𝐸 , 𝑀⊆𝐸, 𝑒∈𝐸: 𝑡𝑜𝑢𝑐ℎ 𝑀 𝑖𝑠 𝑎 𝑢𝑛𝑖𝑜𝑛 𝑜𝑓 𝑀 𝑎𝑛𝑑 𝑡ℎ𝑒 𝑠𝑒𝑡 𝑜𝑓 𝑒𝑑𝑔𝑒𝑠 "𝑡𝑜𝑢𝑐ℎ𝑒𝑑" 𝑏𝑦 𝑀 𝑤 𝐺 𝑒 𝑖𝑠 𝑡ℎ𝑒 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑒𝑑𝑔𝑒𝑠 "𝑡𝑜𝑢𝑐ℎ𝑒𝑑" 𝑏𝑦 𝑒

Definitions

Reduce to bipartite graph Match Reduce to bipartite graph BipartiteMatch Generalize the bipartite matching

Reducing to bipartite graph 1 2 3 4 5 6 7 8 9 A B

Reducing to bipartite graph 2 3 1 𝑜𝑢𝑡 1 𝑖𝑛 4 5 6 7 8 9 A B

Reducing to bipartite graph 3 1 𝑜𝑢𝑡 1 𝑖𝑛 2 𝑜𝑢𝑡 2 𝑖𝑛 4 5 6 7 8 9 A B

Reducing to bipartite graph 1 𝑜𝑢𝑡 1 𝑖𝑛 2 𝑜𝑢𝑡 2 𝑖𝑛 3 𝑜𝑢𝑡 3 𝑖𝑛 4 𝑜𝑢𝑡 5 𝑜𝑢𝑡 4 𝑖𝑛 5 𝑖𝑛 7 𝑜𝑢𝑡 8 𝑖𝑛 6 𝑖𝑛 6 𝑜𝑢𝑡 7 𝑖𝑛 8 𝑜𝑢𝑡 9 𝑖𝑛 9 𝑜𝑢𝑡 𝐴 𝑖𝑛 𝐵 𝑜𝑢𝑡 𝐴 𝑜𝑢𝑡 𝐵 𝑖𝑛

Reducing to bipartite graph 1 𝑜𝑢𝑡 1 𝑖𝑛 2 𝑜𝑢𝑡 2 𝑖𝑛 3 𝑜𝑢𝑡 3 𝑖𝑛 4 𝑜𝑢𝑡 5 𝑜𝑢𝑡 4 𝑖𝑛 5 𝑖𝑛 7 𝑜𝑢𝑡 8 𝑖𝑛 6 𝑖𝑛 6 𝑜𝑢𝑡 7 𝑖𝑛 8 𝑜𝑢𝑡 9 𝑖𝑛 9 𝑜𝑢𝑡 𝐴 𝑖𝑛 𝐵 𝑜𝑢𝑡 𝐴 𝑜𝑢𝑡 𝐵 𝑖𝑛

Reducing to bipartite graph 1 𝑖𝑛 1 𝑜𝑢𝑡 2 𝑖𝑛 2 𝑜𝑢𝑡 1 2 3 3 𝑖𝑛 3 𝑜𝑢𝑡 4 𝑖𝑛 4 5 4 𝑜𝑢𝑡 5 𝑖𝑛 5 𝑜𝑢𝑡 6 7 8 6 𝑖𝑛 6 𝑜𝑢𝑡 7 𝑖𝑛 7 𝑜𝑢𝑡 9 A B 8 𝑖𝑛 8 𝑜𝑢𝑡 9 𝑖𝑛 9 𝑜𝑢𝑡 𝐴 𝑖𝑛 𝐴 𝑜𝑢𝑡 𝐵 𝑖𝑛 𝐵 𝑜𝑢𝑡

Reducing to bipartite graph

Reducing to bipartite graph

Reducing to bipartite graph

Reducing to bipartite graph

Reducing to bipartite graph

Reducing to bipartite graph

Reducing to bipartite graph

Reducing to bipartite graph

Reducing to bipartite graph

Reducing to bipartite graph

𝑂( log 𝑛 ⋅𝑡(𝐵𝑖𝑝𝑎𝑟𝑡𝑖𝑡𝑒𝑀𝑎𝑡𝑐ℎ)) Match Reduce to bipartite graph by splitting to in and out vertices BipartiteMatch Generalize the bipartite matching: - Remove degree 1 vertices calculate maximal matching of degree 2 graph Drop matched edges Choose which edges to keep לוודא שכל שלב מבוזר 𝑂( log 𝑛 ⋅𝑡(𝐵𝑖𝑝𝑎𝑟𝑡𝑖𝑡𝑒𝑀𝑎𝑡𝑐ℎ))

Matching a bipartite graph 𝐺=(𝐿, 𝑅, 𝐸) נניח שצמתי צד שמאל מסודרות לפי דרגה, סדר עולה.

Matching a bipartite graph 𝐺=(𝐿, 𝑅, 𝐸) 𝑯 𝒍𝒐𝒈𝒏 𝐻 𝑖 =𝑢∈𝐿: 𝑛 2 𝑖+1 <𝑑 𝑢 ≤ 𝑛 2 𝑖 𝑯 𝟎

Matching a bipartite graph 𝐺=(𝐿, 𝑅, 𝐸) 𝑯 𝒍𝒐𝒈𝒏 𝐻 𝑖 =𝑢∈𝐿: 𝑛 2 𝑖+1 <𝑑 𝑢 ≤ 𝑛 2 𝑖 𝐵 𝑖 𝑖𝑠 𝑡ℎ𝑒 𝑏𝑙𝑜𝑐𝑘 𝑖𝑛𝑑𝑢𝑐𝑒𝑑 𝑏𝑦 𝐻 𝑖 𝑒𝑑𝑔𝑒𝑠 𝑯 𝟎

Matching a bipartite graph 𝐺=(𝐿, 𝑅, 𝐸) 𝐻 𝑖 =𝑢∈𝐿: 𝑛 2 𝑖+1 <𝑑 𝑢 ≤ 𝑛 2 𝑖 𝐵 𝑖 𝑖𝑠 𝑡ℎ𝑒 𝑏𝑙𝑜𝑐𝑘 𝑖𝑛𝑑𝑢𝑐𝑒𝑑 𝑏𝑦 𝐻 𝑖 𝑒𝑑𝑔𝑒𝑠

Matching a bipartite graph 𝐺=(𝐿, 𝑅, 𝐸) 𝐻 𝑖 =𝑢∈𝐿: 𝑛 2 𝑖+1 <𝑑 𝑢 ≤ 𝑛 2 𝑖 𝐵 𝑖 𝑖𝑠 𝑡ℎ𝑒 𝑏𝑙𝑜𝑐𝑘 𝑖𝑛𝑑𝑢𝑐𝑒𝑑 𝑏𝑦 𝐻 𝑖 𝑒𝑑𝑔𝑒𝑠

Generate blocks Partition BipartiteMatch Generate blocks Partition MatchBlock 1 MatchBlock 2 . MatchBlock D Global match

Matching a bipartite graph

Matching a bipartite graph

Matching a bipartite graph

Matching a bipartite graph 𝑤 𝑘 𝑤 3 𝑖=2 𝑘 𝑤 𝑖 2 ≤ 𝑤 1 𝑤 2 יש רק שידוך אחד לכל היותר מכל בלוק 𝑤 1

Matching a bipartite graph

Generate blocks Partition BipartiteMatch Generate blocks Partition MatchBlock 1 MatchBlock 2 . MatchBlock D Global match 𝑂(𝑡 𝑀𝑎𝑡𝑐ℎ𝐵𝑙𝑜𝑐𝑘(𝑛) )

Matching a block

Matching a block

Matching a block

Matching a block

Spanner 𝑩 (𝐵𝑙𝑜𝑐𝑘)

Spanner 𝑩 (𝐵𝑙𝑜𝑐𝑘) 𝑺 (Spanner)

Spanner 𝐴𝑛 𝒂,𝒅 −𝒔𝒑𝒂𝒏𝒏𝒆𝒓 𝑜𝑓 𝑎 𝑏𝑙𝑜𝑐𝑘 𝐵= 𝐻 𝑖 ,𝑁 𝐻 𝑖 , 𝐸 𝑖𝑠 𝑎 𝑠𝑢𝑏𝑔𝑟𝑎𝑝ℎ 𝑆⊆𝐵 𝑠.𝑡: 𝑓𝑜𝑟 𝑒𝑣𝑒𝑟𝑦 𝑢∈𝑙 𝑆 , 𝑑 𝑆 𝑢 ∈ 1,𝑑 𝑓𝑜𝑟 𝑒𝑣𝑒𝑟𝑦 𝑢∈𝑟, 𝑑 𝑆 𝑢 ≤ 1 2 𝑘 𝐵 𝑑 𝐵 𝑣 +1, 𝑤ℎ𝑒𝑟𝑒 𝑘 𝐵 ≔𝑙𝑜𝑔𝐷−4 𝑙 𝑆 ≥𝑎 𝐻 𝑖 𝑩 (𝐵𝑙𝑜𝑐𝑘) 𝑺 (Spanner)

Spanner 𝑩 (𝐵𝑙𝑜𝑐𝑘) 𝑺 (Spanner) 𝑷 (Proposal)

Spanner 𝑩 (𝐵𝑙𝑜𝑐𝑘) 𝑺 (Spanner) 𝑷 (Proposal) 𝑴 (Matching)

Matching a block – correctness 𝒗∈𝒓(𝑷) 𝒅 𝑩 𝒗 ≥𝒃 𝑬 𝑩 ? 𝑩 𝑺 𝑷 𝑴

Matching a block – correctness |𝒍 𝑴 |= 𝑙 𝑃 − 𝑣∈𝑟(𝑃) ( 𝑑 𝑃 𝑣 −1) 𝑩 𝑺 𝑷 𝑴 ≥𝑎|𝑙 𝐵 |− 𝑣∈𝑟(𝑃) ( 𝑑 𝑃 𝑣 −1) ≥𝑎|𝑙 𝐵 |− 𝑣∈𝑟(𝑃) 1 2 𝑘 𝐵 𝑑 𝐵 (𝑣) ≥𝑎|𝑙 𝐵 |− 1 2 𝑘 𝐵 𝑏𝑚 ≥𝑎|𝑙 𝐵 |− 1 2 𝑘 𝐵 𝑏𝐷|𝑙 𝐵 | ≥(𝒂−𝟏𝟔𝒃)|𝒍 𝑩 |

Matching a block – correctness 𝒍 𝑴 ≥𝒄|𝒍 𝑩 | 𝑩 𝑺 𝑷 𝑴 ∀𝑢∈𝐿: 𝐷 2 ≤𝑑 𝐵 𝑢 ≤𝐷 𝑡𝑜𝑢𝑐ℎ 𝑀 ≥ 𝑙 𝑀 ⋅ 𝐷 2 ≥ 𝑎−16𝑏 2 𝐷|𝑙 𝐵 | ≥ 𝑎−16𝑏 2 |𝐸 𝑏 |

Match BipartiteMatch . MatchBlock Generalize the bipartite matching Reduce to bipartite graph BipartiteMatch BipartiteMatch Generate blocks Partition MatchBlock 1 MatchBlock 2 MatchBlock D . Global match MatchBlock Create spanner Match Spanner

Create spanner – 2 decomposition graph 1 2 3 4 5 6 7 8 A 9 B C

Create spanner – 2 decomposition graph 1 1 2 3 4 5 6 7 8 A 9 B C

Create spanner – 2 decomposition graph 1 2 1 2 2 3 4 5 6 7 8 A 9 B C

Create spanner – long arrows

Create spanner – long arrows

Create spanner – long arrows

Create spanner – long arrows

Create spanner – long arrows

Create spanner – long arrows

Create spanner – long arrows

Create spanner

Create spanner

Create spanner 1 2 3 4 5 6 7 8 A 9 B C

Create spanner 1 2 3 4 5 6 7 8 A 9 B C

𝑂( log 𝑛 ⋅ log 2 𝑛) =𝑂( log 3 𝑛) Create spanner Create 2- decomposition graph Create long arrows and partition to segments Perfect/near perfect match inside the segments Remove matched/bad edges 𝑂( log 𝑛 ⋅ log 2 𝑛) =𝑂( log 3 𝑛)

Match BipartiteMatch . MatchBlock Generalize the bipartite matching Reduce to bipartite graph BipartiteMatch BipartiteMatch Generate blocks Partition MatchBlock 1 MatchBlock 2 MatchBlock D . Global match MatchBlock Create spanner Match Spanner