Matroid parity problem


In combinatorial optimization, the matroid parity problem is a problem of finding the largest independent set of paired elements in a matroid. The problem was formulated by as a common generalization of graph matching and matroid intersection. It is also known as polymatroid matching, or the matchoid problem.
Matroid parity can be solved in polynomial time for linear matroids. However, it is NP-hard for certain compactly-represented matroids, and requires more than a polynomial number of steps in the matroid oracle model.
Applications of matroid parity algorithms include finding large planar subgraphs and finding graph embeddings of maximum genus. These algorithms can also be used to find connected dominating sets and feedback vertex sets in graphs of maximum degree three.

Formulation

A matroid can be defined from a finite set of elements and from a notion of what it means for subsets of elements to be independent, subject to the following constraints:
Examples of matroids include the linear matroids, the graphic matroids, and the partition matroids. Graphic matroids and partition matroids are special cases of linear matroids.
In the matroid parity problem, the input consists of a matroid together with a pairing on its elements, so that each element belongs to one pair. The goal is to find a subset of the pairs, as large as possible, so that the union of the pairs in the chosen subset is independent. Another seemingly more general variation, in which the allowable pairs form a graph rather than having only one pair per element, is equivalent: an element appearing in more than one pair could be replaced by multiple copies of the element, one per pair.

Algorithms

The matroid parity problem for linear matroids can be solved by a randomized algorithm in time, where is the number of elements of the matroid, is its rank, and is the exponent in the time bounds for fast matrix multiplication.
In particular, using a matrix multiplication algorithm of Le Gall, it can be solved in time.
Without using fast matrix multiplication, the linear matroid parity problem can be solved in time.
These algorithms are based on a linear algebra formulation of the problem by. Suppose that an input to the problem consists of pairs of -dimensional vectors. Then the number of pairs in the optimal solution is
where is a block diagonal matrix whose blocks are submatrices of the form
for a sequence of variables. The Schwartz–Zippel lemma can be used to test whether this matrix has full rank or not, by assigning random values to the variables and testing whether the resulting matrix has determinant zero. By applying a greedy algorithm that removes pairs one at a time by setting their indeterminates to zero as long as the matrix remains of full rank, one can find a solution whenever this test shows that it exists. Additional methods extend this algorithm to the case that the optimal solution to the matroid parity problem has fewer than pairs.
For graphic matroids, more efficient algorithms are known, with running time on graphs with vertices and edges.
For simple graphs, is, but for multigraphs, it may be larger, so it is also of interest to have algorithms with smaller or no dependence on and worse dependence on. In these cases, it is also possible to solve the graphic matroid parity problem in randomized expected time, or in time when each pair of edges forms a path.
Although the matroid parity problem is NP-hard for arbitrary matroids, it can still be approximated efficiently. Simple local search algorithms provide a polynomial-time approximation scheme for this problem, and find solutions whose size, as a fraction of the optimal solution size, is arbitrarily close to one. The algorithm starts with the empty set as its solution, and repeatedly attempts to increase the solution size by one by removing at most a constant number of pairs from the solution and replacing them by a different set with one more pair. When no more such moves are possible, the resulting solution is returned as the approximation to the optimal solution. To achieve an approximation ratio of, it suffices to choose to be approximately.

Applications

Many other optimization problems can be formulated as linear matroid parity problems, and solved in polynomial time using this formulation.

Hardness

The clique problem, of finding a -vertex complete subgraph in a given -vertex graph, can be transformed into an instance of matroid parity as follows.
Construct a paving matroid on elements, paired up so that there is one pair of elements per pair of vertices. Define a subset of these elements to be independent if it satisfies any one of the following three conditions:
Then there is a solution to the matroid parity problem for this matroid, of size, if and only if has a clique of size. Since finding cliques of a given size is NP-complete, it follows that determining whether this type of matrix parity problem has a solution of size is also NP-complete.
This problem transformation does not depend on the structure of the clique problem in any deep way, and would work for any other problem of finding size- subsets of a larger set that satisfy a computable test. By applying it to a randomly-permuted graph that contains exactly one clique of size, one can show that any deterministic or randomized algorithm for matroid parity that accesses its matroid only by independence tests needs to make an exponential number of tests.