Fractional matching

[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.

The fractional matching number is either an integer or a half-integer.

[4] 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).

A fractional matching is called perfect if the sum of weights adjacent to each vertex is exactly 1.

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.

[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.

A largest fractional matching in a graph can be easily found by linear programming, or alternatively by a maximum flow algorithm.

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.

A fractional matching of maximum weight in a graph can be found by linear programming.

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.