How to convert any non-negative matrix into a doubly stochastic matrix?

3.2k Views Asked by At

Given a non-negative real matrix $A \in \Bbb R_+^{m \times n}$, how do I convert it to a doubly stochastic matrix (each row and column sums to $1$)

$$\sum_{j=1}^n A_{ij}= 1, \qquad \forall i = 1, \dots, m \tag{row sum}$$

$$\sum_{i=1}^m A_{ij}= 1, \qquad \forall j = 1, \dots, n \tag{column sum}$$

Is the conversion possible? If not, can we find a nearest matrix that is doubly stochastic matrix?

1

There are 1 best solutions below

2
On BEST ANSWER

There is a paper by Richard Sinkhorn: A relationship between arbitrary positive matrices and doubly stochastic matrices, The Annals of Mathematical statistics, 35 (1964), 876–879.

There he proves the following

Theorem. If $A$ is a square matrix with strictly positive entries then there are a unique doubly stochastic matrix $T_A$ and diagonal matrices $D_1$, $D_2$ such that $T_A=D_1AD_2$. The matrices $D_1$ and $D_2$ are themselves unique up to a scalar factor.