Algebraic Structures and Algorithms for Matching and Matroid Problems

1 / 50

Algebraic Structures and Algorithms for Matching and Matroid Problems - PowerPoint PPT Presentation

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

PowerPoint Slideshow about 'Algebraic Structures and Algorithms for Matching and Matroid Problems' - paul2

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

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

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
• 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

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
• Our Recursive Algorithm (overview)
• Our Recursive Algorithm (fast updates)
• Let T be a n x n matrix
• T + uvT is called a rank-1 update of T

+

T

u

vT

• 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

• 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 =

• 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
• Our Recursive Algorithm (overview)
• Our Recursive Algorithm (fast updates)

Mucha-Sankowski ’04

Compute T-1

For each {u,v}  E

If T-1u,v 0

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]

Mucha-Sankowski ’04

Compute T-1

For each {u,v}  E

If T-1u,v 0

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
• 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,v0, 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,v0, 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]

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]

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]

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

v

v

u

u

u

u

v

v

T =

T-1 =

• Delete vertices u and v

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
• Our Recursive Algorithm (overview)
• Our Recursive Algorithm (fast updates)

Postponed

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

v

u

u

v

T-1 =

• 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]

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

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