matroid partitioning
{{Short description|Subdivision into few independent sets}}
Matroid partitioning is a problem arising in the mathematical study of matroids and in the design and analysis of algorithms. Its goal is to partition the elements of a matroid into as few independent sets as possible. An example is the problem of computing the arboricity of an undirected graph, the minimum number of forests needed to cover all of its edges. Matroid partitioning may be solved in polynomial time, given an independence oracle for the matroid. It may be generalized to show that a matroid sum is itself a matroid, to provide an algorithm for computing ranks and independent sets in matroid sums, and to compute the largest common independent set in the intersection of two given matroids.{{citation
| last1 = Scheinerman | first1 = Edward R. | author1-link = Ed Scheinerman
| last2 = Ullman | first2 = Daniel H.
| contribution = 5. Fractional arboricity and matroid methods
| isbn = 0-471-17864-0
| location = New York
| mr = 1481157
| pages = 99–126
| publisher = John Wiley & Sons Inc.
| series = Wiley-Interscience Series in Discrete Mathematics and Optimization
| title = Fractional graph theory
| year = 1997}}.
Example
File:K44 arboricity.svg K4,4 into three forests, showing that it has arboricity at most three]]
The arboricity of an undirected graph is the minimum number of forests into which its edges can be partitioned, or equivalently (by adding overlapping edges to each forest as necessary) the minimum number of spanning forests whose union is the whole graph. A formula proved by Crispin Nash-Williams characterizes the arboricity exactly: it is the maximum, over all subgraphs of the given graph , of the quantity independent subsets is then just an application of the pigeonhole principle saying that, if
Formula for partition size
To generalize Nash-Williams' formula, one may replace
:
{r(S)}\right\rceilS
This formula is indeed valid, and it was given an algorithmic proof by {{harvtxt|Edmonds|1965}}.{{citation|last=Edmonds|first=Jack|title=Minimum partition of a matroid into independent subsets|url=https://nvlpubs.nist.gov/nistpubs/jres/69B/jresv69Bn1-2p67_A1b.pdf|journal=Journal of Research of the National Bureau of Standards|volume=69B|pages=67–72|year=1965|doi=10.6028/jres.069b.004|mr=0190025|author-link=Jack Edmonds|doi-access=free}}. In other words, a matroid can be partitioned into at most
Algorithms
The first algorithm for matroid partitioning was given by {{harvtxt|Edmonds|1965}}. It is an incremental augmenting-path algorithm that considers the elements of the matroid one by one, in an arbitrary order, maintaining at each step of the algorithm an optimal partition for the elements that have been considered so far. At each step, when considering an element
Now there are two cases:
- If this graph contains a directed path from an element
\bot_i to the newly considered elementx , then the shortest such path (or more generally any path that does not have any shortcutting edges) describes a sequence of changes that can be made simultaneously to the partition sets in order to form a new partition, with the same number of sets, that also includesx . In this case, the algorithm performs these changes and continues. - If, on the other hand, no such path exists, then let
S consist of the matroid elements from whichx is reachable inD . Each set in the current partition must be a maximal independent set in the Matroid minor, for if some elementy ofS could be added to partition seti in the restriction, then either there would exist an arc\bot_i\rightarrow y (if partition seti is non-maximal in the full matroidM ) or an arcz\rightarrow y wherez\notin S (if the partition set is non-maximal inS but maximal in the full matroid). In either case the existence of this arc contradicts the assumed construction of the setS , and the contradiction proves that each partition set is maximal. Thus, by the easy direction of the matroid partitioning formula, the number of sets needed to partitionS is at least
:
{r(S)}\right\rceil=\left\lceil\frac{kr(S)+1}{r(S)}\right\rceil=k+1S
so in this case the algorithm may find an optimal partition by placing
The overall algorithm, then, considers each element
Proving that this algorithm is correct requires showing that a shortcut-free path in the auxiliary graph always describes a sequence of operations that, when performed simultaneously, correctly preserves the independence of the sets in the partition; a proof of this fact was given by Edmonds.
Because the algorithm only increases the number of sets in the partition when the matroid partitioning formula shows that a larger number is needed, the correctness of this algorithm also shows the correctness of the formula.
Although this algorithm depends only on the existence of an independence oracle for its correctness, faster algorithms can be found in many cases by taking advantage of the more specialized structure of specific types of matroids (such as graphic matroids) from which a particular partitioning problem has been defined.{{citation
| last1 = Gabow | first1 = Harold N. | author1-link = Harold N. Gabow
| last2 = Westermann | first2 = Herbert H.
| doi = 10.1007/BF01758774
| issue = 5–6
| journal = Algorithmica
| mr = 1154585
| pages = 465–497
| title = Forests, frames, and games: algorithms for matroid sums and applications
| volume = 7
| year = 1992}}.
Related problems
A matroid sum
The matroid intersection problem is finding the largest set that is independent in two matroids
| last = Edmonds | first = Jack
| contribution = Submodular functions, matroids, and certain polyhedra
| location = New York
| mr = 0270945
| pages = 69–87
| publisher = Gordon and Breach
| title = Combinatorial Structures and their Applications (Proc. Calgary Internat. Conf., Calgary, Alta., 1969)
| year = 1970}}.
Matroid partitioning is a form of set cover problem, and the corresponding set packing problem (find a maximum number of disjoint spanning sets within a given matroid) is also of interest. It can be solved by algorithms similar to those for matroid partitioning. The fractional set packing and set covering problems associated with a matroid (that is, assign a weight to each independent set in such a way that for every element the total weight of the sets containing it is at most one or at least one, maximizing or minimizing the total weight of all the sets, respectively) can also be solved in polynomial time using matroid partitioning methods.
As well as its use in calculating the arboricity of a graph, matroid partitioning can be used with other matroids to find a subgraph of a given graph whose average degree is maximum, and to find the edge toughness of a graph (a variant of graph toughness involving the deletion of edges in place of vertices).
Matroid-constrained number partitioning is a different problem in which k (the number of subsets in the partition) is fixed. There are k different matroids over the same ground set, and the goal is to partition the ground set into k subsets, such that each subset i is an independent set in matroid i. Subject to this constraint, some objective function should be minimized. In a generalization of this variant, each of the k matroids has a weight, and the objective function depends on the weights (maximum weight, minimum weight or sum of weights).
References
{{reflist}}