Computing Approximate Weighted Matchings in Parallel Fredrik Manne, University of Bergen with Rob Bisseling, Utrecht University Alicia Permell, Michigan.

Slides:



Advertisements
Similar presentations
Algorithms (and Datastructures) Lecture 3 MAS 714 part 2 Hartmut Klauck.
Advertisements

Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar
Size-estimation framework with applications to transitive closure and reachability Presented by Maxim Kalaev Edith Cohen AT&T Bell Labs 1996.
Approximation, Chance and Networks Lecture Notes BISS 2005, Bertinoro March Alessandro Panconesi University La Sapienza of Rome.
CSC 2300 Data Structures & Algorithms April 13, 2007 Chapter 9. Graph Algorithms.
1 Maximal Independent Set. 2 Independent Set (IS): In a graph G=(V,E), |V|=n, |E|=m, any set of nodes that are not adjacent.
Graph Algorithms: Topological Sort The topological sorting problem: given a directed, acyclic graph G = (V, E), find a linear ordering of the vertices.
1 Maximal Independent Set. 2 Independent Set (IS): In a graph, any set of nodes that are not adjacent.
Clustering short time series gene expression data Jason Ernst, Gerard J. Nau and Ziv Bar-Joseph BIOINFORMATICS, vol
Minimum Spanning Trees Definition Algorithms –Prim –Kruskal Proofs of correctness.
Directed Graph Algorithms CSE 373 Data Structures Lecture 14.
1 On Compressing Web Graphs Michael Mitzenmacher, Harvard Micah Adler, Univ. of Massachusetts.
Greedy Algorithms Reading Material: Chapter 8 (Except Section 8.5)
CSE 421 Algorithms Richard Anderson Lecture 4. What does it mean for an algorithm to be efficient?
CSE 326: Data Structures Spanning Trees Ben Lerner Summer 2007.
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
More Graph Algorithms Weiss ch Exercise: MST idea from yesterday Alternative minimum spanning tree algorithm idea Idea: Look at smallest edge not.
1 Introduction to Approximation Algorithms Lecture 15: Mar 5.
External-Memory MST (Arge, Brodal, Toma). Minimum-Spanning Tree Given a weighted, undirected graph G=(V,E), the minimum-spanning tree (MST) problem is.
Dijkstra's algorithm.
Minimal Spanning Trees What is a minimal spanning tree (MST) and how to find one.
Shortest Path Algorithms. Kruskal’s Algorithm We construct a set of edges A satisfying the following invariant:  A is a subset of some MST We start with.
1 Introduction to Approximation Algorithms. 2 NP-completeness Do your best then.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Graph Algorithms Shortest-Path.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
Dijkstras Algorithm Named after its discoverer, Dutch computer scientist Edsger Dijkstra, is an algorithm that solves the single-source shortest path problem.
MST Many of the slides are from Prof. Plaisted’s resources at University of North Carolina at Chapel Hill.
1 Introduction to Approximation Algorithms. 2 NP-completeness Do your best then.
UNC Chapel Hill Lin/Foskey/Manocha Minimum Spanning Trees Problem: Connect a set of nodes by a network of minimal total length Some applications: –Communication.
Shortest Path Problem Weight of the graph –Nonnegative real number assigned to the edges connecting to vertices Weighted graphs –When a graph.
DATA MINING LECTURE 13 Pagerank, Absorbing Random Walks Coverage Problems.
Implementing Parallel Graph Algorithms: Graph coloring Created by: Avdeev Alex, Blakey Paul.
1 Maximal Independent Set. 2 Independent Set (IS): In a graph G=(V,E), |V|=n, |E|=m, any set of nodes that are not adjacent.
CSCI 3160 Design and Analysis of Algorithms Chengyu Lin.
All-Pairs Shortest Paths & Essential Subgraph 01/25/2005 Jinil Han.
Greedy Algorithms and Matroids Andreas Klappenecker.
Heuristic Optimization Methods Greedy algorithms, Approximation algorithms, and GRASP.
Approximation Algorithms for NP-hard Combinatorial Problems Magnús M. Halldórsson Reykjavik University Local Search, Greedy and Partitioning
A graph problem: Maximal Independent Set Graph with vertices V = {1,2,…,n} A set S of vertices is independent if no two vertices in S are.
MAX FLOW APPLICATIONS CS302, Spring 2012 David Kauchak.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
Bipartite Matching. Unweighted Bipartite Matching.
Data Structures and Algorithms in Parallel Computing Lecture 2.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University.
CSE 421 Algorithms Richard Anderson Winter 2009 Lecture 5.
CSE 421 Algorithms Richard Anderson Autumn 2015 Lecture 5.
Computation on Graphs. Graphs and Sparse Matrices Sparse matrix is a representation of.
CSE 373: Data Structures and Algorithms Lecture 21: Graphs V 1.
TU/e Algorithms (2IL15) – Lecture 8 1 MAXIMUM FLOW (part II)
Hamiltonian Graphs Graphs Hubert Chan (Chapter 9.5)
Hamiltonian Graphs Graphs Hubert Chan (Chapter 9.5)
Short paths and spanning trees
More Graph Algorithms.
Maximal Independent Set
Randomized Algorithms CS648
CSE 373 Data Structures and Algorithms
CS 583 Analysis of Algorithms
Minimum Spanning Tree Algorithms
Richard Anderson Autumn 2016 Lecture 5
CSE 373: Data Structures and Algorithms
CSE 373: Data Structures and Algorithms
Autumn 2016 Lecture 10 Minimum Spanning Trees
CSE 373 Data Structures and Algorithms
CSE 417: Algorithms and Computational Complexity
CSE 373: Data Structures and Algorithms
Advanced Algorithms Analysis and Design
Parallel Programming in C with MPI and OpenMP
CSE 373: Data Structures and Algorithms
Richard Anderson Winter 2019 Lecture 5
Minimum Spanning Trees
Presentation transcript:

