二分图匹配的可行边和必须边

本文探讨了二分图的最大匹配问题,重点在于如何判断匹配边是否为必须边或可行边。必须边是指存在于所有最大匹配中的边,而可行边至少在某个最大匹配中出现。通过转换成有向图和利用增广路径的概念,可以确定必须边和可行边的条件。在完备匹配时,必须边对应不同强连通分量,可行边对应相同强连通分量。在不保证完备匹配时,利用残量网络的性质进行判断。

定义

给定一张二分图 ,,, 其最大匹配方案不一定是唯一的 ... 若任何一个最大匹配方案的匹配边都包括 (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) 是必须边 ,,, 当且仅当以下两个条件满足 :::

  1. (x,y)(x,y)(x,y) 当前是匹配边 ...
  2. 删除边 (x,y)(x,y)(x,y),,, 不能找到另一条从 xxxyyy 的增广路 ...

(x,y)(x,y)(x,y) 是可行边 ,,, 当且仅当满足以下两个条件之一 :::

  1. (x,y)(x,y)(x,y) 当前是匹配边 ...

  2. (x,y)(x,y)(x,y) 是非匹配边 ,,, 设当前 xxxuuu 匹配 ,,, yyyvvv 匹配 ,,, 连接边 (x,y)(x,y)(x,y),,, 节点 u,vu,vu,v 失去匹配 ...

    必须找到一条从 uuuvvv 的增广路 ,,, 来保证最大匹配不变 ...

如果我们把二分图 GGG 中的 """ 非匹配边 """ 看作从左部到右部的有向边 ,,, 把二分图 GGG 中的 """ 匹配边 """ 看作从右部到左部的有向边 ,,, 构成一张新的有向图 ,,, 记为 G′,G',G, 那么 GGG 中从 xxxyyy 有增广路 ,,, 等价于 G′G'G 中存在从 xxxyyy 的路径 ...

考虑必须边的条件 ,,, (x,y)(x,y)(x,y) 是匹配边 ,,, 对应 G′G'G 中有一条从 yyyxxx 的有向边 ... 在此条件下 ,,,xxxyyy 之间还存在一条路径 ,,,xxxyyy 处于同一个强连通分量中 ...

因此 ,,, 必须边的判定条件是 ::: (x,y)(x,y)(x,y) 当前是二分图 GGG 的匹配边 ,,, 并且 x,yx,yx,y 两点在有向图 G′G'G 中属于不同的 Scc.Scc.Scc.

类似 ,,, 可行边的判定条件是 ::: (x,y)(x,y)(x,y) 当前是二分图 GGG 的匹配边 ,,, 或者 x,yx,yx,y 两点在有向图 G′G'G 中属于相同的 Scc.Scc.Scc.

综上 ,,, 非必须可行边的判定条件是 ,,, x,yx,yx,y 两点在有向图 G′G'G 中属于相同的 Scc.Scc.Scc.

不保证完备匹配时

在这种情况下 ,,, 必须边 ,,, 可行边的第二个条件会出现问题 ...(x,y)(x,y)(x,y) 是非匹配边 :::

  1. x,yx,yx,y 二者之一可能本来就是非匹配点 ... 不妨设 yyy 是非匹配点 ,,, 此时直接断开 xxx 原来的匹配边 ,,, 连接 (x,y),(x,y),(x,y), 得到的匹配集仍然是最大匹配 ...
  2. 即使当前 xxxuuu 匹配 ,,, yyyvvv 匹配 ,,, 连接边 (x,y)(x,y)(x,y),,, 节点 u,vu,vu,v 失去匹配 ,,, 我们也不一定要找到从 uuuvvv 的增广路 ,,, 如果从 uuu 出发找到另一个非匹配点 zzz 的增广路 ,,, 同样可以得到一组包含 (x,y)(x,y)(x,y) 的最大匹配 ...

所以我们不能像完备匹配中一样 ,,, 直接用强连通分量进行判定 ... 然而 ,,, 我们可以借助网络流中的源点和汇点 ...

zzz 是当前非匹配点 ,,,(z,T)(z,T)(z,T) 的剩余容量必定为 1.1.1.vvv 当前是匹配点 ,,,(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).(zTv). 若二分图中 uuuzzz 有增广路 ,,, 则残量网络上 uuu 能到达 z,z,z, 进而到达 v,v,v,(u,v)(u,v)(u,v) 通过汇点 TTT 仍在同一个强连通分量中 ...

因此 ,,, 必须边的判定条件是 ::: (x,y)(x,y)(x,y) 流量为 1(1(1( 不是残量网络 ))) ,,, 并且 x,yx,yx,y 两点在残量网络中属于不同的 Scc.Scc.Scc.

类似 ,,, 可行边的判定条件是 ::: (x,y)(x,y)(x,y) 流量为 111 ,,, 或者 x,yx,yx,y 两点在残量网络中属于相同的 Scc.Scc.Scc.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值