相关笔记: 10.7 平面图 | 第11章汇总

概览

本节系统介绍图的着色(graph coloring)理论及其应用。图的着色是将颜色分配给图的元素(顶点或边),使得满足特定约束。本节重点讨论顶点着色色数 的概念,以及著名的四色定理

  • 顶点着色:为图的每个顶点分配颜色,使得相邻顶点颜色不同
  • 色数 :对图 进行合法着色所需的最少颜色数
  • 四色定理:任何平面图的色数不超过 4(Appel-Haken 1976 年用计算机证明)
  • 边着色:为图的每条边分配颜色,使得共享端点的边颜色不同
  • 应用:考试排期、频率分配、寄存器分配、地图着色

一、知识结构总览

graph TB
    A["10.8 图的着色 Graph Coloring"] --> B["地图着色与对偶图"]
    A --> C["顶点着色与色数"]
    A --> D["重要图类的色数"]
    A --> E["着色应用"]
    A --> F["边着色"]

    B --> B1["地图区域 → 顶点"]
    B --> B2["公共边界 → 边"]
    B --> B3["对偶图是平面图"]

    C --> C1["着色定义"]
    C --> C2["色数 χ(G) 定义"]
    C --> C3["判定方法:上界+下界"]

    D --> D1["完全图 Kn:χ = n"]
    D --> D2["二部图:χ = 2"]
    D --> D3["圈图 Cn:χ = 2(偶) 或 3(奇)"]
    D --> D4["平面图:χ ≤ 4"]

    E --> E1["考试排期"]
    E --> E2["频率分配"]
    E --> E3["寄存器分配"]

    F --> F1["边着色定义"]
    F --> F2["边色数 χ'(G)"]
    F --> F3["Vizing 定理"]

二、核心思想

核心思想

本节的核心思想是用颜色分配问题来建模和求解实际中的资源冲突问题。图的着色将”相邻元素不能共享资源”这一约束形式化为”相邻顶点不能同色”,使得图论成为解决调度、分配等组合优化问题的强大工具。色数 是衡量图”着色难度”的核心参数,而四色定理则是数学史上最著名的定理之一,其证明首次大规模使用了计算机辅助。

1. 地图着色与对偶图

地图着色问题

在给地图着色时,共享公共边界的两个区域必须被分配不同的颜色。目标是使用尽可能少的颜色完成着色。

注意:仅在一点相切的两个区域不被视为相邻(例如美国犹他州和新墨西哥州仅在四角地区的一个点相切,可以同色)。

对偶图(Dual Graph)

给定一个平面地图,其对偶图的构造方法如下:

  • 每个区域对应一个顶点
  • 如果两个区域有公共边界,则在对应的两个顶点之间连一条边

对偶图一定是平面图。地图着色问题等价于对偶图的顶点着色问题。

地图与对偶图

考虑一个被分为区域 的地图,其中 相邻, 相邻,等等。其对偶图的顶点为 ,边反映区域间的相邻关系。对该对偶图进行顶点着色,等价于对原地图进行区域着色。

2. 顶点着色与色数

顶点着色(Graph Coloring)

简单图 的一个着色是将颜色分配给 的每个顶点,使得没有两个相邻的顶点被分配相同的颜色

色数(Chromatic Number)

色数 是希腊字母 chi)是对 进行着色所需的最少颜色数

判定色数的两个步骤

  1. 上界:构造一个使用 种颜色的合法着色,证明
  2. 下界:证明使用少于 种颜色不可能完成着色,证明
  • 若上界等于下界,则

求色数的例子

:顶点 ,其中 两两相邻(构成三角形), 相邻, 相邻, 相邻, 相邻。

  • 下界 两两相邻,必须用 3 种不同颜色,所以
  • 上界 着红色, 着蓝色, 着绿色, 着红色(仅与蓝、绿相邻), 着绿色(仅与红、蓝相邻), 着蓝色(仅与红、绿相邻), 着红色(仅与蓝、绿相邻)
  • 因此

