Sinkhorn-Knopp算法通过对矩阵A进行操作,找到对角矩阵D和E,使得经过归一化后的矩阵M = DAE,每一列和每一行的总和都为1。该方法通过交替归一化矩阵的,实现矩阵归一化。这种算法高效且不需要对矩阵A进行转置或在每次迭代中执行完整的归一化。需要注意的是,A必须是非负矩阵。如果A中含有零,算法可能不会收敛,具体收敛性取决于零的分布。在实现时,可以设置最大迭代次数容错值。这种归一化的矩阵被称为“双重随机矩阵”,即每一行和每一列的总和均为1。此类矩阵广泛应用于多个领域,例如网页排名。参考文献:Philip A. Knight (2008) "Sinkhorn–Knopp算法:收敛和应用",SIAM矩阵分析与应用杂志30(1), 261-275,DOI:10.1137/060659624。