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