To prove optimality of the greedy algorithm, all we needed was the following. Matroids A set system M = ( X , I ) is a matroid if ∅ ∈ I 1 If A ∈ I and B ⊆ A , then B ∈ I (Downward Closure) 2 If A, B ∈ I and | B | > | A | , then ∃ x ∈ B \ A such that A � { x } ∈ I 3 (Exchange Property) Three conditions above are called the matroid axioms A ∈ I is called an independent set of the matroid. The matroid whose independent sets are acyclic subgraphs is called a graphic matroid Other examples abound! Matroids and The Greedy Algorithm 6/30
Example: Linear Matroid X is a finite set of vectors { v 1 , . . . , v m } ⊆ R n S ∈ I iff the vectors in S are linearly independent Downward closure: If a set of vectors is linearly independent, then every subset of it is also Exchange property: Can always extend a low-dimension independent set S by adding vectors from a higher dimension independent set T Matroids and The Greedy Algorithm 7/30
Example: Uniform Matroid X is an arbitrary finite set { 1 , . . . , n } . S ∈ I iff | S | ≤ k . Downward closure: If a set S has | S | ≤ k then the same holds for T ⊆ S . Exchange property: If | S | < | T | ≤ k , then there is an element in T \ S , and we can add it to S while preserving independence. Matroids and The Greedy Algorithm 8/30
Example: Partition Matroid X is the disjoint union of classes X 1 , . . . , X m Each class X j has an upperbound k j . S ∈ I iff | S � X j | ≤ k j for all j This is the “disjoint union” of a number of uniform matroids Matroids and The Greedy Algorithm 9/30
Example: Transversal Matroid Described by a bipartite graph E ⊆ L × R X = L S ∈ I iff there is a bipartite matching which matches S Downward closure: If we can match S , then we can match T ⊆ S . Exchange property: If | T | > | S | is matchable, then an augmenting path/alternating path extends the matching of S to some x ∈ T \ S . Matroids and The Greedy Algorithm 10/30
The Greedy Algorithm on Matroids The Greedy Algorithm B ← ∅ 1 Sort nonnegative elements of X in decreasing order of weight 2 { 1 , . . . , n } with w 1 ≥ w 2 , ≥ . . . ≥ w n ≥ 0 . For i = 1 to n : 3 if B � { i } ∈ I , add i to B . Theorem The greedy algorithm returns the maximum weight feasible set for every choice of weights if and only if the set system ( X , I ) is a matroid. We already saw the “if” direction. We will skip “only if”. Matroids and The Greedy Algorithm 11/30
The Greedy Algorithm on Matroids The Greedy Algorithm B ← ∅ 1 Sort nonnegative elements of X in decreasing order of weight 2 { 1 , . . . , n } with w 1 ≥ w 2 , ≥ . . . ≥ w n ≥ 0 . For i = 1 to n : 3 if B � { i } ∈ I , add i to B . Matroids and The Greedy Algorithm 12/30
The Greedy Algorithm on Matroids The Greedy Algorithm B ← ∅ 1 Sort nonnegative elements of X in decreasing order of weight 2 { 1 , . . . , n } with w 1 ≥ w 2 , ≥ . . . ≥ w n ≥ 0 . For i = 1 to n : 3 if B � { i } ∈ I , add i to B . To implement this, we need an independence oracle for step 3 A subroutine which checks whether S ∈ I or not. Runs in time O ( n log n ) + nT , where T is runtime of the independence oracle. Matroids and The Greedy Algorithm 12/30
The Greedy Algorithm on Matroids The Greedy Algorithm B ← ∅ 1 Sort nonnegative elements of X in decreasing order of weight 2 { 1 , . . . , n } with w 1 ≥ w 2 , ≥ . . . ≥ w n ≥ 0 . For i = 1 to n : 3 if B � { i } ∈ I , add i to B . To implement this, we need an independence oracle for step 3 A subroutine which checks whether S ∈ I or not. Runs in time O ( n log n ) + nT , where T is runtime of the independence oracle. For most “natural” matroids, independence oracle is easy to implement efficiently Graphic matroid Linear matroid Uniform/partition matroid Transversal matroid Matroids and The Greedy Algorithm 12/30
Outline Matroids and The Greedy Algorithm 1 Basic Terminology and Properties 2 The Matroid Polytope 3 Matroid Intersection 4
Independent Sets, Bases, and Circuits Consider a matroid M = ( X , I ) . An independent set is a set A ∈ I . Basic Terminology and Properties 13/30
Independent Sets, Bases, and Circuits Consider a matroid M = ( X , I ) . An independent set is a set A ∈ I . A base of M is a maximal independent set Basic Terminology and Properties 13/30
Independent Sets, Bases, and Circuits Consider a matroid M = ( X , I ) . An independent set is a set A ∈ I . A base of M is a maximal independent set A base of S ⊆ X in M is maximal independent subset of S I.e. a base of the matroid after deleting S . Basic Terminology and Properties 13/30
Independent Sets, Bases, and Circuits Consider a matroid M = ( X , I ) . An independent set is a set A ∈ I . A base of M is a maximal independent set A base of S ⊆ X in M is maximal independent subset of S I.e. a base of the matroid after deleting S . A circuit S ⊆ X is a minimal dependent subset of X Basic Terminology and Properties 13/30
Independent Sets, Bases, and Circuits Consider a matroid M = ( X , I ) . An independent set is a set A ∈ I . A base of M is a maximal independent set A base of S ⊆ X in M is maximal independent subset of S I.e. a base of the matroid after deleting S . A circuit S ⊆ X is a minimal dependent subset of X What are these for: Graphic matroid Linear matroid Uniform matroid Partition matroid Transversal matroid Basic Terminology and Properties 13/30
Rank Lemma For every S ⊆ X , all bases of S in M have the same cardinality. Special case of S = X : all bases of M have the same cardinality. Should remind you of vector space dimension Basic Terminology and Properties 14/30
Rank Lemma For every S ⊆ X , all bases of S in M have the same cardinality. Special case of S = X : all bases of M have the same cardinality. Should remind you of vector space dimension Follows directly from the exchange property. Basic Terminology and Properties 14/30
Rank Lemma For every S ⊆ X , all bases of S in M have the same cardinality. Special case of S = X : all bases of M have the same cardinality. Should remind you of vector space dimension Follows directly from the exchange property. The following analogue of vector space dimension is well-defined. Rank The Rank of S ⊆ X in M is the size of the maximal independent subsets (i.e. bases) of S . The rank of M is the size of the bases of M . The function rank M ( S ) : 2 X → N is called the rank function of M . Basic Terminology and Properties 14/30
Rank Lemma For every S ⊆ X , all bases of S in M have the same cardinality. Special case of S = X : all bases of M have the same cardinality. Should remind you of vector space dimension Follows directly from the exchange property. The following analogue of vector space dimension is well-defined. Rank The Rank of S ⊆ X in M is the size of the maximal independent subsets (i.e. bases) of S . The rank of M is the size of the bases of M . The function rank M ( S ) : 2 X → N is called the rank function of M . E.g.: Graphic matroid, linear matroid, transversal matroid Basic Terminology and Properties 14/30
Span Span Given S ⊆ X , span ( S ) = { i ∈ X : rank ( S ) = rank ( S � { i } ) } i.e. S itself, plus the elements which would form a circuit if added to a base of S e.g.: Linear matroid, graphic matroid, uniform matroid. Basic Terminology and Properties 15/30
Span Span Given S ⊆ X , span ( S ) = { i ∈ X : rank ( S ) = rank ( S � { i } ) } i.e. S itself, plus the elements which would form a circuit if added to a base of S e.g.: Linear matroid, graphic matroid, uniform matroid. Observation i ∈ { 1 , . . . , n } is selected by the greedy algorithm iff i �∈ span ( { 1 , . . . , i − 1 } ) Basic Terminology and Properties 15/30
Operations preserving Matroidness Given M = ( X , I ) , consider the following operations: Deletion: For B ⊆ X , we define M \ B = ( X ′ , I ′ ) with X ′ = X \ B , I ′ = S ⊆ X ′ : S ∈ I � � Graphic: deleting edges from the graph Basic Terminology and Properties 16/30
Operations preserving Matroidness Given M = ( X , I ) , consider the following operations: Deletion: For B ⊆ X , we define M \ B = ( X ′ , I ′ ) with X ′ = X \ B , I ′ = S ⊆ X ′ : S ∈ I � � Graphic: deleting edges from the graph Restriction: M| B = M \ B , where B is shorthand for X \ B . Basic Terminology and Properties 16/30
Operations preserving Matroidness Given M = ( X , I ) , consider the following operations: Deletion: For B ⊆ X , we define M \ B = ( X ′ , I ′ ) with X ′ = X \ B , I ′ = S ⊆ X ′ : S ∈ I � � Graphic: deleting edges from the graph Restriction: M| B = M \ B , where B is shorthand for X \ B . Disjoint union: Given M 1 = ( X 1 , I 2 ) and M 2 = ( X 2 , I 2 ) with � X 2 = ∅ , we define X 1 � � � � M 1 ⊕ M 2 = ( X 1 X 2 , A 1 A 2 : A 1 ∈ I 1 , A 2 ∈ I 2 ) Graphic: combining two node-disjoint graphs Basic Terminology and Properties 16/30
Operations preserving Matroidness Given M = ( X , I ) , consider the following operations: Deletion: For B ⊆ X , we define M \ B = ( X ′ , I ′ ) with X ′ = X \ B , I ′ = S ⊆ X ′ : S ∈ I � � Graphic: deleting edges from the graph Restriction: M| B = M \ B , where B is shorthand for X \ B . Disjoint union: Given M 1 = ( X 1 , I 2 ) and M 2 = ( X 2 , I 2 ) with � X 2 = ∅ , we define X 1 � � � � M 1 ⊕ M 2 = ( X 1 X 2 , A 1 A 2 : A 1 ∈ I 1 , A 2 ∈ I 2 ) Graphic: combining two node-disjoint graphs Contraction: Given B ⊆ X , let M/B = ( X ′ , I ′ ) with X ′ = X \ B , I ′ = � S ⊆ X ′ : B � � S ∈ I i.e. Think of B as always being included Graphic: contract the connected components of B Basic Terminology and Properties 16/30
Operations preserving Matroidness Given M = ( X , I ) , consider the following operations: Deletion: For B ⊆ X , we define M \ B = ( X ′ , I ′ ) with X ′ = X \ B , I ′ = S ⊆ X ′ : S ∈ I � � Graphic: deleting edges from the graph Restriction: M| B = M \ B , where B is shorthand for X \ B . Disjoint union: Given M 1 = ( X 1 , I 2 ) and M 2 = ( X 2 , I 2 ) with � X 2 = ∅ , we define X 1 � � � � M 1 ⊕ M 2 = ( X 1 X 2 , A 1 A 2 : A 1 ∈ I 1 , A 2 ∈ I 2 ) Graphic: combining two node-disjoint graphs Contraction: Given B ⊆ X , let M/B = ( X ′ , I ′ ) with X ′ = X \ B , I ′ = � S ⊆ X ′ : B � � S ∈ I i.e. Think of B as always being included Graphic: contract the connected components of B Others: truncation, dual, union... Basic Terminology and Properties 16/30
Matroids as an Algebra of Tractable Discrete Problems Optimization over matroids is “easy”, in the same way that optimization over convex sets is “easy” Basic Terminology and Properties 17/30
Matroids as an Algebra of Tractable Discrete Problems Optimization over matroids is “easy”, in the same way that optimization over convex sets is “easy” Operations preserving set convexity are analogous to operations preserving matroid structure Basic Terminology and Properties 17/30
Matroids as an Algebra of Tractable Discrete Problems Optimization over matroids is “easy”, in the same way that optimization over convex sets is “easy” Operations preserving set convexity are analogous to operations preserving matroid structure Arguably, matroids and submodular functions are discrete analogues of convex sets and convex functions, respectively. Less exhaustive Basic Terminology and Properties 17/30
Outline Matroids and The Greedy Algorithm 1 Basic Terminology and Properties 2 The Matroid Polytope 3 Matroid Intersection 4
Viewing Matroids Polyhedrally As is often the case with tractable discrete problems, we can view their feasible set as a polyhedron The Matroid Polytope 18/30
Viewing Matroids Polyhedrally As is often the case with tractable discrete problems, we can view their feasible set as a polyhedron For M = ( X , I ) , the convex hull of independent sets can be written as a polytope in a natural way The polytope is “solvable”, and admits a polytime separation oracle The Matroid Polytope 18/30
Viewing Matroids Polyhedrally As is often the case with tractable discrete problems, we can view their feasible set as a polyhedron For M = ( X , I ) , the convex hull of independent sets can be written as a polytope in a natural way The polytope is “solvable”, and admits a polytime separation oracle This perspective will be crucial for more advanced applications of matroids Optimization of linear functions over matroid intersections Optimization of submodular functions over matroids . . . The Matroid Polytope 18/30
The Matroid Polytope Polytope P ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . Assigns a variable x i to every element i of the ground set Each feasible x is a fractional subset of X 0 ≤ x i ≤ 1 since the rank of a singleton is at most 1 . The Matroid Polytope 19/30
The Matroid Polytope Polytope P ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . Assigns a variable x i to every element i of the ground set Each feasible x is a fractional subset of X 0 ≤ x i ≤ 1 since the rank of a singleton is at most 1 . The 0-1 indicator vector x I for independent set I ∈ I is in the above polytope The Matroid Polytope 19/30
The Matroid Polytope Polytope P ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . Assigns a variable x i to every element i of the ground set Each feasible x is a fractional subset of X 0 ≤ x i ≤ 1 since the rank of a singleton is at most 1 . The 0-1 indicator vector x I for independent set I ∈ I is in the above polytope In fact, we will show that P ( M ) is precisely the convex hull of independent sets I The Matroid Polytope 19/30
The Matroid Polytope Polytope P ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . Assigns a variable x i to every element i of the ground set Each feasible x is a fractional subset of X 0 ≤ x i ≤ 1 since the rank of a singleton is at most 1 . The 0-1 indicator vector x I for independent set I ∈ I is in the above polytope In fact, we will show that P ( M ) is precisely the convex hull of independent sets I Note: polytope has 2 |X| constraints. The Matroid Polytope 19/30
Integrality of the Matroid Polytope Polytope P ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . Theorem P ( M ) = convexhull { x I : I ∈ I} The Matroid Polytope 20/30
Integrality of the Matroid Polytope Polytope P ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . Theorem P ( M ) = convexhull { x I : I ∈ I} It is clear that P ( M ) ⊇ convexhull { x I : I ∈ I} The Matroid Polytope 20/30
Integrality of the Matroid Polytope Polytope P ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . Theorem P ( M ) = convexhull { x I : I ∈ I} It is clear that P ( M ) ⊇ convexhull { x I : I ∈ I} To show that P ( M ) ⊆ convexhull { x I : I ∈ I} , we will show that every vertex of P ( M ) equals x I for some I ∈ I . The Matroid Polytope 20/30
Integrality of the Matroid Polytope Polytope P ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . Theorem P ( M ) = convexhull { x I : I ∈ I} It is clear that P ( M ) ⊇ convexhull { x I : I ∈ I} To show that P ( M ) ⊆ convexhull { x I : I ∈ I} , we will show that every vertex of P ( M ) equals x I for some I ∈ I . Recall: suffices to show that every linear function w T x is maximized over P ( M ) at some x I for I ∈ I . The Matroid Polytope 20/30
Recall:The Greedy Algorithm B ← ∅ 1 Sort nonnegative elements of X in decreasing order of weight 2 { 1 , . . . , n } with w 1 ≥ w 2 , ≥ . . . ≥ w n ≥ 0 . For i = 1 to n : 3 if B � { i } ∈ I , add i to B . Theorem The greedy algorithm returns the maximum weight set for every choice of weights if and only if the set system ( X , I ) is a matroid. The Matroid Polytope 21/30
Recall:The Greedy Algorithm B ← ∅ 1 Sort nonnegative elements of X in decreasing order of weight 2 { 1 , . . . , n } with w 1 ≥ w 2 , ≥ . . . ≥ w n ≥ 0 . For i = 1 to n : 3 if B � { i } ∈ I , add i to B . Theorem The greedy algorithm returns the maximum weight set for every choice of weights if and only if the set system ( X , I ) is a matroid. We can think of the greedy algorithm as computing the indicator vector x ∗ = x B ∈ P ( M ) We will show that x ∗ maximizes w ⊺ x over x ∈ P ( M ) . The Matroid Polytope 21/30
Recall: Observation i ∈ { 1 , . . . , n } selected by greedy algorithm iff i �∈ span ( { 1 , . . . , i − 1 } ) i.e. if rank [1 : i ] − rank [1 : i − 1] = 1 . The Matroid Polytope 22/30
Recall: Observation i ∈ { 1 , . . . , n } selected by greedy algorithm iff i �∈ span ( { 1 , . . . , i − 1 } ) i.e. if rank [1 : i ] − rank [1 : i − 1] = 1 . Therefore, x ∗ i = rank [1 : i ] − rank [1 : i − 1] for nonneg-weight i , and x ∗ i = 0 for negative-weight i . n n � w i x ∗ � w i x ∗ � i = i = w i ( rank [1 : i ] − rank [1 : i − 1]) i ∈X i =1 i =1 The Matroid Polytope 22/30
Recall: Observation i ∈ { 1 , . . . , n } selected by greedy algorithm iff i �∈ span ( { 1 , . . . , i − 1 } ) i.e. if rank [1 : i ] − rank [1 : i − 1] = 1 . Therefore, x ∗ i = rank [1 : i ] − rank [1 : i − 1] for nonneg-weight i , and x ∗ i = 0 for negative-weight i . n n � w i x ∗ � w i x ∗ � i = i = w i ( rank [1 : i ] − rank [1 : i − 1]) i ∈X i =1 i =1 Consider an arbitrary x ∈ P ( M ) n � � w i x i ≤ w i x i = i ∈X i =1 The Matroid Polytope 22/30
Recall: Observation i ∈ { 1 , . . . , n } selected by greedy algorithm iff i �∈ span ( { 1 , . . . , i − 1 } ) i.e. if rank [1 : i ] − rank [1 : i − 1] = 1 . Therefore, x ∗ i = rank [1 : i ] − rank [1 : i − 1] for nonneg-weight i , and x ∗ i = 0 for negative-weight i . n n � w i x ∗ � w i x ∗ � i = i = w i ( rank [1 : i ] − rank [1 : i − 1]) i ∈X i =1 i =1 Consider an arbitrary x ∈ P ( M ) n n � � � w i x i ≤ w i x i = ( w i − w i +1 ) x (1 : i ) i ∈X i =1 i =1 The Matroid Polytope 22/30
Recall: Observation i ∈ { 1 , . . . , n } selected by greedy algorithm iff i �∈ span ( { 1 , . . . , i − 1 } ) i.e. if rank [1 : i ] − rank [1 : i − 1] = 1 . Therefore, x ∗ i = rank [1 : i ] − rank [1 : i − 1] for nonneg-weight i , and x ∗ i = 0 for negative-weight i . n n � w i x ∗ � w i x ∗ � i = i = w i ( rank [1 : i ] − rank [1 : i − 1]) i ∈X i =1 i =1 Consider an arbitrary x ∈ P ( M ) n n � � � w i x i ≤ w i x i = ( w i − w i +1 ) x (1 : i ) i ∈X i =1 i =1 n � ≤ ( w i − w i +1 ) rank (1 : i ) i =1 The Matroid Polytope 22/30
Recall: Observation i ∈ { 1 , . . . , n } selected by greedy algorithm iff i �∈ span ( { 1 , . . . , i − 1 } ) i.e. if rank [1 : i ] − rank [1 : i − 1] = 1 . Therefore, x ∗ i = rank [1 : i ] − rank [1 : i − 1] for nonneg-weight i , and x ∗ i = 0 for negative-weight i . n n � w i x ∗ � w i x ∗ � i = i = w i ( rank [1 : i ] − rank [1 : i − 1]) i ∈X i =1 i =1 Consider an arbitrary x ∈ P ( M ) n n � � � w i x i ≤ w i x i = ( w i − w i +1 ) x (1 : i ) i ∈X i =1 i =1 n � ≤ ( w i − w i +1 ) rank (1 : i ) i =1 n � = w i ( rank [1 : i ] − rank [1 : i − 1]) i =1 The Matroid Polytope 22/30
The Matroid Base Polytope The matroid polytope is the convex hull of independent sets Graphic: convex hull of forests What if we wish to consider only “full-rank” sets? Graphic: spanning trees The Matroid Polytope 23/30
The Matroid Base Polytope The matroid polytope is the convex hull of independent sets Graphic: convex hull of forests What if we wish to consider only “full-rank” sets? Graphic: spanning trees Polytope P base ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S � x i = rank ( M ) i ∈X x i ≥ 0 , for i ∈ X . The 0-1 indicator vector x B for a base B of M is in above polytope The Matroid Polytope 23/30
The Matroid Base Polytope The matroid polytope is the convex hull of independent sets Graphic: convex hull of forests What if we wish to consider only “full-rank” sets? Graphic: spanning trees Polytope P base ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S � x i = rank ( M ) i ∈X x i ≥ 0 , for i ∈ X . The 0-1 indicator vector x B for a base B of M is in above polytope In fact, we will show that P base ( M ) is precisely the convex hull of bases of M The Matroid Polytope 23/30
Polytope P base ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S � x i = rank ( M ) i ∈X x i ≥ 0 , for i ∈ X . Theorem P base ( M ) = convexhull { x B : B is a base of M} The Matroid Polytope 24/30
Polytope P base ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S � x i = rank ( M ) i ∈X x i ≥ 0 , for i ∈ X . Theorem P base ( M ) = convexhull { x B : B is a base of M} As before, one direction is obvious: P base ( M ) ⊇ convexhull { x B : B is a base of M} The Matroid Polytope 24/30
Polytope P base ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S � x i = rank ( M ) i ∈X x i ≥ 0 , for i ∈ X . Theorem P base ( M ) = convexhull { x B : B is a base of M} As before, one direction is obvious: P base ( M ) ⊇ convexhull { x B : B is a base of M} For the other direction, take x ∈ P base ( M ) The Matroid Polytope 24/30
Polytope P base ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S � x i = rank ( M ) i ∈X x i ≥ 0 , for i ∈ X . Theorem P base ( M ) = convexhull { x B : B is a base of M} As before, one direction is obvious: P base ( M ) ⊇ convexhull { x B : B is a base of M} For the other direction, take x ∈ P base ( M ) Since x ∈ P ( M ) , x is a convex combination of independent sets I 1 , . . . , I k of M . The Matroid Polytope 24/30
Polytope P base ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S � x i = rank ( M ) i ∈X x i ≥ 0 , for i ∈ X . Theorem P base ( M ) = convexhull { x B : B is a base of M} As before, one direction is obvious: P base ( M ) ⊇ convexhull { x B : B is a base of M} For the other direction, take x ∈ P base ( M ) Since x ∈ P ( M ) , x is a convex combination of independent sets I 1 , . . . , I k of M . Since || x || 1 = rank ( M ) , and || x I ℓ || 1 ≤ rank ( M ) for all ℓ , it must be that || x I 1 || 1 = || x I 2 || 1 = . . . = || x I k || 1 = rank ( M ) The Matroid Polytope 24/30
Solvability of Matroid Polytopes Polytope P ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . When given an independence oracle for M , we can maximize linear functions over P ( M ) in O ( n log n + nT ) time, where T is runtime of independence oracle By integrality, same as finding max-weight independent set of M . The Matroid Polytope 25/30
Solvability of Matroid Polytopes Polytope P ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . When given an independence oracle for M , we can maximize linear functions over P ( M ) in O ( n log n + nT ) time, where T is runtime of independence oracle By integrality, same as finding max-weight independent set of M . Therefore, by equivalence of separation and optimization, can also implement a separation oracle for P ( M ) in poly( n, T ) time. The Matroid Polytope 25/30
Solvability of Matroid Polytopes Polytope P ( M ) for M = ( X , I ) � x i ≤ rank M ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . When given an independence oracle for M , we can maximize linear functions over P ( M ) in O ( n log n + nT ) time, where T is runtime of independence oracle By integrality, same as finding max-weight independent set of M . Therefore, by equivalence of separation and optimization, can also implement a separation oracle for P ( M ) in poly( n, T ) time. A more direct proof: reduces to submodular function minimization rank M is a submodular set function. The Matroid Polytope 25/30
Outline Matroids and The Greedy Algorithm 1 Basic Terminology and Properties 2 The Matroid Polytope 3 Matroid Intersection 4
Matroid Intersection Optimization of linear functions over matroids is tractable Matroid operations provide an algebra for constructing new matroids from old We will look at one operation on matroids which does not produce a matroid, but nevertheless produces a solvable problem. Matroid Intersection 26/30
Matroid Intersection Optimization of linear functions over matroids is tractable Matroid operations provide an algebra for constructing new matroids from old We will look at one operation on matroids which does not produce a matroid, but nevertheless produces a solvable problem. Matroid Intersection Given matroids M 1 = ( X , I 1 ) and M 2 = ( X , I 2 ) on the same ground � M 2 = ( X , I 1 � I 2 ) . set, we define the set system M 1 Matroid Intersection 26/30
Matroid Intersection Optimization of linear functions over matroids is tractable Matroid operations provide an algebra for constructing new matroids from old We will look at one operation on matroids which does not produce a matroid, but nevertheless produces a solvable problem. Matroid Intersection Given matroids M 1 = ( X , I 1 ) and M 2 = ( X , I 2 ) on the same ground � M 2 = ( X , I 1 � I 2 ) . set, we define the set system M 1 i.e. a set is feasible if it is independent in both matroids Matroid Intersection 26/30
Matroid Intersection Optimization of linear functions over matroids is tractable Matroid operations provide an algebra for constructing new matroids from old We will look at one operation on matroids which does not produce a matroid, but nevertheless produces a solvable problem. Matroid Intersection Given matroids M 1 = ( X , I 1 ) and M 2 = ( X , I 2 ) on the same ground � M 2 = ( X , I 1 � I 2 ) . set, we define the set system M 1 i.e. a set is feasible if it is independent in both matroids In general, does not produce a matroid Matroid Intersection 26/30
Matroid Intersection Optimization of linear functions over matroids is tractable Matroid operations provide an algebra for constructing new matroids from old We will look at one operation on matroids which does not produce a matroid, but nevertheless produces a solvable problem. Matroid Intersection Given matroids M 1 = ( X , I 1 ) and M 2 = ( X , I 2 ) on the same ground � M 2 = ( X , I 1 � I 2 ) . set, we define the set system M 1 i.e. a set is feasible if it is independent in both matroids In general, does not produce a matroid Nevertheless, it will turn out that maximizing linear functions over a matroid intersection is tractable Matroid Intersection 26/30
Matroid Intersection Optimization of linear functions over matroids is tractable Matroid operations provide an algebra for constructing new matroids from old We will look at one operation on matroids which does not produce a matroid, but nevertheless produces a solvable problem. Matroid Intersection Given matroids M 1 = ( X , I 1 ) and M 2 = ( X , I 2 ) on the same ground � M 2 = ( X , I 1 � I 2 ) . set, we define the set system M 1 i.e. a set is feasible if it is independent in both matroids In general, does not produce a matroid Nevertheless, it will turn out that maximizing linear functions over a matroid intersection is tractable However, maximizing linear functions over the intersection of 3 or more matroids is NP-hard Matroid Intersection 26/30
Examples Bipartite Matching Given a bipartite graph G , a set of edges F is a bipartite matching if and only if each node is incident on at most one edge in F . Matroid Intersection 27/30
Examples Bipartite Matching Given a bipartite graph G , a set of edges F is a bipartite matching if and only if each node is incident on at most one edge in F . Arborescence Given a directed graph G , a set of edges is an r -arborescence if it is a tree directed away from the root r . Matroid Intersection 27/30
Examples Bipartite Matching Given a bipartite graph G , a set of edges F is a bipartite matching if and only if each node is incident on at most one edge in F . Arborescence Given a directed graph G , a set of edges is an r -arborescence if it is a tree directed away from the root r . Others: colorful spanning trees, orientations, . . . Matroid Intersection 27/30
The Matroid Intersection Polytope Matroid Intersection Given matroids M 1 = ( X , I 1 ) and M 2 = ( X , I 2 ) on the same ground � M 2 = ( X , I 1 � I 2 ) . set, we define the set system M 1 � M 2 is equivalent to Optimizing a modular function over M 1 � I 2 } . optimizing a linear function over convexhull { x I : I ∈ I 1 As it turns out, this is a solvable polytope. Theorem P ( M 1 ) � P ( M 2 ) = convexhull { x I : I ∈ I 1 � I 2 } Matroid Intersection 28/30
The Matroid Intersection Polytope Matroid Intersection Given matroids M 1 = ( X , I 1 ) and M 2 = ( X , I 2 ) on the same ground � M 2 = ( X , I 1 � I 2 ) . set, we define the set system M 1 � M 2 is equivalent to Optimizing a modular function over M 1 � I 2 } . optimizing a linear function over convexhull { x I : I ∈ I 1 As it turns out, this is a solvable polytope. Theorem P ( M 1 ) � P ( M 2 ) = convexhull { x I : I ∈ I 1 � I 2 } One direction is obvious: P ( M 1 ) � P ( M 2 ) ⊇ convexhull { x I : I ∈ I 1 � I 2 } Matroid Intersection 28/30
The Matroid Intersection Polytope Matroid Intersection Given matroids M 1 = ( X , I 1 ) and M 2 = ( X , I 2 ) on the same ground � M 2 = ( X , I 1 � I 2 ) . set, we define the set system M 1 � M 2 is equivalent to Optimizing a modular function over M 1 � I 2 } . optimizing a linear function over convexhull { x I : I ∈ I 1 As it turns out, this is a solvable polytope. Theorem P ( M 1 ) � P ( M 2 ) = convexhull { x I : I ∈ I 1 � I 2 } One direction is obvious: P ( M 1 ) � P ( M 2 ) ⊇ convexhull { x I : I ∈ I 1 � I 2 } The other direction is not so obvious Matroid Intersection 28/30
The Matroid Intersection Polytope Matroid Intersection Given matroids M 1 = ( X , I 1 ) and M 2 = ( X , I 2 ) on the same ground � M 2 = ( X , I 1 � I 2 ) . set, we define the set system M 1 � M 2 is equivalent to Optimizing a modular function over M 1 � I 2 } . optimizing a linear function over convexhull { x I : I ∈ I 1 As it turns out, this is a solvable polytope. Theorem P ( M 1 ) � P ( M 2 ) = convexhull { x I : I ∈ I 1 � I 2 } One direction is obvious: P ( M 1 ) � P ( M 2 ) ⊇ convexhull { x I : I ∈ I 1 � I 2 } The other direction is not so obvious It is conceivable that P ( M 1 ) � P ( M 2 ) has fractional vertices Matroid Intersection 28/30
The Matroid Intersection Polytope Matroid Intersection Given matroids M 1 = ( X , I 1 ) and M 2 = ( X , I 2 ) on the same ground � M 2 = ( X , I 1 � I 2 ) . set, we define the set system M 1 � M 2 is equivalent to Optimizing a modular function over M 1 � I 2 } . optimizing a linear function over convexhull { x I : I ∈ I 1 As it turns out, this is a solvable polytope. Theorem P ( M 1 ) � P ( M 2 ) = convexhull { x I : I ∈ I 1 � I 2 } One direction is obvious: P ( M 1 ) � P ( M 2 ) ⊇ convexhull { x I : I ∈ I 1 � I 2 } The other direction is not so obvious It is conceivable that P ( M 1 ) � P ( M 2 ) has fractional vertices Nevertheless, it is true but hard to prove . . . Matroid Intersection 28/30
Optimization over Matroid Intersections � M 2 Optimization over Matroid Intersection M 1 maximize � i ∈X w i x i subject to � x i ≤ rank M 1 ( S ) , for S ⊆ X . i ∈ S � x i ≤ rank M 2 ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . Matroid Intersection 29/30
Optimization over Matroid Intersections � M 2 Optimization over Matroid Intersection M 1 maximize � i ∈X w i x i subject to � x i ≤ rank M 1 ( S ) , for S ⊆ X . i ∈ S � x i ≤ rank M 2 ( S ) , for S ⊆ X . i ∈ S x i ≥ 0 , for i ∈ X . Theorem Given independence oracles to both matroids M 1 and M 2 , there is an � M 2 which runs algorithm for finding the maximum weight set in M 1 in poly( n ) time. Matroid Intersection 29/30
Recommend
More recommend