510 likes | 529 Views
Learn about advanced algorithms for matching and matroid problems using algebraic structures. Explore perfect matching, dense graphs, and sophisticated dynamic connectivity data structures. Discover key techniques and properties of Tutte matrices.
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