Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
An Algebraic Algorithm for
Weighted Linear Matroid Intersection
Nick Harvey
What is Matroid Intersection?
Network
Flow
Submodular
Flow
Minimum
Spanning
Tree
Bipartite
Matching
Matroid
Greedy
Algorithm
Matroid
Intersection
Submodular
Function
Minimization
Spanning Tree
Packing
Non-Bip.
Matching
Matroid
Matching
Minimum
Arboresence
A central problem in discrete optimization
Matroid intersection
has many uses
• Edge connectivity [Gabow ’91]
• Uniprocessor scheduling [Stallman ’91]
• Survivable network design
[Balakrishnan-Magnanti-Mirchandani ’98]
•
•
•
•
k-Delivery TSP [Chalasani-Motwani ’99]
Constrained MST [Hassin-Levin ’04]
Multicast Network Codes [Harvey-Karger-Murota ’05]
Bounded-Degree MST [Goemans ’06]
An Example Problem
2
x1
5
x2
x3
x4
0
9
4
3
2
8
x5
0
x6
1
• Does this matrix have full rank?
• Can one replace xi’s with numbers s.t.
rank is maximized?
• Solvable via Matroid Intersection [Murota ’93]
What is a Matroid?
a
b
c
1
0
1
0
1
1
0
1
1
• rank = 2
• Linearly independent sets of columns
I = { ∅, {a}, {b}, {c}, {a,b}, {b,c}, {a,c} }
What is a Matroid?
a
b
c
• rank =
• Linearly independent sets of columns
I = { ∅, {a}, {b}, {c}, {a,b}, {b,c}, {a,c} }
• What is rank? Is a ∈ span({b,c})?
• What properties of linear independence
are needed to answer these questions?
Independence Properties
Linearly independent sets of columns
I = { ∅, {a}, {b}, {c}, {a,b}, {b,c}, {a,c} }
Properties:
1. ∅ ∈ I
2. If A ⊆ B ∈ I then A ∈ I
3. If A, B ∈ I and |A| < |B| then
∃ b ∈ B such that A+b ∈ I
Definition
A matroid is a pair (S,I)
with I ⊆ 2S
satisfying the axioms
1. ∅ ∈ I
2. If A ⊆ B ∈ I then A ∈ I
3. If A, B ∈ I and |A| < |B| then
∃ b ∈ B such that A+b ∈ I
Matroid Problems
• Given M=(S,I)
– Find A ∈ I maximizing |A|
– Find A ∈ I maximizing wt(A)
• Given M1=(S,I1) and M2=(S,I2)
– Find A ∈ I1 ⋂ I2 maximizing |A|
– Find A ∈ I1 ⋂ I2 maximizing wt(A)
Matroid
Greedy
Algorithm
Matroid
Intersection
Weighted
Matroid
Intersection
• Given M1=(S,I1), M2=(S,I2), M3=(S,I3)
– Find A ∈ I1 ⋂ I2 ⋂ I3 maximizing |A|
NP-hard!
Two types of algorithms
• Oracle Algorithms
Access matroid by oracle queries “Is A ∈ I?”
• Linear Matroid Algorithms
Input is a matrix M s.t.
I is the set of linearly indep. columns of M
Weighted Linear Matroid Intersection
Find set of columns S such that
AS and BS are both linearly independent
and wt(S) is maximized
A=
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
weights:
1
0
9
8
5
1
5
9
B=
7
9
3
1
6
2
3
4
6
9
4
8
3
2
7
4
7
4
0
2
1
9
4
2
9
6
3
5
0
1
3
3
AS
BS
Oracle Algorithm History
Access matroid by oracle queries “Is A ∈ I?”
Edmonds ’65-’70
Augmenting Paths
O(nr2)
Lawler ’75, Edmonds ’79 Augmenting Paths
O(nr2)
Cunningham ’86
“Blocking Flows”
O(nr1.5)
Shigeno-Iwata ’95
Dual Approximation
≈O(nr1.5 log(rW))
n = |S|
r = rank(S)
W = max weight
Grey row = unweighted algorithm
Linear Matroid Algorithm History
Given a matrix M s.t. I is set of indep. columns
Cunningham ’86
“Blocking Flows”
O(nr2 log r)
Gabow-Xu ’89-’96
“Blocking Flows” &
Fast Matrix Multiplication
O(nr1.77 log W)
Harvey ’06 †
Fast Matrix Multiplication
O(nr-1)
This Paper †
Fast Linear System Solving
for Polynomial Matrices
O(nr-1 W1+ε)
matrix M has size n x r
W = max weight
Grey row = unweighted algorithm
†
Randomized, and assumes matroids can be
represented over same field
Anatomy of a Weighted
Optimization Algorithm
e.g: Primal-Dual Method
repeat
adjust dual
find best primal using items allowed by dual
until primal is optimal
• Can any fast primal alg be used here?
– Want primal alg to work incrementally
• Sadly, algebraic method is not incremental
Polynomial Matrices
• Used in PRAM algs for matching
[KUW ’86], [MVV ’87]
2
a
b
c
2
0
e
a
5
1
0
f
g
1
d
1
e
h
b
0
f
g
h
x 1y 2 x 2y 2 x 3 y 5
x 4 y 0 x 5y 1
0
0
c
0
0
0
x6y0
d
x7y1
0
x 8y 1
0
Polynomial Matrices
• Used in PRAM algs for matching
[KUW ’86], [MVV ’87]
2
a
b
c
2
0
0
f
g
1
d
1
f
g
h
a
0
3y2
1y2
6y5
b
2y0
4y1
0
0
c
0
0
0
3y0
d
1y1
0
4y1
0
e
5
1
e
h
Determinant = 12y4 + 72y3
Max Weight of a Matching
Polynomial Matrices
• Matrix M, size n x n,
each entry a degree W polynomial
• Computing determinant:
– On PRAM:
O(log2(nW)) time
– Sequentially: O(n5 W2) time
[naive alg]
O(n+1 W) time [interpolation]
O(n W1+ε) time [Storjohann ’03]
Can compute max weight of a
W-1
1+ε) time
1+ε)W
matroid
intersection
in O(nr
perfect matching
in O(n
time
Weighted Linear Matroid Intersection
A=
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
weights:
1
0
9
8
5
1
5
9
B=
7
9
3
1
6
2
3
4
6
9
4
8
3
2
7
4
7
4
0
2
1
9
4
2
9
6
3
5
0
1
3
3
Weighted Linear Matroid Intersection
A
1
0
9
8
5
1
5
9
Weighted Linear Matroid Intersection
BT
A
1
0
9
8
5
1
5
9
Weighted Linear Matroid Intersection
BT
Y
y1
A
y0
y9
y8
y5
y1
y5
y9
Weighted Linear Matroid Intersection
Claim 1: max weight of intersection is
max exponent of y in det( A Y BT )
BT
Y
y1
A
y0
y9
y8
y5
y1
y5
y9
Weighted Linear Matroid Intersection
Claim 2: computing det( A Y BT )
takes time O(nr-1 W1+ε)
BT
Y
y1
A
y0
y9
y8
y5
y1
y5
y9
Using Storjohann
for Optimization Problems
• Can compute weight(OPT). How to find OPT?
• Sankowski found a method
for bipartite matching [Sankowski ’06]
– Define a family of perturbed instances.
Compute weight(OPT) for all perturbed instances.
– Using these weights, compute optimum dual
for original instance.
– Given optimum dual, compute OPT.
Find optimal bip matching in O(n W1+ε) time
Extending Sankowski’s Method
Fast algorithm
(using Storjohann)
[Sankowski ’06]
Network
Flow
Submodular
Flow
Minimum
Spanning
Tree
Bipartite
Matching
Matroid
Greedy
Algorithm
Matroid
Intersection
Submodular
Function
Minimization
Spanning Tree
Packing
Non-Bip.
Matching
Matroid
Matching
Minimum
Arboresence
Extending Sankowski’s Method
Fast algorithm
(using Storjohann)
[Sankowski ’06]
W1+ε)
O(n
Minimum
Spanning
log W
Network
Flow
log W
O(nr-1 W1+ε)
[This Paper]
Submodular
Flow
Tree
Bipartite
Matching
Matroid
Greedy
Algorithm
Matroid
Intersection
Submodular
Function
Minimization
Spanning Tree
Packing
Non-Bip.
Matching
Matroid
Matching
Minimum
Arboresence