Files
handsomezhuzhu.github.io/otherdocs/离散/04_图论.md
2026-01-07 00:27:21 +08:00

7.0 KiB
Raw Blame History

第四章:图论

4.1 图的基本概念

4.1.1 定义与术语

  • 图 $G=(V, E)$V 为顶点集,E 为边集。
  • 度 (Degree)\deg(v) 为关联的边数 (自环算 2 度)。
    • 握手定理$\sum_{v \in V} \deg(v) = 2|E|$。
    • 推论:奇度顶点的个数必为偶数。
  • 子图$V' \subseteq V, E' \subseteq E$。
  • 补图$\bar{G}$,顶点相同,边互补 (完全图 K_n 减去原图的边)。

4.1.2 图的连通性

  • 路径 (Path)$v_0, e_1, v_1, \dots, v_k$。
  • 简单路径:不经过重复边。
  • 基本路径 (Elementary Path):不经过重复顶点。
  • 连通图:任意两点间均有路径。
  • 割点 (Cut Vertex):删去该点及关联边,图分量增加。
  • 割边 (Bridge):删去该边,图分量增加。
  • 连通度
    • 点连通度 $\kappa(G)$:使图不连通所需删除的最少顶点数。
    • 边连通度 $\lambda(G)$:使图不连通所需删除的最少边数。
    • 不等式关系\kappa(G) \le \lambda(G) \le \delta(G) (最小度)。

4.1.3 图的矩阵表示

  • 邻接矩阵 $A(G)$n \times n 矩阵,a_{ij} 表示 v_i, v_j 间的边数。
    • 性质:A^k 的元素 a_{ij}^{(k)} 表示从 v_iv_j 长度为 k 的路径条数。
  • 关联矩阵 $M(G)$:顶点与边的关系。

4.1.4 图的同构 (Isomorphism)

判断 G_1 \cong G_2 的必要条件 (若不满足则必不同构)

  1. 顶点数、边数相同。
  2. 度数列相同 (将所有点度数排序后一致)。
  3. 连通分量数相同。
  4. 对应长度的回路数相同 (如都有或都没有三角形)。 充分性证明通常需要构造双射函数。

4.2 特殊图类

4.2.1 欧拉图 (Euler) 与 哈密顿图 (Hamilton)

特性 欧拉图 (Euler) 哈密顿图 (Hamilton)
定义 经过每条边恰好一次的回路 经过每个顶点恰好一次的回路
判定(充要) 连通 + 所有点度为偶数 无简单充要条件
判定(充分) - (Dirac) n \ge 3, \forall v, \deg(v) \ge n/2
半图(路径) 连通 + 恰有 0 或 2 个奇度点 -
哈密顿图常用判定方式 (充分/必要)
  • 必要条件$\delta(G) \ge 2$;且无割点 (2-连通)。
  • Dirac 定理 (充分)$n \ge 3, \delta(G) \ge n/2$。
  • Ore 定理 (充分)n \ge 3 且任意非邻接顶点 u,v 满足 $\deg(u)+\deg(v) \ge n$。

4.2.2 树 (Trees)

  • 定义:连通且无回路的无向图。
  • 等价性质
    1. 无回路且 $E = V - 1$。
    2. 连通且 $E = V - 1$。
    3. 任意两点间存在唯一路径。
  • 度数和$\sum_{v \in V} \deg(v) = 2E = 2(V-1)$。
  • 叶子与内部点关系:设 L 为叶子数,则 $L = 2 + \sum_{\deg(v)\ge 2}(\deg(v) - 2)$。
  • 树中心 (Center)
    • 反复删除所有叶子,最终剩下 1 个或 2 个顶点,这些顶点即中心。
    • 等价表述:中心是到其他顶点最大距离最小的顶点(们)。
  • 二叉树常用关系
    • 满二叉树:若内部结点数为 $I$,叶子数为 $L$,则 $L = I + 1$。
    • 完全二叉树:n 个结点时高度 $h = \lfloor \log_2 n \rfloor + 1$。
  • 最小生成树 (MST) 算法
    • Kruskal (加边法):按权值排序,从小到大选边,不构成回路就加入。
    • Prim (加点法):从任意点开始,每次选离当前生成树集合最近的点加入。

