第四章:图的匹配
图的匹配
-
如果 M M M是图 G G G的边子集(不含环),且 M M M中任意两条边没有公共顶点(即不相邻),则称 M M M是 G G G的一个匹配,其中包含的边数称为 G G G的匹配数,记作 α ( G ) \alpha(G) α(G)。如果 G G G中顶点 v v v是 G G G的匹配 M M M中某条边的端点,称它为 M M M饱和点,否则为 M M M非饱和点。
注意:是否为饱和点是相对于匹配的。
-
如果 M M M是图 G G G的包含边数最多的匹配,称 M M M是 G G G的一个最大匹配。特别地,若最大匹配饱和了 G G G的所有顶点,称它为 G G G的一个完美匹配。
注意:一个图 G G G不一定存在完美匹配。
-
如果 M M M是图 G G G的匹配, G G G中一条由 M M M中的边和非 M M M中的边交错形成的路,称为 G G G中的一条 M M M交错路。特别地,若 M M M交错路的起点与终点是 M M M非饱和点,称这种 M M M交错路为 M M M可扩路或可增广路。
-
性质:若 G G G包含一条 M M M的可扩路 P P P, M M M和 E ( P ) E(P) E(P)的对称差 M 1 = M ⊕ E ( P ) = ( M − E ( P ) ) ∪ ( E ( P ) − M ) M_1=M\oplus E(P)=(M-E(P))\cup(E(P)-M) M1=M⊕E(P)=(M−E(P))∪(E(P)−M),则 M 1 M_1 M1是 G G G的匹配。
贝尔热定理
- G G G的匹配 M M M是最大匹配,当且仅当 G G G不存在 M M M可扩路。
两分图匹配存在性判定(Hall定理)
-
设 G = ( X , Y ) G=(X,Y) G=(X,Y)是两分图,则 G G G存在饱和 X X X每个顶点的匹配的充要条件是对 ∀ S ⊆ X \forall S\subseteq X ∀S⊆X,有 ∣ N ( S ) ∣ ⩾ ∣ S ∣ |N(S)|\geqslant|S| ∣N(S)∣⩾∣S∣。其中 N ( S ) N(S) N(S)是 S S S中点的邻集的并集。如果存在 X X X一个子集 S S S,使得 ∣ N ( S ) ∣ < ∣ S ∣ |N(S)|<|S| ∣N(S)∣<∣S∣,那么 G G G中不存在由 X X X到 Y Y Y的匹配。
推论1:若 G G G是 k ( k > 0 ) k(k>0) k(k>0)正则两分图,则 G G G存在完美匹配。
推论2:每个 k ( k ⩾ 2 ) k(k\geqslant2) k(k⩾2)方体都有完美匹配。
推论3: K 2 n K_{2n} K2n和 K n , n K_{n,n} Kn,n中不同的完美匹配的个数分别为 ( 2 n − 1 ) ! ! (2n-1)!! (2n−1)!!和 n ! n! n!。
推论4:树至多存在一个完美匹配。
点覆盖
- G G G的一个顶点子集 K K K称为 G G G的一个点覆盖,如果 G G G的每条边都至少有一个端点在 K K K中。 G G G的一个包含点数最少的点覆盖称为 G G G的最小点覆盖,其包含的点数称为 G G G的覆盖数,记为 β ( G ) \beta(G) β(G)。
- 定理:设 M M M是 G G G的匹配, K K K是 G G G的覆盖,若 ∣ M ∣ = ∣ K ∣ |M|=|K| ∣M∣=∣K∣,则 M M M是最大匹配,而 K K K是最小覆盖。设 G G G的最大匹配为 ∣ M ∗ ∣ |M^*| ∣M∗∣,最小覆盖为 ∣ K ∗ ∣ |K^*| ∣K∗∣,则 ∣ M ∗ ∣ ⩽ ∣ K ∗ ∣ |M^*|\leqslant|K^*| ∣M∗∣⩽∣K∗∣。
哥尼定理
- 在两分图中,最大匹配的边数等于最小覆盖的顶点数。
托特定理
-
图 G G G有完美匹配当且仅当对 V V V的任意真子集 S S S有 o ( G − S ) ⩽ ∣ S ∣ o(G-S)\leqslant|S| o(G−S)⩽∣S∣。 o ( G ) o(G) o(G)表示图 G G G的奇分支数目。
-
彼得森定理:2边连通的3正则图存在完美匹配。
-
推广:k-1边连通的k正则图,且顶点数为偶数,存在完美匹配。
证明:设 S S S是 V V V的任意一个真子集
(1) S = ∅ S=\varnothing S=∅, o ( G − S ) = o ( G ) o(G-S)=o(G) o(G−S)=o(G),又 ∣ V ( G ) ∣ |V(G)| ∣V(G)∣为偶数,所以 o ( G ) = 0 o(G)=0 o(G)=0,即 o ( G − S ) = 0 ⩽ ∣ S ∣ = 0 o(G-S)=0\leqslant|S|=0 o(G−S)=0⩽∣S∣=0。
(2) S ≠ ∅ S\neq\varnothing S=∅,设 G 1 , G 2 , … , G q G_1,G_2,\ldots,G_q G1,G2,…,Gq是 G − S G-S G−S的所有奇分支,设 m i m_i mi表示一个端点在 S S S中另一个端点在 G i G_i Gi中的边的条数。由于 G G G是k-1边连通图,所以 m i ⩾ k − 1 m_i\geqslant k-1 mi⩾k−1。 ∣ V ( G i ) ∣ |V(G_i)| ∣V(Gi)∣为奇数。
m i = ∑ v ∈ V ( G i ) d G ( v ) − 2 ∣ E ( G i ) ∣ = k ∣ V ( G i ) ∣ − 2 ∣ E ( G i ) ∣ m_i=\sum_{v\in V(G_i)}d_G(v)-2|E(G_i)|=k|V(G_i)|-2|E(G_i)| mi=v∈V(Gi)∑dG(v)−2∣E(Gi)∣=k∣V(Gi)∣−2∣E(Gi)∣
当 k k k为奇数时, m i m_i mi为奇数, k − 1 k-1 k−1为偶数,所以 m i ⩾ k m_i\geqslant k mi⩾k。当 k k k为偶数时, m i m_i mi为偶数, k − 1 k-1 k−1为奇数,所以 m i ⩾ k m_i\geqslant k mi⩾k。
o ( G − S ) = q ⩽ 1 k ∑ i = 1 q m i ⩽ 1 k ∑ v ∈ V ( S ) d G ( v ) = 1 k ⋅ k ∣ S ∣ = ∣ S ∣ o(G-S)=q\leqslant\frac{1}{k}\sum_{i=1}^{q}m_i\leqslant\frac{1}{k}\sum_{v\in V(S)}d_G(v)=\frac{1}{k}\cdot k|S|=|S| o(G−S)=q⩽k1i=1∑qmi⩽k1v∈V(S)∑dG(v)=k1⋅k∣S∣=∣S∣
由托特定理,推广定理成立。 -
一棵树 G G G有完美匹配当且仅当对所有顶点 v ∈ V ( G ) v\in V(G) v∈V(G),有 o ( G − v ) = 1 o(G-v)=1 o(G−v)=1。
匈牙利算法
两分图求完美匹配
推广:两分图求最大匹配
图的因子分解
- 图 G G G的因子是指至少包含 G G G的一条边的生成子图。图 G G G的 n n n因子是指图 G G G的 n n n度正则因子。
- 如果一个图 G G G能够分解为若干 n n n因子之并,称 G G G是可 n n n因子分解的。
- **一因子分解:**图的一个一因子实际上就是图的一个完美匹配,图可一因子分解就是能够分解为若干边不重的完美匹配之并。
- 定理1: K 2 n K_{2n} K2n可一因子分解。
- 定理2:每个 k ( k > 0 ) k(k>0) k(k>0)正则两分图 G G G是可一因子分解的。
- 定理3:若3正则图有割边,则它不能一因子分解。
- 二因子分解:如果一个图可以分解为若干2度正则因子之并,则称 G G G可以二因子分解。注意: G G G的一个H圈肯定是 G G G的一个二因子,反之不然,可以不连通。
- 定理1:没有割边的3正则图是一个一因子和一个二因子之并。因为没有割边的3正则图存在完美匹配 M M M,显然 G − M G-M G−M是二因子。
- 定理2: K 2 n + 1 K_{2n+1} K2n+1可二因子分解。 P i = v i v i − 1 v i + 1 v i − 2 v i + 2 ⋯ v i − n v i + n , k m o d 2 n P_i=v_iv_{i-1}v_{i+1}v_{i-2}v_{i+2}\cdots v_{i-n}v_{i+n},k\space mod\space2n Pi=vivi−1vi+1vi−2vi+2⋯vi−nvi+n,k mod 2n.
图的边着色
- 设 G G G是图,对 G G G的边进行染色,若相邻边染不同颜色,则称对 G G G进行正常边着色。如果能用 k k k种颜色对图 G G G进行正常边着色,称 G G G是 k k k边可着色的。在对 G G G正常边着色时,着相同颜色的边集称为该正常着色的一个色组。对 G G G进行正常边着色需要的最少颜色数,称为 G G G的边色数,记为 χ ′ ( G ) \chi'(G) χ′(G)。对图的正常边着色,实际上是对 G G G的边集的一种划分,使得每个划分块是 G G G的一个边独立集(无环时是匹配);图的边色数对应的是图的最小边独立集划分数。
- χ ′ ( K m , n ) = Δ \chi'(K_{m,n})=\Delta χ′(Km,n)=Δ.
- 哥尼定理:若 G G G是两分图,则 χ ′ ( G ) = Δ \chi'(G)=\Delta χ′(G)=Δ.
- 维津定理:若 G G G是简单图,则 χ ′ ( G ) = Δ \chi'(G)=\Delta χ′(G)=Δ或 χ ′ ( G ) = Δ + 1 \chi'(G)=\Delta+1 χ′(G)=Δ+1.
- 根据维津定理,简单图可以按边色数分成两类图:一是色数等于 Δ \Delta Δ的简单图,通常称为第一类图;二是色数等于 Δ + 1 \Delta+1 Δ+1的简单图,通常称为第二类图。
- 定理:设 G G G是简单图,若点数 n = 2 k + 1 n=2k+1 n=2k+1且边数 m > k Δ m>k\Delta m>kΔ,则 χ ′ ( G ) = Δ ( G ) + 1 \chi'(G)=\Delta(G)+1 χ′(G)=Δ(G)+1。
- 定理:设 G G G是奇数阶 Δ \Delta Δ正则简单图,则 χ ′ ( G ) = Δ ( G ) + 1 \chi'(G)=\Delta(G)+1 χ′(G)=Δ(G)+1.
- 定理:设 n = 2 k + 1 , k > 0 n=2k+1,k>0 n=2k+1,k>0, χ ′ ( C n ) = 3 \chi'(C_n)=3 χ′(Cn)=3, χ ′ ( K n ) = n \chi'(K_n)=n χ′(Kn)=n。
- Vizing定理:设无环图 G G G中边的最大重数为 μ \mu μ,则 χ ′ ( G ) ⩽ Δ + μ \chi'(G)\leqslant\Delta+\mu χ′(G)⩽Δ+μ.
图的点着色
- 设 G G G是一个图,对 G G G的每个顶点着色,使得相邻顶点着不同颜色,称为对 G G G的正常顶点着色。如果用 k k k种颜色可以对 G G G进行正常顶点着色,称 G G G可 k k k正常顶点着色。对图 G G G正常顶点着色需要的最少颜色数,称为图 G G G的点色数。图 G G G的点色数用 χ ( G ) \chi(G) χ(G)表示。色数为 k k k的图称为 k k k色图。用点色数种颜色对图 G G G正常着色,称为对图 G G G的最优点着色。对图的正常顶点着色,带来的是图的顶点集合的一种划分方式。顶点着色对应的实际问题也是分类问题。属于同一种颜色的顶点集合称为一个色组,同一色组的顶点间彼此不相邻接,所以又称为点独立集。
- G G G是有边的两分图的充要条件是 χ = 2 \chi=2 χ=2。
- G G G是无边图的充要条件是 χ = 1 \chi=1 χ=1。
- G G G是完全图的充要条件是 χ = ∣ V ( G ) ∣ \chi=|V(G)| χ=∣V(G)∣。
- χ ( 轮 ) = 3 ( 奇数 ) 4 ( 偶数 ) \chi(轮)=3(奇数)4(偶数) χ(轮)=3(奇数)4(偶数)。
- 定理1:对任意的图 G G G,有 χ ( G ) ⩽ Δ ( G ) + 1 \chi(G)\leqslant\Delta(G)+1 χ(G)⩽Δ(G)+1。
- Welsh-Powell算法
- 四色定理,五色定理
欧拉图
- 设 G G G是无孤立点的图。经过 G G G中每条边一次且仅一次的通路(回路)称为欧拉通路(回路),存在欧拉回路的图称为欧拉图。有欧拉通路没欧拉回路的图称为半欧拉图。
- 注意:欧拉图(半欧拉图)并不仅仅只针对简单图。欧拉图和半欧拉图一定是连通图。
- 对于非平凡连通图
G
G
G下列定义等价:
- G G G是欧拉图
- G G G的顶点度数为偶数
- G G G的边集合能划分为圈
- 推论1:连通图 G G G是欧拉图当且仅当 G G G的顶点度数为偶数。
- 推论2:连通非欧拉图 G G G存在欧拉迹(连通图 G G G是一个半欧拉图)当且仅当 G G G中只有两个顶点度数为奇数。
- Fleury算法
- 若 G G G有 2 k > 0 2k>0 2k>0个奇数顶点,则存在 k k k条边不重的迹 Q 1 , Q 2 , … , Q k Q_1,Q_2,\ldots,Q_k Q1,Q2,…,Qk,使得 E ( G ) = E ( Q 1 ) ∪ E ( Q 2 ) ∪ ⋯ ∪ E ( Q k ) E(G)=E(Q_1)\cup E(Q_2)\cup\cdots\cup E(Q_k) E(G)=E(Q1)∪E(Q2)∪⋯∪E(Qk)。
- 设 G G G是非平凡的欧拉图,且 v ∈ V ( G ) v\in V(G) v∈V(G),那么 G G G的每条具有起点 v v v的迹都能扩展成 G G G的欧拉环游当且仅当 G − v G-v G−v是森林。
- 邮递员问题:给定一个图
G
=
(
V
,
E
,
W
)
G=(V,E,W)
G=(V,E,W),对
E
(
G
)
E(G)
E(G)加权,即对每条边
e
e
e指定一个非负实数
w
(
e
)
w(e)
w(e),问题是求
G
G
G的一个含有一切边的回路
W
W
W使得
W
W
W的总权最小。
- 算法:构造一个完全加权图, 图的顶点集合是 G G G的所有奇次点。 任意两个奇次点都连边,这条边的长度即为这两点在 G G G中的最短路长。求这个完全加权图的最小的完美匹配。求出完美匹配的边在G中对应的最短路。在 G G G中将所求得的所有最短路上的所有边加一条平行边,边的权一样,得到 G ′ G' G′。求出 G ′ G' G′上的Euler回路,即为所要求的回路。
哈密尔顿图
- 经过图中每个点一次且仅一次的路(回路)称为哈密尔顿路(哈密尔顿圈),存在哈密尔顿圈的图称为哈密尔顿图,简称 H H H图。
- 性质:定理1(必要条件):若 G G G为 H H H图,则对 V ( G ) V(G) V(G)的任一非空顶点子集 S S S,有 w ( G − S ) ⩽ ∣ S ∣ w(G-S)\leqslant|S| w(G−S)⩽∣S∣。因为 w ( C − S ) ⩽ ∣ S ∣ w(C-S)\leqslant|S| w(C−S)⩽∣S∣和 w ( G − S ) ⩽ w ( C − S ) w(G-S)\leqslant w(C-S) w(G−S)⩽w(C−S)。
- 推论1:每个 H H H图都无割点。(反证法)
- 推论2:奇数阶的两分图不是 H H H图。(反证法)
- 定理2(充分条件):对于 n ⩾ 3 n\geqslant3 n⩾3的简单图 G G G,如果 G G G中的任意两个不相邻顶点 u u u和 v v v,有 d ( u ) + d ( v ) ⩾ n d(u)+d(v)\geqslant n d(u)+d(v)⩾n,那么 G G G是 H H H图。(证明方法重要)
- 设 G G G是具有 n n n个点的简单图,则对 G G G的任意两个不相邻顶点 u u u和 v v v有 d ( u ) + d ( v ) ⩾ n − 1 d(u)+d(v)\geqslant n-1 d(u)+d(v)⩾n−1,则 G G G有哈密尔顿路。
- 推论:设
G
G
G是
n
n
n个点,
m
m
m条边的简单图,若
m
⩾
(
n
2
−
3
n
+
6
)
/
2
m\geqslant(n^2-3n+6)/2
m⩾(n2−3n+6)/2,则
G
G
G是
H
H
H图。
- 性质:对于简单图
G
G
G,如果
G
G
G中有两个不相邻顶点
u
u
u与
v
v
v,满足
d
(
u
)
+
d
(
v
)
⩾
n
d(u)+d(v)\geqslant n
d(u)+d(v)⩾n,那么
G
G
G是
H
H
H图当且仅当
G
+
u
v
G+uv
G+uv是
H
H
H图。
任意两个奇次点都连边,这条边的长度即为这两点在 G G G中的最短路长。求这个完全加权图的最小的完美匹配。求出完美匹配的边在G中对应的最短路。在 G G G中将所求得的所有最短路上的所有边加一条平行边,边的权一样,得到 G ′ G' G′。求出 G ′ G' G′上的Euler回路,即为所要求的回路。
- 性质:对于简单图
G
G
G,如果
G
G
G中有两个不相邻顶点
u
u
u与
v
v
v,满足
d
(
u
)
+
d
(
v
)
⩾
n
d(u)+d(v)\geqslant n
d(u)+d(v)⩾n,那么
G
G
G是
H
H
H图当且仅当
G
+
u
v
G+uv
G+uv是
H
H
H图。