Jump to content

Birkhoff algorithm

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Erel Segal (talk | contribs) at 13:03, 31 July 2020 (Tools). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Birkhoff's algorithm is an algorithm for decomposing a bistochastic matrix into a convex combination of permutation matrices. It was developed by Garret Birkhoff.[1].[2]: 36  It has many applications. One such application is for the problem of fair random assignment: given a randomized allocation of items, Birkhoff's algorithm can decompose it into a lottery on deterministic allocations.

Terminology

A bistochastic matrix (also called: doubly-stochastic) is a matrix in which all elements are weakly-positive, and the sum of each row and column equals 1. An example is the following 3-by-3 matrix:

A permutation matrix is a special case of a bistochastic matrix, in which each element is either 0 or 1 (so there is exactly one "1" in each row and each column). An example is the following 3-by-3 matrix:

A Birkhoff decomposition (also called: Birkhoff-von-Neumann decomposition) of a bistochastic matrix is a presentation of it as a sum of permutation matrices with non-negative weights. For example, the above matrix can be presented as the following sum:

Birkhoff's algorithm receives as input a bistochastic matrix and returns as output a Birkhoff decomposition.

Tools

A permutation set of an n-by-n matrix X is a set of n entries of X containing exactly one entry from each row and from each column. A theorem by Dénes Kőnig says that:[3][2]: 35 

Every bistochastic matrix has a permutation-set in which all entries are positive.

The positivity graph of an n-by-n matrix X is a bipartite graph with 2n vertices, in which the vertices on one side are n rows and the vertices on the other side are the n columns, and there is an edge between a row and a column iff the entry at that row and column is positive. A permutation set with positive entries is equivalent to a perfect matching in the positivity graph. Kőnig's theorem is equivalent to the following:

The positivity graph of any bistochastic matrix admits a perfect matching.

A matrix is called scaled-bistochastic if all elements are weakly-positive, and the sum of each row and column equals c, where c is some positive constant. In other words, it is c times a bistochastic matrix. Since the positivity graph is not affected by scaling:

The positivity graph of any scaled-bistochastic matrix admits a perfect matching.

Algorithm

Using the tools above, Birkhoff's algorithm works as follows.

  1. Construct the positivity graph GX of X.
  2. Find a perfect matching in GX, corresponding to a positive permutation set in X.
  3. Let z > 0 be the smallest element in the permutation set.
  4. Let P be a permutation matrix whose nonzero entries correspond to the positive permutation X.
  5. Let X := X - z P.
  6. If X contains nonzero elements, go back to step 1.

The algorithm is correct because, after step 5, the sum in each row and each column drops by z. Therefore, the matrix X remains scaled-bistochastic. Therefore, in step 2, a perfect matching always exists.

Run-time complexity

See also

References

  1. ^ Birkhoff, Garrett (1946), "Tres observaciones sobre el algebra lineal [Three observations on linear algebra]", Univ. Nac. Tucumán. Revista A., 5: 147–151, MR 0020547.
  2. ^ a b Lovász, László; Plummer, M. D. (1986), Matching Theory, Annals of Discrete Mathematics, vol. 29, North-Holland, ISBN 0-444-87916-1, MR 0859549
  3. ^ Kőnig, Dénes (1916), "Gráfok és alkalmazásuk a determinánsok és a halmazok elméletére", Matematikai és Természettudományi Értesítő, 34: 104–119.