4.2.3 平面图 (Planar Graphs)

  • 欧拉公式V - E + R = 2 (R 为面数,包含无限面)。
  • 定理:连通简单平面图 (V \ge 3) 满足 $E \le 3V - 6$。
    • 证明要点:每个面至少 3 条边,故 $3R \le 2E$,与欧拉公式联立得 $E \le 3V - 6$。
  • 性质:简单平面图 (V \ge 3) 满足 $E \le 3V - 6$。
    • 重要证明:存在度数 \le 5 的顶点
      • 假设所有顶点度数 $\deg(v) \ge 6$。
      • 由握手定理:$2E = \sum \deg(v) \ge 6V \Rightarrow E \ge 3V$。
      • 这与平面图性质 E \le 3V - 6 矛盾。
      • 故必然存在 \deg(v) \le 5 的顶点。
    • 推论:K_5 (E=10, 3V-6=9) 不是平面图。
    • 推论:K_{3,3} (E=9, 3V-6=12, 但它是二分图无三角形,需用 E \le 2V-4, 9 \not\le 8) 不是平面图。
  • 常用等价与应用
    • 连通简单平面图:$E \le 3V - 6 \iff V \ge (E+6)/3$。
    • 平均度:$\overline{d} = 2E/V < 6$,因此必存在度 \le 5 的顶点。
    • 判否:若某简单图满足 $E > 3V - 6$,则必非平面图。
    • 若无三角形 (如二分图),改用 $E \le 2V - 4$。
  • 库拉图斯基定理 (Kuratowski):图是平面图 \iff 不含同胚于 K_5K_{3,3} 的子图。

4.2.4 二分图 (Bipartite Graphs)

  • 定义:顶点集可划分为 $X, Y$,且所有边都在 XY 之间。
  • 判定:图是二分图 \iff 图中没有奇数长度的回路
  • 完全二分图$K_{m,n}$$|X|=m, |Y|=n$,边数 $E = mn$。
  • 度数与边数$\sum_{x \in X}\deg(x)=\sum_{y \in Y}\deg(y)=|E|$。
  • 平面图推论:连通简单二分平面图 (V \ge 3) 满足 $E \le 2V - 4$。
  • 二染色判定 (BFS/DFS)
    1. 对每个连通分量,任选起点染色为 0。
    2. 进行 BFS/DFS对每条边 (u,v) 要求 $color[u] \ne color[v]$。
    3. 若遇到冲突 (已染且相同) 则非二分图;无冲突则是二分图。
  • 匹配Hall 定理 (相异代表系)。

4.3 核心算法逻辑

4.3.1 最短路径 (Dijkstra)

适用于非负权图。

  1. 初始化:S=\{start\}, dist[start]=0, 其他无穷大。
  2. 循环:
    • V-S 中找 dist 最小的点 $u$。
    • 加入 $S$。
    • 松弛 (Relax) u 的所有邻居 $v$:若 $dist[u] + w(u,v) < dist[v]$,则更新。

4.3.2 图着色 (Graph Coloring)

  • 点色数 $\chi(G)$:相邻顶点不同色所需的最少颜色数。
  • 布鲁克定理 (Brooks):若 G 不是奇环也不是完全图,则 \chi(G) \le \Delta(G) (最大度)。
  • 平面图四色定理:平面图 $\chi(G) \le 4$。
  • 色多项式 $P_k(G)$:用 k 种颜色染色的方案数。
    • 递推公式:P_k(G) = P_k(G-e) - P_k(G \cdot e)
      • $G-e$:删边。
      • $G \cdot e$:收缩边 (合并端点)。

4.3.3 最优二叉树 (Huffman Coding)

常考题型:给定一组权值,构造哈夫曼树并计算带权路径长度 (WPL)。

  1. 算法步骤
    • 初始化:将所有权值看作独立的单节点树森林 $F = {T_1, T_2, \dots}$。
    • 循环
      1. F 中选出根节点权值最小的两棵树 $T_1, T_2$。
      2. 构造新树:根权值为 $W(T_1) + W(T_2)$,左右子树分别为 $T_1, T_2$。
      3. F 中删除 $T_1, T_2$,加入新树。
      4. 重复直到 F 中只剩一棵树。
  2. 带权路径长度 (WPL)
    • WPL = \sum_{i=1}^n w_i \times l_i
    • $w_i$:第 i 个叶子的权值。
    • $l_i$:第 i 个叶子到根的路径长度(边数)。
    • 简便算法WPL = 所有非叶子节点的权值之和。