Archipelago

Lec 11图与图着色

讲义完成更新于 2026-09-16

Lec 11 图与图着色

资料依据:课程视频与 transcript · Lecture notes

TL;DR

  • 简单图由顶点与无向边组成,握手引理 ∑vdeg⁡(v)=2∣E∣\sum_v\deg(v)=2|E| 来自每条边对度数总和贡献两次。
  • 二部图的顶点可分为两侧,每条边都跨越两侧;等价地,二部图恰好是可用两种颜色正确着色的图。
  • 贪心着色按某个顶点顺序使用最小可用颜色,保证不超过 Δ+1\Delta+1 色,但结果可能依赖顶点顺序且未必最优。

1. 简单图

定义: 一个(简单)图 G=(V,E)G = (V, E),其中 VV 是非空的顶点(节点)集合,EE 是 VV 的二元子集构成的集合,称为边集合。

  • 边是无序对 {u,v}\{u, v\},也可写作 u−vu-v 或 uvuv。
  • 我们的定义不允许重边和自环。
  • V=∅V = \emptyset 不允许;没有边的图是允许的。

邻接关系

  • 若 {u,v}∈E\{u, v\} \in E,则 uu 与 vv 相邻。
  • 边 {u,v}\{u, v\} 关联其端点 uu 和 vv。

现实应用举例

  • 社交网络(Facebook 好友图)、考试排期冲突、神经网络、互联网。
  • Twitter 关注图是有向图(不对称),后续课程覆盖。
  • "六度分隔"理论:任意两人之间存在长度 ≤6\leq 6 的路径。

2. 顶点度数

定义: deg⁡(v)\deg(v) = 与 vv 关联的边的数量。

握手引理(Handshake Lemma):

∑v∈Vdeg⁡(v)=2∣E∣\sum_{v \in V} \deg(v) = 2|E|

证明: 左侧对每条边计数两次(每条边恰好有两个端点)。

推论:

  • 度数序列 (2,2,2,2,2,1)(2, 2, 2, 2, 2, 1) 不可能存在——总和为奇数,无法等于 2∣E∣2|E|。
  • nn 个顶点的图最多有 (n2)\binom{n}{2} 条边,由完全图 KnK_n 取到。

3. 二部图

定义: 若 VV 可以划分为两个不相交的子集 LL 和 RR,使得每条边恰好有一个端点在 LL、一个端点在 RR,则称 GG 为二部图。

二部图握手引理:

∑l∈Ldeg⁡(l)=∣E∣=∑r∈Rdeg⁡(r)\sum_{l \in L} \deg(l) = |E| = \sum_{r \in R} \deg(r)

平均度数之比:

ALAR=∣R∣∣L∣\frac{A_L}{A_R} = \frac{|R|}{|L|}

例:哈佛 / MIT 友谊图。 MIT 约有 4600 名本科生,哈佛约有 7200 名。平均每位 MIT 学生拥有的哈佛朋友数,约是平均每位哈佛学生拥有的 MIT 朋友数的 7200/4600≈1.67200/4600 \approx 1.6 倍。这个结论仅由双方人数之比决定,与具体友谊分布无关。

例:异性伴侣数调查。 多项研究声称男性的异性伴侣数是女性的 1.74 倍乃至 3.33 倍,这在数学上不可能。将男女配对关系建模为二部图,两侧总度数必然相等,真实比值约为 ∣W∣/∣M∣≈1.03|W|/|M| \approx 1.03(2010 年人口普查数据)。研究中的偏差来自数据本身,而非行为差异。


4. 图着色

动机: 考试排期——若两门课有共同选课学生,则它们冲突,不能安排在同一时间段。

定义: 图 GG 的一个正常 kk 着色是函数 f:V→Cf: V \to C,满足 ∣C∣≤k|C| \leq k,且对每条边 {u,v}\{u, v\} 有 f(u)≠f(v)f(u) \neq f(v)。

定义: GG 的色数 χ(G)\chi(G) 是使 GG 存在正常 kk 着色的最小 kk。

证明 χ(G)=k\chi(G) = k 需要同时给出:

  • 上界:给出一个合法的 kk 着色方案。
  • 下界:证明不存在 (k−1)(k-1) 着色(通常用反证法或找团)。

应用: 地图着色(四色定理)、寄存器分配、无线电频率分配、调度问题。

NP 完全性: 计算 χ(G)\chi(G) 是 NP 完全问题。即使只判断 χ(G)=?3\chi(G) \stackrel{?}{=} 3 也是 NP 完全的。验证一个着色方案是否合法很容易,但找到最优方案目前没有已知的高效算法。


5. 贪心着色算法

1. 对顶点排序:v1, v2, ..., vn
2. 对颜色排序:c1, c2, ...
3. 按顺序处理每个顶点,为其分配编号最小的合法颜色
  • 不同的顶点排序可能产生不同数量的颜色。
  • 这是一个贪心算法:逐步决策,从不回头。

定理: 若图中每个顶点的度数 ≤d\leq d,则对任意顶点排序,贪心算法使用的颜色数 ≤d+1\leq d + 1。

证明(对 ∣V∣|V| 作归纳):

  • 归纳假设 P(n)P(n):对所有 dd 和所有 nn 顶点、最大度数为 dd 的图,贪心算法对任意排序使用颜色数 ≤d+1\leq d+1。
  • 基础情形 n=1n=1:图无边,d=0d=0,使用 1 种颜色。✓
  • 归纳步骤: 设 GG 是 n+1n+1 顶点、最大度数为 dd 的图。贪心对 v1,…,vnv_1, \ldots, v_n 着色时,完全不考虑 vn+1v_{n+1},等价于对 nn 顶点子图着色。由归纳假设,最多使用 d+1d+1 种颜色。最后处理 vn+1v_{n+1}:它至多有 dd 个邻居,占用至多 dd 种颜色,因此 d+1d+1 种颜色中至少有一种可用。✓

警示——"构建错误"(Buildup Error): 归纳假设是"对所有 nn 顶点图成立",归纳步骤必须从任意一个 n+1n+1 顶点图出发,而不是从一个 nn 顶点图出发再添加顶点。后者是常见错误。

算法的好坏分析:

  • KnK_n:最大度数 n−1n-1,χ(Kn)=n\chi(K_n) = n,上界紧。
  • 星图 SkS_k:最大度数 kk,但 χ=2\chi = 2,上界很宽松。
  • 王冠图 Hk,kH_{k,k}:χ=2\chi = 2,最大度数 kk,但存在一种排序让贪心使用 kk 种颜色——算法在最坏情况下表现很差。

我的理解

我的理解

图建模的价值在于抛弃与问题无关的细节,只保留对象和成对关系。但同一现实问题可以有多种图模型:顶点和边分别代表什么,会直接决定着色或匹配结论是否有意义。