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 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 there is always a simple upper bound certificate, consisting of a partitioning of the ground set amongst the two matroids, whose value (sum of 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.
Let G = (U,V,E) be a bipartite graph. One may define a partition matroid MU on the ground set E, in which a set of edges is independent if no two of the edges have the same endpoint in U. Similarly one may define a matroid MV in which a set of edges is independent if no two of the edges have the same endpoint in V. Any set of edges that is independent in both MU and MV has the property that no two of its edges share an endpoint; that is, it is a matching. Thus, the largest common independent set of MU and MV is a maximum matching in G.
The matroid intersection problem becomes NP-hard when three matroids are involved, instead of only two.
One proof of this hardness result uses a reduction from the Hamiltonian path problem in directed graphs. Given a directed graph G with n vertices, and specified nodes s and t, the Hamiltonian path problem is the problem of determining whether there exists a simple path of length n − 1 that starts at s and ends at t. It may be assumed without loss of generality that s has no incoming edges and t has no outgoing edges. Then, a Hamiltonian path exists if and only if there is a set of n − 1 elements in the intersection of three matroids on the edge set of the graph: two partition matroids ensuring that the in-degree and out-degree of the selected edge set are both at most one, and the graphic matroid of the undirected graph formed by forgetting the edge orientations in G, ensuring that the selected edge set has no cycles (Welsh 2010).
- Brezovec, Carl; Cornuéjols, Gérard; Glover, Fred (1986), "Two algorithms for weighted matroid intersection", Mathematical Programming 36 (1): 39–53, doi:10.1007/BF02591988.
- Aigner, Martin; Dowling, Thomas (1971), "Matching theory for combinatorial geometries", Transactions of the American Mathematical Society 158 (1): 231–245, doi:10.1090/S0002-9947-1971-0286689-5.
- Edmonds, Jack (1970), "Submodular functions, matroids, and certain polyhedra", in R. Guy, H. Hanam, N. Sauer, and J. Schonheim, editors, Combinatorial structures and their applications (Proc. 1969 Calgary Conference), Gordon and Breach, New York, pp. 69–87. Reprinted in M. Jünger et al. (Eds.): Combinatorial Optimization (Edmonds Festschrift), LNCS 2570, pp. 1126, Springer-Verlag, 2003.
- Frank, András (1981), "A weighted matroid intersection algorithm", Journal of Algorithms 2 (4): 328–336, doi:10.1016/0196-6774(81)90032-8.
- Frederickson, Greg N.; Srinivas, Mandayam A. (1989), "Algorithms and data structures for an expanded family of matroid intersection problems", SIAM Journal on Computing 18 (1): 112–138, doi:10.1137/0218008.
- Gabow, Harold N.; Tarjan, Robert E. (1984), "Efficient algorithms for a family of matroid intersection problems", Journal of Algorithms 5 (1): 80–131, doi:10.1016/0196-6774(84)90042-7.
- Lawler, Eugene L. (1975), "Matroid intersection algorithms", Mathematical Programming 9 (1): 31–56, doi:10.1007/BF01681329.
- Welsh, D. J. A. (2010) , Matroid Theory, Courier Dover Publications, p. 131, ISBN 9780486474397.