定义
给定一张二分图 , , , 其最大匹配方案不一定是唯一的 . . . 若任何一个最大匹配方案的匹配边都包括 ( x , y ) , (x,y), (x,y), 则称 ( x , y ) (x,y) (x,y) 为二分图匹配的必须边 . . . 若 ( x , y ) (x,y) (x,y) 至少属于一个最大匹配的方案 , , , 则称 ( x , y ) (x,y) (x,y) 为二分图匹配的可行边 . . .
解法
保证完备匹配时
我们先求出任意一组完备匹配的方案 , , , 此时所有节点都是匹配点 . . .
根据定义 , , , ( x , y ) (x,y) (x,y) 是必须边 , , , 当且仅当以下两个条件满足 : : :
- ( x , y ) (x,y) (x,y) 当前是匹配边 . . .
- 删除边 ( x , y ) (x,y) (x,y) 后 , , , 不能找到另一条从 x x x 到 y y y 的增广路 . . .
( x , y ) (x,y) (x,y) 是可行边 , , , 当且仅当满足以下两个条件之一 : : :
-
( x , y ) (x,y) (x,y) 当前是匹配边 . . .
-
( x , y ) (x,y) (x,y) 是非匹配边 , , , 设当前 x x x 与 u u u 匹配 , , , y y y 与 v v v 匹配 , , , 连接边 ( x , y ) (x,y) (x,y) 后 , , , 节点 u , v u,v u,v 失去匹配 . . .
必须找到一条从 u u u 到 v v v 的增广路 , , , 来保证最大匹配不变 . . .
如果我们把二分图 G G G 中的 " " " 非匹配边 " " " 看作从左部到右部的有向边 , , , 把二分图 G G G 中的 " " " 匹配边 " " " 看作从右部到左部的有向边 , , , 构成一张新的有向图 , , , 记为 G ′ , G', G′, 那么 G G G 中从 x x x 到 y y y 有增广路 , , , 等价于 G ′ G' G′ 中存在从 x x x 到 y y y 的路径 . . .
考虑必须边的条件 , , , ( x , y ) (x,y) (x,y) 是匹配边 , , , 对应 G ′ G' G′ 中有一条从 y y y 到 x x x 的有向边 . . . 在此条件下 , , , 若 x x x 到 y y y 之间还存在一条路径 , , , 则 x x x 和 y y y 处于同一个强连通分量中 . . .
因此 , , , 必须边的判定条件是 : : : ( x , y ) (x,y) (x,y) 当前是二分图 G G G 的匹配边 , , , 并且 x , y x,y x,y 两点在有向图 G ′ G' G′ 中属于不同的 S c c . Scc. Scc.
类似 , , , 可行边的判定条件是 : : : ( x , y ) (x,y) (x,y) 当前是二分图 G G G 的匹配边 , , , 或者 x , y x,y x,y 两点在有向图 G ′ G' G′ 中属于相同的 S c c . Scc. Scc.
综上 , , , 非必须可行边的判定条件是 , , , x , y x,y x,y 两点在有向图 G ′ G' G′ 中属于相同的 S c c . Scc. Scc.
不保证完备匹配时
在这种情况下 , , , 必须边 , , , 可行边的第二个条件会出现问题 . . . 设 ( x , y ) (x,y) (x,y) 是非匹配边 : : :
- x , y x,y x,y 二者之一可能本来就是非匹配点 . . . 不妨设 y y y 是非匹配点 , , , 此时直接断开 x x x 原来的匹配边 , , , 连接 ( x , y ) , (x,y), (x,y), 得到的匹配集仍然是最大匹配 . . .
- 即使当前 x x x 与 u u u 匹配 , , , y y y 与 v v v 匹配 , , , 连接边 ( x , y ) (x,y) (x,y) 后 , , , 节点 u , v u,v u,v 失去匹配 , , , 我们也不一定要找到从 u u u 到 v v v 的增广路 , , , 如果从 u u u 出发找到另一个非匹配点 z z z 的增广路 , , , 同样可以得到一组包含 ( x , y ) (x,y) (x,y) 的最大匹配 . . .
所以我们不能像完备匹配中一样 , , , 直接用强连通分量进行判定 . . . 然而 , , , 我们可以借助网络流中的源点和汇点 . . .
若 z z z 是当前非匹配点 , , , 则 ( z , T ) (z,T) (z,T) 的剩余容量必定为 1. 1. 1. 若 v v v 当前是匹配点 , , , 则 ( v , T ) (v,T) (v,T) 的剩余容量必定为 0 , 0, 0, ( T , v ) (T,v) (T,v) 的剩余容量必定为 1. 1. 1. 换言之 , , , 残量网络中存在路径 ( ⋯ → z → T → v ⋯ ) . (\cdots \rightarrow z\rightarrow T\rightarrow v\cdots). (⋯→z→T→v⋯). 若二分图中 u u u 到 z z z 有增广路 , , , 则残量网络上 u u u 能到达 z , z, z, 进而到达 v , v, v, 即 ( u , v ) (u,v) (u,v) 通过汇点 T T T 仍在同一个强连通分量中 . . .
因此 , , , 必须边的判定条件是 : : : ( x , y ) (x,y) (x,y) 流量为 1 ( 1( 1( 不是残量网络 ) ) ) , , , 并且 x , y x,y x,y 两点在残量网络中属于不同的 S c c . Scc. Scc.
类似 , , , 可行边的判定条件是 : : : ( x , y ) (x,y) (x,y) 流量为 1 1 1 , , , 或者 x , y x,y x,y 两点在残量网络中属于相同的 S c c . Scc. Scc.