# 偶图 (bipartite graph 或 paar graph)

设 G=(V,E) 是简单无向图。若存在着结点集 V 的一个划分{V1,V2}(v=v1∪V2,V1∩V2=∅)\{V_1,V_2\}(v=v_1\cup V_2,V_1\cap V_2=\varnothing), 使得边集E∈V1×V2E\in V_1\times V_2 ,则称 G 是偶图 (或二分图、二部图)。
偶图一般记为G=(V1,V2,E)(或G=(V1,E,V2))G=(V_1,V_2,E)(或G=(V_1,E,V_2))。
同时称 V1,V2 是 V 的互补结点子集。
当E=V1×V2E=V_1\times V_2 时,称 G 是完全二分图。这时,若∣V1∣=m,∣V2∣=n|V_1|=m,|V_2|=n,则记完全二分图为K_

# 定理 1

设G=(V,E)G=(V,E) 是简单无向图。那么
G 是偶图  ⟺  \iffG 中每个圈都是偶圈 (长度为偶数的圈)
  ⟺  \iffG 中不含奇圈 (长度为奇数的圈) 。

# 推论 1

设G=(V,E)G=(V,E) 是简单无向图。那么 G 是偶图
  ⟺  \iff G 的顶点可用两种颜色来着色 (即 G 的顶点色数是 2)
  ⟺  \iff G 的顶点可用 A、B 两个字母来标号 。

所谓一个图的着色,分以下三种情况:

  1. 将图的顶点染以颜色,使相邻顶点的颜色不同;
  2. 将图的边染以颜色,使相邻边的颜色不同;
  3. 将平面图的面染以颜色,使相邻面的颜色不同;
  • 所谓图的色数,是在第 (1) 种着色情况下,所用的最少颜色;而在第 (2) 种着色情况下,
    所用的最少颜色,称为图的着色指数。

# 推论 2

设G=(V1,V2,E)G=(V_1,V_2,E) 是偶图。那么

  1. 偶图 G 含有 H - 圈 (G 是 H - 图)
      ⟹  \implies|V1|=|V2|
      ⟹  \implies 红、蓝着色结点的数目相同
      ⟹  \impliesA、B 标号结点的数目相同;
  2. 偶图 G 有 H - 路  ⟹  ∣∣V1∣−∣V2∣∣⩽1\implies | |V1|-|V2||\leqslant1
      ⟹  \implies 红、蓝着色结点的数目至多差 1
      ⟹  \impliesA、B 标号结点的数目至多差 1。

有些图 G 虽然不是偶图,但 可通过给图 G 的某个结点的某条边上增加一个结点而获得另一图 >G′G',使得:

  1. 图 GG′G' 是偶图 (能完成标号法);
  2. 图 G 有 H - 圈 (是 H - 图)  ⟺  \iff 图 G  ⟺  \iff 有 H - 圈 (是 H - 图) ;
    而图G′G' 能用标号法判定不含 H - 圈 (不是 H - 图) ,因此, 可得图 G 一定不含 H - 圈 (不是 H - 图)

# 匹配 最大匹配 完美匹配

设G=(V1,V2,E)G=(V1,V2,E) 是偶图,这里:V=V1∪V2,V1∩V2=∅,E⊆V1×V2V=V_1\cup V_2,V_1\cap V_2=\varnothing,E\subseteq V_1\times V_2 。若存在着边集E1⊆E且E1≠∅E_1\subseteq E且E_1\ne \varnothing 使得:

  1. 若E1E_1 中任何两边都不相邻,则称 E1 是图 G 的一个匹配 (Matching);
  2. 若E1E_1 是一个具有最多边数的匹配,则称 E1 是图 G 的一个最大匹配 (Maximum
    matching);
  3. 若E1E_1 是一个满足条件∣E1∣=∣V1∣⩽∣V2∣|E1|=|V1|\leqslant |V2| 的匹配,则称E1E_1 是图 G 的一个从V1V_1 到V2V_2 的最大匹配 (Maximum matching from V1V_1 to V2V_2);
  4. 若 E1 是一个满足条件∣E1∣=∣V1∣=∣V2∣|E1|=|V1|=|V2| 的匹配,则称 E1E_1 是图 G 的一个完美匹配 (Perfect matching)
  • 匹配又称为对集 (并列集、径集),通常将匹配E1E_1 记为 M;
  • 匹配 M 中的边e∈Me\in M 称为杆 (bar);
  • 完美匹配又称为 1 - 因子 (1-factor);
  • 完美匹配一定是最大匹配;
  • 最大匹配不一定是完美匹配;
  • (∣M∣=∣V1∣⩽∣V2∣)∧(∣M∣=∣V2∣⩽∣V1∣)  ⟹  M(|M|=|V1|\leqslant|V2|)\land (|M|=|V2|\leqslant|V1|)\implies M 一定是最大匹配;
  • M 是最大匹配  ⟹  (∣M∣=∣V1∣⩽∣V2∣)∧(∣M∣=∣V2∣⩽∣V1∣)\implies (|M|=|V1|\leqslant|V2|)\land (|M|=|V2|\leqslant|V1|)
  • ∣V1∣≠∣V2∣  ⟹  |V1|\ne |V2|\implies 图 G 一定没有完美匹配。

