# 偶图 (bipartite graph 或 paar graph)
设 G=(V,E) 是简单无向图。若存在着结点集 V 的一个划分{V1,V2}(v=v1∪V2,V1∩V2=∅), 使得边集E∈V1×V2 ,则称 G 是偶图 (或二分图、二部图)。
偶图一般记为G=(V1,V2,E)(或G=(V1,E,V2))。
同时称 V1,V2 是 V 的互补结点子集。
当E=V1×V2 时,称 G 是完全二分图。这时,若∣V1∣=m,∣V2∣=n,则记完全二分图为K_
# 定理 1
设G=(V,E) 是简单无向图。那么
G 是偶图⟺G 中每个圈都是偶圈 (长度为偶数的圈)
⟺G 中不含奇圈 (长度为奇数的圈) 。
# 推论 1
设G=(V,E) 是简单无向图。那么 G 是偶图
⟺ G 的顶点可用两种颜色来着色 (即 G 的顶点色数是 2)
⟺ G 的顶点可用 A、B 两个字母来标号 。
所谓一个图的着色,分以下三种情况:
- 将图的顶点染以颜色,使相邻顶点的颜色不同;
- 将图的边染以颜色,使相邻边的颜色不同;
- 将平面图的面染以颜色,使相邻面的颜色不同;
- 所谓图的色数,是在第 (1) 种着色情况下,所用的最少颜色;而在第 (2) 种着色情况下,
所用的最少颜色,称为图的着色指数。
# 推论 2
设G=(V1,V2,E) 是偶图。那么
- 偶图 G 含有 H - 圈 (G 是 H - 图)
⟹|V1|=|V2|
⟹ 红、蓝着色结点的数目相同
⟹A、B 标号结点的数目相同;
- 偶图 G 有 H - 路⟹∣∣V1∣−∣V2∣∣⩽1
⟹ 红、蓝着色结点的数目至多差 1
⟹A、B 标号结点的数目至多差 1。
有些图 G 虽然不是偶图,但 可通过给图 G 的某个结点的某条边上增加一个结点而获得另一图 >G′,使得:
- 图 GG′ 是偶图 (能完成标号法);
- 图 G 有 H - 圈 (是 H - 图)⟺ 图 G⟺ 有 H - 圈 (是 H - 图) ;
而图G′ 能用标号法判定不含 H - 圈 (不是 H - 图) ,因此, 可得图 G 一定不含 H - 圈 (不是 H - 图)
# 匹配 最大匹配 完美匹配
设G=(V1,V2,E) 是偶图,这里:V=V1∪V2,V1∩V2=∅,E⊆V1×V2 。若存在着边集E1⊆E且E1=∅ 使得:
- 若E1 中任何两边都不相邻,则称 E1 是图 G 的一个匹配 (Matching);
- 若E1 是一个具有最多边数的匹配,则称 E1 是图 G 的一个最大匹配 (Maximum
matching);
- 若E1 是一个满足条件∣E1∣=∣V1∣⩽∣V2∣ 的匹配,则称E1 是图 G 的一个从V1 到V2 的最大匹配 (Maximum matching from V1 to V2);
- 若 E1 是一个满足条件∣E1∣=∣V1∣=∣V2∣ 的匹配,则称 E1 是图 G 的一个完美匹配 (Perfect matching)
- 匹配又称为对集 (并列集、径集),通常将匹配E1 记为 M;
- 匹配 M 中的边e∈M 称为杆 (bar);
- 完美匹配又称为 1 - 因子 (1-factor);
- 完美匹配一定是最大匹配;
- 最大匹配不一定是完美匹配;
- (∣M∣=∣V1∣⩽∣V2∣)∧(∣M∣=∣V2∣⩽∣V1∣)⟹M 一定是最大匹配;
- M 是最大匹配⟹(∣M∣=∣V1∣⩽∣V2∣)∧(∣M∣=∣V2∣⩽∣V1∣)
- ∣V1∣=∣V2∣⟹ 图 G 一定没有完美匹配。
# 定理 2.(P.Hall 定理 (1934))
设G=(V1,V2,E) 是偶图。这里:∣V1∣⩽∣V2∣。则存在着图 G 的一个从V1 到V2 的最大匹配 M
⟺(∀S)(S⊆V1⟹∣N(S)∣⩾∣S∣) (相异性条件)
其中: N(S)=v∈S⋃N(v) 称为结点集S∈V1 的邻域;
N(v)={v′∣v′∈V2∧(v,v′)∈E} 称为结点v∈V1 的邻域;
Hall 定理中条件 (*) 的等价的、通俗易懂的叙述是:图 G 中有从V1 到V2 的最大匹配的充分必要条件是:V1 中的任何k(0⩽k⩽∣V1∣) 个结点,一定至少连接着V2 中的 k 个结点。
# 定理 3.(Philip.Hall 一般婚姻定理 (1934))
设G=(V1,V2,E) 是偶图。这里: ∣V1∣=∣V2∣ 。则存在着图 G 的一个完美匹配:
M⟺(∀S)(S⊆V1⟹∣N(S)∣⩾∣S∣)
# 推论 1
完全二分图Km,n 一定有一个最大匹配 M,且∣M∣=min{m,n} ;并且当 m=n 时, M 为一完美匹配。
# 推论 2 婚姻定理
k - 正则偶图 (每个结点的度都是 k 的偶图) 一定有一个完美匹配 M。
# 推论 3
设G=(V1,V2,E) 是偶图。若∃e∈k)(k∈N∧k≥1), 使得:
- (∀v)(v∈V1⟹deg(v)≥k);
- (∀v)(v∈V2⟹deg(v)≤k);
则图 G 中一定存在着一个从 V1 到 V2 的最大匹配 M
# 匈牙利方法 (Hungarian method)
# 定义 3. 匹配 饱和点 非饱和点 交错路 增广路
设G=(V1,V2,E) 是偶图。M 是图 G 的一个匹配。
- 称结点u∈V1∪V2 被 M 所匹配⟺ 存在着匹配 M 的某条杆 e∈M,以 u 为其一个端点 (这时称结点 u 覆盖 (Covering) M 的杆 e) ;
- 称结点 u∈V1∪V2 是 M 的饱和点 (saturated node) ⟺ u 被 M 所匹配;否则,称结点u∈V1∪V2 是 M 的非饱和点 (unsaturated node) ;
- 交错路 (alternating path) 是一条分别交替的由 M 中的边和 E\M 中的边构成的极大的初级路;
- 增广路 (augmenting path) 是一条两个端点都是非饱和点的交错路
# 求最大匹配 M 的算法 (匈牙利方法-J.Edmonds (1965)):
- 任取一匹配 M (可以空或只取一边);
- 取S:={u∣u∈V1∧u 是 M 的非饱和点};若S=∅ 则 M 已是最大匹配;exit ;
- 任取一结点u0∈S,从 u0 走出几条交错路: Pi1,Pi2,...,Pi3 ;
- 如果这些路中有某一条是增广路,不妨记为 P,则令M:=M⊕P=(M∖P)∪(P∖M) (并且 | M|(新)=|M|(旧)+1) ; go to No2 ;
- 如果这些路中无一条是增广路,则令S:=S∖{u0};如果S=∅ 则 go to No3 ;否则S=∅ 则 M 已是最大匹配;exit ;