赞
踩
转载自:https://blog.sengxian.com/algorithms/networkflow-variants
在图论中有以下几个概念,它们之前的关系往往容易弄混淆,这里稍稍证明以下。
先放出概念-来自日本人的书。
它们之间是满足一些关系的。(废话
最大匹配与最小边覆盖:
对于任意无孤立点的图而言
∣
M
m
a
x
∣
+
∣
F
m
i
n
∣
=
∣
V
∣
\vert M_{max} \vert + \vert F_{min} \vert = \vert V \vert
∣Mmax∣+∣Fmin∣=∣V∣
用文字描述就是:「最大匹配数 + 最小边覆盖数 = 顶点数」
设最大匹配为
M
m
a
x
M_{max}
Mmax,最小边覆盖为
F
m
i
n
F_{min}
Fmin。
根据定义,最大匹配
M
M
M 中所有的边共覆盖了
2
×
∣
M
m
a
x
∣
2 \times \vert M_{max} \vert
2×∣Mmax∣个顶点。
既然已经覆盖了
2
×
∣
M
m
a
x
∣
2 \times \vert M_{max}\vert
2×∣Mmax∣ 个顶点。
那么还有
∣
V
∣
−
2
×
∣
M
m
a
x
∣
\vert V \vert - 2 \times \vert M_{max} \vert
∣V∣−2×∣Mmax∣个顶点未被覆盖。
我们在最大匹配的基础上加边,每加一条边最多可以扩展
1
1
1 个顶点(如果能扩展
2
2
2 个说明不是最大匹配),则最少要加
∣
V
∣
−
2
×
∣
M
m
a
x
∣
\vert V \vert - 2 \times \vert M_{max} \vert
∣V∣−2×∣Mmax∣条边。
所以
∣
F
m
i
n
∣
=
∣
V
∣
−
2
×
∣
M
m
a
x
∣
+
∣
M
m
a
x
∣
=
∣
V
∣
−
∣
M
m
a
x
∣
\vert F_{min} \vert = \vert V \vert - 2 \times \vert M_{max} \vert + \vert M_{max} \vert = \vert V \vert - \vert M_{max} \vert
∣Fmin∣=∣V∣−2×∣Mmax∣+∣Mmax∣=∣V∣−∣Mmax∣。
得到
∣
M
m
a
x
∣
+
∣
F
m
i
n
∣
=
∣
V
∣
\vert M_{max} \vert + \vert F_{min} \vert = \vert V \vert
∣Mmax∣+∣Fmin∣=∣V∣
证毕。
最大独立集与最小顶点覆盖
对于任意图(无所谓联通)而言
∣
S
m
a
x
∣
+
∣
S
m
i
n
∣
=
∣
V
∣
\vert S_{max} \vert + \vert S_{min} \vert = \vert V \vert
∣Smax∣+∣Smin∣=∣V∣
用文字描述就是「最大独立集数 + 最小顶点覆盖数 = 顶点数」。与之前的不同,这里的集合都是针对顶点的集合。
设任意独立集
S
S
S。
则其补集
∁
V
S
\complement_{V}S
∁VS必定与
S
S
S 中所有点之间有边联通(
S
S
S 中孤立点除外,但孤立点无边与之连接,不影响)。
根据独立集定义,任何
S
S
S中顶点没有边联通,所以任意边的端点一定有一个属于
∁
V
S
\complement_{V}S
∁VS。
所以
∁
V
S
\complement_{V}S
∁VS 是一个顶点覆盖。
这就证明了
S
S
S为
G
G
G的独立集 ->
∁
V
S
\complement_{V}S
∁VS为
G
G
G的顶点覆盖。
根据补集的定义,有
∣
S
∣
+
∣
∁
V
S
∣
=
∣
V
∣
\vert S \vert + \vert \complement_{V}S \vert = \vert V \vert
∣S∣+∣∁VS∣=∣V∣。
变形得到
∣
∁
V
S
∣
=
∣
V
∣
−
∣
S
∣
\vert \complement_{V}S \vert = \vert V \vert - \vert S \vert
∣∁VS∣=∣V∣−∣S∣
所以当且仅当
S
S
S 为最大独立集时,
∁
V
S
\complement_{V}S
∁VS 为最小顶点覆盖。
即
∣
S
m
a
x
∣
+
∣
S
m
i
n
∣
=
∣
V
∣
\vert S_{max} \vert + \vert S_{min} \vert = \vert V \vert
∣Smax∣+∣Smin∣=∣V∣
证毕。
借助这些关系,对于有最大匹配与最小边覆盖,最大独立集与最小顶点覆盖,求解出一个就可以求解出另一个。
对于最大匹配问题,二分图可以转化为网络流,一般图则一般用开花树(
E
d
m
o
n
d
s
Edmonds
Edmonds)算法解决。
而对于最大独立集和最小顶点覆盖,却无法高效求解,他们是
N
P
NP
NP困难的。不过,对于二分图而言:
∣
M
m
a
x
∣
=
∣
S
m
i
n
∣
\vert M_{max} \vert = \vert S_{min}\vert
∣Mmax∣=∣Smin∣
文字描述就是「最大匹配数 = 最小顶点覆盖数」。
这也被称为是二分图匹配的 König 定理。关于证明,请移步 :http://www.matrix67.com/blog/archives/116。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。