Presentation is loading. Please wait.

Presentation is loading. Please wait.

Algebraic Structures and Algorithms for Matching and Matroid Problems Nick Harvey.

Similar presentations


Presentation on theme: "Algebraic Structures and Algorithms for Matching and Matroid Problems Nick Harvey."— Presentation transcript:

1 Algebraic Structures and Algorithms for Matching and Matroid Problems Nick Harvey

2 Perfect Matching Given graph G=(V,E) Perfect matching is M ⊆ E such that each vertex incident with exactly one edge in M

3 Edmonds ’65 Blossom Alg. O(n 2 m) Micali-Vazirani ’80-’90 Blossoms + “Blocking Flow” O( √ n m) Mucha-Sankowski ’04 Fast Matrix Multiplication O(n  ) Matching History All are non-trivial Mucha-Sankowski uses sophisticated dynamic connectivity data structures (Holm et al. ’01) to maintain “canonical partition” (Cheriyan ’97) O(n 4 ) O(n 2.5 ) (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”. O(n 2.38 ) (  <2.38 is exponent for matrix multiplication) Dense Graphs m=n 2

4 Edmonds ’65 Blossom Alg. O(n 4 ) Micali-Vazirani ’80-’90 Blossoms + “Blocking Flow” O(n 2.5 ) Mucha-Sankowski ’04 Fast Matrix Multiplication O(n 2.38 ) This Work Purely Algebraic, Clean Divide-and-Conquer, Fast Matrix Multiplication O(n 2.38 ) Matching Algorithms Conceptually simple Implemented in ~200 lines of MATLAB * * Randomized, but Las Vegas via [Cheriyan ’97] * Dense Graphs m=n 2

5 (Linear) Matroid Intersection 11101010 10011101 00110110 01011011 76637190 92924961 33470433 14842253 Find largest set of columns S such that A S and B S are both linearly independent A = B = ASAS BSBS

6 Matroid Intersection Find largest set of columns S such that A S and B S 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]

7 Edmonds ’65-’70, Lawler ’75 Augmenting Paths O(mn 2 ) oracle Cunningham ’86 “Blocking Flows” O(mn 2 log n) Gabow-Xu ’89-’96 “Blocking Flows” & Fast Matrix Mult. O(mn 1.62 ) Matroid Intersection History (for matrices of size n x m)

8 Essentially optimal: –Best known alg to compute rank takes O(mn  -1 ) –Computing rank reduces to matroid intersection Edmonds ’65-’70, Lawler ’75 Augmenting Paths O(mn 2 ) oracle Cunningham ’86 “Blocking Flows” O(mn 2 log n) Gabow-Xu ’89-’96 “Blocking Flows” & Fast Matrix Mult. O(mn 1.62 ) This paper Purely Algebraic, Fast Matrix Mult. O(mn  -1 ) Matroid Intersection History * * * * Assumes matroids are linear † † Randomized, and assumes matroids can be represented over same field O(mn 1.38 )

9 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

10 Generic Matching Algorithm How can we test this? Randomization and linear algebra play key role For each e  E If e is contained in a perfect matching Add e to solution Delete endpoints of e Else Delete edge e

11 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)

12 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. T u,v = ± x {u,v} 0 cb a 0-x {a,b} -x {a,c} x {a,b} 0-x {b,c} x {a,c} x {b,c} 0 if {u,v} ∈ E otherwise

13 Properties of Tutte Matrix Lemma [Tutte’47]: G has a perfect matching iff T is non-singular. Lemma [RV’89]: G[ V\{u,v} ] has a perfect matching iff (T -1 ) u,v  0.

14 Properties of Tutte Matrix Lemma [Tutte’47]: G has a perfect matching iff T is non-singular. Lemma [RV’89]: G[ V\{u,v} ] has a perfect matching iff (T -1 ) u,v  0. v u (T -1 ) u,v  0

15 Properties of Tutte Matrix Lemma [Tutte’47]: G has a perfect matching iff T is non-singular. Lemma [RV’89]: G[ V\{u,v} ] has a perfect matching iff (T -1 ) u,v  0. (T -1 ) u,v  0 G[ V\{u,v} ] has perfect matching

16 Properties of Tutte Matrix Lemma [Tutte’47]: G has a perfect matching iff T is non-singular. Lemma [RV’89]: G[ V\{u,v} ] has a perfect matching iff (T -1 ) u,v  0. (T -1 ) u,v  0 G[ V\{u,v} ] has perfect matching

17 Properties of Tutte Matrix Lemma [Tutte’47]: G has a perfect matching iff T is non-singular. Lemma [RV’89]: G[ V\{u,v} ] has a perfect matching iff (T -1 ) u,v  0. (T -1 ) u,v  0 G[ V\{u,v} ] has perfect matching v u

18 Properties of Tutte Matrix Lemma [Tutte’47]: G has a perfect matching iff 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.

19 Matching Algorithm Compute T -1 For each {u,v}  E If T -1 u,v  0 Add {u,v} to matching Recurse on G[ V\{u,v} ] (Takes O(n  ) time) Total time: O(n  +1 ) time Natural question: Can we recompute T -1 quickly in each iteration? Rabin-Vazirani ’89

20 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)

21 Rank-1 Updates Let T be a n x n matrix T + uv T is called a rank-1 update of T 1111 111 11 1 123n 1 2 3 n ∙ + TuvTvT

22 123n 2462n 3693n n2n3nn2n2 Let T be a n x n matrix T + uv T is called a rank-1 update of T Computing rank-1 update takes O(n 2 ) time Rank-1 Updates 1111 111 11 1 + Tuv T

23 Rank-1 Updates Let T be a n x n matrix T + uv T 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 =

