Matroid partitioning is a problem arising in the mathematical study of
matroid
In combinatorics, a branch of mathematics, a matroid is a structure that abstracts and generalizes the notion of linear independence in vector spaces. There are many equivalent ways to define a matroid axiomatically, the most significant being ...
s and in the design and analysis of
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
s. 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
The arboricity of an undirected graph is the minimum number of forests into which its edges can be partitioned. Equivalently it is the minimum number of spanning forests needed to cover all the edges of the graph. The Nash-Williams theorem pro ...
of an
undirected graph
In discrete mathematics, and more specifically in graph theory, a graph is a structure amounting to a set of objects in which some pairs of the objects are in some sense "related". The objects correspond to mathematical abstractions called '' v ...
, the minimum number of
forests
A forest is an area of land dominated by trees. Hundreds of definitions of forest are used throughout the world, incorporating factors such as tree density, tree height, land use, legal standing, and ecological function. The United Nations' ...
needed to cover all of its edges. Matroid partitioning may be solved in
polynomial time
In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by ...
, given an
independence oracle for the matroid. It may be generalized to show that a
matroid sum
In combinatorics, a branch of mathematics, a matroid is a structure that abstracts and generalizes the notion of linear independence in vector spaces. There are many equivalent ways to define a matroid axiomatically, the most significant being in ...
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
In mathematics, the intersection of two or more objects is another object consisting of everything that is contained in all of the objects simultaneously. For example, in Euclidean geometry, when two lines in a plane are not parallel, thei ...
of two given matroids.
[.]
Example

