Английская Википедия:Fractional matching
In graph theory, a fractional matching is a generalization of a matching in which, intuitively, each vertex may be broken into fractions that are matched to different neighbor vertices.
Definition
Given a graph G = (V, E), a fractional matching in G is a function that assigns, to each edge e in E, a fraction f(e) in [0, 1], such that for every vertex v in V, the sum of fractions of edges adjacent to v is at most 1:[1] <math display="block">\forall v\in V: \sum_{e\ni v}f(e)\leq 1</math> A matching in the traditional sense is a special case of a fractional matching, in which the fraction of every edge is either 0 or 1: f(e) = 1 if e is in the matching, and f(e) = 0 if it is not. For this reason, in the context of fractional matchings, usual matchings are sometimes called integral matchings.
The size of an integral matching is the number of edges in the matching, and the matching number <math>\nu(G)</math> of a graph G is the largest size of a matching in G. Analogously, the size of a fractional matching is the sum of fractions of all edges. The fractional matching number of a graph G is the largest size of a fractional matching in G. It is often denoted by <math>\nu^*(G)</math>.[2] Since a matching is a special case of a fractional matching, for every graph G one has that the integral matching number of G is less than or equal to the fractional matching number of G; in symbols:<math display = block>\nu(G) \leq \nu^*(G).</math>A graph in which <math>\nu(G) = \nu^*(G)</math> is called a stable graph.[3] Every bipartite graph is stable; this means that in every bipartite graph, the fractional matching number is an integer and it equals the integral matching number.
In a general graph, <math>\nu(G) > \frac{2}{3} \nu^*(G).</math> The fractional matching number is either an integer or a half-integer.[4]
Matrix presentation
For a bipartite graph G = (X+Y, E), a fractional matching can be presented as a matrix with |X| rows and |Y| columns. The value of the entry in row x and column y is the fraction of the edge (x,y).
Perfect fractional matching
A fractional matching is called perfect if the sum of weights adjacent to each vertex is exactly 1. The size of a perfect matching is exactly |V|/2.
In a bipartite graph G = (X+Y, E), a fractional matching is called X-perfect if the sum of weights adjacent to each vertex of X is exactly 1. The size of an X-perfect fractional matching is exactly |X|.
For a bipartite graph G = (X+Y, E), the following are equivalent:
- G admits an X-perfect integral matching,
- G admits an X-perfect fractional matching, and
- G satisfies the condition to Hall's marriage theorem.
The first condition implies the second because an integral matching is a fractional matching. The second implies the third because, for each subset W of X, the sum of weights near vertices of W is |W|, so the edges adjacent to them are necessarily adjacent to at least |W| vertices of Y. By Hall's marriage theorem, the last condition implies the first one.[5]Шаблон:Better source needed
In a general graph, the above conditions are not equivalent - the largest fractional matching can be larger than the largest integral matching. For example, a 3-cycle admits a perfect fractional matching of size 3/2 (the fraction of every edge is 1/2), but does not admit perfect integral matching - the largest integral matching is of size 1.
Algorithmic aspects
A largest fractional matching in a graph can be easily found by linear programming, or alternatively by a maximum flow algorithm. In a bipartite graph, it is possible to convert a maximum fractional matching to a maximum integral matching of the same size. This leads to a simple polynomial-time algorithm for finding a maximum matching in a bipartite graph.[6]
If G is a bipartite graph with |X| = |Y| = n, and M is a perfect fractional matching, then the matrix representation of M is a doubly stochastic matrix - the sum of elements in each row and each column is 1. Birkhoff's algorithm can be used to decompose the matrix into a convex sum of at most n2-2n+2 permutation matrices. This corresponds to decomposing M into a convex sum of at most n2-2n+2 perfect matchings.
Maximum-cardinality fractional matching
A fractional matching of maximum cardinality (i.e., maximum sum of fractions) can be found by linear programming. There is also a strongly-polynomial time algorithm,[7] using augmenting paths, that runs in time <math>O(|V| |E|)</math>.
Maximum-weight fractional matching
Suppose each edge on the graph has a weight. A fractional matching of maximum weight in a graph can be found by linear programming. In a bipartite graph, it is possible to convert a maximum-weight fractional matching to a maximum-weight integral matching of the same size, in the following way:[8]
- Let f be the fractional matching.
- Let H be a subgraph of G containing only the edges e with non-integral fraction, 0<f(e)<1.
- If H is empty, then we are done.
- if H has a cycle, then it must be even-length (since the graph is bipartite), so we can construct a new fractional matching f1 by transferring a small fraction ε from even edges to odd edges, and a new fractional matching f2 by transferring ε from odd edges to even edges. Since f is the average of f1 and f2, the weight of f is the average between the weight of f1 and of f2. Since f has maximum weight, all three matchings must have the same weight. There exists a choice of ε for which at least one of f1 or f2 has less non-integral fractions. Continuing in the same way leads to an integral matching of the same weight.
- Suppose H has no cycle, and let P be a longest path in H. The fraction of every edge adjacent to the first or last vertex in P must be 0 (if it is 1 - the first / last edge in P violates the fractional matching condition; if it is in (0,1) - then P is not the longest). Therefore, we can construct new fractional matchings f1 and f2 by transferring ε from odd edges to even edges or vice versa. Again f1 and f2 must have maximum weight, and at least one of them has less non-integral fractions.
Fractional matching polytope
Шаблон:Main Given a graph G = (V,E), the fractional matching polytope of G is a convex polytope that represents all possible fractional matchings of G. It is a polytope in R|E| - the |E|-dimensional Euclidean space. Each point (x1,...,x|E|) in the polytope represents a matching in which the fraction of each edge e is xe. The polytope is defined by |E| non-negativity constraints (xe ≥ 0 for all e in E) and |V| vertex constraints (the sum of xe, for all edges e that are adjacent to a vertex v, is at most 1). In a bipartite graph, the vertices of the fractional matching polytope are all integral.
References
See also