跳转至

图的着色

点着色

(讨论的是无自环无向图)

对无向图顶点着色,且相邻顶点不能同色。若 G 是 k- 可着色的,但不是 (k1)- 可着色的,则称 k 是 G 的色数,记为 χ(G)

对任意图 G,有 χ(G)Δ(G)+1,其中 Δ(G) 为最大度。

Brooks 定理

设连通图不是完全图也不是奇圈,则 χ(G)Δ(G)

证明

证明

|V(G)|=n,考虑数学归纳法。

首先,n3 时,命题显然成立。

接下来,假设对于 n1 时的命题成立,下面我们要逐步强化命题。

不妨只考虑 Δ(G)- 正则图,因为对于非正则图来说,可以看作在正则图里删去一些边构成的,而这一过程并不会影响结论。

对于任意不是完全图也不是奇圈的正则图 G,任取其中一点 v,考虑子图 H:=Gv,由归纳假设知 χ(H)Δ(H)=Δ(G),接下来我们只需证明在 H 中插入 v 不会影响结论即可。

Δ:=Δ(G),设 H 染的 Δ 种颜色分别为 c1,c2,,cΔ,v 的 Δ 个邻接点为 v1,v1,,vΔ。不妨假设 v 的这些邻接点颜色两两不同,否则命题得证。

接下来我们设所有在 H 中染成 cicj 的点以及它们之间的所有边构成子图 Hi,j。不妨假设任意 2 个不同的点 vivj 一定在 Hi,j 的同一个连通分量中,否则若在两个连通分量中的话,可以交换其中一个连通分量所有点的颜色,从而 vivj 颜色相同。

这里的交换颜色指的是若图中只有两种颜色 a,b,那么把图中原来染成颜色 a 的点全部染成颜色 b,把图中原来染成颜色 b 的点全部染成颜色 a。

我们设上述连通分量为 Ci,j,那么 Ci,j 一定只能是 vivj 的路。因为 vi 在 H 中的度为 Δ1,所以 vi 在 H 中的邻接点颜色一定两两不同,否则可以给 vi 染别的颜色,从而和 v 的其他邻接点颜色重复,所以 viCi,j 中邻接点数量为 1,vj 同理。然后我们在 Ci,j 中取一条 vivj 的路,令其为 P,若 Ci,jP,那么我们沿着 P 顺次给路上的点染色,设遇到的第一个度数大于 2 的点为 u,注意到 u 的邻接点最多只用了 Δ2 种颜色,所以 u 可以重新染色,从而使 vivj 不连通。

然后我们不难发现,对任意 3 个不同的点 vivjvkV(Ci,j)V(Cj,k)={vj}

到这里我们对命题的强化工作就已经做完了。

接下来就很简单。首先,如果 v 的邻接点两两相邻,那么命题得证。不妨设 v1v2 不相邻,在 C1,2 中取 v1 的邻接点 w,交换 C1,3 中的颜色。得到的新图中,wV(C1,2)V(C2,3),矛盾。

至此命题证明完毕。

Welsh–Powell 算法

Welsh–Powell 算法是一种在 不限制最大着色数 时寻找着色方案的贪心算法。

对于无自环无向图 G,设 V(G):={v1,v2,,vn} 满足。

deg(vi)deg(vi+1), 1in1

按 Welsh–Powell 算法着色后的颜色数至多为 maxi=1nmin{deg(vi)+1,i}, 该算法的时间复杂度为 O(nmaxi=1nmin{deg(vi)+1,i})=O(n2)

过程

  1. 将当前未着色的点按度数降序排列。
  2. 将第一个点染成一个未被使用的颜色。
  3. 顺次遍历接下来的点,若当前点和所有与第一个点颜色 相同 的点 不相邻,则将该点染成与第一个点相同的颜色。
  4. 若仍有未着色的点,则回到步骤 1, 否则结束。

示例如下:

Orignal

(由 Graph Editor 生成)

我们先对点按度数降序排序,得:

次序 1 2 3 4 5 6 7 8 9 10 11 12 13
点的编号 4 5 0 2 9 1 3 6 10 12 7 8 11
度数 5 5 4 4 4 3 3 3 3 3 2 2 1
min{deg(vi)+1,i} 1 2 3 4 5 4 4 4 4 4 3 3 2

所以 Welsh–Powell 算法着色后的颜色数最多为 5。

另外因为该图有子图 C3, 所以色数一定大于等于 3。

  • 第一次染色:

    Colored 1

    4 9 3 11 号点。 - 第二次染色:

    Colored 2

    5 2 6 7 8 号点。 - 第三次染色:

    Colored 3

    0 1 10 12 号点。

证明

证明

对于无自环无向图 G,设 V(G):={v1,v2,,vn} 满足

deg(vi)deg(vi+1), 1in1

V0=, 我们取 V(G)i=0m1Vi 中的子集 Vm, 其中的元素满足

  1. vkmVm, 其中 km=min{k:vki=0m1Vi}
  2. {vim,1,vim,2,,vim,lm}Vm, im,1<im,2<<im,lm

    vjVm 当且仅当

    1. j>im,lm
    2. vjvim,1,vim,2,,vim,lm 均不相邻

显然若将 Vi 中的点染成第 i 种颜色,则该染色方案即为 Welsh–Powell 算法给出的方案,显然有

  • V1
  • ViVj=ij
  • α(G)N,i>α(G), s.t. Vi=

我们只需要证明:

i=1α(G)Vi=V(G)

其中

χ(G)α(G)maxi=1nmin{deg(vi)+1,i}

上式左边的不等号显然成立,我们考虑右边。

首先我们不难得出:

vi=1mVi,则 v 与 V1,V2,,Vm 中分别至少有一个点相邻,从而有 deg(v)m

进而

vji=1deg(vj)+1Vi

另一方面,基于序列 {Vi} 的构造方法,我们不难发现

vji=1jVi

两式结合即得证。

边着色

对无向图的边着色,要求相邻的边涂不同种颜色。若 G 是 k- 边可着色的,但不是 (k1)- 边可着色的,则称 k 是 G 的边色数,记为 χ(G)

Vizing 定理

设 G 是简单图,则 Δ(G)χ(G)Δ(G)+1

若 G 是二部图,则 χ(G)=Δ(G)

n 为奇数(n1)时,χ(Kn)=n; 当 n 为偶数时,χ(Kn)=n1

二分图 Vizing 定理的构造性证明

证明

按照顺序在二分图中加边。

我们在尝试加入边 (x,y) 的时候,我们尝试寻找对于 xy 的编号最小的尚未被使用过的颜色,假设分别为 lxly

如果 lx=ly 此时我们可以直接将这条边的颜色设置为 lx

否则假设 $l_x