24 Rank-1 Updates Let T be a n x n matrix T + uv T 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(n 2 ) time

25 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)

26 RV Algorithm + Rank-1 Updates Compute T -1 For each {u,v}  E If T -1 u,v  0 Add {u,v} to matching Update T -1 (via rank-1 updates) Recurse on G[ V\{u,v} ] Total runtime: O(n 3 ) time Can updates use Fast Matrix Multiplication? –Bipartite graphs: Yes –Non-bip. graphs: Yes, but non-trivial Mucha-Sankowski ’04 [MS’04]

27 RV Algorithm + Rank-1 Updates Compute T -1 For each {u,v}  E If T -1 u,v  0 Add {u,v} to matching Update T -1 (via rank-1 updates) Recurse on G[ V\{u,v} ] Total runtime: O(n 3 ) time Can updates use Fast Matrix Multiplication? Mucha-Sankowski ’04 New approach: An unusual recursion!

28 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)

29 New Recursive Approach (Here c=4 parts) Partition into c parts {V 1,…,V c } (arbitrarily) For each pair of parts {V a,V b } (arbitrary order) –Recurse on G[V a ⋃ V b ]

30 New Recursive Approach Partition into c parts {V 1,…,V c } (arbitrarily) For each pair of parts {V a,V b } (arbitrary order) –Recurse on G[V a ⋃ V b ]

31 New Recursive Approach Partition into c parts {V 1,…,V c } (arbitrarily) For each pair of parts {V a,V b } (arbitrary order) –Recurse on G[V a ⋃ V b ]

32 New Recursive Approach Partition into c parts {V 1,…,V c } (arbitrarily) For each pair of parts {V a,V b } (arbitrary order) –Recurse on G[V a ⋃ V b ] Base case: 2 vertices

33 New Recursive Approach Partition into c parts {V 1,…,V c } (arbitrarily) For each pair of parts {V a,V b } (arbitrary order) –Recurse on G[V a ⋃ V b ] Base case: 2 vertices {u,v} –If T -1 u,v  0, add {u,v} to matching, update T -1

34 Recursion F.A.Q. Why not just recurse on G[ V a ]? –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 {V 1,…,V c } (arbitrarily) For each pair of parts {V a,V b } (arbitrary order) –Recurse on G[V a ⋃ V b ] Base case: 2 vertices {u,v} –If T -1 u,v  0, add {u,v} to matching, update T -1

35 Final Matching Algorithm If base case with 2 vertices {u,v} If T -1 u,v  0, add {u,v} to matching Else Partition into c parts {V 1,…,V c } For each pair {V a,V b } Recurse on G[V a ⋃ V b ] Apply updates to current subproblem s = size of subproblem

36 Final Matching Algorithm If base case with 2 vertices {u,v} If T -1 u,v  0, add {u,v} to matching Else Partition into c parts {V 1,…,V c } For each pair {V a,V b } Recurse on G[V a ⋃ V b ] Apply updates to current subproblem s = size of subproblem

37 Final Matching Algorithm If base case with 2 vertices {u,v} If T -1 u,v  0, add {u,v} to matching Else Partition into c parts {V 1,…,V c } For each pair {V a,V b } Recurse on G[V a ⋃ V b ] Apply updates to current subproblem Assume: O(s  ) time s = size of subproblem

38 Basic Divide-and-Conquer –If then Since, just choose c large enough! Time Analysis c = 13 is large enough if  = 2.38

39 Handling Updates T =

40 Handling Updates T =T -1 = Delete vertices u and v u v u v u v u v

41 Handling Updates (Naively) T =T -1 = Delete vertices u and v  clear rows / columns Causes rank-1 updates to T -1 Algorithm still takes  (n 3 ) time u v u v u v u v

42 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)

43 Just-in-time Updates T -1 = Don’t update entire matrix! Just update parent in recursion tree Updates outside of parent are postponed u v u v

44 Postponed Updates T -1 = Accumulate batches of updates Claim: New updates can be applied with matrix multiplication and inversion u v u v

45 Final Matching Algorithm If base case with 2 vertices {u,v} If T -1 u,v  0, add {u,v} to matching Else Partition into c parts {V 1,…,V c } For each pair {V a,V b } Recurse on G[V a ⋃ V b ] Apply updates to current subproblem Invariant: Before / after child subproblem, parent’s submatrix is completely updated  in every base case, T -1 u,v is up-to-date!

46 Graph G children 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 -1 u,v is up-to-date. Just apply postponed updates

47 Matching Summary Can compute a perfect matching in O(n  ) = O(n 2.38 ) time Algorithm uses only simple randomization, linear algebra and divide-and-conquer Easy to implement Extensions for: (by existing techniques) –maximum matchings –Las Vegas

48 More Extensions Same philosophy applies to many matching-like problems –Design matrix capturing problem –Design algorithm to test if element in OPT –Design method to efficiently do updates x3x3 x4x4 x5x5 x6x6 x7x7 x8x8 A BTBT J J Matroid Intersection O(mn  -1 ) algorithm – Design “algebraic structure” capturing problem

49 More Extensions Same philosophy applies to many matching-like problems –Design matrix capturing problem Bipartite Matroid Matching & Basic Path-Matching O(n  ) algorithm – Design “algebraic structure” capturing problem

50 Open Problems Fast, deterministic methods to choose values for indeterminates? –Implications for Matching in NC Scaling algorithms for weighted problems? O(n 2 ) algorithms for matching by completely different techniques? –e.g., via Karger-Levine randomized max flow


Download ppt "Algebraic Structures and Algorithms for Matching and Matroid Problems Nick Harvey."

Similar presentations


Ads by Google