Skip to content

定义Definition

图染色

Graph coloring · Vertex coloring

为图的顶点赋予颜色并要求每条边的两个端点颜色不同的可行标记。

形式陈述 ​

设 G=(V,E) 是有限简单无向图,k 是正整数。一个正常顶点 k-染色是函数

c:V⟶[k]={1,…,k},

满足

∀uv∈E,c(u)≠c(v).

若存在这样的函数,就称 G 是 k-可染的。颜色的名称没有数学作用;对调调色板标签会得到另一个函数表示,却保持哪些顶点同色的划分不变。

令

Vi=c−1({i}),1≤i≤k.

染色合法,当且仅当每个非空颜色类 Vi 都是独立集。所以正常染色也可理解为把 V 分割成至多 k 个独立集;允许某些颜色未使用,不会改变可染性。

给定一个具体染色函数是可行性证书,而色数 χ(G) 是所有可行调色板大小中的最小值。前者描述一项赋值,后者描述图的不变量;验证一个给定染色只需检查所有边,证明颜色已经最少还需要下界。

直觉

每条边提出一个局部“不许同色”约束,染色要让所有约束同时成立。一个顶点选色后,会占用其所有未染邻点的一种选择;影响沿边传播,顶点处理次序因而可能让同一套贪心规则产生截然不同的结果。

把颜色类看成独立集后,问题的整体图像更清楚:我们正在把一批彼此冲突的对象分装进若干槽,每个槽内部不能含边。颜色标签只是槽名,真正的结构是顶点划分。

例子与边界

路径与偶圈可沿边交替使用两色。奇圈交替到最后一条边时,两端被迫同色,因此两色不够;给其中任一点第三种颜色即可完成染色。这一失败机制正是二分图奇圈判据的着色版本。

贪心染色按某个顶点顺序处理,每次选当前最小可用颜色。顶点至多看见 d(v) 种邻色,因此总能用至多 Δ(G)+1 种颜色;这是对算法输出的上界,不说明输出达到最优。

次序依赖可以在 crown graph 中放大。令两侧为 u1,…,un 与 v1,…,vn,保留所有跨侧边但删去 uivi。该图是二分图,两色足够;若按

u1,v1,u2,v2,…,un,vn

运行 first-fit,非相邻的一对 ui,vi 会共同获得一种新颜色,最终使用 n 色。输出随顶点次序改变,不能作为图的不变量。

自环要求 c(v)≠c(v),所以含自环图没有正常顶点染色。平行边重复同一个异色约束,不改变可行染色集合。非空无边图可用一种颜色;零阶图存在到空调色板的唯一空函数,色数是否记为零留给参数页约定。

列表染色为每个顶点分别限制可用颜色,边染色则给边赋色并让关联边异色。它们不能只用普通顶点染色的 k-可行性判断;即使符号和贪心图像相似,输入约束已经改变。

推论与应用

每个团中的顶点两两相邻,必须使用不同颜色,因此 ω(G) 给出任何着色所需颜色数的下界。贪心法给出 Δ+1 上界;Brooks 定理进一步说明,除完全图和奇圈外,连通简单图可把上界降到 Δ。

二分图恰是可二染图,也就是没有奇圈的图。平面图的四色定理则保证四种颜色总够,但具体嵌入不是顶点着色输入的一部分;地图区域先要按共享边界关系构成对偶式邻接图。

考试排程可把考试作为顶点,把有学生同时参加的两门考试连边;同色考试即可放在同一时段。若时段还有教室总容量、教师连续授课或三门课联合冲突等聚合限制,单纯的成对冲突图不再完整,需要额外约束。

一般图的最优着色计算困难,实践中常先构造一个可行染色作为上界,再用团、松弛或分支搜索产生下界。上、下界相遇时才得到最优性证书;只展示一份看起来紧凑的染色仍不能证明颜色最少。

合法解的定义也没有规定各顶点如何取得它。Cole–Vishkin 颜色缩减研究一种分布式获取过程:给定一致方向的同步环从已有合法染色出发,各点只交换邻居颜色,反复缩小调色板,再以三轮消色得到三染色。这里的颜色类是独立集,恰好允许同色顶点同时改色而不彼此冲突;分析的主要成本是通信轮数,目标也不要求在偶环上进一步求得最少的两色。

结图上的 Fox 染色采用另一种约束:两个欠弧颜色之和等于过弧颜色的两倍模 n,而不是相邻顶点颜色不同。三叶结的模 3 约束只剩一条独立线性方程,得到九种染色;它的不变性通过 Reidemeister 变换的染色双射验证。

参考资料
  • Reinhard Diestel, Graph Theory, 5th ed., Springer, 2017, Chapter 5.
  • Douglas B. West, Introduction to Graph Theory, 2nd ed., Prentice Hall, 2001, Chapter 5.
  • Tommy R. Jensen and Bjarne Toft, Graph Coloring Problems, Wiley, 1995, Chapters 1–2.
关系图谱14 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系