1 / 50

500 likes | 876 Views

Algebraic Structures and Algorithms for Matching and Matroid Problems. Nick Harvey. Perfect Matching. Given graph G=(V,E) Perfect matching is M ⊆ E such that each vertex incident with exactly one edge in M. Matching History. Dense Graphs m=n 2. O(n 4 ) . All are non-trivial

Download Presentation
## Algebraic Structures and Algorithms for Matching and Matroid Problems

**An Image/Link below is provided (as is) to download presentation**
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.
Content is provided to you AS IS for your information and personal use only.
Download presentation by click this link.
While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

**Algebraic Structures and Algorithmsfor Matching and Matroid**Problems Nick Harvey**Perfect Matching**• Given graph G=(V,E) • Perfect matching is M⊆E such that each vertex incident with exactlyone edge in M**Matching History**Dense Graphs m=n2 O(n4) • All are non-trivial • Mucha-Sankowski uses sophisticateddynamic connectivity data structures (Holm et al. ’01)to maintain “canonical partition” (Cheriyan ’97) O(n2.5) O(n2.38) (n = # vertices, m = # edges) • All are non-trivial! • Mucha ’05: “[Our] algorithm is quite complicated and heavily relies on graph theoretic results and techniques. It would be nice to have a strictly algebraic, and possibly simpler, matching algorithm”. (<2.38 is exponent for matrix multiplication)**Matching Algorithms**Dense Graphs m=n2 • Conceptually simple • Implemented in ~200 lines of MATLAB * * * Randomized, but Las Vegas via [Cheriyan ’97]**(Linear) Matroid Intersection**• Find largest set of columns S such thatAS and BS are both linearly independent AS A = BS B =**Matroid Intersection**• Find largest set of columns S such thatAS and BS are both linearly independent • Why? • Many problems are a special case: • Bipartite matching • Arboresence (directed spanning tree), … • Powerful tool: • Bounded-Degree Sp. Tree [Goemans ’06]**Matroid Intersection History**(for matrices of size n x m)**Matroid Intersection History**• Essentially optimal: • Best known alg to compute rank takes O(mn-1) • Computing rank reduces to matroid intersection * * * † O(mn1.38) * Assumes matroids are linear † Randomized, and assumes matroids can berepresented over same field**Generic Matching Algorithm**For each e E If e is contained in a perfect matching Add e to solution Delete endpoints of e Else Delete edge e**Generic Matching Algorithm**Key step For each e E If e is contained in a perfect matching Add e to solution Delete endpoints of e Else Delete edge e • How can we test this? • Randomization and linear algebra play key role**Matching Outline**• Implementing Generic Algorithm • Tutte Matrix & Properties • Rabin-Vazirani Algorithm • Rank-1 Updates • Rabin-Vazirani with Rank-1 Updates • Our Recursive Algorithm (overview) • Our Recursive Algorithm (fast updates)**Matching & Tutte Matrix**• Let G=(V,E) be a graph • Define variable x{u,v} {u,v}∈E • Define a skew-symmetric matrix T s.t. ± x{u,v} if {u,v}∈E Tu,v = 0 otherwise a b c**Properties of Tutte Matrix**Lemma [Tutte’47]: G has a perfect matchingiff T is non-singular. Lemma [RV’89]: G[V\{u,v}] has a perfect matching iff (T-1)u,v 0.**Properties of Tutte Matrix**Lemma [Tutte’47]: G has a perfect matchingiff T is non-singular. Lemma [RV’89]: G[V\{u,v}] has a perfect matching iff (T-1)u,v 0. u (T-1)u,v 0 v**Properties of Tutte Matrix**Lemma [Tutte’47]: G has a perfect matchingiff T is non-singular. Lemma [RV’89]: G[V\{u,v}] has a perfect matching iff (T-1)u,v 0. G[V\{u,v}] has perfectmatching (T-1)u,v 0**Properties of Tutte Matrix**Lemma [Tutte’47]: G has a perfect matchingiff T is non-singular. Lemma [RV’89]: G[V\{u,v}] has a perfect matching iff (T-1)u,v 0. G[V\{u,v}] has perfectmatching (T-1)u,v 0**Properties of Tutte Matrix**Lemma [Tutte’47]: G has a perfect matchingiff T is non-singular. Lemma [RV’89]: G[V\{u,v}] has a perfect matching iff (T-1)u,v 0. u G[V\{u,v}] has perfectmatching (T-1)u,v 0 v**Properties of Tutte Matrix**Lemma [Tutte’47]: G has a perfect matchingiff T is non-singular. Lemma [RV’89]: G[V\{u,v}] has a perfect matching iff (T-1)u,v 0. Computing T-1 very slow: Contains variables! Lemma [Lovász’79]: These results hold w.h.p. if we randomly choose values for x{u,v}’s.**Matching Algorithm**Rabin-Vazirani ’89 (Takes O(n) time) Compute T-1 For each {u,v} E If T-1u,v 0 Add {u,v} to matching Recurse on G[V\{u,v}] • Total time: O(n+1) time • Natural question: Can we recomputeT-1 quickly in each iteration?**Matching Outline**• Tutte Matrix & Properties • Rabin-Vazirani Algorithm • Rank-1 Updates • Rabin-Vazirani with Rank-1 Updates • Our Recursive Algorithm (overview) • Our Recursive Algorithm (fast updates)**Rank-1 Updates**• Let T be a n x n matrix • T + uvT is called a rank-1 update of T + ∙ T u vT**Rank-1 Updates**• Let T be a n x n matrix • T + uvT is called a rank-1 update of T • Computing rank-1 update takes O(n2) time + T uvT**Rank-1 Updates**• Let T be a n x n matrix • T + uvT is called a rank-1 update of T • Claim: If you modify one entry of T,then T-1 is modified by a rank-1 update. T = T-1 =**Rank-1 Updates**• Let T be a n x n matrix • T + uvT is called a rank-1 update of T • Claim: If you modify one entry of T,then T-1 is modified by a rank-1 update. • Claim: If you delete O(1) rows and columns of T then T-1 is affected by O(1) rank-1 updates. T-1 can be updated in O(n2) time**Matching Outline**• Tutte Matrix & Properties • Rabin-Vazirani Algorithm • Rank-1 Updates • Rabin-Vazirani with Rank-1 Updates • Our Recursive Algorithm (overview) • Our Recursive Algorithm (fast updates)**RV Algorithm + Rank-1 Updates**Mucha-Sankowski ’04 Compute T-1 For each {u,v} E If T-1u,v 0 Add {u,v} to matching Update T-1(via rank-1 updates) Recurse on G[ V\{u,v} ] • Total runtime: O(n3) time • Can updates use Fast Matrix Multiplication? • Bipartite graphs: Yes • Non-bip. graphs: Yes, but non-trivial [MS’04]**RV Algorithm + Rank-1 Updates**Mucha-Sankowski ’04 Compute T-1 For each {u,v} E If T-1u,v 0 Add {u,v} to matching Update T-1(via rank-1 updates) Recurse on G[ V\{u,v} ] • Total runtime: O(n3) time • Can updates use Fast Matrix Multiplication? New approach: An unusual recursion!**Matching Outline**• Tutte Matrix & Properties • Rabin-Vazirani Algorithm • Rank-1 Updates • Rabin-Vazirani with Rank-1 Updates • Our Recursive Algorithm (overview) • Our Recursive Algorithm (fast updates)**New Recursive Approach**(Here c=4 parts) • Partition into c parts {V1,…,Vc} (arbitrarily) • For each pair of parts {Va,Vb} (arbitrary order) • Recurse on G[Va ⋃Vb]**New Recursive Approach**• Partition into c parts {V1,…,Vc} (arbitrarily) • For each pair of parts {Va,Vb} (arbitrary order) • Recurse on G[Va ⋃Vb]**New Recursive Approach**• Partition into c parts {V1,…,Vc} (arbitrarily) • For each pair of parts {Va,Vb} (arbitrary order) • Recurse on G[Va ⋃Vb]**New Recursive Approach**• Partition into c parts {V1,…,Vc} (arbitrarily) • For each pair of parts {Va,Vb} (arbitrary order) • Recurse on G[Va ⋃Vb] • Base case: 2 vertices**New Recursive Approach**• Partition into c parts {V1,…,Vc} (arbitrarily) • For each pair of parts {Va,Vb} (arbitrary order) • Recurse on G[Va ⋃Vb] • Base case: 2 vertices {u,v} • If T-1u,v0, add {u,v} to matching, update T-1**Recursion F.A.Q.**• Why not just recurse on G[ Va ]? • Edges between parts would be missed • Claim: Our recursion examines every pair of vertices examines every edge • Why does algorithm work? • It implements Rabin-Vazirani Algorithm! • Isn’t this horribly slow? • No: we’ll see recurrence next • Partition into c parts {V1,…,Vc} (arbitrarily) • For each pair of parts {Va,Vb} (arbitrary order) • Recurse on G[Va ⋃Vb] • Base case: 2 vertices {u,v} • If T-1u,v0, add {u,v} to matching, update T-1**Final Matching Algorithm**If base case with 2 vertices {u,v} If T-1u,v 0, add {u,v} to matching Else Partition into c parts {V1,…,Vc} For each pair {Va,Vb} Recurse on G[Va ⋃Vb] Apply updates to current subproblem s = size of subproblem**Final Matching Algorithm**If base case with 2 vertices {u,v} If T-1u,v 0, add {u,v} to matching Else Partition into c parts {V1,…,Vc} For each pair {Va,Vb} Recurse on G[Va ⋃Vb] Apply updates to current subproblem s = size of subproblem**Final Matching Algorithm**If base case with 2 vertices {u,v} If T-1u,v 0, add {u,v} to matching Else Partition into c parts {V1,…,Vc} For each pair {Va,Vb} Recurse on G[Va ⋃Vb] Apply updates to current subproblem Assume: O(s) time s = size of subproblem**Time Analysis**• Basic Divide-and-Conquer • If then • Since ,just choose c large enough! c = 13 is large enough if = 2.38**Handling Updates**T =**Handling Updates**v v u u u u v v T = T-1 = • Delete vertices u and v**Handling Updates (Naively)**v v u u u u v v T = T-1 = • Delete vertices u and v clear rows / columns • Causes rank-1 updates to T-1 • Algorithm still takes (n3) time**Matching Outline**• Tutte Matrix & Properties • Rabin-Vazirani Algorithm • Rank-1 Updates • Rabin-Vazirani with Rank-1 Updates • Our Recursive Algorithm (overview) • Our Recursive Algorithm (fast updates)**Postponed**Just-in-time Updates v u u v T-1 = • Don’t update entire matrix! • Just update parent in recursion tree • Updates outside of parent are postponed**Invert**Multiply Postponed Updates v u u v T-1 = • Accumulate batches of updates • Claim: New updates can be applied with matrix multiplication and inversion**Final Matching Algorithm**If base case with 2 vertices {u,v} If T-1u,v 0, add {u,v} to matching Else Partition into c parts {V1,…,Vc} For each pair {Va,Vb} Recurse on G[Va ⋃Vb] Apply updates to current subproblem Invariant: Before / after child subproblem,parent’s submatrix is completely updated in every base case, T-1u,v is up-to-date!**Graph G**children Just apply postponed updates All edges chosen in base cases Only take edges that can be extended to a perfect matching in the whole graph. This decision is possible because invariant ensures that T-1u,v is up-to-date.**Matching Summary**• Can compute a perfect matching inO(n) = O(n2.38) time • Algorithm uses only simple randomization, linear algebra and divide-and-conquer • Easy to implement • Extensions for: (by existing techniques) • maximummatchings • Las Vegas**J**A Matroid Intersection O(mn-1) algorithm J x3 x4 BT x5 x6 x7 x8 More Extensions • Same philosophy applies to manymatching-like problems • Design matrix capturing problem • Design algorithm to test if element in OPT • Design method to efficiently do updates • Design “algebraic structure” capturing problem**More Extensions**• Same philosophy applies to manymatching-like problems • Design matrix capturing problem • Design “algebraic structure” capturing problem Bipartite Matroid Matching & Basic Path-Matching O(n) algorithm**Open Problems**• Fast, deterministic methods to choosevalues for indeterminates? • Implications for Matching in NC • Scaling algorithms for weighted problems? • O(n2) algorithms for matching bycompletely different techniques? • e.g., via Karger-Levine randomized max flow

More Related