:在图 的基础上增加边

  • 此时 (红色)、(蓝色)相邻,不能着红或蓝;但 也与新增的边 相连的 (红色)相邻。 原来与 相邻,现在仍与 相邻
  • 实际上,(红)、(蓝)相邻,需要第三种颜色(绿色)。但 已经是绿色,而 不与 相邻,所以 可以着绿色…
  • 关键观察:在图 中, 相邻( 红, 蓝),所以 需要第三种颜色。但如果 着绿色,检查是否与绿色顶点相邻: 是绿色,但 不与 相邻。所以 着绿色可行
  • 等等——教材中图 以外的顶点也有边。根据教材原图, 都相邻( 多了边 ,但 原来就与 相邻,不一定与 相邻)
  • 根据教材 Example 1 的描述: 加上边 。在 相邻。在 相邻,且 之间有边。着色 着红色(与 同色),但在 相邻不能同色。(红)、(蓝)相邻,需要第三种颜色。但 不与 (绿)相邻,所以 着绿色可行…
  • 教材结论是 。这说明在 都相邻(即 之间也有边),因此 需要第四种颜色
  • 因此

3. 四色定理

四色定理(The Four Color Theorem)

任何平面图的色数不超过 4。即对于任何平面图

等价地:任何平面地图可以用不超过 4 种颜色着色,使得相邻区域颜色不同。

四色定理的历史

  • 1852 年:Francis Guthrie(De Morgan 的学生)首先提出四色猜想,发现英格兰的郡可以用 4 种颜色着色
  • 1879 年:伦敦律师 Alfred Kempe 发表了一个”证明”,被数学界接受
  • 1890 年:Percy Heawood 发现了 Kempe 证明中的错误
  • 1976 年:美国数学家 Kenneth Appel 和 Wolfgang Haken 利用计算机完成了证明
  • 1996 年:Robertson、Sanders、Seymour 和 Thomas 找到了更简化的证明,将需要检查的构型从约 2000 种减少到 633 种

Appel-Haken 的证明使用了超过 1000 小时的计算机时间,通过穷举检查所有可能的反例类型(约 2000 种),证明不存在需要 5 种颜色的平面图。这一证明引发了巨大争议,因为它是第一个大规模依赖计算机的数学证明。

四色定理的适用范围

  • ✅ 四色定理仅适用于平面图
  • ❌ 非平面图可以有任意大的色数。例如,完全图 时非平面)的色数为

4. 重要图类的色数

完全图的色数

对于正整数

证明

  • 个顶点,每两个顶点之间都有边
  • 任何两个顶点都相邻,所以每个顶点都需要不同的颜色
  • 因此至少需要 种颜色:
  • 为每个顶点分配不同颜色,得到使用 种颜色的合法着色:
  • 因此

完全二部图的色数

对于正整数

证明

  • 是二部图,顶点集可分为两个部分 个顶点)和 个顶点),边只连接 中的顶点
  • 中所有顶点着一种颜色, 中所有顶点着另一种颜色,得到合法着色
  • 因为 有边(),至少需要 2 种颜色
  • 因此

圈图的色数

对于 的圈图

证明

为偶数时

  • 从任意顶点开始,沿顺时针方向交替着红色和蓝色
  • 个顶点与第 个顶点相邻,但第 个顶点的前一个(第 个)和第 个顶点都是红色,所以第 个顶点着蓝色,与第 个顶点(红色)不同,合法
  • 因此 。又因为 有边,。故

为奇数时

  • 若只用 2 种颜色,从第 1 个顶点开始交替着色,第 个顶点应着蓝色(与第 个红色、第 个红色不同),但 为奇数时第 个顶点与第 个顶点相邻,而交替着色后第 个顶点与第 个顶点同色(因为走了奇数步),矛盾
  • 因此至少需要 3 种颜色:
  • 用 3 种颜色可以完成着色:前 个顶点交替着红蓝色,第 个顶点着绿色
  • 因此

色数的计算复杂度

  • 求图的色数的最佳已知算法具有指数级最坏情况时间复杂度
  • 即使是近似色数也是困难的:如果存在一个多项式时间算法能将色数近似到不超过 2 倍,则色数的精确多项式时间算法也将存在
  • 这意味着色数问题与 算法复杂度理论中的 NP 困难问题密切相关

5. 图着色的应用

应用1:考试排期

问题:如何安排期末考试时间,使得没有学生同时参加两场考试?

建模

  • 顶点 = 课程
  • 边 = 两门课程有共同学生
  • 颜色 = 考试时间段

着色方案即为考试安排:同色的课程安排在同一时间段。

实例:7 门课程 ,有共同学生的课程对为:

该图的色数为 4,因此需要 4 个时间段:

  • 时间段 I:课程 1, 6
  • 时间段 II:课程 2
  • 时间段 III:课程 3, 5
  • 时间段 IV:课程 4, 7

应用2:频率分配

问题:电视台频道 2-13 分配给北美各站点,使得 150 英里内的两个站点不能使用相同频道。

