Matroid intersection

In combinatorial optimization, the matroid intersection problem is to find a largest common independent set in two matroids over the same ground set. If the elements of the matroid are assigned real weights, the weighted matroid intersection problem is to find a common independent set with the maximum possible weight. These problems generalize many problems in graph theory and combinatorial optimization including finding maximum matchings and maximum weight matchings in bipartite graphs and finding arborescences in directed graphs.

The matroid intersection theorem, due to Jack Edmonds, says that for any two matroids and we have

where and are the respective rank functions of and . In other words, there is always a simple upper bound proof, consisting of a partitioning of the ground set amongst the two matroids, whose value (the sum of the respective ranks) equals the size of a maximum common independent set.

Based on this theorem, the matroid intersection problem for two matroids can be solved in polynomial time using matroid partitioning algorithms.