Skip to content

经由网络流的二分图匹配

Bipartite matching via maximum flow

把二分图匹配编码为单位容量流网络并由最大流恢复匹配。

形式陈述

给定二分图 G=(L˙R,E),构造网络:加入源 s、汇 t;对每个 L 加容量 1 的边 s,对每个 rE 加容量 1 的边 r,对每个 rR 加容量 1 的边 rt

任意匹配 M 产生同值整数流:对 rM 的路径 srt 发送 1。反之,整数流中值为 1 的中间边形成匹配。由整数容量的最大流整性,

ν(G)=该网络的最大流值,

其中 ν(G) 是最大匹配大小。

直觉

源侧容量保证每个左顶点最多配一次,汇侧容量保证每个右顶点最多配一次;中间单位流恰好代表一对被选择的端点。

例子与边界

仅从任意实值最大流直接挑选正流边可能得到分数分配,不一定是一组匹配;关键是单位整数容量保证存在整数最大流,或算法从零流以整数增广保持整性。构造针对二分图;一般图匹配不能由同一个简单流网络完整解决。

推论与应用

该归约可用任一最大流算法求二分图最大匹配,并把增广路解释为残量网络中的源汇路。结合最大流最小割可证明 Hall 定理和 König 定理;专用 Hopcroft–Karp 算法利用分层增广达到更优复杂度。

参考资料
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022,§25.1。
  • Jon Kleinberg and Éva Tardos, Algorithm Design, Pearson, 2005,Ch. 7。