0004: 图匹配和增广路的定义与性质简述
0004: 图匹配和增广路的定义与性质简述
本篇为图匹配系列的第 1 篇, 关于本系列详见0000: 博客目录.
1. 图的匹配
匹配, 又称独立边集, 是指一张无向图中不具有公共点的边的集合. 在本篇中我们给出图匹配以及与之有关的增广路 (不是网络流中的增广路) 的相关定义, 也给出增广路定理的相关说明.
在无向图
对于边
1.1 特殊的匹配
-
最大匹配(maximum matching or maximum cardinality matching): 包含的边的数量最多的匹配. 在一张图上最大匹配可能有不止一个, 但最大匹配的边数是确定的.
-
最大权匹配(maximum weight matching): 带边权图中边权和最大的匹配, 不一定是最大匹配.
-
极大匹配(maximal matching): 无法再增加匹配边的匹配, 不一定是最大匹配.
-
最大权最大匹配(maximum weight maximum cardinality matching): 匹配数最多的前提下边权和最大的匹配, 即所有最大匹配中, 边权和最大的匹配.
-
完美匹配(perfect matching): 图上所有点都属于匹配. 若图
G 为完全图且|V| 为偶数时, 必然存在完美匹配. -
近完美匹配(near-perfect matching): 若图的点数为奇数, 且只有一个点不在匹配中. 删除此点后的图称为 factor-critical graph.
1.2 二分图的匹配
一张二分图上的匹配称为二分匹配.
1.2.1 二分图的完美匹配
设
定理4.1 霍尔定理 Hall marriage theorem
设二分图
证明
先证必要性: 若对于任意的
S \subseteq V_1 , 均有|S|\leq|N(S)| , 则G 中存在V_1 到V_2 的完美匹配.我们使用数学归纳法证明.
对于
|V_1|=1 的二分图显然成立.对于
|V_1|=n 的二分图, 我们设所有|V_1|<n 的二分图均已被证明. 然后, 我们设点u\in V_1 与点v\in V_2 匹配, 也就相当于在G 上删除点u 和v , 从而得到新的二分图G'=\langle V_1-\{u\},V_2-\{v\},E-\{\langle u',v'\rangle|\langle u',v'\rangle\in E,u'=u\text{或}v'=v\}\rangle , 设图G 上点i 的相邻点为N'(i) . 我们发现|V_1-\{u\}|<n , 所以如果我们能证明对于任意的S\subseteq V_1-\{u\} 均有|S|\le|N'(S)| 成立, 则霍尔定理的必要性得证.令
\displaystyle D=\cup_{S\subseteq V_1-\{u\},|S|=|N(S)|}S , 则v 不能属于N(D) , 否则会出现|S|=|N(S)|>|N(S)-\{v\}|=|N'(S)| 的情况. 相反的, 若v\notin N(D) , 则对于任意的S\subseteq V 且v\in N(S) , 一定有|S|<|N(S)|=|N(S)-\{v\}|+1\Rightarrow|S|\le|N(S)-\{v\}| .那会不会出现
N(u)\subseteq N(D) 的情况? 我们可以发现一定有|D|=|N(D)| (见下方引理4.2的证明), 所以若N(u)\subseteq D , 则|D\cup\{u\}|>|D|=|N(D)|=|N(D\cup\{u\})| , 形成矛盾, 从而证毕.再证充分性: 若
G 中存在V_1 到V_2 的完美匹配, 则对于任意的S \subseteq V_1 , 均有|S|\leq|N(S)| .反证: 设
G 中存在V_1 到V_2 的完美匹配M , 且存在S\subseteq V_1 有|S|>|N(S)| .根据反证假设,
M 中包含S 中的点的边定然有|S| 条, 而这|S| 条边的端点都在N(S) 中. 根据鸽巢原理,N(S) 中定然有点为匹配中两条以上边的公共端点, 与反证假设矛盾.
引理4.2 张三引理
对于二分图
证明
因为
|S_1\cup S_2|=|S_1|+|S_2|-|S_1\cap S_2| , 又有|N(S_1\cup S_2)|\le|N(S_1)|+|N(S_2)|-|N(S_1\cap S_2)|\le|S_1|+|S_2|-|S_1\cap S_2| , 将式子连起来, 有|S_1\cup S_2|\ge|N(S_1\cup S_2)| , 而这个式子只能取等, 得证.
2. 匹配的转换
2.1 以最大权最大匹配求最大权匹配
2.1.1 算法思路
最大权最大匹配允许负权边的存在(因为要保证匹配数最大), 而最大权匹配不允许(删掉负权边显然可以让权值和更大, 所以若所有边均为负权, 则最大权匹配为
性质4.3 匹配的完全图性质
当图
证明
因为
G 是完全图, 所以任意一个非最大匹配均可以通过增加边变成最大匹配. 而G 又没有负权边, 所以G 的最大权匹配定为最大匹配或删去几条权为 0 边后的最大匹配, 否则一定可以通过增加权非 0 的边以使权值和增加.
2.1.2 算法流程
由于权值为 0 的边对最大权匹配没有影响, 所以我们可以把原图的所有负权边变为零边(反正本来也要将负权边删去), 然后用权为 0 的边将原图补为完全图, 此时用最大权最大匹配求解的结果即为原图的最大权匹配结果.
2.2 以最大权匹配求最大权最大匹配
2.2.1 算法思路
我们首先为原图的所有边加上一个数
2.2.2 算法流程
令
3. 增广路
3.1 增广路定义
我们称一条由未匹配边和匹配边交错而成的路径为交错路(Alternating path).
我们称一条始于未匹配点且终于未匹配点(不是起始的未匹配点)的交错路为增广路(Augmenting path).
3.2 增广操作
我们发现增广路的第一条边和最后一条边均为未匹配边(因为起点和终点均为未匹配点), 又是由未匹配边和匹配边交错而成的, 所以其包含的边数为奇数.
我们可以将增广路上的匹配边和未匹配边反转, 从而使匹配数增加 1, 同时依然是一个合法的匹配(因为只是将增广路的起点和终点变为匹配点), 这个操作被称为增广(Augment), 这是匈牙利算法增加匹配数量的唯一方式. 操作过程如下图:
定理4.4 增广路定理 Berge's lemma
图
证明
先证必要性:
反证: 设
M 是图G 的最大匹配, 且存在一条增广路.我们可以对这条增广路进行增广, 从而使
M 的大小增加, 与反正假设矛盾.再证充分性:
反证: 对于匹配
M 在图G 上找不到增广路, 且有一个更大的匹配M' , 有|M|<|M'| .我们构造图
H=(V,(M\cup M')-(M\cap M')) , 即每条边要么属于M , 要么属于M' , 而且每个点的度均小于等于2 .由于每个点的度均小于等于
2 , 所以H 上的联通块只会有三种情况: 孤立点, 环和链. 如下图:对于环, 我们发现在任意环上都是
M 中的边和M' 中的边交替出现, 这是因为每个点只可能最多有一条M 的边和一条M' 中的边, 从而我们发现环上的M 中边的数量等于M' 中边的数量.对于链, 由于
|M|<|M'| , 所以一定会出现至少一条链, 而且链上也是两种边交替出现. 还是因为|M|<|M'| , 一定会出现一条首尾均为|M'| 中的边的链, 而这条链就是原图上的一条增广路, 与反证假设矛盾, 从而得证.
3.3 利用增广操作求解最大匹配
根据定理4.4可知我们求最大匹配的核心思路: 枚举所有未匹配点, 找增广路径并增广, 直到找不到增广路径.
事实上, 对于每个点只要枚举一次就好.
证明
因为增广操作每次只会使得两端的未匹配点变成匹配点, 不会出现增广后有匹配点变成未匹配点的情况, 所以每个点作为未匹配点只需要增广一次.
3.4 交错树
我们将从未匹配点
我们称偶点(黑点)为树上深度为偶数的点. 奇点(白点)为树上深度为奇数的点. 下图展示了一个二分图从未匹配点
4. 参考资料
- 图匹配 OI-wiki
- 增广路 OI-wiki
- 图论学习笔记(4)- 匹配 Matchings 知乎
- Wisdommmmmmmm 在参考资料1下的评论
- 图匹配学习 CSDN博客