建模

  • 顶点 = 电视台站点
  • 边 = 两个站点距离在 150 英里以内
  • 颜色 = 电视频道

着色方案即为频道分配方案。

应用3:索引寄存器分配

问题:在高效编译器中,循环中频繁使用的变量应临时存储在 CPU 的索引寄存器中。一个循环需要多少个索引寄存器?

建模

  • 顶点 = 循环中的变量
  • 边 = 两个变量必须在循环执行的同一时段存储在寄存器中
  • 颜色 = 索引寄存器

色数即为所需的索引寄存器数量。

6. 边着色

边着色(Edge Coloring)

的一个边着色是将颜色分配给 的每条边,使得共享公共端点的边被分配不同的颜色

边色数(Edge Chromatic Number)

边色数 是对 进行边着色所需的最少颜色数

边色数的下界

的边色数至少等于 最大度

证明:设顶点 的度数为 ,则 关联了 条边。这 条边都共享端点 ,因此必须被分配不同的颜色。所以至少需要 种颜色。

Vizing 定理(Vizing's Theorem)

对于任何简单图 ,其边色数满足:

即简单图的边色数要么等于最大度,要么等于最大度加 1。

  • ,称 第一类图
  • ,称 第二类图

判断一个图属于哪一类是困难的,但以下结论已知:

  • 二部图(包括 )是第一类图:
  • 完全图 :当 为奇数时 (第一类),当 为偶数时 (第一类)
  • 圈图 :当 为偶数时 (第一类),当 为奇数时 (第二类)

边着色实例

电路板着线问题 个设备安装在电路板上,用彩色导线连接。要求从同一设备引出的导线颜色不同。所需颜色数即为图的边色数

贪心着色算法

教材介绍了一种贪心着色算法:

  1. 将顶点按度数递减排列:
  2. 将颜色 1 分配给 ,然后依次分配给列表中不与已着色 1 的顶点相邻的顶点
  3. 将颜色 2 分配给列表中第一个未着色的顶点,依次类推
  4. 重复直到所有顶点都被着色

注意:贪心着色算法不一定使用最少的颜色。它可能使用比色数更多的颜色。


三、补充理解与易混淆点

补充理解

补充1:地图着色与图着色的等价性

地图着色问题与平面图的顶点着色问题完全等价,这一转换通过对偶图实现:

  • 地图的每个区域 → 对偶图的一个顶点
  • 两个区域有公共边界 → 对偶图中对应顶点之间有边
  • 地图着色(相邻区域不同色)→ 对偶图的顶点着色(相邻顶点不同色)

因此,四色定理(地图最多需要 4 种颜色)等价于”任何平面图的色数不超过 4”。 来源:Appel, K. & Haken, W. (1977). “Every Planar Map is Four Colorable.” Illinois Journal of Mathematics, 21(3), 429–567. 来源:Rosen, K. H. (2019). Discrete Mathematics and Its Applications (8th ed.), McGraw-Hill, Section 10.8.

补充2:色数与图的结构特征

色数与图的以下结构特征密切相关:

  • 最大团的大小 :完全子图的最大顶点数。(因为团中所有顶点两两相邻,需要不同颜色)
  • 最大度 (Brooks 定理:除非 是完全图或奇数圈,否则
  • 平面性:平面图 (四色定理)
  • 二部性:二部图 来源:Rosen, K. H. (2019). Discrete Mathematics and Its Applications (8th ed.), McGraw-Hill, Section 10.8. 来源:Bondy, J. A. & Murty, U. S. R. (2008). Graph Theory. Springer, Chapter 5.

补充3:色数判定的一般策略

求一个图的色数时,通常采用以下策略:

  1. 找下界:寻找最大的完全子图(团),其大小给出色数的下界。例如,含三角形的图至少需要 3 种颜色
  2. 找上界:尝试构造一个着色方案。贪心着色算法可以提供一个上界
  3. 缩小范围:如果下界等于上界,则色数确定。否则需要更精细的分析 来源:Welsh, D. J. A. & Powell, M. B. (1967). “An Upper Bound for the Chromatic Number of a Graph and Its Application to Timetabling Problems.” The Computer Journal, 10(1), 85–86. 来源:Rosen, K. H. (2019). Discrete Mathematics and Its Applications (8th ed.), McGraw-Hill, Section 10.8.

易混淆点

误区:色数等于最大团的大小

  • ❌ 认为 (色数等于最大团的大小)
  • ,但 可以严格大于
  • ✅ 例如,圈图 的最大团大小为 (没有三角形),但
  • ✅ 满足 的图称为完美图(perfect graph),但并非所有图都是完美的

误区:四色定理适用于所有图

  • ❌ 认为任何图都可以用 4 种颜色着色
  • ✅ 四色定理仅适用于平面图
  • ✅ 非平面图可以有任意大的色数。例如 的色数为 ,当 不是平面图
  • ✅ 例如, 需要 5 种颜色, 需要 100 种颜色

误区:地图着色中"相邻"的定义

  • ❌ 认为仅在一点相切的两个区域也需要不同颜色
  • ✅ 地图着色中,仅在一点相切的两个区域不被视为相邻,可以着相同颜色
  • ✅ 例如,美国犹他州和新墨西哥州仅在四角地区的一个点相切,在地图着色中可以同色
  • ✅ 这一约定确保了对偶图中不会出现”两个不真正相邻的区域之间有边”的情况

误区:贪心着色算法总是最优

  • ❌ 认为按某种顺序贪心着色一定使用最少颜色
  • ✅ 贪心着色算法的结果依赖于顶点的排列顺序,不同顺序可能产生不同结果
  • ✅ 贪心着色算法可能使用比色数更多的颜色
  • ✅ 按度数递减排列(最大度优先)通常能得到较好的结果,但不保证最优

四、习题精选

习题概览

题号范围核心考点难度
1-4地图对偶图构造与着色⭐⭐
5-11求各类图的色数⭐⭐⭐
13色数为 1 的图
15-16 和奇圈的色数⭐⭐⭐
17考试排期应用⭐⭐⭐
18频率分配应用⭐⭐
21-23边着色与边色数⭐⭐⭐
26 的边色数⭐⭐
35-临界图的性质⭐⭐⭐⭐
40-41平面图五色/六色定理⭐⭐⭐⭐

题1:求图的色数

题目

求完全图 、完全二部图 、圈图 和圈图 的色数。

题2:考试排期问题

题目

安排 Math 115、Math 116、Math 185、Math 195、CS 101、CS 102、CS 273、CS 473 八门课程的期末考试,使用最少的时段。已知以下课程对有共同学生(不需要排在不同时段):Math 115 和 CS 473、Math 116 和 CS 473、Math 195 和 CS 101、Math 195 和 CS 102、Math 115 和 Math 116、Math 115 和 Math 185、Math 185 和 Math 195。其他所有课程对都有共同学生。

题3:边着色

题目

求圈图 )和轮图 )的边色数。