The
arboricity
The arboricity of an undirected graph is the minimum number of forests into which its edges can be partitioned. Equivalently it is the minimum number of spanning forests needed to cover all the edges of the graph. The Nash-Williams theorem pro ...
of an
undirected graph
In discrete mathematics, and more specifically in graph theory, a graph is a structure amounting to a set of objects in which some pairs of the objects are in some sense "related". The objects correspond to mathematical abstractions called '' v ...
is the minimum number of
forests
A forest is an area of land dominated by trees. Hundreds of definitions of forest are used throughout the world, incorporating factors such as tree density, tree height, land use, legal standing, and ecological function. The United Nations' ...
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
.
The forests of a graph form the independent sets of the associated
graphic matroid
In the mathematical theory of matroids, a graphic matroid (also called a cycle matroid or polygon matroid) is a matroid whose independent sets are the forests in a given finite undirected graph. The dual matroids of graphic matroids are called c ...
, and the quantity
appearing in Nash-Williams' formula is the rank of the graphic matroid of
, the maximum size of one of its independent sets. Thus, the problem of determining the arboricity of a graph is exactly the matroid partitioning problem for the graphic matroid. The fact that the
elements of this matroid cannot be partitioned into fewer than
independent subsets is then just an application of the
pigeonhole principle saying that, if
items are partitioned into sets of size at most
, then at least
sets are needed. The harder direction of Nash-Williams' formula, which can be generalized to all matroids, is the proof that a partition of this size always exists.
Formula for partition size
To generalize Nash-Williams' formula, one may replace
by a matroid
, and the subgraph
of
with a
restriction
Restriction, restrict or restrictor may refer to:
Science and technology
* restrict, a keyword in the C programming language used in pointer declarations
* Restriction enzyme, a type of enzyme that cleaves genetic material
Mathematics and log ...
of
to a subset
of its elements. The number of edges of the subgraph
becomes, in this generalization, the cardinality
of the selected subset, and the formula
for the maximum size of a forest in
becomes the rank
. Thus, the minimum number of independent sets in a partition of the given matroid
should be given by the formula
:
.
This formula is indeed valid, and it was given an algorithmic proof by .
[.] In other words, a matroid can be partitioned into at most ''
'' independent subsets, if-and-only-if for every subset ''
'' of
, the cardinality of ''
'' is at most ''
''.
Algorithms
The first algorithm for matroid partitioning was given by .
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
that has not yet been placed into a partition, the algorithm constructs a
directed graph
In mathematics, and more specifically in graph theory, a directed graph (or digraph) is a graph that is made up of a set of vertices connected by directed edges, often called arcs.
Definition
In formal terms, a directed graph is an ordered pai ...
that has as its nodes the elements that have already been partitioned, the new element
, and a special element
for each of the
independent sets in the current partition. It then forms a directed graph
on this node set, with a directed arc
for each matroid element
that can be added to partition set
without causing it to become dependent, and with a directed arc
for each pair of matroid elements
such that removing
from its partition and replacing it with
forms another independent set.
Now there are two cases:
* If this graph contains a
directed path from an element
to the newly considered element
, 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 includes
. In this case, the algorithm performs these changes and continues.
* If, on the other hand, no such path exists, then let
consist of the matroid elements from which
is
reachable in
. Each set in the current partition must be a maximal independent set in the
restriction , for if some element
of
could be added to partition set
in the restriction, then either there would exist an arc
(if partition set
is non-maximal in the full matroid
) or an arc
where
(if the partition set is non-maximal in
but maximal in the full matroid). In either case the existence of this arc contradicts the assumed construction of the set
, 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 partition
is at least
:
,
so in this case the algorithm may find an optimal partition by placing
into its own new independent set and leaving the other independent sets unchanged.
The overall algorithm, then, considers each element
of the given matroid in turn, constructs the graph
, tests which nodes can reach
, and uses this information to update the current partition so that it includes
. At each step, the partition of the elements considered so far is optimal, so when the algorithm terminates it will have found an optimal partition for the whole matroid.
Proving that this algorithm is correct requires showing that a shorcut-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 matroid
In the mathematical theory of matroids, a graphic matroid (also called a cycle matroid or polygon matroid) is a matroid whose independent sets are the forests in a given finite undirected graph. The dual matroids of graphic matroids are called c ...
s) from which a particular partitioning problem has been defined.
[.]
Related problems
A
matroid sum (where each
is a matroid) is itself a matroid, having as its elements the union of the elements of the summands. A set is independent in the sum if it can be partitioned into sets that are independent within each summand. The matroid partitioning algorithm generalizes to the problem of testing whether a set is independent in a matroid sum. Its correctness can be used to prove that a matroid sum is necessarily a matroid.
An extended problem, that is also sometimes called matroid partition, is to find a largest set that is independent in the matroid sum, that is, a largest set that can be partitioned into sets that are disjoint in each input matroid. Cunningham presents an algorithm for solving this problem on ''O''(''n'') ''n''-element matroids using
calls to an
independence oracle.
The
matroid intersection problem is finding the largest set that is independent in two matroids
and
. It may be solved by turning it into an equivalent matroid sum problem: if
is a basis of the sum
, where
is the dual of
, then
must have full rank in
and removing a maximal independent set of
from
leaves a maximum intersection.
[.]
Matroid partitioning is a form of
set cover
The set cover problem is a classical question in combinatorics, computer science, operations research, and complexity theory. It is one of Karp's 21 NP-complete problems shown to be NP-complete in 1972.
Given a set of elements (called the un ...
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
Degree may refer to:
As a unit of measurement
* Degree (angle), a unit of angle measurement
** Degree of geographical latitude
** Degree of geographical longitude
* Degree symbol (°), a notation used in science, engineering, and mathemati ...
is maximum, and to find the edge toughness of a graph (a variant of
graph toughness
Graph may refer to:
Mathematics
*Graph (discrete mathematics), a structure made of vertices and edges
**Graph theory, the study of such graphs and their properties
* Graph (topology), a topological space resembling a graph in the sense of discr ...
involving the deletion of edges in place of vertices).
Matroid-constrained number partitioning
Matroid-constrained number partitioning is a variant of the multiway number partitioning problem, in which the subsets in the partition should be independent sets of a matroid. The input to this problem is a set ''S'' of items, a positive integer ' ...
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
Partitioning