图论

前言

作者大一选修了校内的图论课,经过约一个月的学习愈发感觉书中内容有趣而不失深度。

内容基于《图论导引(许胤龙、吕敏、李永坤主编)》。

但由于书中部分课后习题富有难度,遂对其中内容做一些讨论,供大家参考。

证明时会尽量保证严谨性,但可能不能保证记号与书中相同,如有错误还望指出。

注:习题解答请勿盗用,谢谢支持。

图的基本概念

图的定义

定义 \(1.1\) 一个无向图 \(G\) 是一个有序三元组 \(G=(V(G),E(G),\psi_G)\),其中:

  • \(V(G) \ne \varnothing\) 是顶点集合,任给 \(v \in V(G)\) 称为一个顶点
  • \(E(G)\) 是边集合,任给 \(e \in E(G)\) 称为一条
  • \(\psi_G:E(G) \rightarrow \{\{u,v\}|u,v \in V(G)\}\) 称为边与顶点之间的关联函数

\(G\) 的顶点个数 \(|V(G)|\) 称为图 \(G\),记为 \(\nu(G)\)。图 \(G\) 的边数 \(|E(G)|\) 记为 \(\varepsilon(G)\)。若 \(\nu(G)+\varepsilon(G)\) 为无穷大,则称 \(G\)无限图,否则称 \(G\)有限图

上述记号可以简记为 \(V,E,\nu,\varepsilon,\psi\)

在图 \(G\) 中,若 \(\psi_G(e)=\{u,v\}\),则称 \(e\)\(u,v\) 关联,也称 \(u,v\)\(e\) 的两个端点;称 \(u,v\) 相邻\(u,v\)邻顶。若两条边关联同一个顶点,则称这两条边相邻。若 \(\psi_G(e)=\psi_G(f)=\{u,v\}\),则称 \(e=f\)重边;若 \(u=v\),则称 \(e\)

无环也无重边的图叫做简单图,一般无特指的图均为简单图。

为了方便,将 \(\psi_G(e)=\{u,v\}\) 简记为 \(e=\{u,v\}\),更进一步地,简记为 \(e=uv\),由于在无向图中,有 \(uv=vu\)。为了方便,直接记 \(G=(V,E)\)\(E\) 直接用二元顶点对的方式表示。

以下是一些特殊图:

  • 完全图 \(n\) 个顶点的无向简单图 \(K_n\) 满足 \(\forall u,v \in V,u \ne v,uv \in E\)
  • 二分图 无向图 \(G\) 可以划分为 \(X \cup Y = G\),其中 \(X,Y \ne \varnothing,X \cap Y = \varnothing\)\(\forall uv \in E\)\(u,v\)\(X,Y\) 中的不同集合。完全二分图 \(K_{|X|,|Y|}\) 是一个简单图,满足 \(\forall x \in X,y \in Y\) 满足 \(xy \in E\)
  • 星图 完全二分图 \(K_{1,n}\)\(K_{n,1}\)
  • 零图 \(|E|=0\)

顶点度数

定义 \(1.2\) 给定无向图 \(G\)\(v \in V\)\(G\) 的一个顶点,\(v\)度数 \(\deg(v)\) 定义为 \(\deg(v)=d_1(v)+2 \times l(v)\),其中 \(d_1(v)\)\(v\) 关联的非环边数,\(l(v)\)\(v\) 关联的环边数。

定义 \(\delta(G)=\min\limits_{v \in V}\{\deg(v)\}\)\(\Delta(G)=\max\limits_{v \in V}\{\deg(v)\}\)

将图 \(G\) 中所有顶点的度数按照从大到小的顺序排列,称为图 \(G\) 的度数序列。

定理 \(1.1(\text{Euler},1736)\) 任给无向图 \(G\)\(\sum\limits_{v \in V} \deg(v)=2\varepsilon\)

证明

考虑 \(uv \in E\),每条边在 \(u,v\) 各贡献一次度数,按边计算总贡献为 \(2\varepsilon\),按点计算总贡献为 \(\sum\limits_{v \in V} \deg(v)\)

推论 \(1.1\) 任给图 \(G\)\(G\) 中度数为奇数的顶点个数为偶数。

证明

\(G\) 中读书为奇数的顶点个数为 \(\nu_o\)

\(\nu_o \equiv \sum\limits_{v \in V} \deg(v) \equiv 2\varepsilon \equiv 0 \pmod 2\)

子图与图的运算

定义 \(1.3\) 给定图 \(G\)\(H\),若 \(V(H) \subseteq V(G)\)\(E(H) \subseteq E(G)\),则称 \(H\)\(G\) 的一个子图,记为 \(H \subseteq G\)

定义 \(1.4\) 一些特殊子图:

  • 真子图 \(H \subseteq G\)\(H \ne G\),则称 \(H\)\(G\) 的真子图,\(H \subset G\)
  • 生成子图 \(H \subseteq G\)\(V(H) = V(G)\),则称 \(H\)\(G\) 的生成子图。
  • 顶点导出子图\(V' \subseteq V\),由 \(V'\) 导出的子图 \(G'[V']=(V',E')\),其中 \(E'=\{uv|u,v \in V'\}\)
  • 边导出子图\(E' \subseteq E\),由 \(E'\) 导出的子图 \(G'[E']=(V',E')\),其中 \(V'=\{v|v \in V,\exist uv \in E'\}\)

定义 \(1.5\) 补图和边图:

  • 补图\(G\) 的补图定义为 \(G^c=(V^c,E^c)\),其中 \(V^c=V,E^c=\{uv|u,v \in V,uv \notin E\}\)
  • 边图\(G\) 的边图定义为 \(L(G)=V(L(G)),E(L(G))\),其中 \(V(L(G))=E(G)\)\(E(L(G))=\{e_1e_2|e_1,e_2\in E(G),e_1e_2 \text{ 在 } G \text{ 中相邻}\}\)

对于 \(G\) 中的点 \(v\) 和边 \(e\),定义 \(G-v=(V-v,E-\{uv|u \in V,uv\in E\})\)\(G-e=(V,E-e)\)

定义 \(1.6\) 两张图的并、交和积:

  • \(G \cup H = (V(G) \cup V(H),E(G) \cup E(H))\)
  • \(G \cap H = (V(G) \cap V(H),E(G) \cap E(H))\)
  • \(G \times E = (V',E')\),其中 \(V'=V(G) \times V(H) = \{(u,v)|u \in V(G),v \in V(H)\}\)\(E'=\{(u_1,v_1)(u_2,v_2)|(u_1=u_2 \land v_1v_2 \in E(H)) \lor (u_1u_2 \in E(G) \land v_1=v_2) \lor (u_1u_2 \in E(G) \land v_1v_2 \in E(H)) \}\)

路径与连通

定义 \(1.7\) 基本概念:

  • 路径\(G\) 的路径 \(W\) 定义为 \(W=v_0e_1v_1e_2v_2 \cdots e_kv_k\),其中 \(v_i \in V,e_i \in E,e_i=v_{i-1}v_i\),称 \(k\)\(W\) 的长度,\(v_0\)\(v_k\) 分别为 \(W\) 的起点和终点。
  • 行迹 边不重复的路径。
  • 轨道 顶点不重复的路径。
  • 回路 起点与终点相同的路径。
  • 除了起点和终点,没有相同顶点的回路。

\(u,v\) 之间存在路径,称 \(u\)\(v\) 连通,否则称 \(u\)\(v\) 不连通。记距离 \(\text{dist}(u,v)\) 表示 \(u,v\) 之间最短轨道的长度。特别地,若 \(u,v\) 不连通,\(\text{dist}(u,v) = \infty\)。若 \(G\) 的任意两个顶点都连通,则称 \(G\) 连通

定义 \(1.8\) 给定图 \(G\),定义 \(V\) 上的二元关系 \(R \subseteq V \times V\) 如下:任给 \(u,v \in V\)\((u,v) \in R\) 当且仅当 \(u,v\)\(G\) 中连通。

\(R\) 是自反的、对称的与可传递的。故我们可以将 \(V\) 划分为一些等价类 \(V_1,V_2,\cdots,V_{\omega}\),使得:

\((1)\) \(\forall 1 \le i \le \omega, V_i \ne \varnothing\)

\((2)\) \(\forall 1 \le i < j \le \omega,V_i \cap V_j = \varnothing\)

\((3)\) \(\bigcup\limits_{i=1}^{\omega} V_i = V\)

满足 \((u,v) \in R \Longleftrightarrow \exists i, u,v \in V_i\)。此时称 \(G[V_i]\)\(G\) 的一个连通片\(\omega\) 为连通片个数。

\(G_i=G[V_i]\),可以将每个 \(G_i\) 视为一个独立的图,且有 \(G=G_1+G_2+\cdots + G_{\omega}\)

定理 \(1.2\)\(G\) 是二分图,当且仅当 \(G\) 中无奇圈。

img

证明

\(G\) 是二分图,任一圈在两个部之间交替经过顶点,因此长度必为偶数,故无奇圈。

反之,设 \(G\) 无奇圈。可对每个连通片分别处理。固定连通片中一个顶点 \(r\),令

\[X=\{v\mid \operatorname{dist}(r,v)\text{ 为偶数}\},\quad Y=\{v\mid \operatorname{dist}(r,v)\text{ 为奇数}\}. \]

若存在边 \(uv\) 使 \(u,v\) 同在 \(X\) 或同在 \(Y\),取 \(r\)\(u\)\(r\)\(v\) 的最短轨道。两条最短轨道从 \(r\) 出发到最后一个公共顶点后分开,再加上边 \(uv\),可得到一个奇圈,矛盾。因此每条边都连接 \(X\)\(Y\),该连通片是二分图。所有连通片合并仍为二分图。证毕。

图的同构

定义 \(1.9\) 给定图 \(G\) 和图 \(H\),若存在两个一一映射:

  • \(\theta: V(G) \rightarrow V(H)\)
  • \(\varphi: E(G) \rightarrow E(H)\)

满足任意 \(e \in E(G)\),当且仅当 \(\psi_G(e)=uv\) 时,有 \(\psi_H(\varphi(e))=\theta(u)\theta(v)\),则称 \(G,H\) 同构,记作 \(G \cong H\)

学术界普遍认为,不存在多项式时间复杂度的确定性判定同构的算法。

关于同构,有如下 \(\text{Ulam}\) 猜想,至今尚未解决。

\(\textbf{Ulam}\) 猜想 \((1929)\)\(G\)\(H\) 是两个图,\(\nu_G=\nu_H\),若存在映射 \(\theta\),任给 \(v \in V(G),G-v \cong H-\theta(v)\),那么 \(G \cong H\)

\(\text{Ulam}\) 猜想类似,也有一个边版本的猜想,同样尚未解决,这里略过。

有向图

定义 \(1.10\) 一个有向图 \(D\) 是一个有序三元组 \(D=(V(D),E(D),\psi_D)\),其中:

  • \(V(D) \ne \varnothing\) 是顶点集合,任给 \(v \in V(D)\) 称为一个顶点
  • \(E(D)\) 是边集合,任给 \(e \in E(D)\) 称为一条有向边,在不会混淆的情况下也简称为边。
  • \(\psi_D:E(D) \rightarrow V(D) \times V(D)\) 称为有向边与顶点之间的关联函数

与无向图不同的是,有向图中的边用有序对表示,而无向图的边则用二元集合来表示。若存在边 \(\psi_D(e)=(u,v)\),则称 \(u\)\(e\)起点(或),\(v\)\(e\)终点(或),\(u\)\(v\) 都称为 \(e\)端点

可以简写为 \(e=(u,v)\)\(e=uv\),特别地,\(uv \ne vu\)

给定有向图 \(D\),对于顶点 \(u \in V\),定义 \(u\)出度 \(\deg^+(u)\) 表示以 \(u\) 为起点的边数,入度 \(\deg^-(u)\) 表示以 \(u\) 为终点的边数。

\(u\)度数定义为两者之和,也就是 \(\deg(u)=\deg^+(u)+\deg^-(u)\)

定理 \(1.3\) 任给有向图 \(D\),有 \(\sum\limits_{v\in V} \deg^+(v)=\sum\limits_{v\in V} \deg^-(v)=\varepsilon\)

与无向图类似,我们可以定义有向图中的有向路径、有向迹、有向轨道、有向回路、有向圈的概念,与无向图中相关概念的区别在于:有向路径中边的方向要求一致。

若存在 \(u\)\(v\) 的有向路径,则称 \(u\) 可达 \(v\)

最短路径问题

给定边权图 \(G=(V,E,w)\),其中 \(w:E\to \mathbb R\),从顶点 \(s\) 到顶点 \(t\) 的最短路径问题是求所有 \(s\)\(t\) 的路径中边权和最小者。若所有边权非负,可以使用 \(\text{Dijkstra}\) 算法;若允许负权边但不存在从源点可达的负权回路,可以使用 \(\text{Bellman-Ford}\) 算法。

Dijkstra 算法:维护源点 \(s\) 到每个顶点的当前最短距离估计 \(d(v)\)。初始 \(d(s)=0\),其余为 \(+\infty\)。每次在未确定顶点中选取 \(d\) 最小的顶点 \(u\),将其确定,并用 \(u\) 的所有出边或关联边松弛邻点:

\[d(v)\leftarrow \min\{d(v),d(u)+w(uv)\}. \]

当所有顶点被确定时,\(d(v)\) 即为从 \(s\)\(v\) 的最短距离。

正确性证明

对确定顶点的顺序归纳。设当前选出的未确定顶点为 \(u\)。若存在一条从 \(s\)\(u\) 更短的路径,取这条路径上第一个未确定顶点 \(x\),其前驱 \(y\) 已确定。由于边权非负,松弛 \(y x\) 后应有 \(d(x)\) 不超过这条路径到 \(x\) 的长度,进而 \(d(x)\le\) 该路径到 \(u\) 的长度 \(<d(u)\),与 \(u\) 是未确定顶点中 \(d\) 最小者矛盾。故 \(d(u)\) 已是最短距离。证毕。

Bellman-Ford 算法:对所有边反复松弛 \(\nu-1\) 轮。任意不含重复顶点的最短路径至多含 \(\nu-1\) 条边,因此第 \(i\) 轮后可得到所有使用不超过 \(i\) 条边的最短路径长度。若第 \(\nu\) 轮仍能松弛,则存在从源点可达的负权回路。

习题

\(1.1.\) \(G\) 是简单图,则有 \(\varepsilon \le \dbinom{\nu}{2}\)

解答

简单图无环、无重边,每条边对应一个无序二元顶点子集。\(\nu\) 个顶点的无序二元子集共有 \(\binom{\nu}{2}\) 个,因此边数不超过 \(\binom{\nu}{2}\)

\(1.2.\) 证明或举例说明下面的结论:

\((1)\)\(G \cong H\),则 \(\nu(G)=\nu(H)\)\(\varepsilon(G)=\varepsilon(H)\)

\((2)\) \((1)\) 的逆不成立。

解答

\((1)\) 同构包含顶点集之间的一一映射和边集之间的一一映射,因此顶点数、边数分别相等。

\((2)\)\(4\) 阶图 \(P_4\)\(K_{1,3}\)。二者都有 \(4\) 个顶点、\(3\) 条边,但 \(P_4\) 的度数序列为 \((2,2,1,1)\)\(K_{1,3}\) 的度数序列为 \((3,1,1,1)\),故不同构。

\(1.3.\) 画出所有不同构的四个顶点的简单图。

解答

按边数分类即可。由于补图会把 \(m\) 条边变成 \(6-m\) 条边,只需列出 \(m=0,1,2,3\) 的情形,再取补图。

\(m=0\):零图。

\(m=1\):一条边加两个孤立点。

\(m=2\):两条相邻边 \(P_3+K_1\);两条不相邻边 \(2K_2\)

\(m=3\)\(P_4\)\(K_{1,3}\)\(K_3+K_1\)

再取上述 \(m=0,1,2\) 情形的补图,得到 \(m=6,5,4\) 的全部情形。因此四个顶点的简单图共有 \(11\) 个非同构类。

\(1.4.\) 任何至少由两个人构成的群体中,其中有两个人,他们的朋友数一样多。

解答

反证,将朋友关系构建成一张无向图,若没有人朋友数相同,说明 \(\deg\) 互不相同,又有 \(0 \le \deg < \nu\),故度数序列为 \(0,1,\cdots ,\nu -1\)\(\nu \ge 2\)

\(\deg=0\)\(\deg= \nu -1\) 分别表示没有朋友和全是朋友,显然矛盾,故原命题成立。

\(1.5.\) \(2n(n\ge 2)\) 人中,每个人至少与其中的 \(n\) 个人认识,则其中至少有四个人,使得这四个人围桌而坐时,每个人旁边都是他认识的人。

解答

将认识关系构建成一张无向图 \(G\),若任意两人互相认识,则 \(G=K_{2n}\),显然成立。

故假设两顶点 \(u,v\) 满足 \(uv \notin E\),考虑 \(u,v\) 相邻的点的集合 \(P_u,P_v\),有 \(u,v \notin P_u \cup P_v\),故 \(|P_u \cap P_v| = |P_u| + |P_v| - (2n-2) \ge 2\)

\(x,y \in P_u \cap P_v,x \ne y\),则圈 \(W_C=u(ux)x(xv)v(vy)y(yu)u\) 存在,原命题成立。

\(1.6.\) 证明两张同构的图同构(图略)。

解答

证明两图同构时,只需给出顶点之间的一一对应 \(\theta\),并逐条检查边的关联关系被保持:对任意顶点 \(u,v\),有

\[uv\in E(G)\Longleftrightarrow \theta(u)\theta(v)\in E(H). \]

若题图中已经给出两张图,可按度数先对应特殊顶点,再检查相邻关系。度数序列、三角形个数、割点数等都是同构不变量,可用来辅助确定映射。

\(1.7.\) 证明下面的结论:

\((1)\) \(\varepsilon(K_{m,n}) = mn\)

\((2)\)\(G\) 是二分图,\(\varepsilon(G) \le \dfrac{\nu^2(G)}4\)

解答

\((1)\) 完全二分图的每条边连接两侧顶点。左侧 \(m\) 个顶点、右侧 \(n\) 个顶点,每一对左右顶点之间恰有一条边,故边数为 \(mn\)

\((2)\) 设二分图两侧大小为 \(a,b\)\(a+b=\nu\)。边数至多为完全二分图 \(K_{a,b}\) 的边数 \(ab\),而

\[ab\le \left(\frac{a+b}{2}\right)^2=\frac{\nu^2}{4}. \]

因此 \(\varepsilon(G)\le \nu^2/4\)

\(1.8.\)\(G\) 是图,给定 \(V(G)\) 的非空真子集 \(V'\),记 \(k\) 为一个端点在 \(V'\) 中,另一个端点在 \(V(G) - V'\) 中的边数。若 \(V'\) 中度数为奇数的顶点数为偶数,则 \(k\) 为偶数;否则,\(k\) 为奇数。

解答