题4:四色定理的应用

题目

用最少颜色给美国地图着色(不考虑仅在角落相接的州),需要多少种颜色?假设密歇根州是一个区域,阿拉斯加和夏威夷视为孤立顶点。

题5:-临界图的性质

题目

证明:如果 是色数为 -临界图(即删除任何一条边后色数降为 ),则 中每个顶点的度数至少为

解题思路提示

  1. 求色数:先找最大完全子图确定下界,再构造着色方案确定上界
  2. 应用题:正确建模(顶点=实体,边=冲突关系,颜色=资源),然后求色数
  3. 边着色:利用 Vizing 定理确定范围 ,再根据具体图的结构确定精确值
  4. 证明题:常用反证法,结合 -临界图的定义和度数条件

五、视频学习指南

视频资源

资源链接对应内容备注
Rosen 8e Section 10.8教材原文完整定义、定理与例题英文教材
Numberphile - Four Color链接四色定理的历史与直觉英文,科普讲解
3Blue1Brown - Map Coloring链接图着色与地图着色英文,动画演示
TrevTutor - Chromatic Number链接色数的计算方法英文,适合入门

六、教材原文

教材原文

“Problems related to the coloring of maps of regions, such as maps of parts of the world, have generated many results in graph theory. When a map is colored, two regions with a common border are customarily assigned different colors.”

“A coloring of a simple graph is the assignment of a color to each vertex of the graph so that no two adjacent vertices are assigned the same color.”

“The chromatic number of a graph is the least number of colors needed for a coloring of this graph. The chromatic number of a graph is denoted by χ(G).”

“The four color theorem was originally posed as a conjecture in the 1850s. It was finally proved by the American mathematicians Kenneth Appel and Wolfgang Haken in 1976.”

“The best algorithms known for finding the chromatic number of a graph have exponential worst-case time complexity (in the number of vertices of the graph).”


参见 Wiki

图论