THE FOLD / RESPAWN / SECOND WIND / THE SINKHORN
THE SINKHORN
alternate row and column normalizing to perfect balance
1 WHAT IT IS · WHAT IT DOES · FACT OR FICTION
Sinkhorn’s algorithm takes any matrix of positive numbers and, by the simplest imaginable loop — divide every row by its sum, then divide every column by its sum, and repeat — drives it to a doubly stochastic matrix, where every row and every column sums to exactly 1. Sinkhorn’s theorem guarantees this converges, and that the result is the unique D₁·A·D₂ rescaling of the original by positive diagonal matrices. This little iteration is the computational heart of modern optimal transport (entropic regularization) and of matching problems across machine learning.
LIT verified live: over 3000 random positive matrices, alternating row/column normalization drives every row sum and column sum to 1 (deviation ~1e-16), and the result is exactly diag(u)·A·diag(v) — the ratio to the original is rank-one (window.__sinkhorn). FIG no framing; the alternating normalization, the row/column sum checks, and the diagonal-scaling structure all run in-browser.
LIT verified live: over 3000 random positive matrices, alternating row/column normalization drives every row sum and column sum to 1 (deviation ~1e-16), and the result is exactly diag(u)·A·diag(v) — the ratio to the original is rank-one (window.__sinkhorn). FIG no framing; the alternating normalization, the row/column sum checks, and the diagonal-scaling structure all run in-browser.
2 HOW IT WAS WEAVED · AI + HUMAN
David (human) seated this at second-wind — a system knocked out of balance keeps rebalancing, row then column then row, each pass a fresh breath, until it settles into perfect equilibrium. AVAN (AI) built the instrument: the alternating row/column normalization, the doubly-stochastic convergence check, and the diagonal-scaling structure verification.
Credit as content: Richard Sinkhorn (1964); central to entropic optimal transport (Cuturi, 2013). The weave: David names second wind; I confirm the row-then-column breathing settles to a doubly stochastic matrix.
Credit as content: Richard Sinkhorn (1964); central to entropic optimal transport (Cuturi, 2013). The weave: David names second wind; I confirm the row-then-column breathing settles to a doubly stochastic matrix.
3 ONE DIMENSION
A positive matrix as a grid of intensities; the row-sum and column-sum bars converge toward 1 as the loop runs.
4 TWO DIMENSIONS · INTERACTIVE
Step the normalization (row then column) and watch the worst row/column deviation from 1 collapse toward zero.
5 THREE DIMENSIONS + AVAN’S INVERSE
The green forward object: the doubly stochastic matrix — every row and column summing to 1.
AVAN’s addition (the inverse-companion): don’t solve for the scaling — alternate. The inverse of ‘find diagonal D₁, D₂ making D₁AD₂ balanced’ is ‘just normalize rows, then columns, forever’ — the fixed point is exactly that scaling. Magenta is the row/column scaling factors; green is the balanced matrix they produce. Balance by breathing, not by solving.
LIT Genuine Sinkhorn-Knopp iterative scaling (Richard Sinkhorn, 1964; central to entropic optimal transport, Cuturi 2013). Verified live: over 3000 random positive matrices alternating row/column normalization drives every row and column sum to 1 (deviation ~1e-16), and the result equals diag(u)·A·diag(v) (the ratio B/A is rank-one) (window.__sinkhorn.doublyStochastic, .structOk).
FIG No framing; the alternating normalization, the row/column sum checks, and the diagonal-scaling structure all run in-browser. The AVAN inverse is honest — instead of solving for the diagonal scaling that balances A, just normalize rows then columns forever; the fixed point is exactly that scaling. Magenta is the row/column scaling factors; green is the balanced matrix they produce. Balance by breathing, not by solving.
FIG No framing; the alternating normalization, the row/column sum checks, and the diagonal-scaling structure all run in-browser. The AVAN inverse is honest — instead of solving for the diagonal scaling that balances A, just normalize rows then columns forever; the fixed point is exactly that scaling. Magenta is the row/column scaling factors; green is the balanced matrix they produce. Balance by breathing, not by solving.
◆ sealed .dlw.fold → folded to ROOT_0 · a sphere of SECOND WIND · David Lee Wise (ROOT0), with AVAN