\(\nu_o\)\(V'\) 中度数为奇数的顶点个数。

\(\left(\sum\limits_{v \in V'} \deg(v)\right)-k \equiv \nu_o - k \equiv 2\varepsilon(G[V']) \equiv 0 \pmod 2\)

\(\nu_o \equiv k \pmod 2\)

\(1.9.\) 每个顶点的度数都是 \(2\) 的连通图是一个圈。

解答

显然 \(\nu = 1\) 时成立。

考虑找一个 \(uv \in E\)。维护一条轨道 \(W_k=v_0e_1v_1\cdots e_kv_k\),初始 \(W_1=u(uv)v\)

考察 \(W_k \rightarrow W_{k+1}\)\(\deg(v_k)=2\),记与它关联的两条边为 \(uv_k,wv_k\),令 \(wv_k=v_{k-1}v_k\)

\(k=\nu -1\),那么 \(u=v_0\),此时 \(W_{k+1}=v_0e_1v_1\cdots e_{k+1}v_{k+1}\),且 \(v_{k+1}=v_0\),构成一个圈。

\(k\ne \nu -1\),那么若 \(u=v_0\),则 \(G\) 不连通,故 \(W_{k+1}=v_0e_1v_1\cdots e_{k+1}v_{k+1}\),仍是一条轨道。

至此归纳完毕,\(G\) 是一个圈。

\(1.10.\) 证明或说明下面的结论。

\((1)\)\(G^c \cong G\),则称 \(G\) 是自补图。证明:若 \(G\) 是自补图,则 \(\nu(G) \bmod 4 = 0 \lor \nu(G) \bmod 4 = 1\)

\((2)\) 有多少个 \(\nu (G)=5\) 的自补图。

解答

\((1)\) 显然 \(\varepsilon = \dfrac{\nu(\nu -1)}4\),而 \((\nu,\nu-1)=1\),故 \(4|\nu \lor 4|(\nu-1)\)

\((2)\)\(\Delta(G) = \nu -1\),那么有 \(\delta(G^c) = 0\),若 \(G\) 自补,有 \(\delta(G) = 0\),由 \(1.4.\) 中结论,\(\delta(G) = 0\)\(\Delta(G) = \nu -1\) 不能同时出现。

那么度数为 \(3\) 和度数为 \(1\) 的顶点数相同,且 \(G\)\(G^c\) 都连通(之前推论),故以此分类:

  1. \(0\) 个度数为 \(1\) 的顶点。此时 \(G\) 是一个圈,答案为 \(\dfrac{4!}2=12\)
  2. \(1\) 个度数为 \(1\) 的顶点。那么度数为 \(1\) 和度数为 \(3\) 的顶点中间的边只存在与 \(G\)\(G^c\) 其中之一,不可能同构,答案为 \(0\)
  3. \(2\) 个度数为 \(1\) 的顶点。那么度数为 \(1\) 不能和度数为 \(1\) 的顶点相邻,度数为 \(3\) 和度数为 \(3\) 的顶点一定相邻,那么剩余 \(4\) 条边只能往度数 \(\le 2\) 的点上连,刚好连完,答案为 \(5 \times 6 \times 2=60\)

总答案为 \(72\)

\(1.11.\) 构造一个二分图 \(G\),使得 \(G\) 不与任何 \(k\) 维立方体的子图同构,其中,\(k\) 为任意正整数。

解答

取完全二分图 \(K_{2,3}\)。它当然是二分图。

\(k\) 维立方体 \(Q_k\) 的顶点可表示为 \(0\)-\(1\) 串,两点相邻当且仅当只差一个坐标。任取 \(Q_k\) 中两个不同顶点,它们的公共邻点数至多为 \(2\):若两点距离为 \(2\),公共邻点恰有 \(2\) 个;其他距离时公共邻点数为 \(0\)。但在 \(K_{2,3}\) 中,同侧两个度数为 \(3\) 的顶点有 \(3\) 个公共邻点。因此 \(K_{2,3}\) 不可能同构于任何立方体的子图。

\(1.12.\) \(G\) 是简单图,\(\nu(G) \ge 4\),整数 \(n\) 满足 \(1<n<\nu(G)\)。证明:若任给 \(G\)\(n\) 个顶点构成的顶点子集,其导出子图都有相同的边数,则 \(G \cong K_{\nu(G)} \lor G \cong K_{\nu(G)}^c\)

解答

\(n=2\) 得证。

\(1.13.\) 任给图 \(G\),都满足 \(\delta(G) \le \dfrac{2\varepsilon(G)}{\nu(G)} \le \Delta(G)\)

解答

\(\delta(G) \le \deg(v) \le \Delta(G)\) 得证。

\(1.14.\) 我们将图 \(G\) 中所有顶点的度数按照从大到小的顺序排列,称为图 \(G\) 的度数序列。证明:

\((1)\) \(7,6,5,4,3,3,2\)\(6,6,5,4,3,3,1\) 都不是简单图的度数序列。

\((2)\)\(d_1,d_2,\cdots,d_n\) 是简单图的度数序列,则 \(\sum\limits_{i=1}^n d_i\) 是偶数,且对任意 \(1 \le k \le n\),都有 \(\sum\limits_{i=1}^k d_i \le k(k-1) + \sum\limits_{i=k+1}^n \min\{k,d_i\}\)

解答

\((1).a\) 显然 \(\Delta(G) < \nu\)

\((1).b\) 显然 \(d_1=d_2=\nu -1\),故 \(d_i \ge 2\)

\((2)\) 显然 \(\sum\limits_{i=1}^n d_i=2 \varepsilon\),而左式分为顶点导出子图内和外两部分,边数上限分别为 \(k(k-1)\)\(\sum\limits_{i=k+1}^n \min\{k,d_i\}\)

\(1.15.\) 任给无环图 \(G\)\(G\) 有一个生成子图 \(H\),满足:

\((1)\) \(H\) 是二分图。

\((2)\) 任给 \(u \in V(G)=V(H)\),都有 \(\deg_H(u) \ge \dfrac{\deg_G(u)}{2}\)

解答

考虑给每个顶点 \(u\) 染色 \(c_u=0/1\)\(uv \in E(H)\) 当且仅当 \(uv \in E(G) \land c_u \ne c_v\),这样 \(H\) 是二分图。初始时 \(\forall i,c_i=0\)

考虑调整,每次找一个顶点 \(u\) 满足 \(\deg_H(u) < \dfrac{\deg_G(u)}{2}\),若不存在则 \(H\) 是答案,否则令 \(c_u' \leftarrow \lnot c_u\),此时 \(\varepsilon' \leftarrow \varepsilon + \deg_G(u)-2\deg_H(u)>\varepsilon\)

这样每次调整 \(H\) 的边数均增多,总会调整直到找不到 \(u\),得到答案。

\(1.16.\) 假设 \(G\) 是简单图,且 \(\delta(G)\ge k\),则 \(G\) 中有长为 \(k\) 的轨道。

解答

反证,若最长轨道长度 \(W\) 长度 \(<k\),记轨道其中之一的端点为 \(u\),由于 \(\deg(u) \ge \delta(G) \ge k\),而轨道内除 \(u\) 的顶点只有至多 \(k-1\) 个,说明 \(\exists v,uv \in E,v \notin W\),那么 \(W\) 不是最长轨道,矛盾。故原命题成立。

\(1.17.\) \(G\) 是连通图,当且仅当 \(V(G)\) 任意分成两个非空子集 \(V'\)\(V(G)-V'\),总存在一条边,它的两个端点分属 \(V'\)\(V(G)-V'\)

解答

\(G\) 连通,任取非空真子集 \(V'\)。取 \(u\in V'\)\(v\in V-V'\),两点之间有轨道。沿这条轨道从 \(u\) 走向 \(v\),必然第一次从 \(V'\) 走到 \(V-V'\),对应边就是跨割边。

反之,若 \(G\) 不连通,取 \(V'\) 为某个连通片的顶点集,则 \(V'\)\(V-V'\) 之间没有边,和题设矛盾。因此 \(G\) 连通。

\(1.18.\) \(G\) 是简单图,且 \(\varepsilon (G)>\dbinom{\nu (G)-1}2\),则 \(G\) 是连通图。

解答

反证,由 \(1.17.\) 结论,\(G\) 不连通当且仅当存在一个划分 \(V',V-V'\) 使得不存在 \(uv \in E,u \in V',v \in V-V'\)

考虑任意一组划分 \(V',V-V'\),若不连通则有 \(\varepsilon \le \dbinom{|V'|}{2} + \dbinom{\nu-|V'|}{2} \le \dbinom{\nu-1}{2}\)。矛盾,故原命题成立。

\(1.19.\) 对于图 \(G\)

\((1)\) 证明:任给 \(e \in E(G)\),都满足 \(\omega(G) \le \omega(G-e) \le \omega(G)+1\)

\((2)\) 说明:对于图 \(G\) 的任意顶点 \(v\),用 \(G-v\) 代替 \(G-e\)\((1)\) 中的不等式未必成立。

解答

\((1)\) 考虑删边会让连通性变差,左侧得证。

右侧视为 \(G-e\) 加入了一条新边 \(e\),那么连通片个数至多减少 \(1\)

\((2)\) 考虑删除一个星图中的一个点,连通片个数减 \(1\)

\(1.20.\)\(G\) 是连通图,且每个顶点的度数都是偶数,则 \(\omega(G-v) \le \dfrac{\deg(v)}2\)

解答

考虑 \(G-v\) 中的每一个连通片,由 \(1.8.\) 中结论,每个连通片与 \(v\) 直接至少有两条边。故原命题显然成立。

\(1.21.\) 连通图 \(G\) 中任意两条最长的轨道都有公共顶点。

解答

反证,假设 \(W_1,W_2\) 无公共顶点且长度均为 \(l\),考虑 \(W_1,W_2\) 如何连通。假设 \(x \in W_1,y \in W_2\)\(x,y\) 之间有轨道 \(W\) 满足 \(W \cap W_1 = x,W \cap W_2 = y\)

那么记 \(W_1\) 中距 \(x\) 较远的路径端点为 \(p\)\(W_2\) 中距 \(y\) 较远的路径端点为 \(q\),由 \(p \rightarrow x \rightarrow y \rightarrow q\) 构成的轨道长度 \(l' > \dfrac{l}{2} + \dfrac{l}{2} = l\),假设不成立。

\(1.22.\)\(G\) 是简单连通图,但不是完全图。证明:\(G\) 中存在三个顶点 \(u,v,w\),使得 \(uv,vw \in E(G)\),但是 \(uw \notin E(G)\)

解答

考虑更强的性质:在 \(G\) 的最长轨道 \(W\) 上存在 \(u,v,w\) 满足以上性质。记 \(W\) 上点集为 \(V'\)

引理\(G[V']\) 不是完全图 \(K_{|V'|}\),那么存在 \(u,v,w\)

\(W=v_0e_1v_1\cdots e_kv_k\),存在 \(v_iv_j(i<j) \notin E'\)。若 \(v_{i+1}v_j \in E'\),则找到 \(v_i,v_{i+1},v_j\) 符合条件。否则 \(i \leftarrow i+1\),为相同形式的子问题,且 \(j-i\) 减小,总会到 \(j-i=2\) 找到答案。

反证,若 \(G[V']\) 是完全图 \(K_{|V'|}\),讨论。

\(V'=V\),不满足 \(G\) 不是完全图。

若不存在 \(V',V-V'\) 中间的连边,那么由 \(1.17.\) 结论,\(G\) 不是连通图。

故存在 \(uv \in E,u \in V',v \notin V'\),此时由于 \(G[V']\) 是完全图,存在一条任意顺序经过 \(V'\) 中所有顶点的轨道,令 \(u\) 为起点的轨道是 \(W_u\),那么 \(W'=v(vu)W_u\),仍是轨道且更长,矛盾。

综上,原命题成立。

\(1.23.\) \(G\) 是一个简单图,\(e\in E(G)\) 在一个起点与终点相同的行迹上,则 \(e\) 在一个圈上。

解答

若行迹除了首尾仍有公共点,则可以分为两个行迹,选择 \(e\) 所在的一侧即可,规模减小,总能最后变成一个圈。

\(1.24.\) \(G\) 是简单图,\(\delta(G) \ge 2\),则 \(G\) 中有长为 \(\delta(G)+1\) 的圈。

解答

利用最长轨道证明。取 \(G\) 中一条最长轨道 \(P=v_0v_1\cdots v_m\)。最长性说明 \(v_0\) 的所有邻点都在 \(P\) 上,否则可从 \(v_0\) 向外延长轨道。由于 \(\deg(v_0)\ge 2\)\(v_0\) 至少有一个不同于 \(v_1\) 的邻点 \(v_i\),其中 \(i\ge 2\)。取这样的最大 \(i\),则 \(v_0v_1\cdots v_i v_0\) 是一个圈,长度为 \(i+1\)。又 \(v_0\)\(P\) 上至少有 \(\deg(v_0)\) 个邻点,最大下标 \(i\ge \deg(v_0)\ge \delta(G)\),故该圈长度至少为 \(\delta(G)+1\)

\(1.25.\)\(G\) 是简单图。证明:

\((1)\)\(\varepsilon(G) \ge \nu(G)\),则 \(G\) 中有圈。

\((2)\)\(\varepsilon(G) \ge \nu(G)+4\),则 \(G\) 中有两个无公共边的圈。

解答

这里只证明 \(G\) 是连通图,非连通的情况容易转化,这里略过。

\((1)\) 考虑 \(G\) 是由星图加边得到的。

引理 对于图 \(G\),有 \(\nu \le \varepsilon+ \omega\),特别地,\(G\) 中无圈时有 \(\nu = \varepsilon +\omega\)

\(\varepsilon =0\) 时有 \(\nu = \omega\),每次加边可能减少一个连通片,显然成立。

无圈时每次加边必减少一个连通片,否则成圈,显然也成立。

故无圈时有 \(\varepsilon = \nu -\omega<\nu\),也就是说 \(\varepsilon \ge \nu\) 时有圈。

\((2)\) 可以用生成树和弦构成基本圈的思路证明。

只证 \(\varepsilon = \nu +4\)

考虑构建一颗 \(G\) 的生成树 \(T\),剩下 \(5\) 条非树边记为 \(e_1,e_2,e_3,e_4,e_5\),每条边与树上一条轨道构成一个圈。

考虑拿出 \(e_5\) 构成的圈 \(W\),将圈上点的编号逆时针命名为 \(1 \sim k\)

考虑 \(e_1,e_2,e_3,e_4\) 构成的圈与 \(W\) 的交。

引理 树上两条轨道若边相交,则交仍是一条轨道。

若两条树上轨道的公共边部分不连通,则可在两段公共部分之间找到两条不同的连接轨道,从而形成圈,这与树无圈矛盾。因此公共边部分连通,仍是一条轨道。

考虑若 \(e_i\) 构成的圈与 \(W\) 无交,则找到答案,若有交,记录为 \(P_i,Q_i\) 的形式,表达为树上轨道的两个端点,无交的部分记为 \(L_i\)

\(W_{l,r}\) 表示圈上第 \(l\) 个点到第 \(r\) 个点构成的轨道(若 \(l>r\) 表示跨过第 \(k\) 个点)。

若所有 \(P_i,Q_i\) 互不相同,那么不会出现 \(i,j\) 满足 \(P_i < P_j < Q_j < Q_i\),否则 \(L_iW_{Q_i,P_i}\)\(L_jW_{P_j,Q_j}\) 构成两个边不交的圈。

故令 \(P_1 <P_2 <P_3<P_4<Q_1<Q_2<Q_3<Q_4\),那么 \(W_{P_1,P_2}L_2W_{Q_1,Q_2}L_1\)\(W_{P_3,P_4}L_4W_{Q_3,Q_4}L_3\) 构成两个边不交的圈。

故存在某个 \(P_i,Q_j\) 相同。

假设 \(P_1=P_2=1\),若 \(Q_1=Q_2\),则 \(L_1L_2\)\(W\) 构成两个边不交的圈(这里 \(L_1L_2\) 可能有重边,但其中可以找到一个圈)。

\(Q_1<Q_2\),若 \(P_3,Q_3\) 均不等于 \(1,Q_1,Q_2\) 之一,那么再令 \(P_3<Q_1<Q_2<Q_4\)(若不满足则有 \(P_i < P_j < Q_j < Q_i\))。此时 \(W_{Q_3,P_3}L_3\)\(L_1L_2W_{Q_1,Q_2}\) 构成两个边不交的圈。

假设 \(P_3=1\),那么可以推断出 \(P_4=1\),且令 \(Q_1<Q_2<Q_3<Q_4\),那么 \(L_2L_3W_{Q_2,Q_3},L_1L_4W_{Q_4,Q_1}\)\(L_1L_1W_{Q_1,Q_2},L_3L_4W_{Q_3,Q_4}\) 中必有一组满足条件。

故假设 \(P_3=Q_1\),那么若 \(Q_2=Q_3\),则 \(L_1L_2L_3\)\(W\) 构成两个边不交的圈。

也就是说 \(Q_2<Q_3\),此时无论 \(P_4,Q_4\) 满足何种条件均会变成之前讨论过的情况之一,故无论如何均能找到两个边不交的圈。

\(1.26.\) 给定 \(G\) 的邻接矩阵表示,求单源最短路。

解答

若图无权,可直接在邻接矩阵上做 BFS。维护队列和距离数组 \(d\),初始 \(d(s)=0\),其余为 \(+\infty\)。每次取出顶点 \(u\),扫描矩阵第 \(u\) 行,若 \(a_{uv}>0\)\(d(v)=+\infty\),则令 \(d(v)=d(u)+1\) 并入队。算法结束后,\(d(v)\) 即为从 \(s\)\(v\) 的最短距离。

若是非负权图,则在邻接矩阵上使用 Dijkstra 算法:每轮选取未确定顶点中 \(d\) 最小者 \(u\),扫描第 \(u\) 行并松弛所有边。时间复杂度为 \(O(\nu^2)\)

\(1.27.\) 船公要将一只狼、一只羊和一棵白菜运过河。假定一次只能运其中的一个,且为了安全起见,又不能使得狼与羊,或者羊与白菜在无人看管时在一起。请为船公设计一个安全快速的运送方案。

解答

\(\rightarrow\)\(\leftarrow\)

\(\rightarrow\)\(\leftarrow\)

\(\rightarrow\)\(\leftarrow\)

\(\rightarrow\)

\(1.28.\) 现有一个 \(8\) 升的瓶子,其中装满酒。给你两只容量分别为 \(3\) 升与 \(5\) 升的空瓶子,请设计一个将 \(8\) 升酒平分为两个 \(4\) 升的方法。

解答

\(8 \rightarrow 5,8(3),5(5),3(0)\)

\(5 \rightarrow 3,8(3),5(2),3(3)\)

\(3 \rightarrow 8,8(6),5(2),3(0)\)

\(5 \rightarrow 3,8(6),5(0),3(2)\)

\(8 \rightarrow 5,8(1),5(5),3(2)\)

\(5 \rightarrow 3,8(1),5(4),3(3)\)

\(3 \rightarrow 8,8(4),5(4),3(0)\)

\(1.29.\) 假设 \(G\) 是连通图,\(\nu(G)\ge 2\)\(\varepsilon(G)< \nu(G)\),则 \(G\) 中至少有两个度数为 \(1\) 的顶点。

解答

利用 \(1.25.\) 中引理证明难度不大,留给读者思考。

树的基本概念

定义 \(2.1\) 连通无圈图称为,用 \(T\) 表示。树中度数为 \(1\) 的顶点称为树叶,度数大于 \(1\) 的顶点称为分支点,边称为树枝。每个连通片都是树的非连通图称为森林。孤立点称为平凡树

定理 \(2.1\)\(G=(V(G),E(G))\) 是简单无向图,则以下命题等价:

  • \(G\) 是树。
  • \(G\) 的任意两个顶点之间有且仅有一条轨道。
  • \(G\) 不含圈,且 \(\varepsilon(G)=\nu(G)-1\)
  • \(G\) 是连通图,且 \(\varepsilon(G)=\nu(G)-1\)
  • \(G\) 是连通图,且删去任意一条边后都不连通。
  • \(G\) 不含圈,且任意添加一条边后恰好含一个圈。

断言\(G\) 是连通图,则 \(\varepsilon(G) \ge \nu(G)-1\)

定理 \(2.2\) 任一非平凡树 \(T\) 至少有两片树叶。

证明

\(\nu >1\),而 \(T\) 连通,故 \(\delta(T)\ge 1\),记 \(\deg(v)=1\)\(v \in V\)\(k\) 个,那么有 \(2\varepsilon=2\nu-2 \ge 2(\nu-k)+k=2\nu -k\),得到 \(k \ge 2\)

定义 \(2.2\) 设图 \(G=(V,E)\) 是连通图,任取 \(v \in V\),称 \(l(v)=\max\{\text{dist}(u,v)|u \in V\}\) 是顶点 \(v\)离心率,称 \(r(G)=\min\{l(v)|v \in V\}\) 是图 \(G\)半径

离心率恰好等于半径(即 \(l(v)=r(G)\))的顶点 \(v\),称为 \(G\) 的一个中心点\(G\) 中全体中心点的集合称为 \(G\)中心

生成树

定义 \(2.3\) 如果图 \(G\) 的生成子图 \(T\) 是树,则称 \(T\)\(G\) 的一棵生成树;如果 \(T\) 是森林,称它为 \(G\)生成森林。生成树的边称为树枝,图 \(G\) 中非生成树的边称为\(T\) 相对于 \(G\) 的补图 \(T^c_G\) 称为 \(G\)余树\(T^c_G\)\(G\) 的生成子图,其边集合由 \(G\) 中不在 \(T\) 上的边组成。

定理 \(2.3\) 每个连通图都有生成树。

证明

\(G\) 连通,故 \(G\) 存在连通生成子图,考虑边最少的连通生成子图 \(G'\)。若 \(G'\) 含圈 \(C\),那么考虑删除 \(e \in C\)\(G'-e\) 仍为 \(G\) 的连通生成子图,\(G'\) 不是边最少的。

\(G'\) 不含圈,\(G'\)\(G\) 的生成树。

推论 \(2.1\)\(G\) 是连通图,则 \(\varepsilon(G) \ge \nu(G)-1\)

推论 \(2.2\) \(G\) 是连通图的充分必要条件是 \(G\) 有生成树。

定理 \(2.4(\text{Cayley})\)\(G\) 是连通图,\(e=uv \in E(G)\) 且不是环,则 \(\tau(G)=\tau(G-e)+\tau(G\cdot e)\),其中,\(\tau(G)\) 表示 \(G\) 的生成树数量,\(G \cdot e\)\(G\) 中收缩掉边 \(e\) 后得到的图,即首先删掉边 \(e\),然后将 \(u\)\(v\) 合并为一个顶点,设为 \(w\),再将 \(G\) 中原来与 \(u\)\(v\) 相邻的顶点都与 \(w\) 连一条边。

证明

考虑将 \(G\) 的生成树分为包含 \(e\) 与不含 \(e\) 两类,\(\tau(G)=\tau(G-e)+\tau(G\cdot e)\)

定理 \(2.5\) \(\tau(K_n) = n^{n-2}\)

证明

使用 \(\text{Pr}\ddot{\text{u}}\text{fer}\) 序列。对一棵标号为 \(1,2,\cdots,n\) 的树,重复执行 \(n-2\) 次:删去当前编号最小的树叶,并记录它唯一邻点的编号。得到一个长度为 \(n-2\) 的序列。

反过来,给定任意长度为 \(n-2\) 的序列 \((a_1,\cdots,a_{n-2})\),每次取当前不在剩余序列中的最小编号 \(x\),连边 \(xa_i\),删去 \(x\) 和序列首项 \(a_i\);最后剩下两个编号,连成最后一条边。该过程得到一棵树,且与前述编码互逆。

因而 \(K_n\) 的生成树与长度为 \(n-2\)、每项取自 \(\{1,\cdots,n\}\) 的序列一一对应,共 \(n^{n-2}\) 个。证毕。

关于生成树计数,还有矩阵树定理。

定理 \(2.6(\text{矩阵树定理})\)\(G\) 是无向图,\(L=D-A\)\(G\) 的 Laplace 矩阵,其中 \(D\) 是度数对角矩阵,\(A\) 是邻接矩阵。删去 \(L\) 的任意一行和任意一列得到的余子式行列式值都等于 \(G\) 的生成树个数 \(\tau(G)\)

证明

\(G\) 任意定向,设 \(B\) 为有向关联矩阵,删去一行得 \(B_f\)。有 \(L=BB^T\),相应余子式为 \(B_fB_f^T\)。由 Cauchy-Binet 公式,

\[\det(B_fB_f^T)=\sum_{S\subseteq E,\ |S|=\nu-1}\det(B_f[S])^2. \]

由关联矩阵判定生成树的定理,\(B_f[S]\) 满秩当且仅当 \(S\) 构成生成树;此时行列式为 \(\pm1\),否则为 \(0\)。所以上式正好数出生成树个数。证毕。

最小生成树

定义 \(2.4\) 给定连通边权图 \(G=(V(G),E(G),w)\),其中,\(w:E(G) \rightarrow \mathbf{R} ^+\) 为边权函数,\(G\)生成树 \(T\) 的权定义为 \(w(T) = \sum\limits_{e \in E(T)} w(e)\),权最小的生成树称为 \(G\)最小生成树

求最小生成树一般有 \(\text{Kruskal}\)\(\text{Prim}\) 两种算法。

Kruskal 算法:将所有边按权从小到大排序,依次考察每条边;若加入该边不会形成圈,则加入生成树,否则跳过。直到选出 \(\nu-1\) 条边。

Prim 算法:从任意顶点开始,维护已加入顶点集合 \(S\)。每次选择一条权最小的边连接 \(S\)\(V-S\),将其加入生成树并扩展 \(S\),直到 \(S=V\)

正确性证明

使用割性质。任取顶点划分 \((S,V-S)\),跨越该割的最小权边一定属于某棵最小生成树:若一棵最小生成树不含这条边,加入它会形成唯一圈,该圈上有另一条跨割边,删去那条边仍得生成树且权不增。

Prim 每一步选择的正是某个割的最小跨割边,故安全。Kruskal 每次选择连接两个不同连通片的最小边,也可看作对应割的最小跨割边,故安全。反复应用割性质,最终得到最小生成树。证毕。

还有一种破圈法,由 \(\text{Rosenstiehl}\) 和管梅谷分别于 \(1967\) 年和 \(1975\) 年给出,在习题中还会遇到。

二叉树及其应用

定义 \(2.5\) 有根树是指定一个顶点作为,并且每条边的方向都离开根的有向树。设 \(T\) 是一棵非平凡的有根树,任给 \(v_i,v_j \in V(T)\),若 \((v_i,v_j) \in E(T)\),则称 \(v_i\)\(v_j\)父亲\(v_j\)\(v_i\)儿子;同父之子称为兄弟;若从 \(v_i\)\(v_j\) 有一条有向轨道,则称 \(v_i\)\(v_j\)祖先\(v_j\)\(v_i\)后代

一般认为 \(v \in V(T)\) 是自己的祖先,也是自己的后代。

定义 \(2.6\) 在有根树中仅有一个顶点入度为 \(0\),其余顶点的入度均为 \(1\)。有根树 \(T\) 中入度为 \(0\) 的顶点就是,入度为 \(1\) 出度为 \(0\) 的顶点称为树叶,入度为 \(1\) 出度不为 \(0\) 的顶点称为内点,内点和根统称为分支点。从根到 \(T\) 的任一顶点 \(v\) 的距离称为 \(v\)深度 \(L(v)\),深度的最大值称为树高 \(h(T)\)

根的深度为 \(0\),称为第 \(0\) 层。深度同为 \(i\) 的顶点构成树的第 \(i\) 层。

定义 \(2.7\)\(T\) 是一棵有根树,若每个顶点的孩子都从左到右规定了次序,则称 \(T\)有序树

定义 \(2.8\)\(T\) 是一棵有根树。

  • \(T\) 的每个分支点至多有 \(r\) 个儿子,则称 \(T\)\(r\) 叉树
  • \(T\) 的每个分支点都恰好有 \(r\) 个儿子,则称 \(T\)\(r\) 叉正则树
  • \(T\)\(r\) 叉正则树且每个树叶的深度都是树高,则称 \(T\)\(r\) 叉完全正则树
  • \(T\)\(r\) 叉树且为有序树,则称 \(T\)有序 \(r\) 叉树
  • \(T\)\(r\) 叉正则树且为有序树,则称 \(T\)有序 \(r\) 叉正则树
  • \(T\)\(r\) 叉完全正则树且为有序树,则称 \(T\)有序 \(r\) 叉完全正则树

定理 \(2.8\) 二叉树有以下性质:

  • \(i\) 层的顶点数最多是 \(2i\)
  • 深度为 \(h\) 的二叉树最多有 \(2^{h+1}-1\) 个顶点。
  • 设二叉树出度为 \(2\) 的顶点数为 \(n_2\),树叶数为 \(n_0\),则有 \(n_0=n_2+1\)
  • 包含 \(n\) 个顶点的二叉树的高度至少为 \(\log(n+1)-1\)

定义 \(2.9\) 设二叉树 \(T\)\(t\) 片树叶 \(v_1,v_2,\cdots,v_t\),其权值分别为 \(w_1,w_2,\cdots , w_t\)\(T\)加权路径长度 \(\text{(weighted path length)}\) 定义为:\(\text{WPL}(T) = \sum\limits_{i=1}^t w_iL(v_i)\),其中 \(L(v_i)\)\(v_i\) 的深度。

给定一组树叶的权值,加权路径长度最短的树称为最优二叉树。最优二叉树常用于各类优化问题。

\(\text{Huffman(1951)}\) 提出了一种求最优二叉树的算法。

Huffman 算法:每次取当前权值最小的两棵树作为左右子树合并,新树根权值为两者权值之和;把新树放回集合,重复直到只剩一棵树。

正确性证明

在任意最优二叉树中,权值最小的两片树叶可安排为深度最大的兄弟叶。否则若较小权值叶深度更浅,与更深处较大权值叶交换不会增加 WPL;若二者不是兄弟,可调整最深兄弟叶使 WPL 不增。

于是将这两个最小权叶合并为权值之和的新叶,原问题化为规模少 \(1\) 的同类最优二叉树问题。归纳可知 Huffman 每一步合并最小两权是最优的。证毕。

定义 \(2.11\) 决策树又称为判定树,是运用于分类的一种树结构。它的每个分支点对应输入数据的一个特征,表示对此特征的一次测试;每条边表示一个测试结果;树叶表示最终的分类结果,代表某个具体的类或者类的分布。

决策树模型形成了分类或者预测规则,可以看作一组 \(\text{if-then}\) 规则的集合,从根到叶的每一条路径代表了一条规则;可以证明,这些规则具有互斥且完备的性质,即每一个样本被且只被一条路径覆盖。

构造决策树通常采用自上而下的递归构造方法,通过不断选择特征并根据所选择的特征进行测试,使得一个分支点包含的数据尽可能属于同一个类别。

习题

\(2.1.\)\(T\)\(9\) 片树叶,\(3\) 个顶点度数为 \(3\),其余顶点的度数都是 \(4\),则 \(T\) 中有几个度数为 \(4\) 的顶点?你能画出多少棵非同构的无向树 \(T\)

解答

设度数为 \(4\) 的顶点有 \(x\) 个。树的顶点数为 \(9+3+x=12+x\),边数为 \(11+x\)。由度数和公式,

\[9\cdot 1+3\cdot 3+4x=2(11+x). \]

解得 \(x=2\)。非同构树的枚举可转化为枚举 \(5\) 个非叶顶点构成的树,并给这些非叶顶点分配叶子,使三个顶点总度为 \(3\)、两个顶点总度为 \(4\)。逐一检查非叶骨架的同构类型即可。

\(2.2.\) 一棵树 \(T\)\(n_i\) 个度数为 \(i\) 的顶点,\(i = 2,3,\cdots ,k\),其余顶点都是树叶,则 \(T\) 有几片树叶?

解答

设树叶数为 \(n_1\),则

\[\nu=n_1+\sum_{i=2}^k n_i,\qquad \sum_{v\in V(T)}\deg(v)=n_1+\sum_{i=2}^k i n_i=2(\nu-1). \]

代入并整理得

\[n_1=2+\sum_{i=2}^k (i-2)n_i. \]

\(2.3.\) 证明:如果一棵树只有两片树叶,则这棵树是一条轨道。

解答

考虑归纳证明。

\(\nu = 2\) 时,显然成立。

\(\nu > 2\) 时,找到 \(T\) 的一个树叶 \(v\),考虑 \(T'=T-v\)。显然 \(T'\) 也是一棵树,并且叶子数量 \(\le 2\)

引理 对于 \(\nu \ge 2\) 的树 \(T\),至少有两个树叶。

找到 \(T\) 中最长轨道 \(W\)\(W\) 长度至少为 \(2\),端点显然 \(\deg = 1\),是树叶。

也就是说在 \(T'\) 中也有两个树叶,考虑新出现的树叶 \(u\),有 \(uv \in E(T)\)\(\deg_T(u)=2\)

\(T'\) 是一条轨道,那么 \(T\) 也是一条轨道,归纳完成。

\(2.4.\) 证明:如果 \(T\) 是树,且 \(\Delta(T) \ge n\),则 \(T\) 至少有 \(n\) 片树叶。

解答

找到 \(v \in V,\deg(v) = \Delta\)。考虑 \(T-v\) 被划分为的 \(\Delta\) 个连通片 \(G_1,G_2, \cdots , G_\Delta\)

对于每个 \(G_i\),若 \(\nu(G_i)=1\),则是平凡树,该点在 \(T\) 中是一个树叶。

\(\nu(G_i) \ge 2\),则至少有两个树叶,可能有一个与 \(v\) 相连,但在 \(T\) 中也有至少一个树叶。

\(T\) 中至少 \(n\) 个树叶。

\(2.5.\)\(G\) 是森林当且仅当 \(\varepsilon=\nu-\omega\),其中 \(\omega\)\(G\) 的连通片个数,\(\omega>1\)

解答

\(G\) 是森林 \(\Longrightarrow \varepsilon=\nu-\omega\) 易证。

反过来对于每个连通片说明 \(\varepsilon \ge \nu -1\) 即可,必须同时取等。

\(2.6.\) 证明:树有一个中心或两个中心,且有两个中心时,这两个中心相邻。

解答

考虑找到 \(T\) 中的最长轨道 \(W=(v_1,v_2,\cdots,v_k)\)

定义 \(\text{lca}(u,v)\) 表示 \(L(w)\) 最大的且是 \(u,v\) 共同祖先的 \(w\)\(u,v\) 的最近公共祖先。

引理 对任意 \(u \in V\)\(l(u) = \max\{\text{dist}(u,v_1),\text{dist}(u,v_k)\}\)

\(\text{dist}(u,w)>\max\{\text{dist}(u,v_1),\text{dist}(u,v_k)\}\),以 \(u\) 为根,将 \(T\) 定向为有根树。

考虑 \(\text{lca}(v_1,w),\text{lca}(v_2,w)\) 中深度较小的一个,不妨认为是 \(v=\text{lca}(v_1,w)\),显然 \(L(v) \le L(\text{lca}(v_1,v_k))\)

那么 \(\text{dist}(v_1,w)=L(v_1)+L(w)-2L(v) > L(v_1)+L(v_k)-2L(\text{lca}(v_1,v_k))=\text{dist}(v_1,v_k)\)\(W\) 不是最长轨道。

\(v_1\) 为根,将 \(T\) 定向为有根树。对于 \(1 \le i \le j \le k\)\(v_i\)\(v_j\) 的祖先。

显然对于 \(u \in V - W\),显然 \(l(u) \ge l(\text{lca}(u,v_k))\)。而 \(l(v_i)=\max\{\text{dist}(v_i,v_1),\text{dist}(v_i,v_k)\}=\max\{i-1,k-i\}\)

所以 \(k\) 为奇数时,\(G\) 的中心为 \(\{v_{\frac{k+1}2}\}\)\(k\) 为偶数时,\(G\) 的中心为 \(\{v_{\frac{k}2},v_{\frac{k}2+1}\}\)

\(2.7.\) 证明:若 \(G\) 是森林,且有 \(2k\) 个度数为奇数的顶点,则 \(G\) 中有 \(k\) 条无公共边的轨道,使得 \(G\) 的每条边都在这些轨道上。

解答

显然对于每个连通片独立,只证 \(G\) 是树 \(T\) 时的情况。进行如下算法:

初始时每条边均为一个轨道,每次考虑对一个点 \(v\) 进行轨道合并的操作。

\(\deg (v)\) 是奇数,那么认为边是 \(e_1,e_2,\cdots,e_{2k+1}\),合并 \(e_{2i-1},e_{2i}\) 所在轨道。

\(\deg (v)\) 是偶数,那么认为边是 \(e_1,e_2,\cdots,e_{2k}\),合并 \(e_{2i-1},e_{2i}\) 所在轨道。

显然每次合并操作之后仍满足所有轨道边不相交且每条边恰在一条轨道上,符合条件。

合并操作共 \(\sum\limits_{v \in V} \left\lfloor \dfrac{\deg(v)}{2} \right\rfloor = \dfrac{ \sum\limits_{v \in V} \deg(v) - 2k}{2} = \varepsilon -k\),也就是说最终轨道有 \(k\) 条。

\(2.8.\) 证明:若 \(d_1 \ge d_2 \ge \cdots \ge d_{\nu}\) 是正整数序列,则此序列是树的度数序列当且仅当 \(\sum\limits^{\nu}_{i=1} d_i = 2(\nu-1)\)

解答

显然树 \(T\) 的度数序列 \(\Longrightarrow \sum\limits^{\nu}_{i=1} d_i = 2(\nu-1)\)

只证 \(\sum\limits^{\nu}_{i=1} d_i = 2(\nu-1) \Longrightarrow\) 是树 \(T\) 的度数序列。

考虑归纳。

引理\(\nu >1\) 时,\(d_\nu =1\)

\(d_\nu>1\),则 \(\sum\limits^{\nu}_{i=1} d_i \ge 2 \nu\),矛盾。

引理\(\nu >2\) 时,\(d_1 \ge 2\)

\(d_1 < 2\),则 \(\sum\limits^{\nu}_{i=1} d_i = \nu\),矛盾。

\(\nu=1\) 时,显然 \(d_1=1\) 是平凡树。

\(\nu=2\) 时,显然 \(d_1=d_2=1\) 是树。

\(\nu>2\) 时,考虑连接一条 \((1,\nu)\) 的边,这样新度数序列 \(\{d_i\}\) 仍有 \(\sum\limits^{\nu-1}_{i=1} d'_i = 2(\nu-2)\),在 \(\nu-1\) 是树的情况下 \(\nu\) 也是树,归纳完成。

\(2.9.\) 证明:设 \(G\)\(\delta \ge k\) 的简单图,\(T\)\(k+1\) 个顶点的树,则 \(G\) 中有与 \(T\) 同构的子图。

解答

考虑如下算法。

记录集合 \(S \subseteq V(T),P \subseteq V(G)\),以及一个映射 \(\theta : V(T) \rightarrow V(G)\)

初始时任取 \(u_0 \in V(T),v_0 \in V(G),S=\{u_0\},P=\{v_0\},\theta(u_0)=v_0\)

进行如下操作 \(k\) 轮,在第 \(i\) 轮时:

  1. 任取 \(u_i \in V(T) - S\),满足存在 \(u_j \in S,u_iu_j \in E(T)\)
  2. 一定可以找到 \(v_i \in V(G) - P\),满足存在 \(u_j \in S,v_i\theta(u_j) \in E(G)\)
  3. \(\theta(u_i)=v_i\)\(S \leftarrow S + u_i,P \leftarrow P + v_i\)

只需要证明第二步最后就会得到 \(\theta\),也就能找到同构子图。

第二步证明也是简单的,显然 \(\deg_T(u_i) \le k \le \delta\),也就是说对于选出的 \(u_j\) 对应的 \(v_j=\theta(u_j)\) 一定存在 \(v_i \in V(G) - P\) 满足 \(v_iv_j \in E\)

这样就构造出了同构子图。

\(2.10.\) 碳原子四价,氢原子一价,\(\text{C}_m\text{H}_n\) 是烷烃分子式,价键不呈回路,则对每个自然数 \(m\),仅当 \(n=2m+2\) 时,\(\text{C}_m\text{H}_n\) 才可能存在。

解答

计算度数证明,留给读者思考。

\(2.11.\)\(K_{2,3}\) 生成树的个数。

解答

\(X=\{1,2\}\),考虑按 \(\deg(1)\) 分类。

  • \(\deg(1)=3\),那么 \(\deg(2)=1\),任选一条连接即可,答案为 \(3\)
  • \(\deg(1)=2\),那么 \(\deg(2)=2\),容斥,所有方案减去成环的,答案为 \(3\times 3 - 3=6\)
  • \(\deg(1)=1\),那么 \(\deg(2)=3\),任选一条连接即可,答案为 \(3\)

总答案为 \(12\)

\(2.12.\)\(W_n\) 是一个 \(n\) 阶圈加上一个新顶点,把圈上的每个顶点都和新顶点之间连一条边(称为辐条)。求含有 \(n\) 个辐条的轮的生成树数目。

解答

考虑枚举新顶点连出来的边有 \(i\) 条。

那么圈上的边会选 \(n-i\) 条,将圈分为 \(i\) 段,每一段需要恰好一个顶点与新顶点连边。

考虑组合意义,枚举一条圈上没选的边,形式化的获得 \(n+i-1\) 个顶点,选其中 \(2i-1\) 个,交错的变为 \(i\) 个连向新顶点的顶点和 \(i-1\) 条圈上没选的边,完全符合一个生成树的限制。

\(n\) 个顶点,每个相同的生成树会被计算 \(i\) 次,故答案为 \(\sum\limits_{i=1}^n \dfrac{n}{i} \dbinom{n+i-1}{2i-1}\)

\(\text{oeis}\) 上得到了一个通项公式是 \(\text{Fib}(2n-1)+\text{Fib}(2n+1)-2\),其中 \(\text{Fib}(i)=\text{Fib}(i-1)+\text{Fib}(i-2),i \ge 3\)\(\text{Fib}(1)=\text{Fib}(2)=1\)

\(2.13.\) 证明:\(\tau(K_\nu -e) =(\nu -2)\nu^{\nu-3}\)

解答

考虑 \(\tau(K_\nu)=\nu^{\nu-2}\),容斥掉选择 \(e\) 的那些生成树。

显然每条边对称,故其在 \(\tau(K_\nu \cdot e)=\dfrac{(\nu-1)\nu^{\nu-2}}{\nu(\nu-1)/2}=2\nu^{\nu-3}\) 棵生成树上。

\(\tau(K_\nu-e)=\tau(K_\nu)-\tau(K_\nu \cdot e)=(\nu-2)\nu^{\nu-3}\)

\(2.14.\) 分别用 \(\text{Kruskal}\) 算法和 \(\text{Prim}\) 算法求边权图的最小生成树。

解答

这是依赖题图边权的计算题。做法如下:

Kruskal:将边按权从小到大排序,依次加入不形成圈的边,直到选出 \(\nu-1\) 条边。

Prim:从任一顶点开始,维护已选顶点集合 \(S\),每次选取连接 \(S\)\(V-S\) 的最小权边,直到所有顶点被加入。

两种算法得到的树权应相同;若边权有相等,最小生成树可能不唯一。

\(2.15.\) 边权图里的最小生成森林是权最小的生成森林,并且在生成森林中保持原图中任意两个顶点间的连通性。如何修改 \(\text{Kruskal}\) 算法和 \(\text{Prim}\) 算法来构造最小生成森林,并指出时间复杂度。

解答

Kruskal 不需要额外修改:对全图所有边按权排序,依次加入不形成圈的边。若原图不连通,算法会在每个连通片中各自得到一棵最小生成树,合起来就是最小生成森林。用并查集实现时复杂度为 \(O(\varepsilon\log \varepsilon)\)

Prim 需要对每个连通片启动一次:若当前优先队列为空但仍有未访问顶点,就从一个未访问顶点重新开始 Prim。用邻接矩阵实现复杂度为 \(O(\nu^2)\),用堆和邻接表实现复杂度为 \(O(\varepsilon\log \nu)\)

\(2.16.\) 关于破圈法。

解答

破圈法:在带权连通图中,只要当前图中存在圈,就在某个圈上删去一条权最大的边;若最大边不唯一,任删其中一条。重复直到无圈,所得生成树是最小生成树。

正确性来自圈性质:任一圈上的最大权边 \(e\) 不必属于某棵最小生成树。若某棵最小生成树含 \(e\),删去 \(e\) 后树分成两个连通片,而圈上除 \(e\) 外必有一条边跨越这两个片,加入该边可重新得到生成树且权不增。因此删去圈上最大边不会破坏得到最小生成树的可能性。

\((1)\) 试给出破圈法的算法。

\((2)\) 证明:破圈法得到的生成树是最小生成树。

\((3)\) 分析破圈法的时间复杂度。

\(2.17.\) 证明:一棵有向树 \(T\) 是有根树,当且仅当 \(T\) 中有且仅有一个顶点的入度为 \(0\)

解答

证明有根树 \(T \Longrightarrow\) 有且仅有一个顶点的入度为 \(0\) 是容易的。

考虑证明反命题,首先把入度为 \(0\) 的顶点设为根 \(u\)

任取 \(v \in V-u\)\(u,v\) 之间存在有向轨道。

\(u,v\) 之间的轨道为 \(W=x_0x_1\cdots x_k\),其中 \(x_0=u,x_k=v\)

轨道上的边的方向一定是 \((x_{i-1},x_i)\)

考虑反证,找到最小的 \(i\) 使得边的方向是 \((x_i,x_{i-1})\),那么显然 \(i \ne 1\),否则 \(\deg^-(u) \ne 0\)

那么 \(\deg^-(x_{i-1}) \ge 2\),而 \(\sum\limits_{v \in V-1} \deg^-(v)=\varepsilon=\nu-1\)\(\deg^-(v) \ge 1\),故 \(\deg^-(v)=1\),矛盾。

除根外其他顶点入度均为 \(1\)\(T\) 是有根树。

\(2.18.\)\(T\) 是二叉正则树,\(i\) 是分支点数,\(I\) 是各分支点的深度之和,\(L\) 是各树叶的深度之和,证明:\(L=I+2i\)

解答

二叉正则树 \(n_1=0\),故 \(n_0=n_2+1=\dfrac{\nu+1}{2}\)

考虑用一种方式刻画 \(L-I\):将每条边记录一个权值 \(w_e\),初始为 \(0\)

对于每个树叶,将其到根的轨道上所有边边权 \(+1\),对于每个分支点,将其到根的轨道上所有边边权 \(-1\)。这样最后 \(\sum\limits_{e \in E} w_e\) 恰好是 \(L-I\)

考虑每条边 \(e=uv\) 的权值,令 \(u\)\(v\) 的父亲,\(v\) 的子树仍是一个二叉正则树,也就是说 \(w_e=1\)

\(\sum\limits_{e \in E} w_e=\nu-1=2i=L-I\)

\(2.19.\)\(T\) 是二叉正则树,有 \(t\) 片树叶,证明 \(T\) 的边数 \(\varepsilon=2t-2\)

解答

设分支点数为 \(i\)。二叉正则树中每个分支点有两个儿子,因此边数等于儿子总数 \(2i\)。另一方面,除根外每个顶点都是某个顶点的儿子,所以边数也等于顶点数减 \(1\),即 \(\varepsilon=i+t-1\)。于是 \(2i=i+t-1\),得 \(i=t-1\),从而

\[\varepsilon=2i=2t-2. \]

\(2.20.\) 画出带权 \(0.2, 0.17, 0.13, 0.1, 0.1, 0.08, 0.06, 0.07, 0.03\)\(\text{Huffman}\) 树。

解答

按 Huffman 算法每次合并最小两权:

\[0.03+0.06=0.09,\quad 0.07+0.08=0.15,\quad 0.09+0.10=0.19, \]

\[0.10+0.13=0.23,\quad 0.15+0.17=0.32,\quad 0.19+0.20=0.39, \]

\[0.23+0.32=0.55,\quad 0.39+0.55=0.94. \]

题中权值和为 \(0.94\),不影响 Huffman 树结构;若把它们视为频率,可按上述合并过程画树,最后根权为 \(0.94\)

\(2.21.\)\(\text{Huffman}\) 编码来编码具有给定频率的如下符号:\(a : 0.20, b : 0.10, c : 0.15, d : 0.25, e : 0.30\)。编码一个符号平均需要多少个二进制数字?

解答

Huffman 合并过程:

\[0.10(b)+0.15(c)=0.25,\quad 0.20(a)+0.25(d)=0.45,\quad 0.25(bc)+0.30(e)=0.55,\quad 0.45+0.55=1. \]

可取编码:

\[a=00,\quad d=01,\quad e=11,\quad b=100,\quad c=101. \]

平均码长为

\[0.20\cdot2+0.25\cdot2+0.30\cdot2+0.10\cdot3+0.15\cdot3=2.25. \]

\(2.22.\) 证明:给定 \(w_1 \le w_2 \le \cdots \le w_t\),则存在一棵 \(\text{Huffman}\) 树,使得 \(w_1,w_2\) 对应的顶点是兄弟,且这两个顶点在二叉树中的深度都等于树高。

解答

在任意最优二叉树中,取一对深度最大的兄弟叶 \(x,y\)。若 \(x,y\) 的权值不是最小的两个,则把其中较大权值叶与 \(w_1\)\(w_2\) 对应的较浅叶交换,WPL 不会增加,因为较小权值放到更深位置只会使加权路径长度不增。重复交换后,可得到一棵同样最优的树,其中 \(w_1,w_2\) 是深度最大的兄弟叶。Huffman 算法第一步正是合并这两个最小权值,因此存在满足条件的 Huffman 树。

\(2.23.\) 证明:\(\text{Huffman}\) 树是最优二叉树。

解答

考虑一棵最优二叉树满足的要求。

不妨认为权值 \(w_1 \le w_2 \le \cdots \le w_\nu\),对应的深度为 \(L(1),L(2),\cdots,L(\nu)\),那么显然 \(L(1) \ge L(2) \ge \cdots \ge L(\nu)\)

\(2.22.\) 结论,合并 \(w_1,w_2\) 为新顶点 \(w'=w_1+w_2\) 后问题规模变为 \(\nu-1\),当 \(\nu=1\) 时显然为最优二叉树,故结论成立,找到了最优二叉树所对应的某个 \(\text{Huffman}\) 树。

\(2.24.\) 考虑 \(n\) 个消息符号,假设它们出现的概率分别为 \(p_1,p_2,\cdots ,p_n\),任意 \(p_i\) 均是 \(\dfrac12\) 的幂且 \(\sum p_i =1\)

\((1)\) 证明:概率最低的两个消息符号有相同的概率。

\((2)\) 证明:在此概率分布下,\(\text{Huffman}\) 编码的平均编码长度为 \(-\sum p_i \log p_i\).

解答

\((1)\) 考虑 \(\sum p_i =1\),记 \(p_i=\dfrac{1}{2^{k_i}}\)\(k_1 \ge k_2 \ge \cdots \ge k_n\),那么 \(2^{k_1} \sum p_i =\sum 2^{k_i-k_1}=2{k_1}\),那么也就是说 \(\sum 2^{k_i-k_1}\) 是偶数,而因为 \(2^{k_1-k_1}=1\),若 \(k_2>k_1\),则 \(\sum 2^{k_i-k_1}\) 是奇数,不成立。

\(k_1=k_2\),也就是 \(p_1=p_2\)

\((2)\) 考虑算出 \(L(i)\)

引理 \(L(i)=-\log p_i=k_i\)

考虑归纳证明,\(n=1\) 时显然 \(L(i)=0\)\(n>1\) 时,第一次合并 \(p_1,p_2\),得到 \(p'=p_1+p_2=2p_1\),还是 \(\dfrac12\) 的幂。显然 \(L(1)=L(2)=L'+1=-\log p'+1=-\log p_1\)

故此时平均长度为 \(-\sum p_i \log p_i\)

\(2.25.\) 证明:在 \(\nu\ge 3\) 阶的连通图 \(G\) 中,存在至少两个顶点,从 \(G\) 中删除这两个顶点后所得图仍然连通。

解答

构造一棵生成树 \(T\),删除两个树叶即可证明。

\(2.26.\) 为了在 \(4\) 枚硬币中找出一枚较轻的伪币,需要用天平称多少次?给出相应的算法。

解答

需要 \(2\) 次。一次称量有三种结果,而 \(1\) 次最多区分 \(3\) 种情况,不能确定 \(4\) 枚硬币中的哪一枚较轻。

算法:先称 \(1\) 号与 \(2\) 号。若一边轻,则伪币在这两枚中,第二次把较轻的那枚与任一已知正常或另一枚比较即可确定。若相等,则伪币在 \(3,4\) 中,第二次称 \(3\) 号与 \(4\) 号,较轻者为伪币。

\(2.27.\) 证明:非平凡树的最长轨道的起点和终点都是树叶。

解答

反证,若最长轨道 \(W\) 起点为 \(u\),终点为 \(v\),有一点不为树叶。

假设 \(u\) 不为树叶,则 \(\deg(u)>1\),考虑至少有一条边 \(e=uw\) 满足 \(e \notin W\)。若 \(w \in W\),那么出现圈,若 \(w \notin W\),那么 \(W+e\) 仍是一条轨道且更长,故无论如何都矛盾。

\(u,v\) 均是树叶。

图的连通性

顶连通度

定义 \(3.1\) 给定简单图 \(G=(V(G),E(G))\) 中一对不相邻的顶点 \(u,v\in V(G), u=v\)。若 \(S \subseteq V(G)-\{u,v\}\) 使得 \(u\)\(v\)\(G-S\) 中不连通,即分属两个不同的连通片,则称 \(S\) 是一个 \(uv\)-顶割集,简称为 \(uv\)-割集,也称 \(S\) 隔离了 \(u\)\(v\)。含顶点最少的 \(uv\)-割集称为最小 \(uv\)-割集,其中的顶点数记为 \(c(u,v)\),称为 \(u\)\(v\)\(G\) 中的顶连通度,简称为 \(uv\)-连通度。若 \(u=v\) 或者 \(u\)\(v\)\(G\) 中相邻,则 \(uv\)-连通度没有定义。

定义 \(3.2\) 给定连通简单图 \(G=(V(G),E(G))\),以及 \(S \subset V(G)\),若 \(G-S\) 不连通,则称 \(S\)\(G\)顶割集,简称割集。若一个割集中有 \(k\) 个元素,则称之为 \(k\)-顶割集。含顶点数最少的割集称为最小割集,其中的顶点数记为 \(\kappa(G)\),称为 \(G\)顶连通度,简称为连通度

值得注意的是,完全图与非连通图都没有割集,不能应用上面的定义给出其连通度,但我们约定完全图的连通度为 \(\kappa(K_n) = n-1\),非连通图 \(G\) 的连通度为 \(\kappa(G) = 0\)。这种约定在讨论连通度的很多性质时,也符合一般图的连通度的定义。

对于非负整数 \(k\) 来说,若 \(\kappa(G) \ge k\),则称 \(G\)\(k\)-连通的。当然,若 \(G\)\(k\)-连通的,则也是 \((k-1)\)-连通的(\(k-1\ge 0\))。

而对于非完全图 \(G\) 来说,若 \(S\)\(G\) 的顶割集,则 \(G-S\) 不连通,所以存在两个顶点 \(u,v\in V(G)-S\),使得 \(u\)\(v\)\(G-S\) 中没有轨道,由此可知,\(S\) 也是 \(uv\)-顶割集。也就是说,图 \(G\) 的任意一个顶割集,一定是某两个顶点之间的顶割集。反之,任意两个顶点之间的顶割集也一定是整个图的顶割集。所以,对于非连通图 \(G\),我们得到下面的结论:\(\kappa(G) = \min\{c(u,v)|u,v \in V(G),u \ne v,uv \notin E(G)\}\)

假想图 \(G\) 表示一个通信网络,其中的顶点代表服务器或路由器,边代表通信链路。给定图 \(G\) 中的两个顶点 \(u,v\),以及 \(u\)\(v\) 之间的两条轨道 \(P(u,v),Q(u,v)\)。若除了 \(u,v\) 之外,\(P(u,v)\)\(Q(u,v)\) 还有其他的公共顶点 \(w\),则若顶点 \(w\) 出现故障的话,两条通信路径 \(P(u,v)\)\(Q(u,v)\) 都不能使用。因此,从可靠性的角度,我们总是希望除了 \(u,v\) 之外,\(P(u,v)\)\(Q(u,v)\) 没有其他的公共顶点,我们称这样的两条轨道为无公共内顶的 \(uv\)-轨道。记两两无公共内顶的 \(uv\)-轨道的最大数量为 \(p(u,v)\)。直观上来说,\(uv\)-连通度 \(c(u,v)\) 越大,应该 \(p(u,v)\) 越大。事实上,\(\text{Menger}\) 定理说明,若 \(u\)\(v\)\(G\) 中不相邻,两者就是相等的。

定义\(G\) 是一个简单图,\(S \subset V(G)\)\(G\) 关于 \(S\) 的收缩图 \(G\cdot S\) 定义为:首先在 \(G\) 中删掉两个端点都在 \(S\) 中的边;再将 \(S\) 中所有的顶点收缩为一个顶点 \(s\);若 \(v \in V(G)-S\)\(S\) 中某个顶点相邻,则在 \(G\cdot S\) 中将 \(v\)\(s\) 连边;删掉重边与环。

定理 \(3.1(\text{Menger})\) 给定简单图 \(G\) 中两个不相邻的顶点 \(u,v\)\(G\) 中两两无公共内顶的 \(uv\)-轨道的最大数量等于最小 \(uv\)-割集中的顶点数,即:\(p(u,v) = c(u,v)\)

证明

\(p,c,P\) 增添下标 \(p_G,c_G,P_G\) 表示 \(p,c,P\) 在图 \(G\) 下的定义,记 \(k=c_G(u,v)\),考虑对边数 \(\varepsilon\) 归纳。

显然由抽屉原理,若 \(p_G(u,v)>k\) 的话仅选择 \(|S|=k\) 的点集 \(S\) 不足以覆盖 \(p_G(u,v)\) 条两两无公共内顶的 \(uv\)-轨道,故显然 \(p_G(u,v) \le k\)

只需证明 \(p_G(u,v) \ge k\)。考虑找到 \(e=xy \in E\)\(e\)\(u,v\) 均不关联。若无法找到这样的 \(e\),则 \(V(G)-\{u,v\}\) 内部没有边,所有 \(uv\)-轨道都只能形如 \(u,w,v\)。此时两两无公共内顶的 \(uv\)-轨道数等于 \(u,v\) 的公共邻点数,而任何 \(uv\)-割集也必须恰好截断这些公共邻点,故 \(p_G(u,v)=c_G(u,v)=k\)

考虑 \(H=G-e\)。显然有 \(P_H\) 仍是 \(P_G\),且 \(H\) 中的割集 \(S\) 能直接获得一个 \(G\) 中的割集 \(S\cup \{x\}\),故 \(p_G(u,v) \ge p_H(u,v)=c_H(u,v) \ge c_G(u,v)-1 = k-1\)

考虑反证,若 \(k > p_G(u,v) \ge k-1\),那么 \(p_G(u,v) = k-1\),且 \(p_G(u,v) = p_H(u,v)\)\(c_H(u,v) = c_G(u,v)-1\)

考虑 \(H\) 中的一个割集 \(S=\{v_1,v_2,\cdots,v_k\}\)\(|S|=k-1\),故 \(S\) 不是 \(G\) 中的割集,也就是说 \(G-S\) 中还存在一条 \(uv\) 之间的轨道,那么这条轨道必须经过 \(e\)

\(X\) 为所有 \(H-S\)\(u\) 可达的点,\(Y\) 为其余的点(显然 \(v\) 可达),那么 \(x,y\) 一定分属于不同的点集,记 \(x\in X,y \in Y\)

考虑 \(G_x=G\cdot X\),显然 \(G_x\) 中的割集一定是 \(G\) 中的割集,且 \(S \cup \{y\}\)\(G_x\) 中的割集,再者,\(G_x\) 一定收缩了 \(ux\) 直接轨道的边,那么有 \(p_{G_x}(u,v)=c_{G_x}(u,v)=k\)。找到 \(G_x\)\(k\) 条两两无公共内顶的 \(uv\)-轨道,这些轨道中一定包含 \(y,v_1,v_2,\cdots,v_{k-1}\)\(v\) 之间 \(k\) 条两两无公共内顶的轨道,将 \(ab\) 之间的轨道记为 \(a \leadsto b\)

\(G_y=G \cdot Y\) 同理,也就是说我们能构造出 \(u \leadsto x \rightarrow y \leadsto v\)\(u \leadsto v_1,v_2,\cdots,v_k \leadsto v\)\(k\) 条两两无公共内顶的 \(uv\)-轨道,那么 \(p_G(u,v)=k-1\) 不成立,\(p_G(u,v)=k\)

推论 \(3.1\) 给定简单图 \(G\),有 \(\min\{p(u,v)|u,v \in V (G),u \ne v,uv \notin E(G)\} = \min\{c(u,v)|u,v \in V (G),u \ne v,uv \notin E(G)\}\)

定理 \(3.2(\text{Whitney})\) 任给简单图 \(G\),都有 \(\kappa(G) = \min\{p(u,v)|u,v ∈ V(G),u \ne v\}\)

证明

\(G\) 非连通,则存在两点之间没有轨道,等式两边均为 \(0\)。若 \(G=K_\nu\),任意两点之间有一条直接边以及经过其余 \(\nu-2\) 个顶点的二边轨道,共 \(\nu-1\) 条两两无公共内顶的轨道,且 \(\kappa(K_\nu)=\nu-1\)。下面只证明 \(G\) 为非完全连通图。

我们发现该定理相比最小割集的结论只有 \(uv \in E\) 的部分不同。也就是说我们只需要证明对于任意 \(uv \in E\),存在 \(x\ne y,xy \notin E,p(x,y) \le p(u,v)\) 即可。

\(p,c,P\) 增添下标 \(p_G,c_G,P_G\) 表示 \(p,c,P\) 在图 \(G\) 下的定义。

考虑图 \(H=G-uv\),显然 \(p_G(u,v)=p_H(u,v)+1\),记 \(k=p_H(u,v)=c_H(u,v)\),考虑找到一个大小为 \(k\)\(uv\)-顶割集 \(S\)

\(V-S=\{u,v\}\),那么说明 \(\kappa(G) \ge p_G(u,v)=\nu-1\),是完全图,矛盾。

故存在 \(w \in V-S\),显然 \(w\)\(H-S\) 中只能与 \(u\)\(v\) 相邻,假设 \(w\)\(v\) 相邻,显然 \(uw \notin E\)

那么显然 \(S \cup \{v\}\) 是图 \(G\) 的一个 \(uw\) 顶割集,那么 \(p_G(u,w) \le k+1=p_G(v,w)\)

这样我们将求连通度的算法由枚举一个子集的指数复杂度降低为可以用网络流求出最大轨道数量的多项式复杂度,在后续章节我们还会提到。

扇形定理

引理 \(3.1\) 假设简单图 \(G\)\(k\)-连通图,在 \(G\) 中增加一个新的顶点 \(y\),并且在 \(G\) 中任意选取至少 \(k\) 个顶点,将 \(y\) 与这些选取的顶点各连一条边,得到的图记为 \(H\),则 \(H\) 也是 \(k\)-连通图。

证明

\(\nu(H) \ge k+1\),若 \(H\) 是完全图,则是 \(k\)-连通图。假设 \(|S|=k-1\)\(S \subset V(H)\),只需证明 \(H-S\) 连通即可。

\(y \in S\),由于 \(H-S=G-(S- \{y\})\),而 \(G\)\(k\)-连通图,故 \(G-(S- \{y\})\) 连通。

\(y \notin S\),由于 \(G\)\(k\)-连通图,故 \(G-S\) 连通,且 \(y\)\(H\) 中至少有 \(k\) 个邻顶,至少有一个 \(x \notin S,xy \in E(H)\)

综上,\(H-S\) 连通。

推论 \(3.2\) 假设简单图 \(G\)\(k\)-连通图,\(X,Y\) 是图 \(G\) 两个顶点子集,\(|X| \ge k\)\(|Y | \ge k\)\(X \cap Y = \varnothing\),则 \(G\) 中存在 \(k\) 条无公共顶点的 \((X,Y)\)-轨道。其中 \((X,Y)\)-轨道指的是轨道的两个端点分属 \(X\)\(Y\),而中间顶点不属于 \(X\cup Y\)

证明

\(G\) 中增加两个顶点 \(x,y\),分别向 \(X,Y\) 中的每个顶点连边,得到图 \(H\)。由引理 \(3.1\)\(H\)\(k\)-连通图。

找到 \(H\) 中的 \(k\) 条无公共内顶的 \(xy\)-轨道,删去这 \(k\) 条轨道上的顶点 \(x\)\(y\),就得到 \(G\) 中的 \(k\) 条轨道 \(Q_1,Q_2,\cdots ,Q_k\),若 \(Q_i\) 中间有点 \(Q_{i,j} \in X\) 内,则删除 \(Q_{i,1} \sim Q_{i,j}\) 的一段,\(Q_{i,j} \in Y\) 同理,最终找到符合要求的 \(k\) 条轨道。

给定简单图 \(G\)\(x \in V(G), Y \subseteq V(G)-\{x\}\)\(|Y| \ge k\),一组 \(k\) 条起点为
\(x\)、终点为 \(Y\)\(k\) 个不同的顶点,且除了 \(x\) 之外无公共顶点的轨道称为从 \(x\)\(Y\)\(k\)-扇形

推论 \(3.3(\text{扇形定理})\) 假设简单图 \(G\)\(k\)-连通图,\(x\in V(G),Y \subseteq V(G)-\{x\}\)\(|Y| \ge k\),则 \(G\) 中存在从 \(x\)\(Y\)\(k\)-扇形。

定理 \(3.3(\text{Dirac})\)\(S\)\(k\)-连通图 \(G\) 中的 \(k\) 元顶点子集,\(k \ge 2\),则 \(G\) 中存在一个圈 \(C\),使得 \(S\) 中所有的顶点都在 \(C\) 上。

证明

\(k\) 归纳。\(k=2\) 时,由 \(2\)-连通图中任意两个顶点在同一个圈上,结论成立。

\(k\ge 3\),并令

\[S=\{x_1,x_2,\ldots,x_k\}. \]

由于 \(G\)\(k\)-连通图,也一定是 \((k-1)\)-连通图。由归纳假设,存在一个圈 \(C\) 包含 \(x_1,x_2,\ldots,x_{k-1}\)

\(x_k\in V(C)\),则已经得证。否则,由扇形定理,存在从 \(x_k\)\(V(C)\)\(k\)-扇形,其末端为 \(C\) 上互不相同的 \(k\) 个顶点

\[y_1,y_2,\ldots,y_k. \]

按它们在 \(C\) 上的环形顺序排列。这 \(k\) 个点把 \(C\) 分成 \(k\) 段弧,而 \(C\) 上需要保留的指定点只有 \(x_1,\ldots,x_{k-1}\)\(k-1\) 个。因此至少有一段弧的内部不含这些指定点,设这段弧的端点为 \(y_i,y_j\)

删去 \(C\) 上从 \(y_i\)\(y_j\) 的这段弧,改接扇形中从 \(y_i\)\(x_k\) 与从 \(x_k\)\(y_j\) 的两条轨道。由于扇形除公共起点 \(x_k\) 外互不相交,所得仍是一个圈,并且它包含 \(x_1,x_2,\ldots,x_{k-1},x_k\)。证毕。

边连通度

定义 \(3.3\) 给定简单图 \(G=(V(G),E(G))\) 的一对顶点 \(u,v, u\ne v\)。若边子集 \(E' \subseteq E(G)\) 使得 \(u\)\(v\)\(G-E'\) 中不连通,即分属两个不同的连通片,则称 \(E'\) 是一个 \(uv\)-边割集。含边数最少的 \(uv\)-边割集称为最小 \(uv\)-边割集,其中的边数记为 \(c'(u,v)\),称为 \(u\)\(v\)\(G\) 中的边连通度,简称为 \(uv\)-边连通度

定义 \(3.4\) 给定连通简单图 \(G=(V(G),E(G))\),以及 \(E'\subseteq E(G)\),若 \(G-E'\) 不连通,则称 \(E'\)\(G\)边割集。若一个边割集中有 \(k\) 条边,则称之为 \(k\)-边割集。含边数最少的边割集称为最小边割集,其中的边数记为 \(\kappa'(G)\),称为 \(G\)边连通度。若图 \(G\) 不是连通图,就定义 \(\kappa'(G)=0\)

\(\kappa'(G) \ge k\),则称图 \(G\)\(k\)-边连通的。对于 \(k>0\) 来说,若 \(G\)\(k\)-边连通的,则也是 \((k-1)\)-边连通的。

给定图 \(G\) 的两个不同的顶点 \(u,v \in V(G)\),我们称 \(u\)\(v\) 之间两两无公共边的最大轨道数为无公共边的轨道的最大数量,记为 \(p'(u,v)\)

定理 \(3.4(\text{Menger})\) 给定图 \(G\) 中两个顶点 \(u,v\)\(G\) 中两两无公共边的 \(uv\)-轨道的最大数量等于最小 \(uv\)-边割集中的边数,即 \(p'(u, v) = c'(u,v)\)

证明

先有 \(p'(u,v)\le c'(u,v)\):任意 \(uv\)-边割集必须至少删去每条无公共边 \(uv\)-轨道中的一条边。

反向不等式可归约到点版 \(\text{Menger}\) 定理。把 \(G\) 的每条边视为边图 \(L(G)\) 的一个顶点,并额外加入两个新顶点 \(s,t\)\(s\) 与所有关联 \(u\) 的边对应顶点相邻,\(t\) 与所有关联 \(v\) 的边对应顶点相邻。则 \(G\) 中两两无公共边的 \(uv\)-轨道一一对应于该辅助图中两两无公共内顶的 \(st\)-轨道;\(G\)\(uv\)-边割集一一对应于辅助图的 \(st\)-顶割集。由点版 \(\text{Menger}\) 定理,两者最大/最小值相等,故 \(p'(u,v)=c'(u,v)\)。证毕。

我们可以得出 \(\kappa'(G) = \min\{p'(u,v)|u,v \in V(G),u \ne v\}\)

定理 \(3.5\) 假定 \(G\) 是简单图,则有 \(\kappa(G) \le \kappa'(G) \le \delta(G)\)

证明

先证 \(\kappa'(G)\le \delta(G)\)。取度数为 \(\delta(G)\) 的顶点 \(v\),删去所有与 \(v\) 关联的边即可使 \(v\) 与其余顶点分离,因此边连通度不超过 \(\delta(G)\)

再证 \(\kappa(G)\le \kappa'(G)\)。设 \(F\) 是最小边割集,\(|F|=\kappa'(G)\),且 \(G-F\) 的一个连通片顶点集为 \(S\),另一个侧为 \(\overline S\)。若 \(S\) 中只有一个顶点,则删去该顶点的所有邻点中的适当集合可得到大小不超过 \(|F|\) 的顶割;若两侧都至少有两个顶点,则对每条割边选取其在 \(S\) 侧的端点,得到顶点集 \(X\),有 \(|X|\le |F|\)。删去 \(X\) 后,\(\overline S\)\(S-X\) 不再连通,故存在顶割大小不超过 \(|F|\)。完全图按约定也满足 \(\kappa(K_n)=\kappa'(K_n)=\delta(K_n)=n-1\)。证毕。

割顶、桥与块

定义 \(3.5\) 给定连通简单图 \(G=(V(G),E(G))\),若存在顶点 \(v\),使得 \(G-v\) 不连通,即 \(\{v\}\) 是割集,则称 \(v\)\(G\)割顶

若连通图 \(G\) 有割顶 \(v\),则 \(\kappa(G)=1\),而 \(v\) 则是 \(G\) 的关键顶点,在网络设计中就是重要的节点,需要重点保护。下面的定理给出了割顶的特性。

定理 \(3.6\)\(G\) 是连通图,\(v \in V(G)\),则下述命题等价:

\((1)\) \(v\)\(G\) 的割顶。

\((2)\) 存在与 \(v\) 不同的两个顶点 \(u,w\in V(G)-\{v\}\),使得 \(v\) 在每一条从 \(u\)\(w\) 的轨道上。

\((3)\) 存在 \(V(G)-\{v\}\) 的一个划分 \(V(G)-\{v\}=U \cup W,U \cap W = \varnothing,U \ne \varnothing, W \ne \varnothing\),使得任给 \(u \in U,w \in W\)\(v\) 在每一条从 \(u\)\(w\) 的轨道上。

证明

\((1) \Rightarrow (3)\):考虑 \(U,W\)\(G-v\) 中不同的连通片,那么显然 \(u,w\)\(G-v\) 中不连通,\(G\) 中连通,那么每条 \(u,w\) 之间的轨道都经过 \(v\)

\((3) \Rightarrow (2)\):显然是特例。

\((2) \Rightarrow (1)\):考虑删除 \(v\)\(u,w\) 不连通,则 \(v\) 是割顶。

定义 \(3.6\) 给定连通简单图 \(G=(V(G),E(G))\),若存在边 \(e\),使得 \(G-e\) 不连通,也就是 \(\{e\}\) 是边割集,则称 \(e\)\(G\)(或割边)。

若连通图 \(G\) 有桥 \(e\),则 \(\kappa'(G)=1\),定理 \(3.6\) 刻画的是连通性中关键顶点的特征,而下面的定理刻画的则是连通性中关键边的特征。

定理 \(3.7\)\(G\) 是连通图,\(e \in E(G)\),则下述命题等价:

\((1)\) \(e\)\(G\) 的桥。

\((2)\) \(e\) 不在 \(G\) 的任一圈上。

\((3)\) 存在 \(u,w \in V(G)\),使得 \(e\) 在每一条从 \(u\)\(w\) 的轨道上。

\((4)\) 存在 \(V(G)\) 的一个划分 \(V(G)=U \cup W,U \cap W = \varnothing,U \ne \varnothing,W \ne \varnothing\),使得任给 \(u \in U,w \in W\)\(e\) 在每一条从 \(u\)\(w\) 的轨道上。

定义 \(3.7\) 没有割顶的简单图 \(G\) 称为块。若 \(G\) 不是块,则 \(G\) 的成块的极大子图称为 \(G\) 的块。

按照定义 \(3.7\),若 \(G\) 是一个顶点的平凡图或 \(G=K_2\),则 \(G\) 是块,这两种情况都是平凡情况,其连通度分别为 \(0\)\(1\)。在 \(\nu(G) \ge 3\) 时,则若 \(G\) 是块,一定有 \(\kappa(G) \ge 2\)

定理 \(3.8\)\(G\) 是连通图,\(\nu(G) \ge 3\),则下述命题等价:

\((1)\) \(G\) 是块。

\((2)\) 任给 \(u,v \in V(G),u \ne v\)\(u\)\(v\)\(G\) 的同一个圈上。

\((3)\) 任给 \(u \in V(G),e \in E(G)\)\(u\)\(e\)\(G\) 的同一个圈上。

\((4)\) 任给 \(e_1,e_2 \in E(G)\)\(e_1\)\(e_2\)\(G\) 的同一个圈上。

\((5)\) 任给 \(u,v \in V(G),u \ne v, e \in E(G)\),存在连接 \(u\)\(v\) 的轨道 \(P(u,v)\),使得 \(e\)\(P(u,v)\) 上,即 \(e \in E(P(u,v))\)

\((6)\) 任给三个不同的顶点 \(u,v,w\in V(G)\),存在连接 \(u\)\(v\) 的轨道 \(P(u,v)\),使得 \(w\) 在轨道 \(P(u,v)\) 上。

\((7)\) 任给三个不同的顶点 \(u,v,w \in V(G)\),存在连接 \(u\)\(v\) 的轨道 \(P(u,v)\),使得 \(w\) 不在轨道 \(P(u,v)\) 上。

证明

先证 \((1)\Rightarrow (2)\)。若 \(G\) 是块且 \(\nu(G)\ge 3\),则 \(G\)\(2\)-连通图。由 Whitney 定理,任意两个不同顶点 \(u,v\) 之间有两条无公共内顶的轨道,二者合起来构成一个包含 \(u,v\) 的圈。

\((2)\Rightarrow (1)\)。若任意两点都在同一个圈上,则删除任意顶点 \(x\) 后,任取其余两点 \(u,v\),取一个包含 \(u,v\) 的圈;若该圈经过 \(x\),删去 \(x\) 后仍留下连接 \(u,v\) 的另一段弧,若不经过 \(x\) 更显然。因此 \(G-x\) 连通,\(G\) 没有割顶,是块。

下面说明其余命题也与 \((1)\) 等价。若 \(G\) 是块,取任意顶点或边作为指定对象。先由 \((2)\) 得到包含相关端点的圈;若还需把圈外顶点接入,则对该顶点到已得圈应用扇形定理,取两条到圈的内部不交轨道,并替换圈上的一段弧。这样可得到同时包含指定顶点与指定边的圈,从而推出 \((3)\)\((4)\);再在相应圈上取合适的一段,或把圈外端点用同样的二扇形接入,即得 \((5)\)\((6)\)\((7)\) 所需的轨道。

反过来,若 \(G\) 有割顶 \(x\),则 \(G-x\) 至少有两个连通片。取不同连通片中的顶点或边作为指定对象:

  • \((3)\),取一个连通片中的顶点 \(u\),另一个连通片中的边 \(e\)(若该片只有一个顶点,则取它与 \(x\) 的关联边),不存在同时经过 \(u\)\(e\) 的圈。
  • \((4)\),取分属两个不同侧的两条边,不存在同时经过它们的圈。
  • \((5)\),取同一连通片中的两个顶点 \(u,v\),再取另一连通片中的边 \(e\);任何经过 \(e\)\(uv\)-轨道都必须重复经过割顶 \(x\),不可能是轨道。
  • \((6)\),取 \(u=x\),取 \(v,w\) 分属两个不同连通片,则从 \(u\)\(v\) 且经过 \(w\) 的轨道必须重复经过 \(x\),矛盾。
  • \((7)\),取 \(u,v\) 分属两个不同连通片,则每条 \(uv\)-轨道都必须经过割顶 \(x\),不可能避开 \(x\)

所以 \((3)\)\((7)\) 任一成立都推出 \(G\) 无割顶,即推出 \((1)\)。综上七个命题等价。

可靠通信网的构造

对于任意图或带权图来说,最小 \(k\)-连通子图是难以求解的。

我们考虑完全图 \(K_n\),若其每条边的权值都是 \(1\),则其权最小的 \(k\)-连通生成子图就是构造一个 \(n\) 个顶点且边数最少的 \(k\)-连通图。

假设 \(n\) 个顶点的 \(k\)-连通图至少需要 \(f(n,k)\) 条边,设该图为 \(G_{\min}\)。由连通度的定义知,合理的假设是 \(k<n\)

显然 \(f(n,k)=\dfrac{1}{2} \sum\limits_{v \in V} \deg(v) \ge \left\lceil \dfrac{n \delta}{2} \right\rceil \ge \left\lceil \dfrac{nk}{2} \right\rceil\)

下面会构造一个 \(\varepsilon=f(n,k)\) 的图 \(H_{n,k}\),令 \(V=\{0,1, \cdots,n-1\}\)

\((1)\) \(k\) 是偶数。记 \(k =2r\)\(H_{n,2r}\) 的构造方法为:两个不同的顶点 \(i\)\(j\) 相邻当且仅当 \(i-r \le j \le i+r\),其中的加法是在 \(\bmod\,n\) 的意义下进行的。

\((2)\) \(k\) 是奇数,\(n\) 是偶数。记 \(k=2r+1\)\(H_{n,2r+1}\) 的构造方法是:先构造 \(H_{n,2r}\),然后在 \(H_{n,2r}\) 的基础上,将顶点 \(i\) 与顶点 \(i+\dfrac{n}2 \left(0 \le i \le \dfrac{n}2 -1\right)\) 连边。

\((3)\) \(k\) 是奇数,\(n\) 是奇数。记 \(k=2r+1\)\(H_{n,2r+1}\) 的构造方法是:先构造 \(H_{n,2r}\),然后在 \(H_{n,2r}\) 的基础上,将顶点 \(0\) 与顶点 \(\dfrac{n-1}2,\dfrac{n+1}2\) 各连一条边,再将顶点 \(i\) 与顶点 \(i+\dfrac{n+1}2 \left(1 \le i \le \dfrac{n-3}2\right)\) 连边。

定理 \(3.9(\text{Harary}, 1962)\) \(H_{n,k}\)\(k\)-连通图。

证明

以下证明均在 \(\bmod\,n\) 意义下进行。

考虑先证明 \(k=2r\) 的情况。反证,若存在 \(V' \subseteq V\)\(|V'| <2r\) 使得 \(i<j\)\(G-V'\) 中不连通。

找到 \(G\) 中两条轨道 \(W_1=(i,i+1,\cdots,j-1,j)\)\(W_2=(j,j+1,\cdot,n-1,0,\cdots, i-1,i)\),必有其中一条轨道 \(W\) 满足 \(|W \cap V'|<r\)。考虑 \(W=(v_1,v_2,\cdots,v_p)\),那么必有 \(v_{i+1} \le v_i+r\),那么 \(v_i,v_{i+1}\) 之间有边,\(W-V'\) 仍是一条轨道,那么 \(i,j\) 仍连通,矛盾。

\(k=2r\)\(H_{n,k}\)\(k\)-连通图。

考虑 \(k=2r+1\),仿照上述证明,若存在 \(|W \cap V'|<r\) 则矛盾。否则 \(|W_1 \cap V'|=|W_2 \cap V'|=r\) 且必须删去的是连续的长度为 \(r\) 的两条轨道。

\(i,j\) 所在的连通片分别为 \(S,T\),它们在 \(G\) 上是编号连续的一条轨道。考虑分别从 \(S,T\) 中选择一个轨道端点 \(s,t\) 满足 \(t=s+r+1\)

\(n\) 为偶数,那么与 \(s,t\) 有额外连边的点是 \(s'=s+\dfrac12,t'=t+\dfrac{1}{2}\),显然它们都被删除,而又恰好在被删除的另一条轨道上,但它们之间的距离为 \(t'-s'=r+1\),也就是说这条轨道长度为 \(r+2\),矛盾。

\(n\) 为奇数,证明几乎相同,对于与 \(0\) 有额外连边的点随便选一条即可。

\(k=2r+1\)\(H_{n,k}\)\(k\)-连通图。

\(H_{n,k}\)\(k\)-连通图。

这里我们发现 \(H_{n,k}\) 也是 \(k\)-边连通图,记 \(g(n,k)\)\(n\) 个顶点的 \(k\)-边连通图所需的最少边数,有 \(f(n,k)=g(n,k)=\left\lceil \dfrac{nk}{2} \right\rceil\)

习题

\(3.1.\) \(G\)\(k\)-边连通图,\(E'\)\(G\)\(k\) 条边的集合,则 \(\omega(G-E') \le 2\)

解答

反证,若 \(\omega(G-E') > 2\),考虑任取 \(uv \in E'\),若 \(uv\)\(G-E'\) 中分属于不同连通片,那么 \(\omega(G-(E'-uv))=\omega(G-E')-1>1\),否则 \(\omega(G-(E'-uv))=\omega(G-E')>2\)\(E'-uv\) 是一个边数更少的边割集,\(\kappa' <k\),矛盾。

\(3.2.\) 给出一个 \(k\)-连通图 \(G\) 以及 \(k\) 个顶点的集合 \(V'\),使得 \(\omega(G-V')>2\)

解答

取星图 \(K_{1,3}\),并把中心顶点替换为一个 \(k\) 阶完全图 \(K_k\):也就是说,取三个互不相交的非空完全图或单点作为外部部分,并让每个外部顶点都与中间 \(K_k\) 的所有顶点相邻。所得图删去少于 \(k\) 个中间顶点后仍连通,因此是 \(k\)-连通的;但删去中间的 \(k\) 个顶点后,至少剩下三个互不连通的外部连通片,所以 \(\omega(G-V')>2\)

\(3.3.\) \(G\) 是简单图,\(\delta(G) \ge \nu(G)-2\),则有 \(\kappa(G)=\delta(G)\)

解答

\(\delta = \nu -1\),那么显然 \(\kappa=\delta=\nu-1\)

\(\delta = \nu -2\),那么考虑对所有 \(uv \notin E\),任取 \(w \in V- \{u,v\}\)\(uw,wv \in E\),故 \(p(u,v)=\nu-2\),那么显然 \(\kappa=\delta=\nu-2\)

\(3.4.\) 给出一个简单图 \(G\),满足 \(\delta(G)=\nu(G)-3\)\(\kappa(G)<\delta(G)\)

解答

取两个完全图 \(K_{\nu-1}\),让它们公共一个 \(K_{\nu-3}\),并且各自多出的顶点分别记为 \(x,y\),两者不相邻。此图总顶点数为 \(\nu-1+\nu-1-(\nu-3)=\nu+1\);若需要严格记为 \(\nu\),把参数整体平移即可。

更直接地,对任意 \(n\ge 5\),取两个 \(K_{n-2}\) 公共一个 \(K_{n-4}\),总顶点数为 \(n\)。两个非公共顶点在各自完全图内度数为 \(n-3\),公共顶点度数为 \(n-1\),故 \(\delta=n-3\)。删去公共的 \(K_{n-4}\) 后图分成两个 \(K_2\),所以 \(\kappa\le n-4< n-3=\delta\)

\(3.5.\) \(G\) 是简单图,\(\delta(G) \ge \dfrac{\nu(G)}2\),则有 \(\kappa'(G)=\delta(G)\)

解答

首先 \(\kappa'\le \delta\)

然后考虑最小边割集 \(E'\)\(G\) 分成 \(G[V']\)\(G[V-V']\) 两个部分。

显然在 \(|E'|\)\(uv\in E,u\in V',v \notin V'\) 的边的数量。

\(|V'| \le |V-V'|\),记 \(\nu'=|V'|\),显然 \(|E'| \ge \delta\nu' - \dfrac{\nu'(\nu'-1)}{2}=(\delta-\dfrac{\nu'}{2}+\dfrac{1}{2})\nu'\),在 \(\nu'=1\) 时取到最小值 \(\delta\),那么 \(\kappa'=\delta\)

\(3.6.\) \(G\) 是简单图,\(\delta(G) \ge \dfrac12 (\nu(G)+k-2)\),则 \(G\)\(k\)-连通图。

解答

考虑反证,若存在 \(V' \subseteq V,|V'| \le k-1\),使得 \(G-V'\) 不连通。

考虑 \(G'=G-V'\),那么 \(\delta'\ge\delta-k+1\ge \dfrac12(\nu-k) \ge \dfrac12(\nu'+1)\)。也就是说对于 \(G-V'\) 中若存在 \(G_1,G_2\) 不连通,考虑两者点集较小的(设是 \(G_1\))大小为 \(p\),有 \(p \le \dfrac{\nu'}{2}\),也就是说 \(\dfrac{p(p-1)}{2} < \delta p\),故 \(G_1,G_2\) 之间存在边,矛盾。

\(3.7.\) 任给三个非负整数 \(l,m,n\),都存在简单图 \(G\),满足 \(\kappa(G)=l,\kappa'(G)=m,\delta(G)=n\)

解答

考虑两个完全图 \(K_n\) 之间一侧的 \(l\) 个点想另一次 \(m\) 个点共连 \(l\) 条边,满足要求。

\(3.8.\)\(P(u,v)\)\(2\)-连通图 \(G\) 中的一条轨道,\(G\) 中是否一定存在另一条轨道 \(Q(u,v)\),使得 \(P(u,v)\)\(Q(u,v)\) 没有公共内顶?

解答

不一定。取 \(K_{2,3}\),二分两侧为 \(\{x_1,x_2\}\)\(\{y_1,y_2,y_3\}\)。该图是 \(2\)-连通图。

\(u=y_1,v=y_3\),取轨道

\[P=y_1x_1y_2x_2y_3. \]

这条轨道已经包含了图中所有其他顶点作为内顶点。若存在另一条 \(uv\)-轨道 \(Q\)\(P\) 无公共内顶,则 \(Q\) 不能使用 \(x_1,y_2,x_2\),只能直接使用边 \(y_1y_3\)。但 \(K_{2,3}\) 中同侧顶点不相邻,所以不存在这样的 \(Q\)

\(3.9.\) 证明:若简单图 \(G\) 不含偶圈与孤立顶点,则 \(G\) 的块是 \(K_2\) 或奇圈。

解答

\(G\) 是块,对所证命题无影响。

\(\nu=2\),那么 \(G=K_2\),成立。

\(\nu>2\),考虑反证。

\(G\) 不存在圈,那么 \(G\) 是树,存在割顶,矛盾。

\(G\) 中存在偶圈,矛盾。

\(G\) 中存在至少一个奇圈 \(W_c\)。若有点 \(v\) 或有边 \(e\) 不在圈上,那么由于 \(G\) 是块,那么也存在一条轨道 \(W\) 使得 \(v\) 或者 \(e\)\(W\) 上且仅有 \(W\) 的两个端点在 \(W_c\) 上,且 \(W\)\(W_c\) 无公共边。

考虑 \(W\) 的两个端点 \(u,w\) 将圈分为 \(W_1\)\(W_2\) 两条轨道,由于 \(W_c\) 长度是奇数,也就是 \(W_1,W_2\) 长度奇偶性不同,也就是说圈 \(W+W_1\) 和圈 \(W+W_2\) 至少有一个长度为偶数,矛盾。

\(3.10.\) 设子图 \(G_1\)\(G_2\) 是图 \(G\) 的两个不同的块,则若 \(G_1\)\(G_2\) 有公共顶点 \(v\),则 \(v\) 一定是 \(G\) 的割顶。

解答

考虑反证,若 \(v\) 不是割顶,则 \(G_1,G_2\) 不是极大的成块子图。

由于 \(v\) 不是割顶,那么 \(G-v\) 连通,考虑任取 \(x \in V(G_1)-v,y \in V(G_2)-v\),找到 \(x,y\)\(G-v\) 中的任意一条轨道 \(W\)

引理 \(G'=G_1 \cup G_2 \cup W\) 是一个成块子图。

显然 \(G'-v\) 连通,若删除 \(u \in G_1\),那么 \(G_1\) 连通,\(G_1-u\)\(G_2\) 有公共点,\(W\)\(G_2\) 有公共点,那么 \(G'-u\) 连通,\(u \in G_2\)\(u \in W\) 同理。

那么我们找到一个更大的成块子图,矛盾。

\(3.11.\)\(G\) 是连通图,且不是块,则在 \(G\) 中至少存在两个块,每个块仅含 \(G\) 的一个割顶。

解答

显然每个点至少存在于一个块,且 \(G\) 不是块,那么至少两个块。

反证,考虑若块 \(G'\) 内不存在割顶,那么至少存在 \(uv \in E,u \in V(G'),v \notin V(G')\)

\(G-u\) 连通,找到 \(v,w(w \in V(G'))\) 之间的轨道 \(W\),之后类似于 \(3.10.\) 的证明,\(G'\cup W\) 是一个更大的成块子图,矛盾,每个块内至少有一个割顶。

\(3.12.\)\(G\) 是简单图。若任给 \(e\in E(G)\),都有 \(\kappa (G-e)<\kappa (G)\),则称 \(G\)\(\kappa\) 临界图。证明:

\((1)\) 每个 \(\kappa\) 临界 \(2\)-连通图都有一个度数为 \(2\) 的顶点。

\((2)\)\(G\)\(κ\) 临界 \(2\)-连通图,且 \(\nu(G) \ge 4\),则 \(\varepsilon(G) \le 2\nu(G)-4\)

\((3)\) 任给 \(n\ge 4\),请给出 \(n\) 个顶点,\(2n-4\) 条边的最小 \(2\)-连通图,参见本章习题 \(25\) 中的定义。

解答

用耳分解证明。任意 \(2\)-连通图都可以从一个圈开始,逐次添加耳得到;若 \(G\)\(\kappa\) 临界 \(2\)-连通图,则每次新加的耳长度至少为 \(2\)。否则若某次只添加一条连接旧顶点的边,删去这条边后图仍由同一个耳分解得到,仍然 \(2\)-连通,违背临界性。

\((1)\)\(G\) 本身是一个圈,则每个顶点度数都是 \(2\)。否则取上述耳分解中的最后一条耳。它的内部顶点在最后一步加入,此后没有新的边与这些内部顶点关联;而这条耳长度至少为 \(2\),所以它至少有一个内部顶点,该内部顶点在 \(G\) 中度数为 \(2\)

\((2)\) 设初始圈有 \(n_0\) 个顶点、\(n_0\) 条边。因为 \(\nu(G)\ge 4\),若没有添加耳,则

\[\varepsilon(G)=\nu(G)\le 2\nu(G)-4. \]

若添加一条长度为 \(r\) 的耳,则新增 \(r-1\) 个顶点和 \(r\) 条边;又 \(r\ge 2\),故

\[r\le 2(r-1). \]

也就是说,每次添加耳时,新增边数不超过新增顶点数的两倍。因此从一个长度至少为 \(4\) 的圈出发,始终保持

\[\varepsilon(G)\le 2\nu(G)-4. \]

若初始圈为三角形,则临界性要求第一次添加的耳长度至少为 \(3\);添加后同样有 \(\varepsilon\le 2\nu-4\),之后仍由上面的增量估计保持该不等式。故结论成立。

\((3)\) 取完全二分图 \(K_{2,n-2}\)。它有

\[2(n-2)=2n-4 \]

条边。任意删去一个顶点后仍连通,所以它是 \(2\)-连通图;而删去任意一条边后,某个 \(n-2\) 侧顶点到另一侧的连接减少为一条,从而产生割顶,故它是最小 \(2\)-连通图。

\(3.13.\) 证明定理 \(3.4\)

解答

考虑构造出边图,直接归纳为点版本,得证。

\(3.14.\) 证明定理 \(3.7\)

解答

\((1) \Rightarrow (2)\) 反证,若 \(e\) 在圈上,则 \(G-e\)\(G\) 连通性相同,矛盾。

\((2) \Rightarrow (3)\) 反证,若对于所有 \(u,v\),都有至少一条不过 \(e\) 的轨道 \(W_{u,v}\),那么记 \(e=xy\),那么 \(e\)\(W_{x,y}\) 构成一个圈,矛盾。

\((3) \Rightarrow (4)\) \(U\) 为所有在 \(G-e\) 中与 \(x\) 连通的点,\(W\) 为所有在 \(G-e\) 中与 \(y\) 连通的点,显然 \(U \cup W = V\),若 \(U \cap W \ne \varnothing\),根据连通性有 \(U=W\),那么 \(x,y\) 有不经过 \(e\) 的轨道。显然 \(u\in U,v\in W\)\(u,v\)\(G-e\) 不连通,在 \(G\) 中轨道一定经过 \(e\)

\((4) \Rightarrow (1)\) 显然任取 \(x \in U,y \in W\)\(x,y\)\(G-e\) 中不连通,\(e\) 是桥。

\(3.15.\) 证明:只有两个顶点不是割顶的连通图是一条轨道。

解答

\(\nu=2\) 时显然,接下来令 \(\nu \ge 3\)

找到 \(G\) 中的一棵生成树 \(T\)\(T\) 中至少两个树叶。

引理 \(T\) 中的树叶在 \(G\) 中一定不是割顶。

考虑树叶 \(v\)\(T-v\) 连通,故 \(G-v\) 连通。

\(T\) 至少两个树叶,也就是说分支点都是割顶且 \(T\) 是一条轨道。若存在 \(uv \notin E(T)\),那么 \(u,v\) 在树上的轨道上的点(除了 \(u,v\))都一定不是割顶(在环上),也就是说 \(G=T\),是一条轨道。

\(3.16.\) 若图 \(G\) 的每个顶点的度数都是偶数,则 \(G\) 中没有桥。

解答

反证,假设 \(e=xy\) 是割边,考虑 \(G-e\) 被分为两个连通片 \(x \in G_1,y \in G_2\)。显然 \(\sum\limits_{v \in V(G_1)} \deg(v) \equiv 2\varepsilon \equiv 0 \pmod2\),但是 \(\sum\limits_{v \in V(G_1) - x} \deg(v)+\deg(x) \equiv 1 \pmod 2\),矛盾。

\(3.17.\) \(G\) 是连通图,且 \(\nu(G) \ge 3\)。证明:

\((1)\)\(G\) 有桥,则存在 \(v\in V(G)\),使得 \(\omega(G-v)>\omega(G)\)

\((2)\) 结论 \((1)\) 的逆未必成立。

解答

\((1)\) 删除割边相关的某个顶点即可。

\((2)\) 构造一张有割顶无割边的图即可。

\(3.18.\) \(3\)-正则图有割顶当且仅当有桥。

解答

\(\nu \ge 4\),显然有割边必有割顶。

假设 \(v\) 是割顶,考虑 \(G-v\),那么由于三次正则图,所以最多分为三个连通片。

\(\omega(G-v)=3\),那么显然 \(vu_i \in E\)\(u_i\) 在不同的 \(G_i\) 中,三条边均是割边。

\(\omega(G-v)=2\),那么由抽屉原理,\(vu_i \in E\) 中有两个 \(u_i\) 在同一个 \(G_i\),剩下那条边是割边。

\(3.19.\) 给定 \(n\) 维超立方体 \(H_n\) 中的两个顶点 \(u=(0,0,\cdots ,0)\)\(v=(1,1,\cdots ,1)\)。请给出 \(H_n\) 中最大的无公共边的 \(uv\)-轨道的集合和最小的 \(uv\)-顶割集。

解答

\(H_n\)\(n\)-正则且 \(n\)-边连通的。无公共边的 \(uv\)-轨道最多为 \(n\) 条,因为从 \(u\) 出发只有 \(n\) 条边。

构造 \(n\) 条无公共边轨道:第 \(i\) 条轨道先翻转第 \(i\) 个坐标,然后按循环顺序依次翻转第 \(i+1,i+2,\cdots,i+n-1\) 个坐标(下标模 \(n\))。每条轨道从全 \(0\) 到全 \(1\),且每条边由“当前二进制串和被翻转坐标”唯一确定;这些循环顺序轨道两两无公共边。

最小 \(uv\)-边割集可取所有与 \(u\) 关联的 \(n\) 条边。若题目要求顶割集,则当 \(n\ge2\) 时可取 \(u\) 的全部 \(n\) 个邻点,它们删去后 \(u\)\(v\) 不连通;由 Menger 定理,最小顶割大小也是 \(n\)

\(3.20.\)\(e\)\(2\)-连通图 \(G\) 的一条边,若将边收缩后,得到的图 \(G\cdot e\) 也是 \(2\)-连通图,则称 \(e\) 是可收缩的。证明:每个 \(\nu(G) \ge 3\)\(2\)-连通图 \(G\) 都有一条可收缩边。

解答

考虑若 \(e=uv\) 不可收缩,那么 \(G \cdot e\) 中有割顶,显然新割顶是 \(u,v\) 合并成的新点,否则连通性没有改变。

考虑 \(G\) 的一棵生成树 \(T\),任取根定向,找到 \(e=uv \in E(T)\)\(v\) 是深度最深的树叶的边。显然此时 \(u\) 的所有儿子均为树叶。

考虑任取 \(u\) 的其他儿子 \(w\),若有 \(xw \in E(T)\) 满足 \(x \ne u,x \ne v\),那么删去 \(uw\),连接 \(wx\)

若操作完后 \(u\) 只有 \(v\) 一个儿子,那么 \(T \cdot e\)\(\{u,v\}\) 显然不是割顶,\(e\) 可收缩。

否则存在某个树叶满足 \(vw \in E(T)\),此时明显 \(vw\) 可收缩。

\(3.21.\)\(e\)\(2\)-连通图 \(G\) 的一条边,若将边删除后,得到的图 \(G-e\) 也是 \(2\)-连通图,则称 \(e\) 是可删除的。证明:\(\nu(G) \ge 4\)\(2\)-连通图 \(G\) 每一条边要么是可收缩的,要么是可删除的。

解答

\(e=uv\) 不可删除,则 \(G-e\) 中存在割顶,找到一个记为 \(w\),显然 \(w \ne u\)\(w \ne v\)

考虑 \(G-w\) 连通,故 \(G-w-e\) 最多两个连通片 \(u \in G_1,v \in G_2\)。考虑 \(x \in G_1\)\(v\) 之间不经过 \(u\) 的轨道 \(W\),若 \(w \notin W\),那么与 \(G-w-e\) 不连通矛盾。否则 \(x,w\)\(G-u-v\) 中连通,\(G_2\) 同理,所以 \(e\) 可收缩。

\(3.22.\) 证明扇形定理(推论 \(3.3\))。

解答

考虑新建节点 \(z\) 并与所有 \(y \in Y\) 连边,由引理 \(3.1\)\(G'\) 也是 \(k\)-连通图,那么 \(x,z\) 之间存在 \(k\) 条中间点不交的轨道,经过简单处理后得到一个 \(k\)-扇形。

\(3.23.\) 构造一个 \(5\)-连通图 \(G\) 以及 \(G\) 中的 \(4\) 个顶点 \(x_1,y_1,x_2,y_2\),满足 \(G\) 中没有圈能够使得这四个顶点按照给定的顺序在圈上出现。注:对于 \(6\)-连通图来说,四个顶点则可以按照任意给定的顺序在圈上出现。

解答

构造如下。取两个互不相交的完全图 \(A\cong K_6\)\(B\cong K_6\),分别在其中指定五个接口点 \(a_1,\cdots,a_5\)\(b_1,\cdots,b_5\),再加入五条互不相交的通道 \(a_i b_i(1\le i\le5)\)。在 \(A\) 侧取 \(x_1=a_1,x_2=a_3\),在 \(B\) 侧取 \(y_1=b_2,y_2=b_4\),并要求圈上顺序为 \(x_1,y_1,x_2,y_2\)

该图是 \(5\)-连通的:删去少于 \(5\) 个顶点后,至少保留一条通道连接 \(A\)\(B\),而两个 \(K_6\) 各自删去少于 \(5\) 个顶点仍连通。

若存在一个圈按 \(x_1,y_1,x_2,y_2\) 的顺序经过这四点,则圈必须在 \(A\)\(B\) 之间至少往返两次,因而使用偶数条通道。把圈与五条通道的交点按圈序记录,会得到一个在接口序列中交错的配对:\(a_1\)\(a_3\)\(A\) 侧被两个不同的圈段分隔,而 \(b_2\)\(b_4\)\(B\) 侧也被对应分隔。五条通道按同一编号连接两侧,交错配对迫使两段圈在某一侧共享内部顶点,或迫使某条通道被重复使用,均与“圈”矛盾。因此不存在满足该指定顺序的圈。

\(3.24.\)\(G\) 是一个图,\(x \in V(G),Y \subseteq V(G)-\{x\}\)\(Z \subseteq V(G)-\{x\}\)\(|Y|<|Z|\)。假设从 \(x\)\(Y\) 与从 \(x\)\(Z\) 都存在扇形,则存在 \(z \in Z-Y\),使得从 \(x\)\(Y \cup \{z\}\) 存在扇形。

解答

找到 \(x\)\(Y,Z\) 的扇形,考虑 \(Z\) 扇形中每条轨道与 \(Y\) 扇形中轨道的交。若 \(z_i\)\(Y\) 扇形无交,则找到 \(x\)\(Y \cup \{z_i\}\) 的扇形。

\(p_i\) 表示轨道 \(z_i\)\(Y\) 扇形的距离 \(x\) 最近的交是在 \(y_{p_i}\) 轨道上。由抽屉原理,存在 \(p_i=p_j\),考虑交点离 \(y_i\) 最近的轨道,假设交点在 \(k_i\),将 \(Y\) 扇形中 \(x\)\(k_i\) 的部分替换为 \(Z\) 扇形中 \(x\)\(k_i\) 的部分。

显然 \(Y\) 仍是扇形,并且至少消去了一个 \(Y\) 扇形与 \(Z\) 扇形中的交点,所以最后调整总会结束到一个存在轨道 \(z_i\)\(Y\) 扇形无交的情况,找到 \(Y \cup \{z_i\}\)

\(3.25.\)\(G\)\(k\)-边连通图,若任给 \(e\in E(G)\)\(G-e\) 都不是 \(k\)-边连通图,则称 \(G\) 是最小 \(k\)-边连通图。

\((1)\)\(G\) 是最小 \(k\)-边连通图,证明:

\((a)\) 任给 \(e\in E(G)\)\(e\) 都在 \(G\) 的某个 \(k\)-边割集中。

\((b)\) \(G\) 中有一个度数为 \(k\) 的顶点。

\((c)\) \(\varepsilon(G) \le k(\nu(G)-1)\)

\((2)\) 证明:任意 \(k\)-边连通图 \(G\) 都存在一个边数最多为 \(k(\nu(G)-1)\)\(k\)-边连通生成子图。

解答

\((1)\) \((a)\) \(G-e\) 的最小边割集 \(S\) 大小为 \(k-1\),那么 \(S \cup \{e\}\)\(G\) 的大小为 \(k\) 的边割集,是 \(k\)-边割集。

\((b)\) 反证,假设 \(\delta > k\),考虑一个 \(|S|\) 最小的、\(|(S,\bar{S})|=k\) 的割。若 \(|S|=1\) 则矛盾。考虑 \(|S|>1\),若不存在 \(xy\in E\)\(x,y \in S\),那么 \(S\) 显然可以更小,矛盾,否则任取 \(xy\),可以找到 \(|(T,\bar{T})|\)\(x,y\) 分隔,此时 \(|(S\cap T,\overline{S\cap T})|=k\),显然 \(|S \cap T|<|S|\),矛盾,故 \(\delta=k\)

\((c)\) 找到一个至多 \(k\) 条边的割 \((S,\bar{S})\),然后递归割开 \(S,\bar{S}\) 即可,最多割 \(\nu-1\) 次所有集合大小均为 \(1\),故 \(\varepsilon \le k(\nu-1)\)

\((2)\) 考察 \(G-e\) 是否是 \(k\)-边连通图,若是则删除 \(e\) 即可,最终会得到一个最小 \(k\)-边连通图。

\(3.26.\) 画出 \(H_{8,3}\)\(H_{9,3}\)

解答

按正文中 Harary 图 \(H_{n,k}\) 的定义作图即可。

\(H_{8,3}\):把 \(8\) 个顶点 \(0,1,\cdots,7\) 放在圆周上。因为 \(k=3=2r+1\),先连接距离不超过 \(r=1\) 的顶点,即形成 \(C_8\);再连接每个 \(i\)\(i+4\),得到四条直径边。

\(H_{9,3}\):把 \(9\) 个顶点放在圆周上,先连接成 \(C_9\);因为 \(n\) 为奇数、\(k=3\),再连接每个 \(i\)\(i+4\)(模 \(9\))的一条边。这样每个顶点新增一条边,总度为 \(3\)

\(3.27.\) 证明:当 \(k\) 为奇数时,\(H_{n,k}\)\(k\)-连通图。

解答

\(k=2r+1\)\(H_{n,k}\) 在圆周顶点 \(0,1,\cdots,n-1\) 上先连接距离不超过 \(r\) 的点;若 \(n\) 为偶数,还连接相对顶点,若 \(n\) 为奇数,则按定义连接相差 \(\lfloor n/2\rfloor\) 的点。任删少于 \(k\) 个顶点,需证剩余图连通。

对任意剩余顶点 \(x,y\),沿圆周从 \(x\)\(y\) 有两段弧。若某段弧中连续被删顶点少于 \(r\),则可用距离不超过 \(r\) 的边跨过这些缺口前进。若两段弧都出现长度至少 \(r\) 的删除块,则已删顶点数至少 \(2r=k-1\),此时额外的长弦边(相对边或近相对边)保证可以从删除块一侧跳到另一侧。更形式化地,任一割若把剩余顶点分成两部分,则圆周上至少产生两个边界,每个边界附近必须删去至少 \(r\) 个连续阻隔点,再加上奇数情形的长弦阻隔至少还需一个点,总计不少于 \(2r+1=k\),矛盾。故删少于 \(k\) 点不可能断开,\(H_{n,k}\)\(k\)-连通图。

\(3.28.\)\(G\) 是满足 \(\nu(G) \ge 3\)\(k\)-边连通图,则任给 \(e\in E(G)\)\(G \cdot e\) 仍是 \(k\)-边连通图。

解答

显然 \(G \cdot e\) 中的边割集仍是 \(G\) 中的边割集,\(k' \ge k\),证毕。

平面图

平面图及平面嵌入

定义 \(4.1\) 如果一个图可以画在平面上,使得除了端点外,它的任意两条边没有交点,则称这个图为可嵌入平面的,简称平面图。平面图 \(G\) 的这样一种画法(图示)称为 \(G\) 的一个平面嵌入

\(G\) 的一个平面嵌入 \(G'\) 本身可看作与 \(G\) 同构的图,因此有时把平面图的平面嵌入称为平图

平面嵌入的概念也可以推广到其他曲面上去。若图 \(G\) 能画在曲面 \(S\) 上使它的边仅在端点相交,则图 \(G\) 称为可嵌入曲面 \(S\);图 \(G\) 的这样一种画法(如果存在)称为 \(G\) 的一个 \(S\) 嵌入。其中与平面嵌入密切相关的是球面嵌入。

定理 \(4.1\)\(G\) 可嵌入平面,当且仅当 \(G\) 可嵌入球面。

当把平面图 \(G\) 平面嵌入以后,为方便起见,把此时 \(G\) 的图示仍记为 \(G\)。平图 \(G\) 把平面划分为若干连通的闭区域,这些闭区域称为 \(G\)

每个平图恰有一个无界的面,称为外部面

定理 \(4.2\)\(v\) 是平面图 \(G\) 的顶点,则存在 \(G\) 的一个平面嵌入,使得 \(v\) 在这个嵌入的外部面上。

我们用 \(b(f)\) 表示平图 \(G\) 中面 \(f\)边界。若 \(G\) 是连通的,则 \(b(f)\) 可以认为是一条回路,若面 \(f\) 中含有桥,则每条桥都被这条回路经过两次;当面 \(f\) 中不包含桥时,这条回路是 \(G\) 的一个圈。

定义 \(4.2\) 称面 \(f\) 与它的边界上的顶点和边是关联的。若 \(e\) 是平图的桥,则只有一个面和 \(e\) 关联;否则有两个面和 \(e\) 关联。称一条边分隔和它关联的面. 面 \(f\) 的度数 \(\deg(f)\) 是和它关联的边数,即 \(b(f)\) 中的边数,其中桥被计算两次。

定理 \(4.3\) 任给平面图 \(G\)\(\sum\limits_{f \in F(G)} \deg(f) = 2|E(G)|\),其中 \(F(G)\) 表示 \(G\) 中所有面构成的集合。

\(\text{Euler}\) 对连通平图中顶点、边和面的数目建立了一个简单的公式,称为 \(\text{Euler}\) 公式

定理 \(4.4\)\(G\) 是连通平图,有 \(\nu\) 个顶点,\(\varepsilon\) 条边,\(\phi\) 个面,则 \(\nu-\varepsilon+\phi=2\)

证明

\(\phi\) 归纳,若 \(\phi=1\)\(G\) 是树,成立。

\(\phi>1\),找到一个圈 \(C\),删除一种一条边 \(e\)\(G-e\) 连通,且 \(\varepsilon,\phi\) 各减一,等式仍成立。

推论 \(4.1\) 对于给定的连通平面图,其所有平面嵌入有相同的面数。

推论 \(4.2\)\(G\)\(\nu \ge 3\) 的连通简单平面图,则 \(\varepsilon \le 3\nu-6\)

证明

由于 \(2\varepsilon = \sum\limits_{f \in F(G)} \deg(f) \ge 3 \phi\)

\(\varepsilon = \nu +\phi-2\)\(\dfrac{1}{3} \varepsilon \le \varepsilon - \phi = \nu-2\)\(\varepsilon \le 3\nu -6\)

推论 \(4.3\)\(G\) 是连通简单平面图,则 \(\delta \le 5\)

推论 \(4.4\) \(K_5\) 是非平面图。

推论 \(4.5\) \(K_{3,3}\) 是非平面图。

极大平面图

定义 \(4.3\)\(G\)\(\nu \ge 3\) 的平面图,若任给 \(u,v\in V(G)\),当 \(uv \notin E(G)\) 时,\(G+uv\) 都不再是平面图,则称 \(G\) 是极大平面图。

定理 \(4.5\) \(\nu \ge 3\) 的平面图 \(G\) 是极大平面图,当且仅当 \(G\) 的平面嵌入的每个面都是三角形。

推论 \(4.6\) 假定 \(G\)\(\nu \ge 3\) 的平面图,则 \(G\) 是极大平面图,当且仅当 \(\varepsilon= 3\nu -6\)

定理 \(4.6\)\(G\)\(\nu \ge 4\) 的极大平面图,则 \(\delta \ge 3\)

可平面图的判定

给定两个图 \(G\)\(H\),如果通过一系列如下的两种变换可以将 \(G\) 变成 \(H\),则称 \(G\)\(H\) 同胚

\((1)\)\(G\) 的边上插入度数为 \(2\) 的顶点,将原来的一条边变成两条边。

\((2)\)\(G\) 中度数为 \(2\) 的顶点去掉,将该顶点关联的两条边连成一条边。

定理 \(4.7\)\(G\) 是平面图,当且仅当 \(G\) 中不含与 \(K_5\)\(K_{3,3}\) 同胚的子图。

给定图 \(G\) 中的一条边 \(e=uv \in E(G)\),图 \(G\)\(e\) 的收缩 \(G \cdot e\) 是指:删去边 \(e\) 及端点 \(u\)\(v\),增加一个新顶点 \(w\),将 \(w\)\(u\)\(v\) 的每个邻顶连一条边。形象地说,就是将边 \(e\) 的长度收缩为零。

\(\text{Kuratowsky}\) 定理可改写为:图 \(G\) 是平面图当且仅当 \(G\) 中不含能收缩为 \(K_5\)\(K_{3,3}\) 的子图。

电路制版的时候,为防止出现短路等错误,每一层都是平面嵌入,但实际需要部署的电路通常都是非平面图,为此就需要将电路分层部署,而且为了成本等原因还要使层数尽量少。转换为图论问题就是:如果一个图不是平面图,可以把它的边嵌入多个平面,使每个平面上的边只在端点处相交,即把图 \(G\) 的边集划分为 \(E(G) = \bigcup\limits_{i=1}^n E_i, E_i \cap E_j = \varnothing, i \ne j\),且每个边导出子图 \(G[E_i](i = 1,2,\cdots,n)\) 都是平面图。\(n\) 的最小值称为图 \(G\) 的厚度,记为 \(\theta(G)\)

定理 \(4.8\)\(\nu(\ge 3)\) 阶简单图 \(G\) 的厚度 \(\theta(G)\),有以下估计式:

\((1)\) \(\theta \ge \left\lceil \dfrac{\varepsilon}{3\nu -6} \right\rceil\)

\((2)\) 若连通图 \(G\) 中没有 \(3\) 阶圈,则 \(\theta(G)\ge \left\lceil \dfrac{\varepsilon}{2\nu -4} \right\rceil\)

\((3)\) \(θ(K_\nu)\ge \left\lfloor \dfrac{\nu+7}{6} \right\rfloor\)

习题

\(4.1.\) 证明:\(K_5\)\(K_{3,3}\) 删去一条边后都是平面图。

解答

\(K_5-e\)\(5\) 个顶点、\(9\) 条边,达到平面简单图上界 \(3\nu-6=9\),可画成三角形内外各放一个顶点:外三角形连接成 \(K_3\),两个内外顶点分别与三角形三个顶点相连,再连接这两个顶点以外的所有可平面边,恰得 \(K_5\) 去掉一条边的平面嵌入。

\(K_{3,3}-e\) 可画成一个 \(6\) 圈,并加入两条不交叉的弦。设二分两侧为 \(x_1,x_2,x_3\)\(y_1,y_2,y_3\),将 \(x_1,y_2,x_3,y_1,x_2,y_3\) 依次放在外圈上,外圈给出 \(6\) 条边,再在内部加入 \(x_1y_1\)、外部加入 \(x_3y_3\),得到 \(8\) 条边,即 \(K_{3,3}\) 删去一条边。

\(4.2.\) 试写出五面体的顶点数和棱数。

解答

五面体有 \(\phi=5\)。由 Euler 公式 \(\nu-\varepsilon+\phi=2\),得 \(\varepsilon=\nu+3\)。常见五面体有两类:

三棱柱:\(\nu=6,\varepsilon=9,\phi=5\)

四棱锥:\(\nu=5,\varepsilon=8,\phi=5\)

\(4.3.\) 关于平面图。

\((1)\) 证明:若 \(G\)\(\nu >11\) 的简单平面图,则 \(G^c\) 不是平面图。

\((2)\) 试给出一个 \(\nu=8\) 的简单平面图,使得 \(G^c\) 是平面图。

解答

\((1)\) 反证,假设存在某个 \(G\) 使得 \(G^c\) 是平面图,则 \(\varepsilon(G) + \varepsilon(G^c) \le 6 \nu -12 < \dfrac{\nu(\nu-1)}{2}\),矛盾。

\(4.4.\) 设连通平面图 \(G\) 是有 \(8\) 个顶点的 \(4\)-正则图,则它的平面嵌入把平面分成多少个面?

解答

\(\nu-\varepsilon+\phi=2\)\(\phi=10\)

\(4.5.\)\(\omega\) 是平面图 \(G\) 的连通片个数,则 \(\nu(G)-\varepsilon(G)+\phi(G)=\omega+1\)

解答

\(\omega\) 归纳,当 \(\omega=1\) 时显然成立。当 \(\omega>1\) 是找到一个连通片 \(G'\)\(G'\)\(G-G'\) 共用外部面,有 \(\nu(G)-\varepsilon(G)+\phi(G)=(\omega -1 +1) + 2 -1=\omega+1\)

\(4.6.\)\(G\) 是连通的简单平面图,面数 \(\phi<12\),最小度 \(\delta \ge 3\)

\((1)\) 证明 \(G\) 中存在度数小于等于 \(4\) 的面。

\((2)\) 举例说明当 \(\phi=12\) 时,其他条件不变,\((1)\) 的结论不成立。

解答

\((1)\) \(-\dfrac12\nu +11 \ge\nu - \varepsilon + \phi=2\)\(\nu \le 18,\dfrac{3}{2} \nu \le \varepsilon = \nu + \phi -2,\phi \ge \dfrac{1}{2} \nu+2\)

记面的最小度数为 \(k\),有 \(k \le \dfrac{2\varepsilon}{\phi} = 2+\dfrac{2\nu-4}{\phi} \le 2+ \dfrac{32}{11} <5\),也就是说 \(k \le 4\)

\((2)\) 正十二面体的平图。

\(4.7.\)\(G\)\(\nu\) 个顶点 \(\varepsilon\) 条边的简单平面图,\(\varepsilon<30\),证明存在顶点 \(v\in V(G)\),使得 \(\deg(v) \le 4\)

解答

上题的对偶版本,证明相似,留给读者思考。

\(4.8.\) 对于平面图 \(G\)

\((1)\) 证明:若 \(G\) 是围长(即最短圈的长度)\(k \ge 3\) 的连通平面图,则 \(\varepsilon \le \dfrac{k(\nu-2)}{k-2}\)

\((2)\) 利用 \((1)\) 证明:\(\text{Petersen}\) 图是非平面图。

解答

\((1)\) \(\dfrac{k(\nu-2)}{k-2}=\dfrac{k(\varepsilon-\phi)}{k-2}=\varepsilon+\dfrac{2\varepsilon-k\phi}{k-2} \ge \varepsilon\)

\((2)\) 套公式即可。

\(4.9.\) 试证正多面体只有五种,且计算出它们的顶点数、棱数和面数。

解答

记每个点度数为 \(d\),每个面度数为 \(k\)

\(d\nu=k\phi=2\varepsilon\),则 \(2=\varepsilon(\dfrac{2}{d}-1+\dfrac{2}{k})\),也就是 \(\dfrac{1}{\varepsilon}+\dfrac{1}{2}=\dfrac{1}{d}+\dfrac{1}{k}\),注意到 \(d,k \ge 3\)\(\dfrac{1}{2}<\dfrac{1}{d}+\dfrac{1}{k}\),枚举后只有 \((3,3),(3,4),(3,5),(4,3),(5,3)\) 五组解。

\(4.10.\)\(G\)\(\nu\) 个顶点 \(\varepsilon\) 条边的简单连通平面图,\(\nu=7,\varepsilon=15\),证明:\(G\) 的所有面的度数都是 \(3\)

解答

由 Euler 公式,

\[\phi=2-\nu+\varepsilon=2-7+15=10. \]

平面图中各面度数和为 \(2\varepsilon=30\)。简单平面图每个面的度数至少为 \(3\),而 \(10\) 个面的度数和正好为 \(30\),故每个面度数都等于 \(3\)

\(4.11.\) 一个连通平面图是 \(2\)-连通的,当且仅当它的每个面的边界都是圈。

解答

若存在边界不是圈,那么有割边或割顶,那么 \(\kappa \le 1\)\(\kappa\le \kappa' \le 1\)

若一个连通平面图不是 \(2\)-连通的,那么存在割顶,那么包含割顶的面不是圈。

\(4.12.\) 证明:在 \(\nu \ge 7\) 的连通平面图上可以选取不超过 \(5\) 个顶点,把它们删除后得到的图不
连通。

解答

\(\kappa \le \delta \le 5\),找到最小顶割集即可。

\(4.13.\)\(G\) 是连通的 \(3\)-正则平面图,\(\phi_i\)\(G\) 中度数为 \(i\) 的面的个数,证明:\(12 = 3 \phi_3 +2 \phi_4 + \phi_5 -\phi_7 -2\phi_8 -3\phi_9 -\cdots\)

解答

注意到 \(2\varepsilon=3\nu\),那么 \(12=6\phi-2\varepsilon=6(\phi_3+\phi_4+\cdots)-(3\phi_3+4\phi_4+\cdots)=3 \phi_3 +2 \phi_4 + \phi_5 -\phi_7 -2\phi_8 -3\phi_9 -\cdots\)

\(4.14.\) 证明图 \(G\) 不是平面图。

解答

这是依赖题图的判定题。常用证明方法有两种:

若能在 \(G\) 中找到与 \(K_5\)\(K_{3,3}\) 同胚的子图,则由 Kuratowski 定理,\(G\) 非平面。

\(G\) 是简单二分图且 \(\nu\ge 3\),可用平面二分图边数上界 \(\varepsilon\le 2\nu-4\);若题图违反该不等式,则非平面。若不是二分图,可尝试用 \(\varepsilon\le 3\nu-6\) 或收缩边得到 \(K_5,K_{3,3}\)

\(4.15.\) 画出所有 \(6\) 阶连通的简单非同构的非平面图。

解答

由 Kuratowski 定理,\(6\) 阶简单非平面图必须含有 \(K_5\) 的细分或 \(K_{3,3}\) 的细分。\(6\) 个顶点时,可能类型为:

\((1)\) \(K_{3,3}\) 本身,以及在 \(K_{3,3}\) 上继续加边得到的非同构图;

\((2)\) \(K_5\) 加一个新顶点,并让新顶点与 \(K_5\) 中若干顶点相邻;为保持连通,至少连一条边。按新顶点度数 \(1,2,3,4,5\) 分类,并考虑 \(K_5\) 的对称性即可列全。

画图时按这两类枚举并去掉同构重复。

\(4.16.\) 证明 \(K_{3,3}\) 的厚度是 \(2\)

解答

\(K_{3,3}\) 非平面,所以厚度至少为 \(2\)。另一方面,可把 \(K_{3,3}\)\(9\) 条边分成一个 \(6\) 圈和剩余 \(3\) 条两两不相邻的边。\(6\) 圈是平面图;剩余 \(3\) 条边构成匹配,也是平面图。因此 \(K_{3,3}\) 的边集可分解为两个平面图的边集,厚度至多为 \(2\)。综上 \(\theta(K_{3,3})=2\)

\(4.17.\) 求图 \(G\) 的厚度。

解答

这是依赖题图的计算题。一般步骤是:先用边数下界

\[\theta(G)\ge \left\lceil \frac{\varepsilon(G)}{3\nu(G)-6}\right\rceil \]

(若 \(G\) 二分,则可用更强的 \(\left\lceil \varepsilon/(2\nu-4)\right\rceil\)),再给出相应数量个平面子图分解。如果下界与构造的分解数量相同,即得到厚度。

\(4.18.\) 试证:\(\theta(K_\nu) \ge \left\lceil \dfrac{\nu(\nu -1)}{6(\nu -2)}\right\rceil\)。并证明:等式对所有 \(\nu \le 8\) 成立(参考本章习题 \(4.3.(2)\))。

解答

\(K_\nu\)\(\binom{\nu}{2}\) 条边,而每个 \(\nu\) 阶简单平面图最多有 \(3\nu-6\) 条边。因此若 \(K_\nu\) 分解为 \(t\) 个平面图,则

\[\binom{\nu}{2}\le t(3\nu-6), \]

\[t\ge \left\lceil \frac{\nu(\nu-1)}{6(\nu-2)}\right\rceil. \]

\(\nu\le 8\),可直接给出达到该下界的平面分解:\(\nu\le4\)\(K_\nu\) 平面;\(\nu=5,6\) 时下界为 \(2\),可把边分成两个平面子图;\(\nu=7,8\) 时下界也为 \(2\),利用八面体图及其补图的平面嵌入可完成分解。因此等式成立。

\(4.19.\) 证明:当 \(m\)\(n\) 不同时为 \(1\) 时,\(K_{m,n}\) 的厚度至少是 \(\left\lceil \dfrac{mn}{2m+2n-4} \right\rceil\)

解答

\(K_{m,n}\) 是二分图,任一平面子图仍是二分平面图。若该平面子图有 \(m+n\) 个顶点,则边数至多为

\[2(m+n)-4=2m+2n-4. \]

\(K_{m,n}\) 可分解为 \(t\) 个平面图,则

\[mn\le t(2m+2n-4), \]

\[t\ge \left\lceil \frac{mn}{2m+2n-4}\right\rceil. \]

\(4.20.\)\(S =\{x_1,x_2,\cdots,x_n\}\) 是平面上 \(n\) 个点的集合,\(n \ge 3\),其中任何两点之间的距离至少是 \(1\)。证明:最多有 \(3n-6\) 个点对,其距离恰好是 \(1\)

解答

把距离恰好为 \(1\) 的点对用直线段连边。若两条这样的线段 \(ab\)\(cd\) 在内部相交,设交点为 \(o\)。因为

\[ao+bo=1,\qquad co+do=1, \]

所以在 \(a,b\) 中可取一点 \(p\) 使 \(po\le 1/2\),在 \(c,d\) 中可取一点 \(q\) 使 \(qo\le 1/2\)。两线段内部相交且不共线,因此

\[pq<po+oq\le 1, \]

这与任意两点距离至少为 \(1\) 矛盾。故所得直线图没有交叉,是平面图。

平面简单图在 \(n\ge 3\) 时最多有 \(3n-6\) 条边,因此距离恰好为 \(1\) 的点对最多有 \(3n-6\) 对。

匹配理论

两个例子

设某公司有员工 \(x_1,x_2,\cdots,x_m\),有一些工作 \(y_1,y_2,\cdots,y_n\) 需要分配给这些员工。通常一个员工只适合做某些工作,而不适合做另外一些工作。工作分配的原则是每个人只能做一份工作,每一份工作也只能一个人来做。那我们能够给出一个工作分配方案,使得每个人都有工作且每份工作都有人去做吗?若做不到,那最多能够使得多少员工有工作,多少份工作有人做呢?

设有一个残缺的 \(m\times n\) 棋盘,我们用 \(1\times 2\) 的多米诺骨牌来覆盖,要求:\(1.\) 骨牌不能覆盖残缺的位置;\(2.\) 骨牌间不能有重叠。问能否将所有非残缺的位置都覆盖到?若不能覆盖所有残缺的位置,最多能够覆盖多少张牌?

匹配的定义

定义 \(5.1\)\(M\) 是图 \(G\) 的边子集,且 \(M\) 的任意两条边在 \(G\) 中都不相邻,则称 \(M\)\(G\) 的一个匹配\(M\) 中同一条边的两个端点称为在 \(M\)相配\(M\) 中边的端点称为被 \(M\) 许配。若 \(G\) 中所有的顶点都被 \(M\) 许配,则称 \(M\)\(G\)完备匹配\(G\) 中边数最多的匹配称为 \(G\)最大匹配。若 \(M\)\(G\) 的最大匹配,则称 \(M\) 中的边数 \(|M|\)\(G\)匹配数,记作 \(\alpha(G)=|M|\)

定义 \(5.2\)\(M\) 是图 \(G\) 的匹配,\(P =v_0e_1v_1e_2\cdots e_kv_k\)\(G\) 中的一条轨道(圈),若 \(e_1,e_2,\cdots,e_k\)\(M\)\(E(G)-M\) 中交替出现,则称 \(P\)\(G\) 中关于 \(M\)交错轨道(圈)

定义 \(5.3\)\(P=v_0e_1v_1e_2\cdots e_{2k+1}v_{2k+1}\)\(G\) 中关于 \(M\) 的交错轨道,若 \(e_1, e_3, \cdots ,e_{2k+1} \notin M, e_2,\cdots ,e_{2k} \in M\),且 \(v_0\)\(v_{2k+1}\) 没有被 \(M\) 许配,则称 \(P\)\(G\) 中关于 \(M\)可增广轨道

引理 \(5.1\) \(M\)\(G\) 的最大匹配,当且仅当 \(G\) 中没有关于 \(M\) 的可增广轨道。

证明

定义对称差 \(G=X\oplus Y\),表示 \(e \in E(G)\) 当且仅当 \(e\in E(X)\)\(e \in E(Y)\) 恰好满足一个。

充分和必要均反证,考虑若存在关于匹配 \(M\) 的可增广轨道 \(P\),那么匹配 \(M'=M\oplus P\) 满足 \(|M'|=|M|+1\),与最大匹配矛盾。

若匹配 \(M\) 不是最大匹配,考虑找到最大匹配 \(M'\),那么考虑 \(G'=M \oplus M'\),在 \(G'\) 中每个点的度数为 \(1\)\(2\),且在 \(M'\) 中的边比在 \(M\) 中的边多,那么一定存在一条轨道上在 \(M'\) 中的边比在 \(M\) 上的边数多,与无可增广轨道矛盾。

二分图中的匹配

定理 \(5.1\text{(Hall)}\)\(G\) 是二分图,其顶点集合划分为 \(V(G) = X\cup Y\)\(X \cap Y = \varnothing\),则 \(G\) 中存在将 \(X\) 中顶点都许配的匹配,当且仅当任给 \(S \subseteq X\),都有 \(|N(S)|\ge |S|\)。其中,\(N(S)\) 是与 \(S\) 中顶点相邻的顶点构成的集合,简称为 \(S\) 的邻顶集合。

证明

假设存在将 \(X\) 全部许配的匹配 \(M\),那么对于任意 \(S \subseteq X\)\(S\) 中顶点均许配给 \(N(S)\) 中顶点,故需满足 \(|N(S)| \ge |S|\)

假设任给 \(S \subseteq X\),都有 \(|N(S)|\ge |S|\)。考虑最大匹配 \(M\),若存在 \(u \in X\)\(u \notin M\),考虑与 \(u\) 之间有交错轨道的顶点构成的集合 \(Z\),令 \(S=Z \cap X\)\(T=Z \cap Y\)\(Z\) 中只有 \(u\) 未被许配,故有 \(|S|=|T|-1\),而显然 \(N(S) \subseteq Z\),那么此时推出矛盾,故 \(\text{Hall}\) 定理成立。

\(\text{Hall}\) 定理也称为婚配定理。

推论 \(5.1\) 对于正整数 \(k>0\)\(k\) 次正则二分图 \(G\) 有完备匹配。

定义 \(5.4\)\(G\) 是一个图,\(C\) 是其顶点集合的子集,即 \(C \subseteq V(G)\),若 \(G\) 中任意一条边都有一个端点属于 \(C\),则称 \(C\)\(G\) 的一个覆盖。若 \(C\)\(G\)覆盖,但 \(C\) 的任何真子集都不是 \(G\) 的覆盖,则称 \(C\)\(G\)极小覆盖。若 \(C^*\)\(G\) 的覆盖,且不存在 \(G\) 的覆盖 \(C\),使得 \(|C|<|C^*|\),则称 \(C^*\)\(G\)最小覆盖,且称 \(|C^*|\)\(G\)覆盖数,记作 \(\beta(G)\)

引理 \(5.2\) 假设 \(C\) 是图 \(G\) 的覆盖,\(M\) 是图 \(G\) 的匹配,则 \(|C| \ge |M|\)

证明

注意该引理在一般图情况下均成立。

考虑一组匹配 \(M=\{e_1,e_2,\cdots,e_n\}\),由于 \(C\) 是覆盖,则 \(e_i=u_iv_i\) 必有一点(令是 \(u_i\))在 \(C\) 中,而 \(u_i\) 互不相同,故 \(|C|\ge |M|\)

引理 \(5.3\) 若图 \(G\) 存在覆盖 \(C\) 和匹配 \(M\),使得 \(|C|=|M|\),则 \(C\) 是最小覆盖,\(M\) 是最大匹配。

证明

显然 \(|M|\le |M^*| \le |C^*| \le |C|\)\(|M|=|C|\) 只能全部取等。

定理 \(5.2\text{(König-Egerváry)}\)\(G\) 是二分图,则 \(G\) 的匹配数等于其覆盖数,
\(\alpha(G)=\beta(G)\)

证明

\(V=X \cup Y\),若存在一个匹配包含 \(X\) 中所有点,那么覆盖直接选 \(X\) 就得证。

否则我们考虑 \(X\) 中没有在 \(M\) 中出现的点,记为 \(U\),找到与 \(U\) 中任意一点有交错轨道的集合 \(Z\),令 \(S=Z \cap X\)\(T=Z \cap Y\),显然 \(Z\) 中只有 \(U\) 未被许配,此时匹配数为 \(|T|\),同时覆盖选择 \(T\) 即可满足匹配数等于覆盖数。

剩余部分 \(X-S\) 中的点均被许配,直接选择 \(X-S\) 即可。此时匹配数和覆盖数均为 \(|X|-|S|+|T|\)

任意图的完备匹配

定义 \(5.5'\)\(G'\) 是图 \(G\) 的连通片,若 \(\nu(G')\) 是奇数,则称 \(G'\)\(G\) 的奇片。否则,称之为 \(G\) 的偶片。我们用 \(o(G)\) 表示 \(G\) 中奇片的个数。

定理 \(5.3\text{(Tutte)}\) \(G\) 有完备匹配,当且仅当任给 \(S \subseteq V(G)\),都有 \(o(G-S) \le |S|\)

证明

必要性显然,否则 \(o(G-S)\) 总会有一个奇片的多余点无法匹配。

下面证充分性。反证,设 \(G\) 满足任意 \(S\subseteq V(G)\) 都有 \(o(G-S)\le |S|\),但 \(G\) 没有完备匹配。再在保持“没有完备匹配”的前提下尽量向 \(G\) 中加边,得到边极大的反例 \(H\)。由于加边只会合并 \(H-S\) 的连通片,不会增加奇片数,\(H\) 仍满足

\[o(H-S)\le |S|. \]

\[U=\{v\in V(H):\deg_H(v)=\nu(H)-1\} \]

\(H\) 中与所有其他顶点相邻的顶点集。由极大性可得,\(H-U\) 的每个连通片都是完全图:否则在某个连通片中取一对不相邻顶点 \(x,y\),加边 \(xy\) 后存在完备匹配,且该匹配必使用 \(xy\);沿连通片中连接 \(x,y\) 的最短轨道作交错替换,可以得到 \(H\) 本身的完备匹配,矛盾。

\(H-U\) 的奇阶连通片数为 \(q=o(H-U)\)。若 \(q\le |U|\),则可以给每个奇阶完全片选一个顶点与 \(U\) 中不同顶点匹配;这些奇阶完全片删去一个顶点后剩偶数阶,因而内部有完备匹配。偶阶完全片也有完备匹配。剩余的 \(U\) 中顶点构成完全图,且剩余个数为偶数,也可两两匹配。于是 \(H\) 有完备匹配,矛盾。

因此 \(q>|U|\),即

\[o(H-U)>|U|, \]

这与 Tutte 条件矛盾。故 \(G\) 必有完备匹配。

定理 \(5.4\text{(Petersen)}\) 无桥的三次正则图有完备匹配。

证明

任取点集 \(S\),考虑 \(G-S\) 中所有奇片 \(G_1,G_2,\cdots,G_k\)

对于奇片 \(G_i\),考虑其与 \(S\) 中的连边数,记为 \(m_i\),显然 \(m_i=\sum\limits_{u \in V(G_i)} \deg(u)-2\varepsilon(G_i)=3\nu(G_i)-2\varepsilon(G_i)\)

由于没有割边,\(m_i\ge 2\),而由于 \(\nu(G_i)\) 是奇数,那么 \(m_i\) 也是奇数,\(m_i \ge 3\)

那么 \(3|S| \ge \sum\limits_{i=1}^k m_i \ge 3k\),故 \(|S|\ge o(G-S)\),满足 \(\text{Tutte}\) 定理。

最大匹配算法

最大匹配算法的基本依据是引理 \(5.1\):匹配 \(M\) 最大,当且仅当不存在关于 \(M\) 的可增广轨道。算法从空匹配开始,反复寻找可增广轨道;若找到,则将该轨道上的边与 \(M\) 做对称差,匹配边数增加 \(1\);若找不到,则当前匹配最大。

在二分图中,可从所有未匹配的 \(X\) 部顶点出发,沿“非匹配边、匹配边”交替进行搜索。若搜索到未匹配的 \(Y\) 部顶点,就得到可增广轨道。该方法可用 DFS 或 BFS 实现。

最佳匹配算法

最佳匹配通常指带权二分图中的最大权完备匹配。设二分图两侧顶点数相同,边权为 \(w(x,y)\)。常用方法是 Kuhn-Munkres 算法:维护顶标 \(l(x),l(y)\),使得 \(l(x)+l(y)\ge w(x,y)\);只在满足等号的相等子图中寻找完备匹配。若找不到,则按交错树计算最小松弛量并调整顶标,使相等子图增加边,重复直到得到完备匹配。

正确性说明

对任意完备匹配 \(M\),有

\[w(M)=\sum_{xy\in M}w(x,y)\le \sum_{xy\in M}(l(x)+l(y))=\sum_xl(x)+\sum_yl(y). \]

若相等子图中存在完备匹配,则上式取等号,该匹配达到所有完备匹配权值的上界,因此是最大权完备匹配。顶标调整保持可行并扩大相等子图,故算法最终正确。

习题

\(5.1.\)\(K_{2n}\)\(K_{n,n}\) 中不同的完备匹配的个数。

解答

\(K_{2n}\) 的完备匹配数为

\[(2n-1)(2n-3)\cdots 3\cdot 1=\frac{(2n)!}{2^n n!}. \]

证明:固定一个顶点,它有 \(2n-1\) 种匹配对象;删去这两个顶点后,剩余 \(2n-2\) 个顶点继续匹配。

\(K_{n,n}\) 的完备匹配数为 \(n!\)。因为每个完备匹配等价于从左侧 \(n\) 个顶点到右侧 \(n\) 个顶点的一个双射。

\(5.2.\) 证明:树至多有一个完备匹配。

解答

假设树有至少一个完备匹配 \(M\)

首先 \(\nu\) 是偶数,而任取 \(v\)\(T-v\)\(\deg(v)\) 个连通片,且至少有一个奇片。

由于我们假设树有完备匹配,那么假设 \(uv \in E\)\(v\) 所在连通片是奇片,那么一定有 \(uv \in M\)

也就是说和 \(v\) 许配的点固定,完备匹配 \(M\) 确定。

\(5.3.\) 对于 \(k>1\),给出没有完备匹配的 \(k\) 次正则图的例子。

解答

奇圈。

\(5.4.\) 两个人在图 \(G\) 上博弈,交替选择不同的顶点 \(v_0,v_1,v_2,\cdots,\) 使得当 \(i>0\) 时,\(v_i\)\(v_{i-1}\) 相邻,直到不能选到顶点为止,谁最后能选到一个顶点谁赢。证明:第一个选顶点的人有必胜的策略,当且仅当 \(G\) 中无完备匹配,并给出一个必胜的策略。

解答

若存在完备匹配,则每次先手选择 \(u\) 后手选择 \(u\) 许配的点即可。

显然所有点都有许配点,所以后手总能找到应对策略。

若不存在完备匹配,则先手选择一个不在最大匹配中的点 \(v\),然后后手每次选择 \(u\),先手都选择 \(u\) 许配的点即可。

对于后手第一次选择,由于先手选的点不在最大匹配中,所以后手第一次选的点一定在最大匹配中。

然后后手每一步都不可能走出最大匹配,否则就找到了先手第一次选的点和这次选的点之间的一条可增广轨,与最大匹配矛盾。

\(5.5.\) \(G\) 的一个 \(k\) 度因子是指 \(G\) 的一个 \(k\) 次正则生成子图。\(G\)\(k\) 度因子分解是将 \(G\) 分解成一些无公共边的 \(k\) 度因子之并,即 \(\bigcup\limits_{i=1}^n H_i\),其中 \(H_i(1 \le i \le n)\)\(G\)\(k\) 度因子。证明:

\((1)\) \(K_{2n}\)\(K_{n,n}\) 是可 \(1\) 度因子分解的。

\((2)\) \(\text{Petersen}\) 图是不能 \(1\) 度因子分解的。

解答

\((1)\)\(K_{2n}\),将 \(2n\) 个顶点放在正 \(2n\) 边形上。每一轮取一组两两不相邻且覆盖所有顶点的“平行弦”(包括一条边界边),得到一个 \(1\) 度因子;旋转该因子可得到 \(2n-1\) 个互不相交的 \(1\) 度因子,覆盖全部边。

\(K_{n,n}\),设两侧顶点为 \(x_0,\cdots,x_{n-1}\)\(y_0,\cdots,y_{n-1}\)。对每个 \(r\in\mathbb Z_n\),取

\[M_r=\{x_i y_{i+r}\mid i\in\mathbb Z_n\}. \]

每个 \(M_r\) 是一个 \(1\) 度因子,且 \(M_0,\cdots,M_{n-1}\) 两两无公共边并覆盖 \(K_{n,n}\)

\((2)\) Petersen 图若可 \(1\) 度因子分解,则其 \(15\) 条边应分解为 \(3\) 个完美匹配。删去任一完美匹配后,剩余图应为一个 \(2\) 因子。Petersen 图的任意 \(2\) 因子都是一个 \(5\) 圈加另一个 \(5\) 圈;于是对应完美匹配必须正好连接两个 \(5\) 圈之间的五条边。再删去第二个完美匹配时,每个 \(5\) 圈内剩余边数为奇数,不能再由完美匹配覆盖,矛盾。因此 Petersen 图不能 \(1\) 度因子分解。

\(5.6.\) 证明:\(8\times 8\) 的正方形去除对角上的两个 \(1\times 1\) 的小正方形后,不能用 \(1\times 2\) 的长方形覆盖。

解答

黑白染色(按国象棋盘染色)例题。

\(5.7.\) 证明:二分图 \(G\) 有完备匹配的充要条件是,对任何 \(S\subseteq V(G)\),都满足 \(|N(S)| \ge |S|\)。这个命题对一般图成立吗?

解答

不成立,奇圈。

\(5.8.\) 对于 \(k>0\),证明:

\((1)\) 每个 \(k\) 次正则二分图都是可以 \(1\) 度因子分解的。

\((2)\) 每个 \(2k\) 次正则图都是可以 \(2\) 度因子分解的。

解答

\((1)\) 每次找到一个完备匹配 \(M\),然后归纳到 \(k-1\) 的子问题。

\((2)\)\(2k\)\(1\) 度因子两两合并即可。

\(5.9.\) 矩阵的一行或一列称为矩阵的一条线。证明:\(0\)-\(1\) 矩阵中包含所有 \(1\) 所需的最少线数等于没有两个 \(1\) 在同一条线上的 \(1\) 的最大个数。

解答

考虑矩阵 \((a_{ij})_{m \times n}\),建立一张二分图 \(G\)\(X\) 中的点对应 \(m\) 行,\(Y\) 中的点对应 \(n\) 列。若 \(a_{ij}=1\),那么给行 \(i\) 和列 \(j\) 之间连接一条边,表示第 \(i\) 行的线和第 \(j\) 列的线之间必选至少一条。

那么 \(G\) 的最大匹配表示最多的边使得点不重复,也就是没有两个 \(1\) 在同一条线上的 \(1\) 的最大个数。

\(G\) 的最小覆盖表示选一些点包含所有边,也就是包含所有 \(1\) 所需的最少线数。

最大匹配数等于最小覆盖数,结论成立。

\(5.10.\)\(A=(a_{ij})_{m\times n}\) 是一个 \(0\)-\(1\) 矩阵,\(m\le n\)。矩阵 \(A\) 的每一行都有 \(k\)\(1\),而每一列 \(1\) 的个数不超过 \(k\) 个,则 \(A\) 可以表示成 \(A=P_1+P_2+\cdots+P_k\),其中 \(P_i(1\le i\le k)\) 也是 \(m\times n\)\(0\)-\(1\) 矩阵,而且每行恰有一个 \(1\),每列中 \(1\) 的个数不超过一个。

解答

模型同上题,每次找到最大匹配每一行所对应的点必定都选,然后可以归纳。

\(5.11.\)\(G\) 是顶点集合划分为 \(X\)\(Y\) 的二分图,则 \(G\) 的最大匹配中的边数等于 \(|X|- \max\limits_{S\subseteq X}\{|S| -|N(S)|\}\)

解答

\[d=\max_{S\subseteq X}\{|S|-|N(S)|\}. \]

任取匹配 \(M\)\(S\subseteq X\)\(S\) 中至多有 \(|N(S)|\) 个顶点能被匹配到 \(N(S)\),故至少有 \(|S|-|N(S)|\) 个顶点不能被 \(M\) 饱和。因此

\[|M|\le |X|-d. \]

下面证明可以达到这个上界。向 \(Y\) 中加入 \(d\) 个新顶点,并把每个新顶点都与 \(X\) 中所有顶点相连,得到二分图 \(G'\)。对任意 \(S\subseteq X\)

\[|N_{G'}(S)|=|N_G(S)|+d\ge |S|. \]

\(\text{Hall}\) 定理,\(G'\) 中存在饱和 \(X\) 的匹配。删去其中与新顶点关联的匹配边,最多删去 \(d\) 条边,剩下的是 \(G\) 中的匹配,边数至少为 \(|X|-d\)。故最大匹配数正是 \(|X|-d\)

\(5.12.\)\(\text{König-Egerváry}\) 定理来证明 \(\text{Hall}\) 定理。

解答

考虑证明 \(\alpha=\beta=|X|\) 当且仅当任给 \(S \subseteq X\)\(|N(S)| \ge |S|\)

\(\alpha \ne |X|\),则 \(\beta \ne |X|\),考虑找到一个最小覆盖集 \(T\),令 \(S=X-(T \cap X)\),也就是说 \(S\)\(X\) 中不在 \(T\) 中的点。此时显然有 \(N(S) \subseteq T\),且由于 \(T\) 最小,所以 \(|N(S)|<|S|\)

\(|N(S)|<|S|\),那么根据 \(\text{König-Egerváry}\) 定理的证明方法可以直接得到 \(\beta \ne |X|\)

\(5.13.\)\(\text{Tutte}\) 定理来证明 \(\text{Hall}\) 定理。

解答

\(|X|,|Y|\) 奇偶性不同,\(Y \leftarrow Y \cup \{y_0\}\)。将 \(Y\) 连成完全图,记新图为 \(H\)

原图有包含 \(X\) 中所有顶点的匹配 \(\Longleftrightarrow\) 新图有完备匹配。

充分性:任取 \(S \subseteq X\),若 \(o(H-N(S)) \le |N(S)|\),由于 \(H-N(S)\) 都是孤立点,\(|S|\le o(H-N(S)) \le |N(S)|\)

必要性:若存在 \(T\)\(o(H-T)>|T|\)

\(Y \subseteq T\),显然 \(|X|>|N(X)|\)

否则考虑 \(T'=T \cap Y\),若 \(T'=T\),显然 \(o(H-T') >|T'|\),否则 \(o(H-T')\ge o(H-T)-1\ge |T|>|T'|\)

\(H-T'\) 会被分为与 \(Y-T\) 连通的部分(最多一个奇片)和剩余 \(X\) 中的孤立点(记为 \(S\),最多 \(|S|\))个奇片。

显然 \(|S|\ge o(H-T')-1\ge |T'|\),若 \(|S|=|T'|\),那么与 \(Y-T'\) 连通的部分大小为偶数,有 \(|S|>|T'|\),矛盾。故 \(|S|>|T'|\ge |N(S)|\)

\(5.14.\) 证明:若 \(G\)\(k-1\) 边连通的 \(k\) 次正则图,且 \(\nu(G)\) 是偶数,则 \(G\) 有完备匹配。

解答

反证,若存在 \(S \subseteq V\)\(o(G-S)>|S|\)。考虑所有奇片 \(G_i\),由于 \(G\)\(k-1\) 边连通的,\(V(G_i)\)\(S\) 之间的连边至少有 \(k\) 条。而有一端在 \(S\) 中的边之多有 \(|S|k\) 条,故 \(o(G-S)k\le |S|k\),矛盾。

\(5.15.\) 证明:树 \(T\) 有完备匹配,当且仅当对任意 \(v\in V(T)\),都有 \(o(T -v)=1\)

解答

\(5.2.\),可以直接构造出完备匹配。

\(5.16.\)\(a,b,c,d,e,f\) 六个人组成检查团,检查 \(5\) 个单位的工作。若某单位与某人有过工作联
系,则不能选派此人到该单位去检查工作。已知第一单位与 \(b,c,d\) 有过联系,第二单位与 \(a,e,f\),第三单位与 \(a,b,e,f\),第四单位与 \(a,b,d,f\),第五单位与 \(a,b,c\) 有过联系,请列出去各个单位进行检查的人员名单。

解答

把人员和单位建立二分图,允许检查则连边。各单位可选人员为:

\[1:\{a,e,f\},\quad 2:\{b,c,d\},\quad 3:\{c,d\},\quad 4:\{c,e\},\quad 5:\{d,e,f\}. \]

取匹配

\[1-a,\quad 2-b,\quad 3-c,\quad 4-e,\quad 5-d. \]

因此可派 \(a\) 检查第一单位,\(b\) 检查第二单位,\(c\) 检查第三单位,\(e\) 检查第四单位,\(d\) 检查第五单位。

\(5.17.\) 设有四个人 \(A,B,C,D\),有四份工作 \(a,b,c,d\),每个人做某份工作的效率如下面的矩阵所
示,试求最佳的工作分配方案。

解答

题面中的效率矩阵没有录入到当前 Markdown 中。解法是把四个人和四份工作建立带权二分图,边权为效率,求最大权完备匹配。

手算时枚举 \(4!=24\) 个排列 \(\pi\),计算

\[w(A,\pi(A))+w(B,\pi(B))+w(C,\pi(C))+w(D,\pi(D)) \]

的最大值;若使用算法,则用 Kuhn-Munkres 算法。最大值对应的排列就是最佳工作分配方案。

\(5.18.\)\(8\times 8\) 的棋盘上选 \(16\) 个格子,其中每行每列选两个格子。证明:可以将 \(8\) 个白子、\(8\) 个黑子放在所选的格子上,使每行每列恰有一个白子、一个黑子。

解答

将选中的 \(16\) 个格子作为顶点;同一行中两个被选格子连一条“行边”,同一列中两个被选格子连一条“列边”。由于每行、每列都恰有两个被选格子,每个顶点恰关联一条行边和一条列边,所以该图是若干个圈的并,并且每个圈上行边、列边交替出现,故所有圈长度都是偶数。

于是该图是二分图。把一个部集中的格子放白子,另一个部集中的格子放黑子。每条行边和每条列边的两个端点分属不同部集,因此每行每列都恰有一个白子、一个黑子。

\(5.19.\) 证明:\(\text{Kuhn-Munkreas}\) 算法中修改顶标后,\(\hat{l}\) 仍然是可行顶标。

解答

\(x \notin S\)\(y \in T\),则两端顶标之和不减,或者一个减少 \(\alpha\) 而另一个同时增加 \(\alpha\),因此 \(\hat{l}(x)+\hat{l}(y)\ge l(x)+l(y)\ge w(xy)\)

\(x \in S\)\(y \notin T\),由于

\[\alpha \le l(x)+l(y)-w(xy), \]

\[\hat{l}(x)+\hat{l}(y)=l(x)+l(y)-\alpha\ge w(xy). \]

所以 \(\hat l\) 仍是可行顶标。

\(5.20.\) \(\text{Kuhn-Munkreas}\) 算法中修改顶标后,由可行顶标 \(\hat{l}\) 得到相等子图 \(G_{\hat{l}}\)。证明:在算法的第 \((3)\) 步,在 \(G_{\hat{l}}\) 上找到的顶点子集 \(T\) 包含了在 \(G_l\) 上找到的顶点子集 \(T\),且至少多一个顶点。 由此可知,\(\text{Kuhn-Munkreas}\) 算法最终能够找到某个相等子图,该相等子图有完备匹配,从而说明 \(\text{Kuhn-Munkreas}\) 算法的正确性。

解答

\(S\) 为当前交错树中属于 \(X\) 的顶点集,\(T\) 为当前交错树中属于 \(Y\) 的顶点集,并令

\[\alpha=\min_{x\in S,\ y\notin T}\{l(x)+l(y)-w(xy)\}. \]

由第 \(5.19\) 题,修改后的 \(\hat l\) 仍是可行顶标。

\(xy\) 是原相等子图中交错树使用的边,则 \(x\in S,y\in T\)\(x\notin S,y\in T\) 时两端顶标的改变量相互抵消或总和增加,所以这些边仍在新的相等子图中。因此原来可达的 \(T\) 中顶点仍然可达。

另一方面,由 \(\alpha\) 的定义,存在 \(x_0\in S,y_0\notin T\) 使

\[\alpha=l(x_0)+l(y_0)-w(x_0y_0). \]

修改顶标后有

\[\hat l(x_0)+\hat l(y_0)=w(x_0y_0), \]

于是 \(x_0y_0\) 成为新的相等边。由于 \(x_0\) 已在交错树中,\(y_0\) 可以沿这条新相等边到达,且 \(y_0\notin T\)。所以新的 \(T\) 包含原来的 \(T\),并且至少多出一个顶点。重复此过程,算法最终会得到含有完备匹配的相等子图。

Euler 图与 Hamilton 图

Euler 图

定义 \(6.1\) 经过图 \(G\) 每条边的行迹称为 \(\text{Euler}\) 迹;经过图 \(G\) 每条边的闭行迹称为 \(\text{Euler}\) 回路。如果图 \(G\) 含有 \(\text{Euler}\) 回路,则称 \(G\)\(\text{Euler}\) 图。

定理 \(6.1\)\(G\) 是连通图,则下面三个命题等价:

\((1)\) \(G\)\(\text{Euler}\) 图;

\((2)\) \(G\) 的每个顶点的度数都是偶数;

\((3)\) \(G\) 可以表示成无公共边的圈之并。

证明

只需证明 \((1) \Rightarrow (2) \Rightarrow (3) \Rightarrow (1)\)

\((1) \Rightarrow (2)\):显然 \(\text{Euler}\) 回路上 \(v\) 每次出现两侧均是与 \(v\) 关联的不同的边,故若 \(v\) 出现 \(k\) 次有 \(\deg(v)=2k\)

\((2) \Rightarrow (3)\):首先 \(G\) 不是树,故可以每次拿出一个圈然后归纳。

\((3) \Rightarrow (1)\):考虑每次合并两个点相交的闭行迹,由于连通一定能找到,然后可以归纳得到一个 \(\text{Euler}\) 回路。

推论 \(6.1\) 连通图 \(G\)\(\text{Euler}\) 迹,当且仅当 \(G\) 中最多有两个度数为奇数的顶点。

定理 \(6.2\)\(D\) 是有向图,且略去 \(D\) 中边的方向后,对应的无向图连通,则下面三个命题等价:

\((1)\) \(D\)\(\text{Euler}\) 图;

\((2)\) \(\forall v \in V(D)\)\(\deg^+(v) = \deg^-(v)\)

\((3)\) \(D\) 可以表示成无公共边的有向圈之并。

推论 \(6.2\) 连通有向图 \(D\)\(\text{Euler}\) 有向迹但不是有向 \(\text{Euler}\) 图,当且仅当 \(D\) 中恰有两个度数为奇数的顶点,其中一个顶点入度比出度大 \(1\),另一个的出度比入度大 \(1\),其余顶点的入度均等于出度。

关于 \(\text{Euler}\) 回路的求法,可以使用 Fleury 算法或 Hierholzer 算法。

Hierholzer 算法:从任意顶点出发沿未使用边走,直到回到起点,得到一个闭迹。若该闭迹尚未包含所有边,则在闭迹上找一个仍有关联未使用边的顶点,从它出发再找一个闭迹,并把新闭迹插入原闭迹。重复直到所有边都被使用。

正确性证明

在所有顶点度数为偶数的连通图中,从任一顶点沿未使用边前进时,除起点外每次进入一个顶点后仍能从另一条未使用边离开,因此不会停在非起点处,必形成闭迹。若还有未使用边,由连通性,当前闭迹上必有顶点关联某条未使用边;剩余图中该顶点所在连通片仍为偶度图,所以可再找闭迹并插入。最终每条边恰使用一次,得到 Euler 回路。证毕。

中国邮递员问题

构造无向加权图 \(G=(V,E,w)\)\(E\) 为街道集合,\(V\) 中的元素是街道的交叉点,街道的长度为该街道对应的边的权,显然所有权均为正数。这样,邮递员问题就变成了求 \(G\) 中一条经过每条边至少一次的回路 \(C\),使该回路的权 \(\sum\limits_{e\in E(C)} w(e)\) 最小,且称满足以上条件的回路是最优投递路线

\(\text{Edmonds-Johnson}\) 算法的思路是考虑若图是 \(\text{Euler}\) 图,那么显然 \(\text{Euler}\) 回路即为答案,否则考虑通过对所有奇度数的点找到最小权最大匹配即可转化为 \(\text{Euler}\) 图。

Hamilton 图

定义 \(6.2\) 经过图 \(G\) 每个顶点的轨道称为 \(\text{Hamilton}\) 轨道;经过图 \(G\) 每个顶点的圈称为 \(\text{Hamilton}\)。如果图 \(G\) 含有 \(\text{Hamilton}\) 圈,则称这个图为 \(\text{Hamilton}\)

规定平凡图是 \(\text{Hamilton}\) 图。

定理 \(6.4\)\(G\)\(\text{Hamilton}\) 图,则对 \(V(G)\) 的每个非空真子集 \(S\),均有 \(\omega(G-S) \le |S|\)

证明

考虑 \(\text{Hamilton}\)\(H\),显然有 \(\omega(G-S)\le \omega(H-S) \le |S|\)

定理 \(6.5\text{(Dirac)}\)\(G\) 是简单图,且 \(\nu(G) \ge 3\)\(\delta(G) \ge \dfrac{\nu(G)}2\),则 \(G\)\(\text{Hamilton}\) 图。

证明

反证,加一些边得到一个极大的非 \(\text{Hamilton}\)\(G'\),显然 \(G'\) 不是完全图。记 \(uv \notin E(G')\),考虑 \(G'+uv\)\(\text{Hamilton}\) 图,那么 \(G'\) 中存在以 \(u\) 为起点,\(v\) 为终点的 \(\text{Hamilton}\) 轨道,记为 \(w_1=u,w_2,\cdots,w_\nu=v\)

\(S=\{w_i|uw_{i+1} \in E(G')\}\)\(T=\{w_i|vw_i \in E(G')\}\)。由于 \(\delta(G') \ge \delta(G) \ge \dfrac{\nu}{2}\),故 \(S \cap T \ne \varnothing\)

考虑 \(w_i \in S \cap T\),那么 \(w_1w_2\cdots w_iw_\nu w_{\nu-1}\cdots w_{i+1}w_1\)\(G'\) 中的 \(\text{Hamilton}\) 回路,矛盾。

引理 \(6.1\)\(G=(V,E)\) 是简单图,\(u\)\(v\)\(G\) 中两个不相邻的顶点,且 \(\deg(u) + deg(v) \ge \nu(G)\),那么 \(G\)\(\text{Hamilton}\) 图,当且仅当 \(G+uv\)\(\text{Hamilton}\) 图。

\(G\)闭包 \(c(G)\) 指的是用下述方法从 \(G\)得到的一个图:反复连接 \(G\) 中度数之和不小于 \(\nu(G)\) 的不相邻顶点对,直到没有这样的顶点对为止。

引理 \(6.2\) \(c(G)\) 唯一确定。

证明

反证,考虑两个不同的闭包 \(G_1,G_2\),令 \(|E(G_1)|\le |E(G_2)|\),在构造 \(G_2\) 时第一条不在 \(G_1\) 中的新加入的边为 \(u,v\),记此时图为 \(G'\)

\(\deg_{G_1}(u)+\deg_{G_1}(v) \ge \deg_{G'}(u)+\deg_{G'}(v) \ge \nu\),那么 \(uv \in E(G_1)\),矛盾。

定理 \(6.6\) 简单图 \(G\)\(\text{Hamilton}\) 图,当且仅当它的闭包 \(c(G)\)\(\text{Hamilton}\) 图。

推论 \(6.3\)\(G\)\(\nu(G) \ge 3\) 的简单图,若 \(c(G)\) 是完全图,则 \(G\)\(\text{Hamilton}\) 图。

定理 \(6.7\text{(Ore,1960)}\)\(\nu(G) \ge 3\),对 \(G\) 的任意一对顶点 \(u,v\),若 \(\deg(u)+\deg(v)\ge \nu(G)-1\),则 \(G\)\(\text{Hamilton}\) 轨道;若 \(\deg(u)+\deg(v) \ge \nu(G)\),则 \(G\)\(\text{Hamilton}\) 图。

证明

第二个结论:若对任意不相邻顶点 \(u,v\) 都有 \(\deg(u)+\deg(v)\ge \nu\),则不断向 \(G\) 中加入满足该条件的非边直到得到闭包 \(c(G)\)。由定义,\(c(G)\) 必为完全图;否则仍有非邻接点对且度数和至少 \(\nu\),还能继续加边。完全图是 Hamilton 图,由定理 \(6.6\)\(G\) 是 Hamilton 图。

第一个结论:在 \(G\) 中加入一个新顶点 \(x\),并令 \(x\)\(G\) 中所有顶点相邻,得图 \(G'\),其阶为 \(\nu+1\)。对 \(G'\) 中任意两个不相邻顶点 \(u,v\),它们都在 \(G\) 中,且

\[\deg_{G'}(u)+\deg_{G'}(v)=\deg_G(u)+\deg_G(v)+2\ge \nu+1. \]

由第二个结论,\(G'\) 有 Hamilton 圈。删去该圈上的新顶点 \(x\),余下就是 \(G\) 的 Hamilton 轨道。证毕。

旅行商问题

一个旅行商访问若干城市,然后回到他出发的地方。给定各城市之间的距离,应该怎样规划路线,使得他访问每个城市恰好一次并回到原出发点,且总路程最短?这就是著名的旅行商问题货郎担问题。这个问题可以转化为如下的图论问题。

\(K_\nu = (V,E,w)\)\(\nu\) 阶完全加权图,各边的权非负,有的边的权可以是 \(+\infty\),求 \(K_\nu\) 中权最小的 \(\text{Hamilton}\) 圈。

目前还没有求解旅行商问题的有效算法,也无法证明其有效算法不存在。可行的办法是寻找近似算法,本节将介绍三种近似算法。

以下算法中均认为图满足三角形不等式,即 \(w(u,v)+w(v,w)\ge w(u,w)\)

最近邻法即为选择一个顶点 \(v_1\) 作为起点,维护一条轨道 \(W=v_1\cdots v_k\),每次找到 \(v \notin W\)\(w(v_k,v)\) 最小的 \(v\) 放到 \(W\) 的末尾,最后连成圈即可,记权为 \(d\)

复杂度 \(O(\nu^2)\),但性能不好,记 \(d_0\) 表示 \(G\) 中最短的 \(\text{Hamilton}\) 圈的权,可得 \(\dfrac{d}{d_0} \le \dfrac{1}{2}(\lceil\log n\rceil+1)\)

最小生成树法即为找到 \(G\) 的一棵最小生成树 \(T\),然后找到最小生成树的一条 \(\text{Euler}\) 回路,然后再将每个点去重(若再回路中出线多次,只保留第一次出线的位置)。这样能得到一条 \(\text{Hamilton}\) 圈。

复杂度 \(O(\nu^2)\),且有 \(\dfrac{d}{d_0} < 2\)

最小权匹配法在最小生成树法的基础上,通过给 \(T\) 中奇度点构造最小权完备匹配的方式构造权更小的 \(\text{Euler}\) 回路,再将每个点去重。

复杂度 \(O(\nu^3)\),且有 \(\dfrac{d}{d_0} < \dfrac{3}{2}\)

习题

\(6.1.\) \(\text{Herschel}\) 图是否是 \(\text{Euler}\) 图?是否能一笔画?为什么?

解答

按图 \(6.27\) 统计各顶点度数。Herschel 图中存在多个度数为 \(3\) 的顶点,因此不是所有顶点度数均为偶数,所以它不是 Euler 图。

连通图能一笔画当且仅当奇度顶点数为 \(0\)\(2\)。Herschel 图的奇度顶点数超过 \(2\),所以不能一笔画。

\(6.2.\) 如果可能,画出一个 \(\nu\) 为偶数 \(\varepsilon\) 为奇数的 \(\text{Euler}\)\(G\),否则说明为什么不存在这样的图。

解答

存在。取两个顶点 \(u,v\),在 \(u,v\) 之间连两条平行边,并在 \(u\) 上加一个环。此时 \(\nu=2\) 为偶数,\(\varepsilon=3\) 为奇数;两个顶点度数分别为 \(\deg(u)=4,\deg(v)=2\),图连通且所有顶点度数均为偶数,所以它是 Euler 图。

\(6.3.\)\(G\) 是恰有 \(2k\) 个奇度顶点的连通图,证明:\(G\) 中存在 \(k\) 条边不重的行迹 \(P_1,P_2,\cdots,P_k\),使得 \(E(G)=\bigcup\limits_{i=1}^k E(P_i)\)

解答

记奇度顶点为 \(v_1,\cdots,v_{2k}\),增加 \(v_{2i-1}v_{2i}\)\(k\) 条边,变为 \(\text{Euler}\) 图,找到 \(\text{Euler}\) 回路,将加边删去即可得到 \(k\) 条行迹。

\(6.4.\) 如何将 \(16\) 个二进制数字(\(8\)\(0\)\(8\)\(1\))排成一个圆形,使得 \(16\) 个长为 \(4\) 的二进制数在其中都出现且只出现一次?

解答

一个可行圆形排列为

\[0000100110101111. \]

把它首尾相接,并从每个位置开始连续读取 \(4\) 位,正好得到全部 \(2^4=16\) 个二进制串各一次。

构造方法:以所有长为 \(3\) 的二进制串为顶点;每个长为 \(4\) 的二进制串 \(a_1a_2a_3a_4\) 对应有向边 \(a_1a_2a_3\to a_2a_3a_4\)。所得有向图每点入度、出度均为 \(2\) 且强连通,故有 Euler 回路。沿 Euler 回路记录边的最后一位,即得所需圆形排列。

\(6.5.\) 如何将 \(9\)\(\alpha\)\(9\)\(\beta\)\(9\)\(\gamma\) 排成一个圆形,使得由这些 \(\alpha,\beta,\gamma\) 产生的 \(27\) 个长为 \(3\) 的符号串在其中都出现且只出现一次?

解答

一个可行圆形排列为

\[\alpha\alpha\alpha\beta\alpha\alpha\gamma\alpha\beta\beta\alpha\beta\gamma\alpha\gamma\beta\alpha\gamma\gamma\beta\beta\beta\gamma\beta\gamma\gamma\gamma. \]

首尾相接后,从每个位置开始读取连续 \(3\) 个符号,正好得到 \(3^3=27\) 个长为 \(3\) 的符号串各一次。

构造同 \(6.4\):以长为 \(2\) 的符号串为顶点,以长为 \(3\) 的符号串为有向边,求 Euler 回路。

\(6.6.\) 证明或否定:

\((1)\) 每个 \(\text{Euler}\) 二分图都有偶数条边。

\((2)\) 有偶数个顶点的每个 \(\text{Euler}\) 简单图有偶数条边。

解答

\((1)\) 正确。Euler 二分图中每个连通片的 Euler 回路在二分图两侧之间交替走边,因此每个闭回路长度为偶数,边数为偶数。

\((2)\) 错误。取 \(C_3\)\(C_4\) 共用一个公共顶点粘合,得到一个简单连通图。它有 \(3+4-1=6\) 个顶点,\(3+4=7\) 条边;公共顶点度数为 \(4\),其余顶点度数为 \(2\),所以是 Euler 图,但边数为奇数。

\(6.7.\) 给出一个算法,在有 \(\text{Euler}\) 迹的图中求出一条 \(\text{Euler}\) 迹。

解答

若图有两个奇度顶点,则从其中一个奇度顶点开始;若没有奇度顶点,则从任意顶点开始。使用 Hierholzer 算法:沿未使用边一直走到不能继续,得到一条迹;若还有未使用边,则在当前迹上找一个关联未使用边的顶点,从它出发再走一条闭迹并插入原迹。重复直到所有边都被使用。

正确性来自 Euler 迹判定定理:除起终点外,每次进入一个顶点都能从另一条未使用边离开,因此算法不会错误停止;每条边只被使用一次,最终得到 Euler 迹。

\(6.8.\) 求图 \(G\) 的一条最优投递路线。

解答

这是依赖图 \(6.28\) 边权的中国邮递员问题。做法如下:先找出所有奇度顶点;计算这些奇度顶点两两之间的最短路长度;在奇度顶点集合上求最小权完美匹配;把匹配中每一对顶点对应的最短路复制一遍。复制后所有顶点度数为偶数,求所得 Euler 图的一条 Euler 回路,即为最优投递路线。

\(6.9.\)\(G\) 是二分图,证明:若 \(G\)\(\text{Hamilton}\) 图,则 \(G\) 必有偶数个顶点。\(6.1.\) 中的 \(\text{Herschel}\) 图是 \(\text{Hamilton}\) 图吗?为什么?

解答

反证,若 \(\nu\) 是奇数,\(\text{Hamilton}\) 圈是奇圈,与二分图矛盾。

\(6.10.\) 证明图 \(G_1,G_2\) 两个图都不是 \(\text{Hamilton}\) 图。

解答

这是依赖图 \(6.29\) 的判定题。使用定理 \(6.4\):若 \(G\) 是 Hamilton 图,则任意非空真子集 \(S\subset V(G)\) 都满足

\[\omega(G-S)\le |S|. \]

因此只需在每个题图中找一个顶点子集 \(S\),使得删去 \(S\) 后连通片数大于 \(|S|\),即可证明不是 Hamilton 图。

\(6.11.\) \(\text{Petersen}\) 图删除一个顶点后是不是 \(\text{Hamilton}\) 图?

解答

是。按 Petersen 图的标准画法:外圈为 \(0,1,2,3,4\),内圈为 \(0',1',2',3',4'\),辐条为 \(ii'\),内星边为 \(i'(i+2)'\)。由对称性只需删去外圈顶点 \(0\)。剩余图中有 Hamilton 圈

\[1-2-3-4-4'-1'-3'-0'-2'-1. \]

因此 Petersen 图删除任意一个顶点后都是 Hamilton 图。

\(6.12.\)\(K_n\) 中无公共边的 \(\text{Hamilton}\) 圈的个数。

解答

\(\left\lfloor\dfrac{n-1}{2}\right\rfloor\) 个。

上界:每个 Hamilton 圈含 \(n\) 条边,而 \(K_n\)\(\binom n2\) 条边,所以无公共边的 Hamilton 圈个数至多

\[\left\lfloor \frac{\binom n2}{n}\right\rfloor=\left\lfloor\frac{n-1}{2}\right\rfloor. \]

构造:把顶点编号为 \(\infty,0,1,\cdots,n-2\)。当 \(n\) 为奇数时,在模 \(n-1\) 意义下,对 \(r=0,1,\cdots,\frac{n-3}{2}\) 取 Hamilton 圈

\[\infty,\ r,\ r-1,\ r+1,\ r-2,\ r+2,\ \cdots,\ r-\frac{n-3}{2},\ r+\frac{n-3}{2},\ \infty. \]

这些圈两两无公共边,数量达到上界。当 \(n\) 为偶数时,可先对 \(K_{n-1}\) 作上述分解,再把每个圈中一条不同的边断开并插入新顶点,得到 \(K_n\)\(\frac{n-2}{2}=\left\lfloor\frac{n-1}{2}\right\rfloor\) 个无公共边 Hamilton 圈。

\(6.13.\) 亚瑟王在宫中召见他的 \(2n\) 名骑士,其中某些骑士间互存仇怨,每个骑士的仇人不超过 \(n-1\) 个,则亚瑟王的谋士摩尔林能否让这些骑士围桌就座,使每个骑士不与他的仇人相邻?为什么?

解答

建图,考虑补图 \(G\),有边相连表示没有仇怨,可以相邻,显然 \(G\)\(\text{Hamilton}\) 图,故存在。

\(6.14.\) 证明:\(2k-1\) 阶的 \(k\) 次正则图是 \(\text{Hamilton}\) 图(\(k \ge 2\))。

解答

\(G\)\(\nu=2k-1\) 个顶点且 \(k\)-正则,则

\[\delta(G)=k>\frac{2k-1}{2}=\frac{\nu}{2}. \]

由 Dirac 定理,\(\nu\ge 3\)\(\delta(G)\ge \nu/2\) 的简单图是 Hamilton 图。因此 \(G\) 是 Hamilton 图。

\(6.15.\) 若图 \(G\) 的任意两个顶点之间有 \(\text{Hamilton}\) 轨道,则称 \(G\)\(\text{Hamilton}\) 连通图,证明:若 \(G\)\(\text{Hamilton}\) 连通图且 \(|V(G)|\ge 4\),则 \(|E(G)| \ge \left\lfloor \dfrac12 (3|V (G)| + 1) \right\rfloor\)

解答

\(\nu=|V(G)|\)。先证 \(\delta(G)\ge 3\)

若存在 \(\deg(u)=1\),设 \(u\) 的唯一邻点为 \(v\)。从 \(u\)\(v\)\(\text{Hamilton}\) 轨道必须以边 \(uv\) 开始,但这样立即到达终点 \(v\),无法再经过其余顶点,矛盾。

若存在 \(\deg(u)=2\),设 \(u\) 的两个邻点为 \(v,w\)。从 \(v\)\(w\)\(\text{Hamilton}\) 轨道中,\(u\) 不能是端点,因此必须同时使用 \(uv\)\(uw\)。于是轨道中出现子轨道 \(vuw\)\(wuv\),这会使另一个端点在到达后无法继续经过其余顶点,矛盾。故 \(\delta(G)\ge 3\)

由握手定理,

\[2\varepsilon(G)=\sum_{x\in V(G)}\deg(x)\ge 3\nu, \]

所以

\[\varepsilon(G)\ge \left\lceil \frac{3\nu}{2}\right\rceil=\left\lfloor \frac{3\nu+1}{2}\right\rfloor. \]

\(6.16.\) 证明:若 \(G\) 是二分图,但其顶点的划分 \(X\)\(Y\) 不均匀,即 \(|X| \ne |Y|\),则 \(G\) 是不是 \(\text{Hamilton}\) 图。

解答

不妨设 \(|X|>|Y|\)。反证,若存在 \(\text{Hamilton}\) 圈,存在相邻两个点均在 \(X\) 中,与二分图矛盾。

\(6.17.\)\(G\)\(\nu\) 阶无向简单图,边数 \(\varepsilon= \dfrac12 (\nu-1)(\nu-2)+2\)

\((1)\) 证明:\(G\)\(\text{Hamilton}\) 图。

\((2)\) 举例说明,当 \(\varepsilon= \dfrac12 (\nu -1)(\nu -2)+1\) 时,\(G\) 不一定是 \(\text{Hamilton}\) 图。

解答

\((1)\) 反证。若 \(G\) 不是 Hamilton 图,则在所有 \(\nu\) 阶非 Hamilton 简单图中,边数最多的图必可写成 \(K_{\nu-1}\) 加一个度数为 \(1\) 的顶点,或更一般地存在不相邻点 \(u,v\) 满足 \(\deg(u)+\deg(v)\le \nu-1\)。在后一条件下,边数最大不超过

\[\binom{\nu-2}{2}+(\nu-1)=\frac{(\nu-1)(\nu-2)}2+1, \]

与题设 \(\varepsilon=\frac12(\nu-1)(\nu-2)+2\) 矛盾。因此 \(G\) 是 Hamilton 图。

\((2)\)\(K_{\nu-1}\) 加一个新顶点 \(x\),并只把 \(x\) 连接到 \(K_{\nu-1}\) 中一个顶点。边数为

\[\binom{\nu-1}{2}+1=\frac{(\nu-1)(\nu-2)}2+1, \]

\(x\) 度数为 \(1\),不可能在 Hamilton 圈上,所以该图不是 Hamilton 图。

\(6.18.\) 给定连通无向图 \(G\)。证明:若 \(G\) 中存在圈 \(C\),删除 \(C\) 上一条边后便是图 \(G\) 的最长轨道,则 \(C\) 是图 \(G\)\(\text{Hamilton}\) 圈。

解答

设删去 \(C\) 上某边后得到最长轨道 \(P=C-e\)。若 \(C\) 不是 Hamilton 圈,则存在顶点 \(x\notin V(C)\)。由于 \(G\) 连通,存在从 \(x\)\(C\) 的轨道,取其与 \(C\) 的第一个交点为 \(y\),则从 \(x\)\(y\) 的这段轨道除 \(y\) 外不与 \(C\) 相交。

在轨道 \(P\) 上,\(y\) 到两个端点中至少有一段长度不小于 \(|E(P)|/2\);而 \(P\) 的另一端也在 \(C\) 上。将 \(x\)\(y\) 的轨道接上 \(P\) 中较长的一段,可得到一条比 \(P\) 更长的轨道,矛盾。故 \(C\) 包含所有顶点,是 Hamilton 圈。

\(6.19.\) 若围一张圆桌坐着至少 \(6\) 个人,那么一定可以调整他们的位置,使得每个人两侧都挨着新邻居。

解答

设原来的座位顺序形成圈 \(C_\nu\)。构造图 \(G\),顶点为参加者,若两人原来不相邻,则在 \(G\) 中连边。于是新的圆桌排座正是 \(G\) 中的 \(\text{Hamilton}\) 圈。

\(G\) 中,每个顶点只不与自己以及原来左右两个邻座相连,所以

\[\deg_G(v)=\nu-3. \]

\(\nu\ge 6\) 时,对任意不相邻顶点 \(u,v\)

\[\deg_G(u)+\deg_G(v)=2\nu-6\ge \nu. \]

由 Ore 定理,\(G\)\(\text{Hamilton}\) 图,因此存在所需的新圆桌排座。

\(6.20.\) 今有 \(\nu\) 个人,已知他们中的任何两人合起来认识其余的 \(\nu-2\) 人。证明:当 \(\nu \ge 3\) 时,这 \(\nu\) 个人能排成一列,使得中间任何人都认识两边的人,而两头的人认识左边(或右边)的人。当 \(\nu \ge 4\) 时,这 \(\nu\) 个人能排成一个圆圈,使得每个人都认识两边的人。

解答

构造认识图 \(G\),顶点为这些人,认识的两人之间连边。题设说明:任取两人 \(u,v\) 和第三人 \(w\)\(w\) 至少认识 \(u,v\) 中的一个。等价地,在补图 \(\overline G\) 中,不存在一个顶点同时邻接另外两个顶点。因此

\[\Delta(\overline G)\le 1, \]

也就是说 \(\overline G\) 只是若干条独立边和若干孤立点的并。

于是 \(G\) 是完全图删去一个匹配所得的图。设补图中的匹配边为

\[a_1b_1,a_2b_2,\ldots,a_kb_k \]

其余孤立点为 \(c_1,c_2,\ldots,c_t\)

\(\nu\ge 3\) 时,按

\[a_1,a_2,\ldots,a_k,c_1,\ldots,c_t,b_1,b_2,\ldots,b_k \]

的顺序排成一列(空段直接删去)。相邻两人不会正好是一对互不认识的 \(a_i,b_i\),故相邻两人都认识,于是得到所需队列。

\(\nu\ge 4\) 时,仍按

\[a_1,a_2,\ldots,a_k,c_1,\ldots,c_t,b_1,b_2,\ldots,b_k \]

的顺序围成圆圈(当某一类为空时直接删去对应部分)。相邻两点不会是一条被补图删去的匹配边,因此在 \(G\) 中都相识。故存在所需圆圈排座。

\(6.22.\) \(5\) 阶完全加权图如图所示。

\((1)\) 用最近邻法求以 \(a\) 为起点的旅行商问题的近似解。

\((2)\) 用最小生成树法求以 \(a,b\) 为起点的旅行商问题的近似解。

\((3)\) 用最小权匹配法求旅行商问题的近似解。

解答

该题依赖图 \(6.30\) 的具体边权。计算步骤如下:

\((1)\) 最近邻法:从 \(a\) 出发,每次走向尚未访问且距离当前顶点最近的顶点,直到访问完所有顶点,再回到 \(a\)。记录所得 Hamilton 圈及总权。

\((2)\) 最小生成树法:先求最小生成树 \(T\);从指定起点按深度优先顺序遍历 \(T\),得到一条经过所有顶点的闭游走;删去重复出现的顶点并直接跳到下一未出现顶点,得到近似 Hamilton 圈。

\((3)\) 最小权匹配法:先求最小生成树 \(T\),找出 \(T\) 中所有奇度顶点,在这些奇度顶点诱导的完全图上求最小权完美匹配;把匹配边加入 \(T\) 得 Euler 多重图,求 Euler 回路并跳过重复顶点,得到近似 Hamilton 圈。

图的着色

顶点着色

定义 \(7.1\)\(G\) 的一个 \(k\)-顶点着色是指把 \(k\) 种颜色 \(1,2,\cdots ,k\) 分配给图 \(G\) 的顶点,使每个顶点都分配一种颜色;若相邻顶点的颜色不同,则称这种着色是一个正常 \(k\)-顶点着色。若图 \(G\) 有一个正常 \(k\)-顶点着色时,称 \(G\) 是可 \(k\)-顶点着色的。图 \(G\)顶点色数指的是使得图 \(G\) 可正常顶点着色的最少颜色数 \(k\),简称为色数,记为 \(\chi (G)\)。色数为 \(k\) 的图是可 \(k\)-顶点着色,但不是可 \((k-1)\)-顶点着色的。

用代数的方式解释,图 \(G\) 的一个正常 \(k\)-顶点着色可以表示为顶点集合 \(V(G)\) 的一个划分 \(\mathcal{C} =(V_1,V_2,\cdots ,V_k)\),其中 \(V_i\) 表示着 \(i\) 色的顶点子集(可能是空集),满足:

\((1)\) \(V(G) = V_1 \cup V_2 \cup \cdots \cup V_k\)

\((2)\) \(V_i \cap V_j = \varnothing,1 \le i \ne j \le k\)

\((3)\) 任给 \(1 \le i \le k\),且任给 \(u,v \in V_i,uv \notin E(G)\)

在进行正常 \(k\)-顶点着色时,若要求每种颜色都必须用到,则还需满足下面的第 \((4)\) 个条件;否则不需要。

\((4)\) 任给 \(1 \le i \le k,V_i \ne \varnothing\)

关于顶点着色,有下面的简单性质:

\((1)\) \(\nu\) 阶图的色数满足 \(1 \le \chi(G) \le ν\)\(\chi(G)=1\) 当且仅当 \(G\) 是零图;\(\chi(G) =\nu\) 当且仅当 \(G\)\(\nu\) 阶完全图。

\((2)\) \(\chi(G) = 2\) 当且仅当 \(G\) 是有边二分图。

\((3)\) \(\chi(C_\nu) = \begin{cases}2,\quad \nu\,是偶数,\\3, \quad \nu\,是奇数。\end{cases}\)

\((4)\) 若图 \(H\)\(G\) 的子图,则 \(\chi(H)\le \chi(G)\)

定理 \(7.1\) 对任何图 \(G\)\(\chi(G) \le \Delta(G)+1\)

证明

考虑给 \(v \in V\) 依次染上 \(1 \sim \Delta+1\) 中的颜色。

在给任意 \(v\) 着色时,其相邻的顶点至多只有 \(\deg(v) \le \Delta\) 个顶点着色,由抽屉原理还有至少一种颜色未被使用,直接着色即可。

定理 \(7.2(\text{Brooks})\)\(\nu(\nu \ge 3)\) 阶连通图 \(G\) 不是完全图也不是奇圈,则 \(\chi(G) \le \Delta(G)\)

边着色

定义 \(7.2\)\(G\) 的一个 \(k\)-边着色是指把 \(k\) 种颜色 \(1,2,\cdots ,k\) 分配给图 \(G\) 的边,使每条边都分配一种颜色;若相邻边异色,则称这种边着色为一个正常 \(k\)-边着色。若图 \(G\) 有一个正常 \(k\)-边着色,则称 \(G\) 是可 \(k\)-边着色的。图 \(G\)边色数指的是使得图 \(G\) 可正常边着色的最少颜色数 \(k\),记为 \(\chi'(G)\)

类似于顶点着色,图 \(G\) 的一个正常 \(k\)-边着色可以用代数的方式表示为边集合 \(E(G)\) 的一个划分 \(\mathcal{C}=(E_1,E_2,\cdots ,E_k)\),其中 \(E_i\) 表示着 \(i\) 色的边子集(可能是空集),满足:

\((1)\) \(E(G) = E_1 \cup E_2 \cup \cdots \cup E_k\)

\((2)\) \(E_i \cap E_j = \varnothing,1 \le i \ne j \le k\)

\((3)\) 任给 \(1 \le i \le k\),且任给 \(e_1,e_2 \in E_i\)\(e_1\)\(e_2\) 都不相邻。

在进行正常 \(k\)-边着色时,若要求每种颜色都必须用到,则还需满足下面的第 \((4)\) 个条件;否则不需要。

\((4)\) 任给 \(1 \le i \le k,E_i \ne \varnothing\)

显然 \(\Delta(G) \le \chi'(G) \le \varepsilon(G)\)

引理 \(7.1\) 若连通图 \(G\) 不是奇圈,则存在一种 \(2\)-边着色,使得所用的两种颜色在每个度数大于等于 \(2\) 的顶点处都出现,即每个度数大于等于 \(2\) 的顶点所关联的边用到了这两种颜色。

证明

考虑将 \(G\) 中奇度点 \(S\) 两两匹配得到 \((s_1,t_1),(s_2,t_2),\cdots,(s_k,t_k)\),加入这些边 \((s_i,t_i)\) 得到一个 \(\text{Euler}\)\(G^*\)。从一个 \(\deg(v)>2\) 的点 \(v\) 开始找 \(\text{Euler}\) 回路(第一条边优先找新加入的,若没有 \(\deg(v)>2\) 的点则优先找一个在 \(G\) 中是奇度数的)。

沿着 \(\text{Euler}\) 回路上边的顺序交替着色,若回路长为偶数则首尾颜色不同,\(G^*\) 中每个点关联的两种颜色的边数相等,满足条件。若回路长为奇数,删边后仅有起点 \(v\) 可能不满足,但若 \(\deg(v)>2\),故 \(v\) 有两条边在回路中以非首尾的方式相邻,满足条件。反之,唯一不成立的情况是任意 \(v\) 均有 \(\deg(v) \le 2\) 且回路长度为奇数,也就是奇圈。

给定图 \(G\)\(k\)-边着色 \(\mathcal{C}\),用 \(c(v)\) 表示顶点 \(v\) 关联的边中出现的颜色数。显然 \(c(v) \le \deg(v)\)\(\mathcal{C}\) 是正常 \(k\)-边着色,当且仅当等号对 \(G\) 中所有顶点 \(v\) 都成立。

定义 \(7.3\)\(\mathcal{C}\)\(\mathcal{C}'\) 是图 \(G\) 的两种 \(k\)-边着色,如果 \(\sum\limits_{v \in V(G)} c(v) < \sum\limits_{v \in V(G)} c'(v)\),则称 \(k\)-边着色 \(\mathcal{C}'\) 是对 \(\mathcal{C}\) 的一个改进,其中 \(c(v)\)\(c'(v)\) 分别表示用 \(\mathcal{C}, \mathcal{C}'\) 着色时顶点 \(v\) 关联的边中出现的颜色数。不能再改进的 \(k\)-边着色称为最佳 \(k\)-边着色

对于任意的着色 \(\mathcal{C}\) 来说,显然有 \(c(v) \le \deg(v)\),所以有 \(\sum\limits_{v \in V(G)} c(v) \le \sum\limits_{v \in V(G)} \deg(v)\)。而 \(\mathcal{C}\) 是正常 \(k\)-边着色,当且仅当对 \(G\) 中所有顶点 \(v\),都有 \(c(v) = \deg(v)\),此时满足 \(\sum\limits_{v \in V(G)} c(v) = \sum\limits_{v \in V(G)} \deg(v)\)。所以对于正常边着色 \(\mathcal{C}\) 来说,\(\sum\limits_{v \in V(G)} c(v)\) 达到最大值。利用定义 \(7.3\),可以表示一个边着色方案偏离正常边着色方案的程度。

引理 \(7.2\)\(\mathcal{C} =(E_1,E_2,\cdots ,E_k)\) 是图 \(G\) 的一个最佳 \(k\)-边着色。如果存在一个顶点 \(v_0\) 和两种颜色 \(i\)\(j\),使得 \(i\) 色不在 \(v_0\) 关联的边中出现,但 \(j\) 色在 \(v_0\) 关联的边中至少出现两次,则边导出子图 \(G[E_i \cup E_j]\) 中含 \(v_0\) 的连通片是一个奇圈。

证明

考虑 \(G[E_i \cup E_j]\) 中含 \(v_0\) 的连通片 \(H\)。反证,若 \(H\) 不是奇圈,则由引理 \(7.1\),存在一种边着色方案使得它的 \(2\) 种颜色在 \(H\) 中度数至少为 \(2\) 的顶点所关联的边中都出现。此时替换为这种边着色方案,\(v_0\) 关联的边会多一种颜色 \(i\)\(c'(v_0)=c(v_0)+1\),那么就得到了 \(\mathcal{C}\) 的一个改进,与最佳着色矛盾。故 \(G[E_i \cup E_j]\) 中含 \(v_0\) 的连通片是奇圈。

定理 \(7.3\)\(G\) 是二分图,则 \(\chi'(G)=\Delta(G)\)

证明

显然 \(\chi'(G) \ge \Delta(G)\),只需证 \(G\)\(\Delta\)-着色即可。反证,假设不能,则考虑 \(G\) 的最佳 \(\Delta\)-边着色。存在 \(v\) 满足 \(c(v)<\deg(v)\le \Delta\)。那么由抽屉原理,存在颜色 \(i\)\(v\) 关联的边中没有出现,存在颜色 \(j\)\(v\) 关联的边中至少出现两次。那么由引理 \(7.2\)\(G\) 中存在奇圈,与二分图矛盾。故 \(\chi'(G)=\Delta(G)\)

定理 \(7.4(\text{Vizing})\)\(G\) 是简单图,则 \(\chi'(G)= \Delta(G)\)\(\Delta(G)+1\)

证明

只需证明 \(\chi'(G)\le \Delta+1\)。对边数归纳。取一条未着色边 \(xy\),由归纳假设,\(G-xy\) 可用颜色 \(1,\cdots,\Delta+1\) 正常边着色。对顶点 \(v\),称未在 \(v\) 处出现的颜色为 \(v\) 的缺色;因为可用颜色有 \(\Delta+1\) 种而 \(\deg(v)\le\Delta\),每个顶点至少有一种缺色。

\(x,y\) 有公共缺色,直接给 \(xy\) 着该色。否则取 \(x\) 的缺色 \(\alpha\)\(y\) 的缺色 \(\beta\)。考虑由颜色 \(\alpha,\beta\) 的边组成的交错子图,其每个连通片都是轨道或偶圈。若 \(x,y\) 不在同一个 \(\alpha\beta\) 交错轨道中,则交换 \(x\) 所在连通片上的 \(\alpha,\beta\),使 \(\beta\) 也成为 \(x\) 的缺色,然后给 \(xy\)\(\beta\)

若上述失败,则 \(x,y\) 在同一条 \(\alpha\beta\) 交错轨道中。此时构造 Vizing 扇:从 \(y\) 出发取邻点序列 \(x_1=x,x_2,\cdots,x_k\),使边 \(yx_{i+1}\) 的颜色是 \(x_i\) 的某个缺色,并取极大这样的序列。极大性与简单图条件保证存在一个扇旋转:把 \(yx_{i+1}\) 改为 \(yx_i\) 的缺色对应颜色,逐步移动颜色后,会在某条 \(yx_j\) 处空出可用于 \(xy\) 的颜色;若不能空出,则会得到一条与前述 \(\alpha\beta\) 交错轨道相矛盾的第二条交错连接。故总能完成对 \(xy\) 的着色。

因此每一步都可把 \(G-xy\)\((\Delta+1)\)-边着色扩展到 \(G\),归纳得 \(\chi'(G)\le\Delta+1\)。又显然 \(\chi'(G)\ge\Delta\),所以 \(\chi'(G)=\Delta\)\(\Delta+1\)。证毕。

实际上,\(\text{Vizing}\) 证明了比上述定理更一般的结论,它对所有无环图都正确。定义 \(G\) 中连接两个顶点的最大边数称为 \(G\) 的重数,记为 \(\mu(G)\)\(\text{Vizing}\) 定理的一般形式为:若 \(G\) 是无环图,则 \(\Delta \le \chi' \le \Delta+\mu\)

我们称满足 \(\chi'(G) = \Delta(G)\) 的图为第一类图,否则为第二类图。二分图属于第一类,\(\text{Petersen}\) 图属于第二类。尽管定理 \(7.4\) 很强,仍然留下一个尚未解决的问题:如何判定任意一个图是否为第一类图,至今尚无有效算法,这个问题的重要性在平面图的边着色时更为明显。

边着色的一个典型应用就是“课表安排问题”。假设某学校有 \(m\) 位教师 \(x_1, x_2,\cdots ,x_m\)\(n\) 个班级 \(y_1,y_2,\cdots ,y_n\)。已知某一天教师 \(x_i\) 需要给班级 \(y_j\)\(p_{i,j}\) 节课,要求设计一张课时尽量少的课表,至少需要多少个教室?或者在不增加课时的情况下,能否给出一个最节省教室的课表?

首先建立图模型,每个顶点表示教师或者班级,即有两类顶点:\(X={x_1,x_2,\cdots ,x_m}\) 表示教师集合,\(Y ={y_1,y_2,\cdots ,y_n}\) 表示班级集合。顶点 \(x_i\) 和顶点 \(y_j\) 之间连接 \(p_{i,j}\) 条边,当且仅当教师 \(x_i\) 需要给班级 \(y_j\)\(p_{i,j}\) 节课。如此,得到二分图 \(G=(X,E,Y)\)。因为在任何一节课时内,每位教师最多教一个班级,并且每个班级最多只能由一位教师讲课。故我们需要找到 \(G\) 的一个正常边着色,由于 \(G\) 为二分图,故 \(\chi'(G)=\Delta(G)\),安排一张 \(\Delta\) 课时的课表即可,且可以在多项式时间内给出一个着色方案。

假设所有老师给所有班级共计上 \(l\) 节课,而需要编制一张 \(p\) 课时的课表。由上面的讨论知,\(p \ge \Delta\),平均每一课时至少需同时开 \(l/p\) 节课,因此在某一课时里至少需要 \(\lceil l/p \rceil\) 个教室。下面的引理和定理从理论上保证了在一张 \(p\) 课时的课表里总可以安排完 \(l\) 节课,使得在一节课时里最多占用 \(\lceil l/p \rceil\) 个教室。

引理 \(7.3\)\(M\)\(N\) 是图 \(G\) 中两个无公共边匹配,且 \(|M|>|N|\),则存在 \(G\) 中两个无公共边的匹配 \(M'\)\(N'\),使得 \(|M'| = |M|-1\)\(|N'| = |N|+1\)\(M'\cup N' = M \cup N\)

证明

考虑 \(H=G[M \cup N]\),由于 \(|M|>|N|\),故 \(H\) 中某个连通片是长度为奇数的轨道 \(P=v_0e_1v_1\cdots e_{2k+1}v_{2k+1}\),其中第一条和最后一条边都在 \(M\) 中,\(M\) 中和 \(N\) 中的边交错出现。

\(M'=(M - \{e_1,e_3,\cdots ,e_{2k+1} \})\cup \{e_2,e_4,\cdots ,e_{2k}\}\)\(N' =(N - \{e_2,e_4,\cdots ,e_{2k}\})\cup\{e_1,e_3,\cdots ,e_{2k+1}\}\)。显然 \(M',N'\) 符合条件,证毕。

定理 \(7.5\)\(G\) 是二分图,\(\Delta \le p\),则存在 \(G\)\(p\) 个不相交匹配 \(M_1,M_2,\cdots ,M_p\),使得 \(E(G) = \bigcup\limits_{i=1}^p M_i\),且对 \(1 \le i \le p\)\(\lfloor \varepsilon / p \rfloor \le |M_i| \le \lceil \varepsilon / p \rceil\)

证明

二分图的边色数是 \(\Delta\),所以 \(G\) 的边集可以划分成 \(\Delta\) 个匹配 \(M'_1,M'_2,\cdots ,M'_\Delta\)。故对于任意 \(p \ge \Delta\),令 \(M'_ i = \varnothing (\Delta < i \le p)\),则得到 \(G\)\(p\) 个无公共边的匹配 \(M'_1,M'_2,\cdots ,M'_p\),使得 \(E(G) = \bigcup^p_{i=1} M'_i\)。对于边数相差超过 \(1\) 的任何两个匹配,反复应用引理 \(7.3\),最后就能得到 \(G\)\(p\) 个无公共边的匹配,满足定理的结论。证毕。

该定理说明任意两个匹配的边数最多相差 \(1\)

平面图着色

地图着色问题可转化为平面图的顶点着色问题:以区域为顶点,相邻区域之间连边。若这张平面图可以正常 \(k\)-顶点着色,则地图可以用 \(k\) 种颜色着色。

定义 \(7.4\) 平面图 \(G\) 的一个 \(k\)-面着色是指把 \(k\) 种颜色 \(1,2,\cdots,k\) 分配给平面图的面,使每个面都分配一种颜色;若相邻面异色,则称这种着色是一个正常 \(k\)-面着色。若平面图 \(G\) 有一个正常 \(k\)-面着色,则称 \(G\) 是可 \(k\)-面着色的

定理 \(7.6\) 平面图 \(G\) 是可 \(k\)-面着色的,当且仅当其对偶图 \(G^*\) 是可 \(k\)-顶点着色的。

证明

对偶图 \(G^*\) 的顶点与 \(G\) 的面一一对应,\(G^*\) 中两顶点相邻当且仅当 \(G\) 中对应的两个面相邻。因此给 \(G\) 的面正常着色等价于给 \(G^*\) 的顶点正常着色。证毕。

定理 \(7.7(\text{Heawood})\) 每个平面图都是可 \(5\)-顶点着色的。

img

证明

对顶点数 \(\nu\) 归纳。\(\nu \le 5\) 时显然成立。设 \(\nu > 5\),由平面图性质知存在顶点 \(v\) 使 \(\deg(v)\le 5\)

\(\deg(v)\le 4\),由归纳假设 \(G-v\)\(5\)-着色,给 \(v\) 选择其邻点未用的一种颜色即可。

\(\deg(v)=5\),设 \(v\) 的邻点按平面嵌入中围绕 \(v\) 的顺序为 \(v_1,v_2,v_3,v_4,v_5\)。由归纳假设 \(G-v\)\(5\)-着色。若这五个邻点没有用满五种颜色,则同样可给 \(v\) 着色。否则设 \(v_i\) 着第 \(i\) 色。

考虑只由颜色 \(1,3\) 的顶点导出的子图。若 \(v_1\)\(v_3\) 不在同一连通片中,交换 \(v_1\) 所在连通片中的颜色 \(1\)\(3\),则 \(v_1\)\(v_3\) 同色,从而第 \(1\) 色可给 \(v\) 使用。若 \(v_1\)\(v_3\) 在同一连通片中,则存在一条 \(1\)-\(3\) 交错轨道连接 \(v_1,v_3\),它与边 \(vv_1,vv_3\) 构成一个闭曲线,将 \(v_2\)\(v_4\) 分在两侧。于是颜色 \(2,4\) 的交错轨道不可能同时连接 \(v_2,v_4\)。交换 \(v_2\) 所在 \(2\)-\(4\) 连通片中的颜色 \(2\)\(4\),即可使 \(v_2\)\(v_4\) 同色,从而给 \(v\) 留出一种颜色。证毕。

定理 \(7.8\) 每个平面图都是可 \(4\)-顶点着色的。

证明

这是四色定理。其完整证明依赖不可避免集和可约构形的计算机验证:任意平面三角剖分都含有某个不可避免集中的构形,而这些构形均可约;若存在顶点数最少的反例,则它包含可约构形,删去并对较小图 \(4\)-着色后又可扩充回原图,矛盾。证毕。

定理 \(7.9\) 对任意 \(\nu \ge 3\) 阶平面图 \(G\),都有 \(\varepsilon(G)\le 3\nu-6\)

证明

可只证连通情形。若 \(G\) 是极大平面图,则每个面都是三角形,故 \(3\phi=2\varepsilon\)。由 Euler 公式 \(\nu-\varepsilon+\phi=2\)\(\varepsilon=3\nu-6\)。一般平面图可加边成为极大平面图,边数不超过极大平面图的边数,故 \(\varepsilon\le 3\nu-6\)。证毕。

定理 \(7.10\)\(G\)\(\nu\ge 3\) 阶平面三角剖分,记 \(p_k\)\(k\) 度顶点个数,则

\[\sum\limits_{k\ge 3}(6-k)p_k=12. \]

证明

因为 \(\sum p_k=\nu\)\(\sum kp_k=2\varepsilon\)。平面三角剖分满足 \(\varepsilon=3\nu-6\),于是

\[\sum_{k\ge 3}(6-k)p_k=6\nu-2\varepsilon=6\nu-2(3\nu-6)=12. \]

证毕。

颜色多项式

给定标定图 \(G\) 和颜色数 \(k\),用 \(p_k(G)\) 表示图 \(G\) 的正常 \(k\)-顶点着色的方法数。显然 \(p_k(G)>0\) 当且仅当 \(G\) 是可 \(k\)-顶点着色的。

定理 \(7.14\)\(G\) 是简单图,则对 \(G\) 的任意一条边 \(e\),都有

\[p_k(G)=p_k(G-e)-p_k(G\cdot e). \]

证明

\(e=uv\)\(G-e\) 的正常 \(k\)-顶点着色按 \(u,v\) 是否同色分两类。若 \(u,v\) 异色,则恰为 \(G\) 的正常 \(k\)-顶点着色,共 \(p_k(G)\) 种;若 \(u,v\) 同色,则把 \(u,v\) 收缩后恰为 \(G\cdot e\) 的正常 \(k\)-顶点着色,共 \(p_k(G\cdot e)\) 种。因此 \(p_k(G-e)=p_k(G)+p_k(G\cdot e)\)。证毕。

推论 \(7.2\) 对于任何 \(\nu\) 个顶点 \(\varepsilon\) 条边的图 \(G\)\(p_k(G)\) 都是 \(k\)\(\nu\) 次多项式,按降幂排列时,首项是 \(k^\nu\),第二项为 \(-\varepsilon k^{\nu-1}\),常数项为零,并且系数为正负交替的整数。

证明

对边数归纳。若 \(\varepsilon=0\),则 \(p_k(G)=k^\nu\)。若结论对边数小于 \(m\) 的图成立,取 \(m\) 条边图 \(G\) 的一条边 \(e\),则 \(G-e\)\(\nu\) 个顶点、\(m-1\) 条边,\(G\cdot e\)\(\nu-1\) 个顶点、\(m-1\) 条边。由归纳假设和定理 \(7.14\) 相减,可得 \(p_k(G)\) 的首项为 \(k^\nu\),第二项为 \(-mk^{\nu-1}\),其余项仍为正负交替整数,常数项为零。证毕。

习题

\(7.1.\) 试叙述一个简单图的 \(\Delta+1\) 正常顶点着色的算法。

解答

按任意顺序扫描顶点。处理顶点 \(v\) 时,在 \(1,\cdots,\Delta+1\) 中选择一个没有被已着色邻点使用的颜色。因为 \(v\) 的邻点至多 \(\Delta\) 个,所以总有可用颜色。

\(7.2.\)\(G\)\(\nu\) 个顶点 \(\varepsilon\) 条边的简单图,证明:\(\chi(G)\ge \dfrac{\nu^2}{\nu^2-2\varepsilon}\)

解答

\(G\) 有一个正常 \(k\)-着色,各色类大小为 \(n_1,\cdots,n_k\)。同色点之间没有边,所以非边数至少为 \(\sum_i \binom{n_i}{2}\)。由 Cauchy 不等式,\(\sum n_i^2\ge \nu^2/k\),故

\[\binom{\nu}{2}-\varepsilon\ge \sum_i\binom{n_i}{2} =\frac12\left(\sum_i n_i^2-\nu\right)\ge \frac12\left(\frac{\nu^2}{k}-\nu\right). \]

整理得 \(k\ge \nu^2/(\nu^2-2\varepsilon)\)。取 \(k=\chi(G)\) 即得。

\(7.3.\)\(G\) 的任意两个奇圈都有公共顶点,则 \(\chi(G)\le 5\)

解答

\(G\) 无奇圈,则 \(G\) 为二分图,结论成立。否则取一个奇圈 \(C\)。由于任意奇圈都与 \(C\) 相交,\(G-V(C)\) 无奇圈,故可 \(2\)-着色。奇圈 \(C\)\(3\)-着色。将 \(C\) 用颜色 \(1,2,3\)\(G-V(C)\) 用颜色 \(4,5\),即可得到正常 \(5\)-着色。

\(7.4.\)\(G\) 的度数序列为 \(d_1,d_2,\cdots,d_\nu\),且 \(d_1\ge d_2\ge \cdots\ge d_\nu\),则 \(\chi(G)\le \max_i\min\{d_i+1,i\}\)

解答

按度数非增序的逆序贪心着色。给第 \(i\) 个顶点着色时,它在已着色顶点中的邻点数至多 \(\min\{d_i,i-1\}\),故可用不超过 \(\min\{d_i+1,i\}\) 种颜色完成。对所有 \(i\) 取最大即得。

\(7.5.\) 设图 \(G\)\(E(G)\ne \varnothing\),则 \(\chi(G)\le \lceil \sqrt{2\varepsilon}\rceil\)

解答

\(\chi(G)=k\),取一个 \(k\) 色临界子图 \(H\)。色临界图最小度至少 \(k-1\),故

\[2\varepsilon(G)\ge 2\varepsilon(H)\ge (k-1)\nu(H)\ge k(k-1). \]

因此 \(k\le \frac{1+\sqrt{1+8\varepsilon}}2\le \lceil\sqrt{2\varepsilon}\rceil\)

\(7.6.\) 证明:\(\chi(G)+\chi(G^c)\le \nu+1\)

解答

\(\nu\) 归纳。取顶点 \(v\)。设 \(\chi(G-v)=a,\chi(G^c-v)=b\),由归纳假设 \(a+b\le \nu\)。若 \(v\) 可以加入 \(G-v\) 的某个色类,则 \(\chi(G)\le a\)\(\chi(G^c)\le b+1\)。否则 \(v\)\(G-v\) 每个色类都有邻边,于是在 \(G^c\)\(v\) 与每个色类中至少一个点不相邻;把这些点选出形成集合 \(S\),它在 \(G\) 中每个色类取一点,在 \(G^c\) 中可作为结构补偿,仍可得到 \(\chi(G)+\chi(G^c)\le \nu+1\)。这是 Nordhaus-Gaddum 不等式的标准归纳证明。

\(7.7.\) 色临界图相关结论。

解答

\(1\) 色临界图只有 \(K_1\)\(2\) 色临界图只有 \(K_2\)\(3\) 色临界图恰为奇圈。\(4\) 色临界图例如 \(K_4\),以及奇轮图。若 \(G\)\(k\) 色临界图而存在 \(\deg(v)\le k-2\),则 \(G-v\)\((k-1)\)-着色,给 \(v\) 选择邻点未用颜色即可把 \(G\)\((k-1)\)-着色,矛盾。故 \(\delta(G)\ge k-1\)

\(7.8.\) 轮是一个圈加上一个新顶点,把圈上的每个顶点都和新顶点之间连一条边,求 \(\nu\) 阶轮的边色数。

解答

设轮图为 \(W_\nu\),中心度数为 \(\nu-1\),故 \(\chi'(W_\nu)\ge \nu-1\)。若 \(\nu\) 为奇数,则外圈长度 \(\nu-1\) 为偶数,外圈可用两种颜色交替,并与中心关联边颜色错开,可得 \(\chi'(W_\nu)=\nu-1\)。若 \(\nu\) 为偶数,则外圈长度为奇数;中心已要求 \(\nu-1\) 种颜色,外圈奇圈不能只用与相邻中心边错开的现有颜色完成,需再加一种颜色,故 \(\chi'(W_\nu)=\nu\)

\(7.9.\) 给出求二分图正常 \(\Delta\) 边着色的算法。

解答

若二分图不是 \(\Delta\)-正则,可补充虚拟顶点和边使其成为 \(\Delta\)-正则二分图。\(\Delta\)-正则二分图有完备匹配,取出一个完备匹配染一种颜色,删除后得到 \((\Delta-1)\)-正则二分图。重复 \(\Delta\) 次即可。

\(7.10.\) 证明:若二分图的顶点的最小次数为 \(\delta>0\),则对边进行 \(\delta\) 着色时,能使每个顶点所关联的边中皆出现 \(\delta\) 种颜色。

解答

取二分图的一个最大覆盖到每个顶点至少一次的 \(\delta\) 个匹配分解。可将每个顶点拆成 \(\delta\) 个需求副本,再用 Hall 定理逐轮选匹配,使每个原顶点每轮恰被一条边覆盖;删去所选边后最小度下降 \(1\)。归纳 \(\delta\) 次得到 \(\delta\) 个匹配,即 \(\delta\) 种颜色,且每个顶点每种颜色均出现。

\(7.11.\)\(\chi(K_{101})\)\(\chi'(K_{100})\)

解答

\(\chi(K_{101})=101\)。完全图 \(K_n\) 的边色数为 \(n-1\)\(n\) 偶)或 \(n\)\(n\) 奇),故 \(\chi'(K_{100})=99\)

\(7.12.\) 证明:若 \(G\) 是奇数个顶点的有边正则图,则 \(G\) 是第二类图。

解答

\(G\)\(r\)-正则,\(\nu\) 为奇数。若 \(\chi'(G)=r\),则每种颜色是一个匹配。由于每个顶点关联的 \(r\) 条边需用尽 \(r\) 色,每个颜色类都必须覆盖所有顶点,成为完备匹配。但奇数阶图无完备匹配,矛盾。故 \(\chi'(G)>r=\Delta\)\(G\) 是第二类图。

\(7.13.\) 证明:若 \(G\) 是无环简单图,\(\nu=2n+1,\varepsilon>n\Delta\),则 \(G\) 是第二类图。

解答

每个匹配至多含 \(n\) 条边。若 \(G\) 是第一类图,则边集可分为 \(\Delta\) 个匹配,故 \(\varepsilon\le n\Delta\),与条件矛盾。因此 \(G\) 是第二类图。

\(7.14.\) 课表安排题。

解答

把教师和班级作为二分图两侧顶点,矩阵 \(A=(p_{ij})\) 给出重边数。每个课时对应一个匹配,最少课时数为该二分多重图的最大度 \(\Delta\)。逐次求匹配并染色即可得到课表;若要求教室数最少,再用定理 \(7.5\) 调整各课时匹配大小,使每课时课程数尽量平均,所需教室数为 \(\left\lceil \varepsilon/\Delta\right\rceil\)

\(7.15.\) 若一个平面图的平面嵌入和它的对偶图同构,这个平面嵌入称为自对偶的。证明:若 \(G\) 是自对偶的,则 \(\varepsilon=2\nu-2\);并构造每个 \(\nu\ge4\) 的例子。

解答

自对偶给出 \(\phi=\nu\)。由 Euler 公式 \(\nu-\varepsilon+\phi=2\)\(\varepsilon=2\nu-2\)。构造可取轮图 \(W_\nu\) 的适当平面嵌入变形或从四面体开始不断在一个面内加一个新顶点并连到该面的两个边界顶点,同时在对偶侧对应加面,可保持自对偶并把顶点数逐一增加。

\(7.16.\) 证明:若一个平面图的平面嵌入是 Euler 图,则它的对偶图是二分图。

解答

平面图为 Euler 图等价于每个顶点度数为偶数。对偶图中的圈对应原图中的一个割;原图偶度保证任意闭曲线穿过边的次数为偶数,从而对偶图无奇圈。由二分图判定定理,对偶图是二分图。

\(7.17.\)\(G\)\(\nu(\ge4)\) 阶极大平面图的平面嵌入,证明:\(G\) 的对偶图 \(G^*\)\(2\)-边连通的 \(3\) 次正则图。

解答

极大平面图每个面都是三角形,故对偶图每个顶点度数为 \(3\)。若 \(G^*\) 有桥,则该桥对应的原图边两侧实际属于同一块分隔关系,会使原图中存在非三角面或可加边的空间,矛盾。故 \(G^*\) 无桥,即 \(2\)-边连通。

\(7.18.\) 证明:一个平面图 \(G\)\(2\)-面可着色的当且仅当 \(G\) 是 Euler 图。

解答

\(G\)\(2\)-面着色当且仅当对偶图 \(G^*\)\(2\)-顶点着色,当且仅当 \(G^*\) 无奇圈。对偶图的圈对应原图顶点周围的面序列,因此 \(G^*\) 无奇圈等价于 \(G\) 每个顶点度数为偶数。对连通图这等价于 \(G\) 是 Euler 图。

\(7.19.\) 求图中两个图的颜色多项式。

解答

按定理 \(7.14\) 递归展开即可。若图中含割点,可把图分解为块:若两个子图只交于一个顶点,则

\[p_k(G\cup H)=\frac{p_k(G)p_k(H)}{k}. \]

若交于一条完全边 \(K_2\),则除以 \(k(k-1)\)。对图 \(7.25\) 按这些规则化到树、圈和完全图的颜色多项式即可。

\(7.20.\)\(G\)\(\nu\) 个顶点的轮,求颜色多项式 \(p_k(G)\)

解答

先给中心顶点着色,有 \(k\) 种选择。外圈不能使用中心颜色,相当于用 \(k-1\) 种颜色给长为 \(\nu-1\) 的圈着色。圈 \(C_m\) 的颜色多项式为 \((q-1)^m+(-1)^m(q-1)\)。故

\[p_k(W_\nu)=k\left((k-2)^{\nu-1}+(-1)^{\nu-1}(k-2)\right). \]

\(7.21.\) 证明:若 \(G\) 是树,则 \(p_k(G)=k(k-1)^{\nu-1}\);若 \(G\) 是连通图,则 \(p_k(G)\le k(k-1)^{\nu-1}\),且仅当 \(G\) 是树时等式成立。

解答

树可从根开始着色,根有 \(k\) 种选择,每个非根顶点只需避开父亲颜色,有 \(k-1\) 种选择,故公式成立。若 \(G\) 连通,取生成树 \(T\),则 \(G\) 的正常着色也是 \(T\) 的正常着色,故 \(p_k(G)\le p_k(T)\)。若 \(G\) 非树,多出的一条弦会排除至少一种树着色,故严格小于。

\(7.22.\)\(G\cap H=K_n\),则 \(p_k(G\cup H)p_k(G\cap H)=p_k(G)p_k(H)\)

解答

固定公共完全图 \(K_n\) 的一种正常着色。\(G\)\(H\) 在公共部分的着色必须一致,且除此之外相互独立。因此把 \(p_k(G)p_k(H)\) 中的计数按公共 \(K_n\) 着色分类时,每个 \(G\cup H\) 的着色被公共部分的 \(p_k(K_n)\) 种着色因子计入,故结论成立。

\(7.23.\) 课程考试安排题。

解答

构造冲突图:\(c_6\)\(c_1,\cdots,c_5\) 均相邻,且 \(c_1c_2c_3c_4c_5c_1\) 构成一个 \(5\) 圈。该图是奇轮 \(W_6\),色数为 \(4\),所以至少需要 \(4\) 天。安排方案数等于该图在 \(4\) 色下的正常着色数,即

\[p_4(W_6)=4\left((4-2)^5+(-1)^5(4-2)\right)=4(32-2)=120. \]

有向图

有向图

对于一个有向图 \(D\),忽略每条有向边的方向得到的无向图 \(G\) 称为 \(D\)底图;反之,对于任意一个无向图 \(G\),给每条边指定一个方向,得到的有向图 \(D\) 称为 \(G\)定向图

定义 \(8.1\)\(D\) 中存在有向边 \((u,v)\),则称 \(v\)\(u\)外邻顶点,称 \(u\)\(v\)内邻顶点。对于顶点 \(u\in V(D)\),分别用 \(N_D^+(u)\)\(N_D^-(u)\) 表示 \(D\)\(u\) 的所有外邻顶点和所有内邻顶点构成的集合,即

\[N_D^+(u)=\{v\mid (u,v)\in E(D)\},\quad N_D^-(u)=\{v\mid (v,u)\in E(D)\}. \]

有向图的连通性

定义 \(8.2\)\(D\) 是有向图,若存在从 \(u\)\(v\) 的有向路径,则称 \(u\) 可达 \(v\)。若 \(\forall u,v\in V(D)\)\(u\) 可达 \(v\) 而且 \(v\) 可达 \(u\),则称 \(D\)强连通的;若 \(\forall u,v\in V(D)\)\(u\) 可达 \(v\)\(v\) 可达 \(u\),则称 \(D\)单向连通的;若 \(D\) 的底图是连通无向图,则称 \(D\)弱连通的。

约定顶点自身可达自身。双向可达在 \(V(D)\) 上是等价关系,由等价类导出的有向子图称为 \(D\)强连通片

定理 \(8.1\) \(D\) 是强连通有向图当且仅当 \(D\) 中存在有向生成回路,即存在含有 \(D\) 中所有顶点的有向回路。

证明

\(D\) 中存在有向生成回路,则任意两顶点都在该回路上,沿回路可相互到达,故 \(D\) 强连通。

反之,设 \(V(D)=\{v_1,\cdots,v_\nu\}\)。强连通保证存在有向路径 \(P(v_1,v_2),P(v_2,v_3),\cdots,P(v_{\nu-1},v_\nu),P(v_\nu,v_1)\)。将这些路径首尾相接,即得包含所有顶点的有向回路。证毕。

定理 \(8.2\) 连通无向图 \(G\) 可以定向成强连通有向图,当且仅当 \(G\) 中没有桥。

证明

\(G\) 可定向成强连通有向图,则任一边删除后仍应能在两个方向绕行,否则这条边对应的无向边就是桥,与强连通矛盾。

\(G\) 连通且无桥,则 \(G\) 的每条边都在某个圈上。先取一个圈并定向为有向圈。若尚未覆盖所有顶点,由连通性和无桥性,可找到一条与当前已覆盖部分只在两端相交、内部在外部的耳路径;把它定向成从一个端点到另一个端点的有向路径,即可把当前有向回路扩展为更大的有向回路。重复直到覆盖所有顶点,剩余边任意定向。由定理 \(8.1\) 得强连通定向。证毕。

引理 \(8.1\)\(D\) 单向连通,则 \(\forall S\subseteq V(D),S\ne\varnothing\),都存在顶点 \(v\in S\)\(v\) 可达 \(S\) 中所有顶点。

证明

\(|S|\) 归纳。\(|S|=1\) 显然。设结论对 \(k\) 元集合成立,取 \(|S|=k+1\)\(u\in S\)。由归纳假设,\(S-\{u\}\) 中有顶点 \(v\) 可达 \(S-\{u\}\) 全部顶点。若 \(v\) 可达 \(u\),则 \(v\) 可达 \(S\) 全部顶点;否则由单向连通性 \(u\) 可达 \(v\),从而 \(u\) 可达 \(S\) 全部顶点。证毕。

定理 \(8.3\) \(D\) 是单向连通有向图,当且仅当 \(D\) 中存在有向生成路径。

证明

有有向生成路径时,任意两顶点沿路径顺序必有一个可达另一个,所以 \(D\) 单向连通。

反之,由引理 \(8.1\),在 \(S_1=V(D)\) 中取 \(v_1\) 可达所有顶点;在 \(S_2=V(D)-\{v_1\}\) 中取 \(v_2\) 可达 \(S_2\) 所有顶点;依此得到 \(v_1,\cdots,v_\nu\),且 \(v_i\) 可达 \(v_{i+1}\)。将这些有向路径首尾相接得到有向生成路径。证毕。

竞赛图

定理 \(8.4(\text{Roy},\text{Gallai})\) 有向图 \(D\) 中含有长度为 \(\chi(G)-1\) 的有向轨道,其中 \(G\)\(D\) 的底图。

证明

取最小边集 \(E'\) 使 \(D'=D-E'\) 无有向圈,设 \(D'\) 中最长有向轨道长度为 \(k\)。给顶点 \(v\) 染色为“从 \(v\) 出发的最长有向轨道长度 \(+1\)”。若 \(D'\) 中有从 \(u\)\(v\) 的有向路径,则 \(u,v\) 不同色。对 \(D\) 中被删去的边 \((u,v)\),由 \(E'\) 极小性,\(D'+(u,v)\) 中有有向圈,故 \(D'\) 中有从 \(v\)\(u\) 的有向路径,所以 \(u,v\) 也不同色。因此这是底图 \(G\) 的正常 \((k+1)\)-着色,\(\chi(G)\le k+1\),故 \(D\) 中有长度至少 \(\chi(G)-1\) 的有向轨道。证毕。

完全图的定向图称为竞赛图

推论 \(8.1\) 每个竞赛图都有有向 Hamilton 轨道。

证明

竞赛图的底图是 \(K_\nu\),色数为 \(\nu\)。由定理 \(8.4\),竞赛图含长度 \(\nu-1\) 的有向轨道,即有向 Hamilton 轨道。证毕。

定理 \(8.5\) 竞赛图中得分最多的顶点是王。

证明

\(u\) 得分最多,胜了 \(v_1,\cdots,v_k\),败给 \(w\)。若 \(w\) 胜过所有 \(v_i\),则 \(w\) 的得分至少 \(k+1\),超过 \(u\),矛盾。因此 \(w\) 必败给某个 \(v_i\),于是 \(u\to v_i\to w\)。对每个败给 \(u\) 的顶点距离为 \(1\),对每个胜过 \(u\) 的顶点距离至多为 \(2\),故 \(u\) 是王。证毕。

定理 \(8.6\) 竞赛图 \(D\)\(v\) 是唯一的王,当且仅当 \(v\) 的得分是 \(\nu-1\)

证明

\(v\) 得分 \(\nu-1\),则它一步到达所有其他顶点,是王;其他顶点不能到达 \(v\),故不可能是王。

反之,若唯一的王 \(v\) 得分小于 \(\nu-1\),则 \(N^-(v)\ne\varnothing\)。在 \(D[N^-(v)]\) 中取一个王 \(u\)\(u\) 一步到达 \(v\),并且通过 \(v\) 至多两步可到达 \(N^+(v)\) 中顶点;对 \(N^-(v)\) 内顶点由子竞赛图中王的性质至多两步到达。因此 \(u\) 也是 \(D\) 的王,矛盾。证毕。

有向 Hamilton 图

定理 \(8.7\) 假定 \(\nu\ge 3\) 阶竞赛图 \(D\) 是强连通的,则任给 \(k(3\le k\le \nu)\)\(D\) 中每个顶点都在某个 \(k\) 阶有向圈中。

证明

固定顶点 \(u\)。强连通保证 \(N^+(u),N^-(u)\) 非空,且存在边从 \(N^+(u)\) 指向 \(N^-(u)\),于是 \(u\) 在一个有向 \(3\) 圈中。

\(u\) 在长为 \(n<\nu\) 的有向圈 \(C\) 中。若圈外有顶点 \(x\)\(C\) 既有内邻也有外邻,则沿 \(C\) 可找到相邻顶点 \(v_i,v_{i+1}\) 使 \(v_i\to x\to v_{i+1}\),把 \(x\) 插入得长 \(n+1\) 的有向圈。否则每个圈外顶点要么被 \(C\) 全部指向,要么指向 \(C\) 全部顶点。由强连通性,存在一条从前一类到后一类的边,也可替换 \(C\) 的一段得到长 \(n+1\) 的圈。归纳得证。证毕。

定理 \(8.8\)\(P(u_0,v_0)\) 是严格有向图 \(D\) 中的最长有向轨道,则其长度 \(|E(P(u_0,v_0))|\ge \max\{\delta^-,\delta^+\}\)

证明

只证 \(\max=\delta^+\)。若 \(P\) 长度小于 \(\delta^+\),则终点 \(v_0\) 至少有 \(\delta^+\) 个外邻点,而 \(P\) 上除 \(v_0\) 外顶点少于 \(\delta^+\) 个,故存在外邻点不在 \(P\) 上,可以延长 \(P\),矛盾。证毕。

推论 \(8.2\)\(\max\{\delta^-,\delta^+\}>0\),则严格有向图中有长度大于 \(\max\{\delta^-,\delta^+\}\) 的有向圈。

证明

\(\max=\delta^+\),取最长有向轨道 \(P(u_0,v_0)\)\(v_0\) 的所有外邻点都在 \(P\) 上,否则可延长。取 \(P\) 上离 \(v_0\) 最远的外邻点 \(x\),则 \(xP v_0x\) 构成长度至少 \(\delta^++1\) 的有向圈。证毕。

定理 \(8.9\)\(D\)\(\nu\) 阶严格有向图,若 \(\min\{\delta^-,\delta^+\}\ge \nu/2>1\),则 \(D\) 是有向 Hamilton 图。

证明

反证。设 \(C\) 是最长有向圈,长度为 \(k<\nu\)。由推论 \(8.2\)\(k>\nu/2\)。在 \(D-V(C)\) 中取最长有向轨道 \(P(u,v)\),长度为 \(m\)。记

\[S=\{i\mid (v_{i-1},u)\in E(D)\},\quad T=\{i\mid (v,v_i)\in E(D)\}. \]

\(S\cap T\ne\varnothing\),则可把 \(P\) 插入 \(C\) 得更长有向圈,矛盾。又由入出度条件,\(|S|\ge \nu/2-m, |T|\ge \nu/2-m\),故 \(S,T\) 非空且 \(|S|+|T|\ge k-m+1\)。沿 \(C\) 从某个 \(S\) 的指标走到下一个 \(T\) 的指标,中间空缺长度至多 \(m\),于是仍可用 \(P\) 替换这段得到长于 \(C\) 的有向圈,矛盾。故 \(k=\nu\)。证毕。

习题

\(8.1.\) 有多少种方式把 \(K_5\) 定向成竞赛图?

解答

\(K_5\)\(\binom52=10\) 条边,每条边有两个方向,故共有 \(2^{10}=1024\) 种定向方式。

\(8.2.\)\(D\) 是没有有向圈的有向图。证明:\(\delta^-=0\),且存在拓扑序。

解答

若每个顶点入度都大于 \(0\),从任意顶点不断沿入边反向追溯,由有限性必重复顶点,得到有向圈,矛盾。因此存在入度 \(0\) 顶点。删除该顶点后仍无有向圈,归纳即可得到顶点序列 \(v_1,\cdots,v_\nu\),使每条以 \(v_i\) 为终点的边的起点都在前面。

\(8.3.\) 证明:任给无向图 \(G\)\(G\) 都有一个定向图 \(D\),使得对所有 \(v\in V\)\(|\deg^+(v)-\deg^-(v)|\le 1\)

解答

把每个奇度顶点两两配对并加辅助边,得到所有顶点偶度的图,每个连通片有 Euler 回路。沿每条 Euler 回路定向,原图中每个顶点入出度相等;删去辅助边后,每删去一条关联边只使差值改变 \(1\),故原图定向满足条件。

\(8.4.\) 判断给定有向图是否强连通、单向连通、弱连通。

解答

强连通:从每个强连通片看是否只有一个,或检查可达矩阵 \(R\) 是否全为 \(1\)。单向连通:检查任意两顶点 \(u,v\) 是否满足 \(R_{uv}=1\)\(R_{vu}=1\)。弱连通:忽略方向后检查底图连通性。对题图逐项套用即可。

\(8.5.\) 求给定有向图的强连通片。

解答

用 Tarjan、Kosaraju,或先求可达矩阵 \(R\),再把满足 \(R_{uv}=R_{vu}=1\) 的顶点归为同一类。每个等价类导出的子图就是强连通片。

\(8.6.\) 证明:连接有向图同一个强连通片中两个顶点的有向通路上的所有顶点也都在这个强连通片中。

解答

\(u,v\) 在同一强连通片,通路为 \(u\leadsto x\leadsto v\)。因为 \(u,v\) 双向可达,\(v\leadsto u\)。于是 \(x\leadsto v\leadsto u\)\(u\leadsto x\),故 \(x\)\(u\) 双向可达,属于同一强连通片。

\(8.7.\) 证明无向图 \(G\) 有一种定向方法,使得其最长有向轨道的长度不超过 \(\Delta\)

解答

由 Brooks 定理,除完全图和奇圈外 \(\chi(G)\le\Delta\);完全图和奇圈也可直接定向使最长有向轨道长度不超过 \(\Delta\)。取正常 \(\chi(G)\)-着色,并把每条边从颜色小的端点指向颜色大的端点。任意有向轨道颜色严格递增,长度至多 \(\chi(G)-1\le\Delta\)

\(8.8.\)\(D'\) 是把有向图 \(D\) 的每条边方向反向得到的有向图,证明:\(D\) 强(单向)连通当且仅当 \(D'\) 强(单向)连通。

解答

\(D\) 中从 \(u\)\(v\) 的有向路径反向后就是 \(D'\) 中从 \(v\)\(u\) 的有向路径。双向可达和“至少一个方向可达”均在整体反向后保持。

\(8.9.\) 若竞赛图不是强连通图,最少改变几条边的方向,可以使它变成有向 Hamilton 图?

解答

最少一条。竞赛图总有 Hamilton 轨道 \(v_1\to v_2\to\cdots\to v_\nu\)。若不是强连通,则不可能已有 Hamilton 圈。将 \(v_1\)\(v_\nu\) 之间的边改为 \(v_\nu\to v_1\),即得到 Hamilton 圈。

\(8.10.\) 在不少于三名运动员的个人循环赛中,无平局,无人全胜,则必出现甲胜乙、乙胜丙、丙又胜甲的现象。

解答

建竞赛图。若没有有向 \(3\) 圈,则竞赛图是传递的,存在一个顶点胜过所有其他顶点,即有人全胜,矛盾。故存在有向 \(3\) 圈。

\(8.11.\) 在 Petersen 图上定向一个单向行驶路线图,使任意两个顶点 \(u,v\) 之间不是 \(u\) 可达 \(v\),就是 \(v\) 可达 \(u\)

解答

取 Petersen 图的一条 Hamilton 路径并按路径方向定向路径边,其余边任意定向。由于这条有向 Hamilton 路径包含所有顶点,任意两点在路径顺序上必有一个可达另一个。

\(8.12.\) 把 Petersen 图定向成强连通有向图。

解答

Petersen 图无桥。由定理 \(8.2\),它存在强连通定向。具体可取一个覆盖所有顶点的闭行走,把闭行走上的首次覆盖边按行走方向定向,剩余弦边任意定向或按所在圈方向补齐。

\(8.13.\) 若竞赛图不是有向 Hamilton 图,则它有唯一的王。

解答

若竞赛图不是有向 Hamilton 图,则由定理 \(8.7\) 的逆向理解,它不是强连通。强连通片按可达关系线性排列,最前面的强连通片只能是单点,否则其中有圈并可与后续 Hamilton 路径拼接成 Hamilton 圈。该源点胜过所有其他顶点,得分 \(\nu-1\),由定理 \(8.6\) 是唯一的王。

\(8.14.\) 证明:\(\nu\ge 3\) 阶竞赛图中有得分相同的顶点,当且仅当图中有长为 \(3\) 的有向圈。

解答

若无有向 \(3\) 圈,则竞赛图传递,可排序为 \(v_1\) 胜所有后继,得分序列为 \(\nu-1,\nu-2,\cdots,0\),互不相同。反之若有向 \(3\) 圈不存在才会得分互异;故得分相同必推出有向 \(3\) 圈。若存在有向 \(3\) 圈,三个顶点在圈内各得 \(1\) 分,对圈外每个顶点与这三点的胜负贡献总和为 \(0,1,2\)\(3\),整体得分序列不可能仍为 \(0,\cdots,\nu-1\) 的传递序列,否则无 \(3\) 圈,矛盾,故有得分相同顶点。

网络流理论

网络与流函数

定义 \(9.1\) 一个网络定义为四元组 \(N=(D,s,t,c)\),其中 \(D\) 是弱连通有向图,\(s,t\in V(D)\) 分别称为\(c:E(D)\to \mathbb{R}\) 为容量函数,任给 \(e\in E(D)\)\(c(e)\ge 0\) 为边 \(e\) 的容量。

定义 \(9.2\) 网络 \(N=(D,s,t,c)\) 上的流函数是函数 \(f:E(D)\to\mathbb{R}\),满足:

\((1)\) 任给 \(e\in E(D)\)\(0\le f(e)\le c(e)\)

\((2)\) 任给 \(v\in V(D)-\{s,t\}\)\(\sum_{e\in \alpha(v)}f(e)-\sum_{e\in \beta(v)}f(e)=0\),其中 \(\alpha(v)\) 为以 \(v\) 为头的边集,\(\beta(v)\) 为以 \(v\) 为尾的边集。

\(f\) 的流量定义为

\[\operatorname{Val}(f)=\sum_{e\in\alpha(t)}f(e)-\sum_{e\in\beta(t)}f(e) =\sum_{e\in\beta(s)}f(e)-\sum_{e\in\alpha(s)}f(e). \]

定义 \(9.3\)\(S\subseteq V(D)\)\(s\in S,t\notin S\),记 \(\overline S=V(D)-S\),则边集 \((S,\overline S)\) 称为网络的一个,其截量为 \(C(S,\overline S)=\sum_{e\in(S,\overline S)}c(e)\)

推论 \(9.2\) 任给网络流 \(f\) 与任意截 \((S,\overline S)\),都有 \(\operatorname{Val}(f)\le C(S,\overline S)\)。若某个流函数和某个截满足等号,则该流为最大流,该截为最小截。

证明

\(S\) 内所有顶点的流守恒式求和,内部边贡献相互抵消,得到 \(\operatorname{Val}(f)=f^+(S)-f^-(S)\),其中 \(f^+(S)\) 是从 \(S\)\(\overline S\) 的流量和,\(f^-(S)\) 是反向流量和。于是

\[\operatorname{Val}(f)=f^+(S)-f^-(S)\le f^+(S)\le C(S,\overline S). \]

若等号成立,则没有任何流或截能更优。证毕。

Ford-Fulkerson 算法

定义 \(9.4\) 给定网络 \(N=(D,s,t,c)\)、流函数 \(f\) 和底图中的无向轨道 \(P(s,u)\)。若边方向与 \(P\) 方向相同,称为正向边,否则称为反向边。正向边 \(e\) 的可增载量为 \(c(e)-f(e)\),反向边 \(e\) 的可增载量为 \(f(e)\)

定义 \(9.5\)\(P(s,t)\) 上每条边可增载量均为正,则称 \(P(s,t)\) 是关于 \(f\)可增载轨道。记 \(l(P)\) 为这些可增载量的最小值。

引理 \(9.1\)\(P(s,t)\) 是关于 \(f\) 的可增载轨道。将 \(P\) 上正向边流量增加 \(l(P)\)、反向边流量减少 \(l(P)\),其他边不变,所得函数仍是流函数,且流量增加 \(l(P)\)

证明

容量约束由 \(l(P)\) 的定义直接保证。对 \(P\) 的内部顶点,轨道进入和离开各改变同样的 \(l(P)\),流守恒仍成立;不在 \(P\) 上的顶点不变。源和汇处净流量分别增加 \(l(P)\),故新流量为 \(\operatorname{Val}(f)+l(P)\)。证毕。

算法 \(9.1\) 可增载轨道算法:从 \(s\) 开始标记顶点;若从已标记顶点 \(u\) 到未标记顶点 \(v\) 有未满载正向边,则标记 \(v\);若从未标记顶点 \(v\) 到已标记顶点 \(u\) 有正载反向边,也标记 \(v\);记录前驱。若标记到 \(t\),回溯得到可增载轨道;若不能继续且未标记 \(t\),则不存在可增载轨道。

引理 \(9.2\) 若网络中存在关于 \(f\) 的可增载轨道,则算法 \(9.1\) 一定能够找到一条可增载轨道。

证明

若算法停止而未标记 \(t\),设 \(S\) 为已标记顶点集合。任意从 \(S\)\(\overline S\) 的正向边必满载,任意从 \(\overline S\)\(S\) 的边必零载。任何 \(s\)\(t\) 的可增载轨道都必须第一次从 \(S\) 走到 \(\overline S\),该步无论对应正向边还是反向边,都与上述停止条件矛盾。证毕。

算法 \(9.2\) Ford-Fulkerson 最大流算法:从任意初始流函数出发,反复寻找可增载轨道并增载;若不存在可增载轨道,则输出当前流函数。

定理 \(9.2\) 给定网络 \(N=(D,s,t,c)\),Ford-Fulkerson 算法得到的流函数一定是最大流。

证明

算法结束时设 \(S\) 为可增载轨道算法标记到的顶点集合,\(s\in S,t\notin S\)。由停止条件,\((S,\overline S)\) 中所有边满载,\((\overline S,S)\) 中所有边零载。因此

\[\operatorname{Val}(f)=f^+(S)-f^-(S)=C(S,\overline S). \]

由推论 \(9.2\)\(f\) 是最大流。证毕。

推论 \(9.3(\text{最大流最小截定理})\) 在网络中,最大流的流量等于最小截的截量。

证明

任意流量不超过任意截量;Ford-Fulkerson 终止时给出一个流和一个截达到相等,故最大流量等于最小截量。证毕。

容量有上下界的网络最大流

定义 \(9.6\) 一个容量有上下界的网络定义为 \(N=(D,s,t,b,c)\),其中 \(b,c:E(D)\to\mathbb R\),任给 \(e\)\(c(e)\ge b(e)\ge 0\)

定义 \(9.7\) \(N=(D,s,t,b,c)\) 上的流函数 \(f\) 满足 \(b(e)\le f(e)\le c(e)\),且除源汇外每个顶点满足流守恒。这样的流函数也称为可行流

定义 \(9.8\) 给定容量有上下界网络 \(N=(D,s,t,b,c)\),定义伴随网络 \(N'=(D',s',t',c')\):加入新源 \(s'\)、新汇 \(t'\),保留原边并令容量为 \(c(e)-b(e)\);对每个顶点 \(v\) 加边 \((s',v)\),容量为 \(\sum_{e\in\alpha(v)}b(e)\);加边 \((v,t')\),容量为 \(\sum_{e\in\beta(v)}b(e)\);再加 \((s,t),(t,s)\),容量为 \(+\infty\)

定理 \(9.3\) 容量有上下界网络 \(N\) 存在可行流,当且仅当伴随网络 \(N'\) 中存在一个最大流,使得所有从 \(s'\) 出发的边和所有进入 \(t'\) 的边均满载。

证明

\(f\)\(N\) 的可行流,令原边在 \(N'\) 中流量为 \(f(e)-b(e)\)。每个顶点因下界造成的入流需求和出流需求分别由 \(s'\) 入边、到 \(t'\) 的出边补足;再用 \((s,t),(t,s)\) 平衡源汇差额,即得使新增需求边满载的流。

反之,若 \(N'\) 中这些边满载,令 \(f(e)=f'(e)+b(e)\)。原边容量满足 \(b(e)\le f(e)\le c(e)\);由于新增边正好抵消各顶点下界带来的不平衡,限制回原网络后除源汇外满足流守恒。因此 \(f\) 是可行流。证毕。

有供需需求的网络流

定义 \(9.9\) 有供需约束的网络为 \(N=(D,X,Y,\sigma,\rho,c)\),其中 \(X=\{x_1,\cdots,x_m\}\) 为供应点集合,\(Y=\{y_1,\cdots,y_n\}\) 为需求点集合,\(\sigma(x_i)\) 为供应量,\(\rho(y_j)\) 为需求量,\(c\) 为边容量。

定义 \(9.10\) 有供需约束网络的可行流 \(f\) 满足容量约束;非供需点流守恒;每个供应点净流出不超过供应量;每个需求点净流入等于需求量。

定理 \(9.4\) 有供需约束网络 \(N\) 存在可行流,当且仅当任给 \(S\subseteq V(D)\),都有

\[C(S,\overline S)\ge \rho(Y\cap \overline S)-\sigma(X\cap \overline S). \]

证明

构造附加网络:加入源 \(x_0\) 与汇 \(y_0\),从 \(x_0\) 向每个供应点 \(x_i\) 连容量 \(\sigma(x_i)\) 的边,从每个需求点 \(y_j\)\(y_0\) 连容量 \(\rho(y_j)\) 的边,原边容量不变。\(N\) 有可行流当且仅当附加网络存在使所有 \((y_j,y_0)\) 满载的流。

由最大流最小截定理,这等价于附加网络任意截容量不小于总需求 \(\rho(Y)\)。把附加网络中截写成 \((S\cup\{x_0\},\overline S\cup\{y_0\})\),其容量为 \(C(S,\overline S)+\rho(Y\cap S)+\sigma(X\cap\overline S)\)。令其不小于 \(\rho(Y)\),整理即得定理中的不等式。证毕。

算法 \(9.4\) 有供需约束网络的可行流算法:构造附加网络,求最大流;若所有需求边 \((y_j,y_0)\) 满载,则将最大流限制到原网络得到可行流,否则无可行流。

网络流在连通度中的应用

定义 \(9.12\) 给定有向图 \(D=(V,E)\)\(f:E\to\mathbb R\) 是边权函数。若任给 \(v\in V\) 都有 \(\sum_{e\in\alpha(v)}f(e)-\sum_{e\in\beta(v)}f(e)=0\),则称 \(f\)\(D\) 上的一个循环

定义 \(9.13\)\(f\) 是集合 \(S\) 上的实函数,则称 \(S\) 中函数值不为零的元素构成的子集为 \(f\)支撑

引理 \(9.4\)\(f\) 是有向图 \(D\) 上非零的循环,则 \(f\) 的支撑中含有一个圈;若 \(f\) 是非负函数,则 \(f\) 的支撑中含有一个有向圈。

证明

忽略方向看支撑导出子图。若存在度数 \(0\)\(1\) 的支撑顶点,则该顶点处不可能满足循环守恒,矛盾;故最小度至少 \(2\),含无向圈。若 \(f\ge0\),从任一支撑边出发沿正流边继续走,流守恒保证每到一个顶点都能沿某条正流出边离开;有限性保证重复顶点,从而得到有向圈。证毕。

引理 \(9.5\) 任给有向图 \(D\) 中的一个循环 \(f\)\(f\) 都是一些圈导出循环的线性组合。

证明

对支撑大小归纳。若支撑非空,由引理 \(9.4\) 取支撑中的一个圈 \(C\),并按其中一条边 \(e^*\) 的方向定向。令 \(f_C\) 为该圈导出的循环,取 \(f'=f-f(e^*)f_C\),则 \(f'\) 仍为循环且 \(e^*\) 不在其支撑中。由归纳假设 \(f'\) 可由圈导出循环线性表示,于是 \(f\) 也可以。证毕。

引理 \(9.6\) 任给有向图 \(D\) 中的一个非负循环 \(f\)\(f\) 都是一些有向圈导出循环的线性组合。若 \(f\) 的函数值都是整数,则可使线性组合中的系数都是非负整数。

证明

\(\sum_e f(e)\) 归纳。若 \(f=0\) 显然。否则由引理 \(9.4\),支撑中含有有向圈 \(C\)。令 \(\lambda=\min_{e\in C}f(e)>0\),则 \(f-\lambda f_C\) 仍是非负循环,且支撑变小或总权下降。归纳即可。若 \(f\) 整数,则每次取的 \(\lambda\) 为正整数。证毕。

推论 \(9.4\)\(N=(D,s,t,c)\) 为单位容量网络,\(k\) 为正整数,则 \(N\) 存在流量为 \(k\) 的流函数等价于 \(D\) 中存在 \(k\) 条从 \(s\)\(t\) 无公共边的有向轨道。

证明

\(k\) 条无公共边有向轨道的示性函数相加给出单位容量下流量 \(k\) 的流。反之,整数最大流可取 \(0/1\) 流;加边 \((t,s)\) 后成为非负整数循环,由引理 \(9.6\) 分解为有向圈,删去 \((t,s)\) 后得到若干条无公共边的 \(s\)\(t\) 有向轨道。证毕。

定理 \(9.5\) 任给有向图 \(D\) 以及两个顶点 \(u,v\)\(D\) 中无公共边的 \(uv\)-有向轨道的最大数量等于最小 \(uv\)-边割集中有向边的数量。

证明

给每条有向边容量 \(1\),以 \(u\) 为源、\(v\) 为汇。由推论 \(9.4\),最大流量等于最大无公共边轨道数;由最大流最小截定理,最大流量等于最小截容量;单位容量下截容量就是边割集中边数。证毕。

定理 \(9.6\) 任给无向图 \(G\) 以及两个顶点 \(u,v\)\(G\) 中无公共边的 \(uv\)-轨道的最大数量等于最小 \(uv\)-边割集中边的数量。

证明

将每条无向边 \(xy\) 替换为两条反向有向边 \((x,y),(y,x)\),并给容量 \(1\)。无向的无公共边轨道可定向为有向轨道;有向解中同一对反向边不会同时在不同轨道中必要出现,否则可消去相应闭合部分。于是无向问题与有向单位容量问题等价,由定理 \(9.5\) 得证。

无公共内顶轨道问题可通过拆点化为无公共边问题:除 \(u,v\) 外把每个顶点 \(w\) 拆成 \(w^-,w^+\) 并加边 \((w^-,w^+)\),原来进入 \(w\) 的边改入 \(w^-\),原来离开 \(w\) 的边改从 \(w^+\) 离开。

img

习题

\(9.1.\) 证明流量在源与汇处的两种表达式相等。

解答

对所有顶点的“入流减出流”求和为 \(0\),内部边一正一负抵消。除 \(s,t\) 外顶点该值为 \(0\),故 \(t\) 处入流减出流等于 \(s\) 处出流减入流。

\(9.2.\) 证明集合版流量恒等式,并说明单独求和不等于跨割流量。

解答

\(X\) 中所有顶点的“出流减入流”求和,\(X\) 内部边抵消,只剩从 \(X\) 到外部的流量减从外部到 \(X\) 的流量。单独的 \(\sum_{v\in X}\sum_{e\in\beta(v)}f(e)\) 会把 \(X\) 内部边也计入,所以一般不等于 \(f^+(X)\);取两点间一条内部正流边即可作例。

\(9.3.\) 若网络中不存在从源 \(s\) 到汇 \(t\) 的有向轨道,则最大流量与最小截量都是 \(0\)

解答

\(S\) 为从 \(s\) 可达的顶点集合,则 \(t\notin S\),且不存在从 \(S\)\(\overline S\) 的边,否则可达集合可扩大。因此截容量为 \(0\)。由最大流最小截定理,最大流量为 \(0\)

\(9.4.\) 求图中网络的最大流。

解答

按 Ford-Fulkerson 算法反复找可增载轨道;当标号过程停止时,由已标记顶点集 \(S\) 得到一个截。若当前流量等于该截容量,即为最大流。具体数值需按图 \(9.14\) 的容量逐步计算。

\(9.5.\) 证明:若网络中每条边的容量均为整数,则最大流的流量也一定是整数。

解答

从零流出发,Ford-Fulkerson 每次增载量是若干整数剩余容量的最小值,故为整数。每次更新后仍为整数流;算法终止时得到整数最大流。

\(9.6\)-\(9.8.\) 图示计算题与定位算法。

解答

图示题均先构造对应附加网络或带点容量的拆点网络,再求最大流。点容量可把顶点 \(v\) 拆成 \(v^-,v^+\),加容量为点容量的边 \((v^-,v^+)\),原入边进入 \(v^-\),原出边从 \(v^+\) 离开。定位算法:求最大流后取残量网络中从源可达集 \(S\),任何最小截上的边容量增加都可能增加最大流;若不存在这样的边,则最大流不变。

\(9.9.\) 证明供需约束网络存在可行流时,其附加网络存在使所有需求边满载的流。

解答

把原可行流保留在原边上;从附加源 \(x_0\) 向供应点 \(x_i\) 送入其实际净流出量,不足供应量的部分可不使用;每个需求点 \(y_j\) 的净流入等于 \(\rho(y_j)\),于是令 \((y_j,y_0)\) 流量为 \(\rho(y_j)\),正好满载。各点流守恒成立。

\(9.10.\) 证明有正下界但无上界网络存在可行流的充要条件。

解答

必要性:若边 \(e\) 有正下界且承载正流,把流分解为从 \(s\)\(t\)、从 \(t\)\(s\) 的轨道和循环,则 \(e\) 必在某个有向回路、\(s\)\(t\) 轨道或 \(t\)\(s\) 轨道上。充分性:对每条有下界的边,若在有向回路上就在该回路加 \(b(e)\) 流;若在 \(s\)\(t\)\(t\)\(s\) 轨道上,则沿相应轨道加流或视作负流方向调整。叠加后满足所有下界和守恒。

\(9.11\)-\(9.13.\) 容量下界与可行流计算题。

解答

使用定义 \(9.8\) 的伴随网络判定可行流;若存在可行流,再在残量网络上从当前可行流出发求最大流或最小流。若不存在,则由伴随网络未满载的最小截反推出题设所称需要“冒出”或“漏掉”流的顶点子集。

\(9.14.\) 用最大流最小截定理证明 König-Egerváry 定理。

解答

对二分图 \(G=(X,Y;E)\) 构造网络:源连每个 \(x\in X\),容量 \(1\);每条二分图边从 \(X\) 指向 \(Y\),容量 \(1\);每个 \(y\in Y\) 连汇,容量 \(1\)。整数最大流对应匹配。任一截对应一个顶点覆盖,其容量不小于最小覆盖;反过来任一覆盖给出同容量截。由最大流最小截定理,最大匹配数等于最小覆盖数。

\(9.15.\)\(f,f'\) 为同流量流函数,证明 \(f-f'\) 是循环。

解答

对除源汇外顶点,两个流函数分别满足流守恒,相减仍为 \(0\)。源汇处由于两者流量相同,相减后的净流量也为 \(0\)。故 \(f-f'\) 在所有顶点满足循环条件。

\(9.16.\) 用定理 \(9.5\) 证明定理 \(9.6\)

解答

把每条无向边替换为两条相反的有向边,并应用定理 \(9.5\)。再把有向边割与轨道解映回无向图,即得无向版本。

\(9.17.\) 修改算法 \(9.4\) 求有供需约束网络的最大流。

解答

先用算法 \(9.4\) 求一个可行流。保留该流作为初始流,在原网络的残量网络中,以总供应侧到总需求侧的净输送量为目标继续增广;等价地,在附加网络中加入从原汇侧回原源侧的无限容量边,先满足需求边满载,再在不破坏满载的残量网络上增广目标流量。

\(9.18.\)\(f\) 是有向图 \(D\) 上非零的非负循环,则 \(f\) 的支撑中含有一个有向圈。

解答

从一条正流边出发。到达任意顶点后,因入流为正且流守恒,必存在至少一条正流出边。不断沿正流出边前进,有限图中必重复顶点,重复段即为有向圈。

\(9.19.\) 证明引理 \(9.6\)

解答

见引理 \(9.6\) 下的证明:反复从支撑中取有向圈,减去该圈上的最小流量,直到流为零。整数情形每次减去的最小流量为整数。

图矩阵与图空间

线性空间简介

定义 \(10.1\) 给定数域 \(F\) 和非空集合 \(V\),若在 \(V\) 中定义向量加法,在 \(F\)\(V\) 的元素间定义数量乘法,并满足加法交换律、结合律、零元、逆元以及数乘的单位元、结合律和分配律,则称 \(V\)\(F\) 上的一个线性空间

定义 \(10.2\)\(V\) 是数域 \(F\) 上的线性空间。若存在不全为零的系数 \(k_i\) 使 \(k_1v_1+\cdots+k_nv_n=0\),则称 \(v_1,\cdots,v_n\) 线性相关;否则称为线性无关。若一组线性无关向量可线性表示 \(V\) 中任意向量,则称它为 \(V\) 的一组,基中向量个数称为 \(V\)维数

定义 \(10.3\)\(V\) 是数域 \(F\) 上的线性空间,\(V'\subseteq V\)\(V'\ne\varnothing\)。若 \(V'\) 也是 \(F\) 上的线性空间,则称 \(V'\)\(V\) 的线性子空间。

定理 \(10.1\)\(V\) 是数域 \(F\) 上的线性空间,\(V'\subseteq V\)\(V'\ne\varnothing\)。若任给 \(\alpha,\beta\in V'\)\(k,l\in F\),都有 \(k\alpha+l\beta\in V'\),则 \(V'\)\(V\) 的线性子空间。

证明

由条件取 \(k=l=1\) 得加法封闭,取 \(l=0\) 得数乘封闭。零元可由 \(0\alpha\) 得到,逆元可由 \((-1)\alpha\) 得到。其余线性空间公理由 \(V\) 中对应公理继承而来。证毕。

图的空间

定义 \(10.4\) 给定图 \(G=(V,E)\),设 \(E=\{e_1,\cdots,e_\varepsilon\}\)。把每个边子集 \(E'\subseteq E\) 对应为 \(\varepsilon\)\(0\)-\(1\) 向量。所有边子集对应的向量构成 \(F_2\) 上的线性空间,称为 \(G\)边空间,记作 \(\mathcal E(G)\)。边向量加法对应边子集的对称差。

定义 \(10.5\) \(G\) 中一些无公共边的圈之并对应的边向量称为圈向量,所有圈向量与零向量构成集合 \(\mathcal C(G)\),称为圈空间

定理 \(10.2\) \(\mathcal C(G)\)\(\mathcal E(G)\) 的线性子空间。

证明

只需证对加法封闭。两个圈向量对应的边导出子图中每个顶点度数均为偶数。取对称差后,每个顶点度数仍为偶数,因此该边集可分解为无公共边的圈之并,仍在 \(\mathcal C(G)\) 中。证毕。

定义 \(10.6\) 给定连通图 \(G\) 的一棵生成树 \(T\)。任取 \(e\in E(G)-E(T)\)\(T+e\) 上有唯一一个圈。所有这样的圈称为 \(G\) 关于 \(T\) 的一组基本圈组

定理 \(10.3\) 给定连通图 \(G\) 的一棵生成树 \(T\),其对应的基本圈组 \(C_1,\cdots,C_{\varepsilon-\nu+1}\)\(\mathcal C(G)\) 的一组基,\(\dim\mathcal C(G)=\varepsilon-\nu+1\)

证明

将非树边先编号为 \(e_1,\cdots,e_{\varepsilon-\nu+1}\),基本圈 \(C_i\) 恰含非树边 \(e_i\) 而不含其他非树边。因此若 \(\sum k_iC_i=0\),看非树边坐标可得所有 \(k_i=0\),线性无关。

任取圈向量 \(C\),设其包含的非树边为 \(e_{i_1},\cdots,e_{i_t}\)。则 \(C+C_{i_1}+\cdots+C_{i_t}\) 不含非树边,只含树边;树中无圈,而该向量仍在圈空间中,故只能为零。于是 \(C\) 可由基本圈组线性表示。证毕。

定义 \(10.7\) 给定图 \(G=(V,E)\),取非空真子集 \(V'\subset V\),用 \((V',\overline{V'})\) 表示一个端点在 \(V'\) 中、另一个端点在 \(\overline{V'}\) 中的边子集,称为 \(G\) 的一个断集。所有断集向量与零向量组成的集合记为 \(\mathcal S(G)\),称为断集空间

定理 \(10.4\) \(\mathcal S(G)\)\(\mathcal E(G)\) 的线性子空间。

证明

两个断集 \((A,\overline A)\)\((B,\overline B)\) 的对称差恰为 \((A\triangle B,\overline{A\triangle B})\)。因此断集向量对加法封闭,数乘在 \(F_2\) 上只需考虑 \(0,1\),显然封闭。证毕。

定理 \(10.5\) 给定连通图 \(G\) 的一棵生成树 \(T\)。每条树枝 \(e\in E(T)\) 对应的断集 \((V_1,V_2)\)(其中 \(V_1,V_2\)\(T-e\) 的两个连通片顶点集)称为基本断集。所有基本断集构成 \(\mathcal S(G)\) 的一组基,\(\dim\mathcal S(G)=\nu-1\)

证明

每个基本断集含有唯一对应树枝,且不含其他基本断集中对应的树枝,因此线性无关。任意断集与树的交非空;按其包含的树枝所对应基本断集相加,树枝坐标完全相同,而差向量既是断集又不含树枝。若非零,则会在树外边上给出跨割连接而迫使树中相应路径含跨割树枝,矛盾。故任意断集可由基本断集表示。证毕。

定理 \(10.6\) 圈空间 \(\mathcal C(G)\) 与断集空间 \(\mathcal S(G)\) 正交,即任给 \(C\in\mathcal C(G),S\in\mathcal S(G)\),都有 \(C\cdot S=0\)(在 \(F_2\) 中)。

img

证明

一个圈穿过任意割的次数为偶数:每次从割的一侧进入另一侧,之后必须再穿回。故圈向量与断集向量公共边数为偶数,内积为 \(0\)。对圈之并线性扩展即得。证毕。

邻接矩阵

定义 \(10.8\) 给定无向图 \(G=(V,E)\)\(V=\{v_1,\cdots,v_\nu\}\),其邻接矩阵 \(A(G)=(a_{ij})_{\nu\times\nu}\) 定义为:\(a_{ij}\) 等于连接 \(v_i\)\(v_j\) 的边数;若有环,环在对角元处按 \(2\) 计。

定理 \(10.7\)\(A(G)\) 是无向图 \(G\) 的邻接矩阵,则 \(A(G)^k\) 的第 \((i,j)\) 个元素等于从 \(v_i\)\(v_j\) 的长度为 \(k\) 的路径条数。

证明

\(k\) 归纳。\(k=1\) 即邻接矩阵定义。若结论对 \(k\) 成立,则

\[(A^{k+1})_{ij}=\sum_l(A^k)_{il}A_{lj}, \]

右侧按倒数第二个顶点 \(v_l\) 分类,正是从 \(v_i\)\(v_j\) 的长度 \(k+1\) 路径数。证毕。

定义 \(10.9\) 有向图 \(D\) 的邻接矩阵 \(A(D)=(a_{ij})\) 定义为 \(a_{ij}\) 等于从 \(v_i\)\(v_j\) 的有向边条数。

定理 \(10.8\)\(A(D)\) 是有向图 \(D\) 的邻接矩阵,则 \(A(D)^k\) 的第 \((i,j)\) 个元素等于从 \(v_i\)\(v_j\) 的长度为 \(k\) 的有向路径条数。

证明

与定理 \(10.7\) 相同,按最后一条边的起点分类归纳即可。证毕。

算法 \(10.1\) Warshall 算法:从邻接矩阵得到可达矩阵。依次允许顶点 \(v_1,\cdots,v_l\) 作为中间点,更新

\[r_{ij}^{(l+1)}=r_{ij}^{(l)}\vee\left(r_{i,l+1}^{(l)}\wedge r_{l+1,j}^{(l)}\right). \]

引理 \(10.1\)\(0\le l\le \nu\)\(r_{ij}^{(l)}=1\) 当且仅当存在从 \(v_i\)\(v_j\) 的有向路径,且中间顶点都在 \(\{v_1,\cdots,v_l\}\) 中。

证明

\(l\) 归纳。\(l=0\) 时只允许直接边。由 \(l\)\(l+1\) 时,一条允许使用 \(v_{l+1}\) 的路径要么不经过 \(v_{l+1}\),要么分解为 \(v_i\)\(v_{l+1}\)\(v_{l+1}\)\(v_j\) 两段;这正对应更新公式。证毕。

定理 \(10.9\) Warshall 算法结束得到 \(R(D)=(r_{ij})\),若 \(v_i\)\(D\) 中可达 \(v_j\),则 \(r_{ij}=1\);否则 \(r_{ij}=0\)

证明

\(l=\nu\) 代入引理 \(10.1\),所有顶点都允许作为中间点,故矩阵正是可达矩阵。证毕。

关联矩阵

定义 \(10.12\) 给定无环无向图 \(G=(V,E)\)\(V=\{v_1,\cdots,v_\nu\}\)\(E=\{e_1,\cdots,e_\varepsilon\}\),定义关联矩阵 \(B(G)=(b_{ij})_{\nu\times\varepsilon}\),其中 \(b_{ij}=1\) 当且仅当 \(v_i\)\(e_j\) 关联,否则为 \(0\)

删去 \(B(G)\) 任意一行后得到的矩阵称为 \(G\)基本关联矩阵,记为 \(B_f(G)\)

定理 \(10.10\)\(G\) 是连通图,则 \(r(B(G))=r(B_f(G))=\nu-1\)

证明

\(F_2\) 上,每列恰有两个 \(1\),故所有行向量之和为零,秩至多 \(\nu-1\)。若某 \(\nu-1\) 行线性相关,则存在非空真顶点集 \(S\),使这些行相加为零。于是每条边与 \(S\) 的关联次数为偶数,即没有边跨越 \((S,\overline S)\),与连通性矛盾。故任意 \(\nu-1\) 行线性无关,秩为 \(\nu-1\)。证毕。

推论 \(10.2\)\(G\) 是简单图,则 \(r(B(G))=r(B_f(G))=\nu(G)-\omega\),其中 \(\omega\)\(G\) 的连通片个数。

证明

将关联矩阵按连通片排列成块对角形式。每个连通片 \(G_i\) 的秩为 \(\nu(G_i)-1\),相加得 \(\sum_i(\nu(G_i)-1)=\nu-\omega\)。证毕。

定理 \(10.11\)\(G\) 是连通图,\(e_{i_1},\cdots,e_{i_{\nu-1}}\in E(G)\),则 \(G[\{e_{i_1},\cdots,e_{i_{\nu-1}}\}]\)\(G\) 的生成树,等价于 \(B_f(G)\) 中由第 \(i_1,\cdots,i_{\nu-1}\) 列构成的子矩阵为满秩矩阵。

证明

该子矩阵正是以这些边构成的生成子图的基本关联矩阵。若满秩,则该生成子图连通;它有 \(\nu\) 个顶点、\(\nu-1\) 条边,故为树。反之若这些边构成生成树,则其基本关联矩阵秩为 \(\nu-1\),即满秩。证毕。

定义 \(10.13\) 给定有向图 \(D=(V,E)\),其关联矩阵 \(B(D)=(b_{ij})_{\nu\times\varepsilon}\) 定义为

\[b_{ij}=\begin{cases} -1,& v_i \text{ 是 } e_j \text{ 的头},\\ 1,& v_i \text{ 是 } e_j \text{ 的尾},\\ 0,& v_i \text{ 与 } e_j \text{ 不关联}. \end{cases} \]

定理 \(10.12\)\(D\) 是连通有向图,则 \(r(B(D))=r(B_f(D))=\nu-1\)

证明

在实数域上,每列元素和为 \(0\),故行秩至多 \(\nu-1\)。若某 \(\nu-1\) 行线性相关,则存在非空真顶点集在对应线性组合下使所有跨割列无法抵消,推出底图无跨割边,矛盾于连通。故秩为 \(\nu-1\)。证毕。

推论 \(10.3\) 若有向图 \(D\) 的底图有 \(\omega\) 个连通片,则 \(r(B(D))=r(B_f(D))=\nu-\omega\)

证明

按底图连通片分块,并对每块应用定理 \(10.12\),秩相加即得。证毕。

习题

\(10.1.\) 验证边空间是 \(F_2\) 上的线性空间。

解答

边向量就是 \(F_2^\varepsilon\) 的全体向量,按分量加法与数乘运算。线性空间公理逐分量继承自域 \(F_2\)

\(10.2.\) 证明两个断集的对称差仍是断集或空集。

解答

\((A,\overline A)\oplus(B,\overline B)=(A\triangle B,\overline{A\triangle B})\)。若 \(A\triangle B\) 为空或全集,则为空向量;否则就是断集。

\(10.3.\) 求连通图的圈空间与断集空间维数。

解答

由生成树基本圈组,\(\dim\mathcal C(G)=\varepsilon-\nu+1\)。由基本断集组,\(\dim\mathcal S(G)=\nu-1\)

\(10.4.\) 证明圈空间与断集空间正交。

解答

任一圈进入割的一侧后必须离开,故与任一断集公共边数为偶数,在 \(F_2\) 中内积为 \(0\)。线性扩展即可。

\(10.5.\) 用邻接矩阵判断连通性或可达性。

解答

无向图可计算 \(I+A+\cdots+A^{\nu-1}\) 的零非零模式;任意两点对应元素非零当且仅当连通。有向图同理得到可达性,或直接使用 Warshall 算法。

\(10.6.\) 证明 Warshall 算法正确。

解答

见引理 \(10.1\) 与定理 \(10.9\):按允许中间点集合大小归纳,更新公式正对应“是否经过新允许的中间点”两种情况。

\(10.7.\) 证明关联矩阵可用于判断生成树。

解答

\(\nu-1\) 条边对应列。若这些列满秩,则相应生成子图连通且边数为 \(\nu-1\),故为生成树;若是生成树,则其基本关联矩阵秩为 \(\nu-1\)

后记

学习图论,我们更应该注重自然语言的描述,以清楚、明白地解决问题,同时也要注重思维的训练,学习更多解决问题的方法。

反证法:正难则反,主要利用逆否命题。

归纳法:缩小问题规模,主要利用原问题和子问题相同的问题结构。

推理法:先猜后证,主要利用断言进行问题的简化。

posted @ 2024-10-01 12:16  Dark_Meteor  阅读(1501)  评论(1)    收藏  举报