Reduce matrix

Subtract row min from each row. Subtract col min from each col. Zeros identify potential matches.

Advertisement

Alternating trees

Grow trees from unmatched vertices via zero-cost edges. Augment when path found.

Advertisement

Dual variables

Potentials on left + right vertices. Adjust to expose new zeros as needed.