Dynamic Matchings in Convex Bipartite Graphs

Slides:



Advertisements
Similar presentations
all-pairs shortest paths in undirected graphs
Advertisements

Dynamic Graph Algorithms - I
I/O-Algorithms Lars Arge Fall 2014 September 25, 2014.
Chapter 4 The Greedy Approach. Minimum Spanning Tree A tree is an acyclic, connected, undirected graph. A spanning tree for a given graph G=, where E.
1 Theory I Algorithm Design and Analysis (10 - Shortest paths in graphs) T. Lauer.
Breadth-First Search of Graphs Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke University Analysis of Algorithms.
Advanced Data Structures
Perfect Matching for Biconnected Cubic Graphs in O(nlog 2 n) Time Krzysztof Diks & Piotr Stańczyk.
1 Greedy 2 Jose Rolim University of Geneva. Algorithmique Greedy 2Jose Rolim2 Examples Greedy  Minimum Spanning Trees  Shortest Paths Dijkstra.
I/O-Algorithms Lars Arge University of Aarhus February 21, 2005.
CS Data Structures Chapter 10 Search Structures (Selected Topics)
Advanced Data Structures
IP Address Lookup for Internet Routers Using Balanced Binary Search with Prefix Vector Author: Hyesook Lim, Hyeong-gee Kim, Changhoon Publisher: IEEE TRANSACTIONS.
Purely Functional Worst Case Constant Time Catenable Sorted Lists Gerth Stølting Brodal University of Aarhus Joint work with Christos Makris Kostas Tsichlas.
Minimum Spanning Trees Definition Algorithms –Prim –Kruskal Proofs of correctness.
Shortest Paths Definitions Single Source Algorithms –Bellman Ford –DAG shortest path algorithm –Dijkstra All Pairs Algorithms –Using Single Source Algorithms.
Simultaneous Matchings Irit Katriel - BRICS, U of Aarhus, Denmark Joint work with Khaled Elabssioni and Martin Kutz - MPI, Germany Meena Mahajan - IMSC,
I/O-Algorithms Lars Arge Aarhus University February 16, 2006.
Dynamic Shortest Paths Camil Demetrescu University of Rome “La Sapienza” Giuseppe F. Italiano University of Rome “Tor Vergata”
1 Advanced Data Structures. 2 Topics Data structures (old) stack, list, array, BST (new) Trees, heaps, union-find, hash tables, spatial, string Algorithm.
I/O-Algorithms Lars Arge Spring 2009 March 3, 2009.
1 Geometric Solutions for the IP-Lookup and Packet Classification Problem (Lecture 12: The IP-LookUp & Packet Classification Problem, Part II) Advanced.
Rank-Pairing Heaps Bernhard Haeupler, Siddhartha Sen, and Robert Tarjan, ESA
Amortized Rigidness in Dynamic Cartesian Trees Iwona Białynicka-Birula and Roberto Grossi Università di Pisa STACS 2006.
Convex Hull Algorithms for Dynamic Data Kanat Tangwongsan Joint work with Guy Blelloch and Umut Acar (TTI-C)
Graph Algorithms: Shortest Path We are given a weighted, directed graph G = (V, E), with weight function w: E R mapping.
Comparison Based Dictionaries: Fault Tolerance versus I/O Efficiency Gerth Stølting Brodal Allan Grønlund Jørgensen Thomas Mølhave University of Aarhus.
Shortest Paths Definitions Single Source Algorithms
Lecture 11. Matching A set of edges which do not share a vertex is a matching. Application: Wireless Networks may consist of nodes with single radios,
I/O-Algorithms Lars Arge University of Aarhus March 7, 2005.
CSE 780 Algorithms Advanced Algorithms SSSP Dijkstra’s algorithm SSSP in DAGs.
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 11 Instructor: Paul Beame.
Dijkstra’s Algorithm Slide Courtesy: Uwash, UT 1.
Lecture 11. Matching A set of edges which do not share a vertex is a matching. Application: Wireless Networks may consist of nodes with single radios,
Chapter 9: Graphs Spanning Trees Mark Allen Weiss: Data Structures and Algorithm Analysis in Java Lydia Sinapova, Simpson College.
Dynamic Sets and Data Structures Over the course of an algorithm’s execution, an algorithm may maintain a dynamic set of objects The algorithm will perform.
1 Shortest Path Calculations in Graphs Prof. S. M. Lee Department of Computer Science.
Dijkstra's algorithm.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
A Fast Algorithm for Enumerating Bipartite Perfect Matchings Takeaki Uno (National Institute of Informatics, JAPAN)
CSCE350 Algorithms and Data Structure Lecture 17 Jianjun Hu Department of Computer Science and Engineering University of South Carolina
Spring 2015 Lecture 11: Minimum Spanning 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.
Kinetic data structures. Goal Maintain a configuration of moving objects Each object has a posted flight plan (this is essentially a well behaved function.
Billy Timlen Mentor: Imran Saleemi.  Goal: Have an optimal matching  Given: List of key-points in each image/frame, Matrix of weights between nodes.
Kinetic Heaps K, Tarjan, and Tsioutsiouliklis. Broadcast Scheduling Parametric and Kinetic Heaps Broadcast Scheduling Using a Kinetic Heap The Computational.
Computing Approximate Weighted Matchings in Parallel Fredrik Manne, University of Bergen with Rob Bisseling, Utrecht University Alicia Permell, Michigan.
1 CPSC 320: Intermediate Algorithm Design and Analysis July 14, 2014.
1/20/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Plane Sweep Algorithms I Carola Wenk.
CSE 589 Applied Algorithms Spring 1999 Prim’s Algorithm for MST Load Balance Spanning Tree Hamiltonian Path.
Proof of correctness of Dijkstra’s algorithm: Basically, we need to prove two claims. (1)Let S be the set of vertices for which the shortest path from.
Online Bipartite Matching with Augmentations Presentation by Henry Lin Joint work with Kamalika Chaudhuri, Costis Daskalakis, and Robert Kleinberg.
(A Survey on) Priority Queues IanFest, University of Waterloo, Waterloo, Ontario, Canada, August 14-15, 2013 Gerth Stølting Brodal Aarhus Universty.
CSE 373: Data Structures and Algorithms Lecture 21: Graphs V 1.
Certifying Algorithms [MNS11]R.M. McConnell, K. Mehlhorn, S. Näher, P. Schweitzer. Certifying algorithms. Computer Science Review, 5(2), , 2011.
CMPS 3130/6130 Computational Geometry Spring 2017
Segment tree and Interval Tree
Lecture 16 Maximum Matching
Computing Maximum Non-Crossing Matching in Convex Bipartite Graphs
Closing a Classical Data Structure Problem Gerth Stølting Brodal
Strict Fibonacci Heaps
Slide Courtesy: Uwash, UT
Minimum Spanning Tree.
Dynamic Graph Algorithms
Slide Courtesy: Uwash, UT
Graph Algorithms: Shortest Path
CSE 417: Algorithms and Computational Complexity
Maximum Bipartite Matching
Chapter 9: Graphs Shortest Paths
Chapter 9: Graphs Spanning Trees
Presentation transcript:

Dynamic Matchings in Convex Bipartite Graphs Gerth Stølting Brodal University of Aarhus Loukas Georgiadis Hewlett-Packard Laboratories Kristoffer Arnsfelt Hansen University of Chicago Irit Katriel Brown University MFCS 2007, Hotel Růže, Český Krumlov, Czech Republic, August 26-31, 2007

Outline of Talk Definitions: Graphs and matchings Definitions: Convex bipartite graphs Glovers algorithm for convex bipartite graphs Definitions: Matchings in dynamic convex bipartite graphs Result Ingredients of the solution Conclusion

Matchings in General Graphs Deterministic O(E V) Micali, Vaziani ’80 Randomized O(V 2.476) Mucha, Sankowski ’04

Matchings in Bipartite Graphs Y X Deterministic O(E V) Hopcroft, Karp ’73 Randomized O(V 2.476) Mucha, Sankowski ’04

Convex Bipartite Graphs 1 7 6 5 4 3 2 s(v) t(v) Y X v [4,7] [3,3] [1,2] [2,4]

Matchings in Convex Bipartite Graphs 1 7 6 5 4 3 2 Y (time) X (jobs to schedule) [4,7] [3,3] [1,2] [2,4] Deterministic O(X+Y) Gabow, Tarjan ’85 Deterministic O(X) Steiner, Yeomans ’96

Matchings in Convex Bipartite Graphs: Glover’s Greedy Algorithm 1 7 6 5 4 3 2 Y X [4,7] [3,3] [1,2] [2,4] For the current time y maintain a priority queue of the t(v) where y [s(v),t(v)]

Dynamic Matchings in Convex Bipartite Graphs Observation O(1) edge changes can change Ω(X) edges in the matching but only O(1) nodes in the matching need to change

Dynamic Convex Bipartite Graphs: Updates s(x) t(x) x y Insert(x,[s(x),t(x)]) Delete(x) Insert(y) Delete(y) Note: Cannot delete/insert a y that equals s(x) or t(x) for some x Observation: Updates preserve convexity

Dynamic Convex Bipartite Graphs: Queries Matched?(x) Matched?(y) Mate(x) Mate(y)

k = # updates since the last Mate query for the same node Result Updates O(log2 X) amortized Matched? O(1) worst-case Mate O( X ·log2 X) amortized O(min{k·log2 X, X·log X}) worst-case Space O(Y+X·log X) k = # updates since the last Mate query for the same node

Related Work Perfect matchings in general graphs can be maintained in time O(V1.495) per edge update Sankowski ’04 Size of maximum matchings in general graphs can be maintained in time O(V1.495) per edge update Sankowski ‘07

Ingredients of Our Solution Special data structure for the case s(x)=1 for all x Dynamic version of Dekel-Sahni’s parallel algorithm (divide-and-conquer) Mate queries are handled by lazy construction of the matching

Case: s(x)=1 for all x (Jobscheduling view) { n7 = 3 #scheduled jobs job length 1 2 3 4 5 6 7 8 9 10

Case: s(x)=1 for all x (Jobscheduling view) Store vertical distance from each to diagonal Insert job length i : Find first j ≥ i with on diagonal Decrement distance by one for i..j-1 O(log n) time using augmented binary search tree #scheduled jobs job length

Dynamizing Dekel-Sahni transfered(P) = transfered(R) U transfered’(R) Weight balanced search tree matched(P) = matched(L) U matched’(R) P matched(P) transfered’(R) and matched’(R) are computed from transfered(L) and matched(R) assuming all starting times equal min(R) transfered(P) L R y1 y2 y3 y4 ..... Updates: O(1) changes at each level, i.e. total O(log2 n) time

Conclusion Dynamic Matchings in Convex Bipartite Graphs Updates O(log2 X) amortized Matched? O(1) worst-case Mate O( X ·log2 X) amortized O(min{k·log2 X, X·log X}) worst-case Space O(Y+X·log X) Open problems...