Computing Approximate Weighted Matchings in Parallel Fredrik Manne, University of Bergen with Rob Bisseling, Utrecht University Alicia Permell, Michigan Tech. University

The Edge Weighted Matching Problem Given an edge weighted graph G(V,E). Select an independent set S of edges of maximum weight W(opt) = 18 Best known algorithm has running time O(|V||E|+|V| 2 log|V|) Often too expensive for real applications

Fast Approximation Algorithms While there are edges left Add most expensive remaining edge (v,w) to S Remove (v,w) and all edges incident on v and w W(S) ≥ ½W(opt) Running time O(|E| log |V|) (due to sorting) Parallelization: Difficult to sort distributed weights The Greedy Approach

Fast Approximation Algorithms Path growing [Drake and Hougardy] Grow non-intersecting path along heaviest edge while coloring edges alternatively green or blue. Return heaviest of green and blue W(G) + W(B) ≥ W(opt) Max{W(G),W(B)} ≥ ½W(opt) Running time O(|V| + |E|) Also inherently sequential

A Parallel Path Growing Algorithm Idea: Grow multiple paths at the same time Assumes shared memory model P1P1 P2P A potential problem 5 Cannot guarantee that we get 0.5 approximation Experiments using UPC on random graphs indicate that this does not affect quality too much.

A New Sequential Algorithm From the analysis of the Greedy algorithm: A chosen edge must dominate its remaining neighborhood Local Domination Algorithm D = all dominating edges in G While D is not empty Remove (v,w) from D and add to S Remove all edges incident on v and w from G Add any new dominating edges to D Observation If the weights are unique, then the algorithm will produce the same matching as the Greedy algorithm.

Implementation Details Selecting initial dominating edges take time O(|V| + |E|) When a dominating edge is removed only its distance-2 neighbors can become dominating v w Only the heaviest edge incident on v is a candidate How to find candidates: Total time 1.Presort edges incident on each vertex, can test candidate in O(1) time, O(|V| d log d + |V| + |E|) 2.Perform linear search for new candidate incident on v O(|V|d 2 + |V| + |E|) Maintain a pointer for each vertex to the remaining heaviest edge

Linear Search for Candidates Observation If every edge has the same probability of being removed, then the expected time to maintain the pointer for v is O(d v ) (and not O(d 2 ) ) v Heaviest Only compress list when heaviest edge is removed

Another View of the Algorithm But this is just Luby’s algorithm for finding a maximal independent set of vertices but now run on the edges! c c Replace edges with vertices

The Parallel Local Domination Algorithm The Algorithm Partition vertices (and edges) into p subsets Find initial dominant edges While some processor has edges left Run algorithm locally Update neighbor processors P1P1 P2P2 Data distribution c cc xy yx’ xy’

Initial Experiments Experiments using MPI on IBM Regatta computer

Conclusion Contributions New fast sequential 0.5 approximation algorithm suitable for parallelization Parallel implementation showing that it actually scales Still to do Optimize the code More experiments More rigorous analysis Extend algorithm with short augmenting paths

Data Bcsstk35, n=30237, m = PTotal timeInitialization ComputationCommunication Complete random graph on 1000 vertices and vertices