# Faster Matroid Intersection

In this paper we consider the classic matroid intersection problem: given two matroids _1=(V,_1) and _2=(V,_2) defined over a common ground set V, compute a set S∈_1∩_2 of largest possible cardinality, denoted by r. We consider this problem both in the setting where each _i is accessed through an independence oracle, i.e. a routine which returns whether or not a set S∈_i in time, and the setting where each _i is accessed through a rank oracle, i.e. a routine which returns the size of the largest independent subset of S in _i in time. In each setting we provide faster exact and approximate algorithms. Given an independence oracle, we provide an exact O(nrlog r ) time algorithm. This improves upon the running time of O(nr^1.5) due to Cunningham in 1986 and Õ(n^2+n^3) due to Lee, Sidford, and Wong in 2015. We also provide two algorithms which compute a (1-ϵ)-approximate solution to matroid intersection running in times Õ(n^1.5/^1.5) and Õ((n^2r^-1ϵ^-2+r^1.5ϵ^-4.5) ), respectively. These results improve upon the O(nr/)-time algorithm of Cunningham as noted recently by Chekuri and Quanrud. Given a rank oracle, we provide algorithms with even better dependence on n and r. We provide an O(n√(r)log n )-time exact algorithm and an O(nϵ^-1log n )-time algorithm which obtains a (1-)-approximation to the matroid intersection problem. The former result improves over the Õ(nr +n^3)-time algorithm by Lee, Sidford, and Wong. The rank oracle is of particular interest as the matroid intersection problem with this oracle is a special case of the submodular function minimization problem with an evaluation oracle.

READ FULL TEXT