# 定理 2.(P.Hall 定理 (1934))

设G=(V1,V2,E)G=(V_1,V_2,E) 是偶图。这里:∣V1∣⩽∣V2∣|V1|\leqslant|V2|。则存在着图 G 的一个从V1V_1 到V2V_2 的最大匹配 M
  ⟺  (∀S)(S⊆V1  ⟹  ∣N(S)∣⩾∣S∣)\iff(\forall S)(S\subseteq V_1\implies |N(S)|\geqslant |S|) (相异性条件)
其中: N(S)=⋃v∈SN(v)\displaystyle N(S)=\bigcup_{v\in S}N(v) 称为结点集S∈V1S\in V_1 的邻域;
N(v)={v′∣v′∈V2∧(v,v′)∈E}N(v)=\{v'|v'\in V_2\land (v, v')\in E\} 称为结点v∈V1v\in V_1 的邻域;

Hall 定理中条件 (*) 的等价的、通俗易懂的叙述是:图 G 中有从V1V_1 到V2V_2 的最大匹配的充分必要条件是:V1V_1 中的任何k(0⩽k⩽∣V1∣)k (0\leqslant k\leqslant |V1|) 个结点,一定至少连接着V2V_2 中的 k 个结点。

# 定理 3.(Philip.Hall 一般婚姻定理 (1934))

设G=(V1,V2,E)G=(V1,V2,E) 是偶图。这里: ∣V1∣=∣V2∣|V_1|=|V_2| 。则存在着图 G 的一个完美匹配:

M  ⟺  (∀S)(S⊆V1  ⟹  ∣N(S)∣⩾∣S∣)M\iff(\forall S)(S\subseteq V_1\implies |N(S)|\geqslant |S|)

# 推论 1

完全二分图Km,nK_{m,n} 一定有一个最大匹配 M,且∣M∣=min{m,n}|M|=min\{m,n\} ;并且当 m=n 时, M 为一完美匹配。

# 推论 2 婚姻定理

k - 正则偶图 (每个结点的度都是 k 的偶图) 一定有一个完美匹配 M。

# 推论 3

设G=(V1,V2,EG =(V1,V2,E) 是偶图。若∃e∈k)(k∈N∧k≥1)\exists e\in k)(k\in N\land k\geq 1), 使得:

  1. (∀v)(v∈V1  ⟹  deg(v)≥k)(\forall v)(v\in V_1\implies deg(v)\geq k);
  2. (∀v)(v∈V2  ⟹  deg(v)≤k)(\forall v)(v\in V_2\implies deg(v)\leq k);

则图 G 中一定存在着一个从 V1 到 V2 的最大匹配 M

# 匈牙利方法 (Hungarian method)

# 定义 3. 匹配 饱和点 非饱和点 交错路 增广路

设G=(V1,V2,EG =(V1,V2,E) 是偶图。M 是图 G 的一个匹配。

  1. 称结点u∈V1∪V2u\in V_1\cup V_2 被 M 所匹配  ⟺  \iff 存在着匹配 M 的某条杆 e∈Me\in M,以 u 为其一个端点 (这时称结点 u 覆盖 (Covering) M 的杆 e) ;
  2. 称结点 u∈V1∪V2u\in V_1\cup V_2 是 M 的饱和点 (saturated node)   ⟺  \iff u 被 M 所匹配;否则,称结点u∈V1∪V2u\in V_1\cup V_2 是 M 的非饱和点 (unsaturated node) ;
  3. 交错路 (alternating path) 是一条分别交替的由 M 中的边和 E\M 中的边构成的极大的初级路;
  4. 增广路 (augmenting path) 是一条两个端点都是非饱和点的交错路

# 求最大匹配 M 的算法 (匈牙利方法-J.Edmonds (1965)):

  1. 任取一匹配 M (可以空或只取一边);
  2. 取S:={u∣u∈V1∧uS:=\{u|u\in V_1\land u 是 M 的非饱和点}\};若S=∅S=\varnothing 则 M 已是最大匹配;exit ;
  3. 任取一结点u0∈Su_0\in S,从 u0 走出几条交错路: Pi1,Pi2,...,Pi3P_{i1}, P_{i2},..., P_{i3} ;
  4. 如果这些路中有某一条是增广路,不妨记为 P,则令M:=M⊕P=(M∖P)∪(P∖M)M:=M\oplus P=(M\setminus P)\cup (P\setminus M) (并且 | M|(新)=|M|(旧)+1) ; go to No2 ;
  5. 如果这些路中无一条是增广路,则令S:=S∖{u0}S:=S\setminus\{u_0\};如果S≠∅S\ne \varnothing 则 go to No3 ;否则S=∅S=\varnothing 则 M 已是最大匹配;exit ;
更新于 阅读次数 次

请我喝[茶]~( ̄▽ ̄)~*

小春日和 微信支付

微信支付

小春日和 支付宝

支付宝

小春日和 wechat

wechat