图染色问题的两种精确算法

黄文睿

221180115 计算机拔尖班

简介

  • 最小点染色算法:动态规划 [1] (Lawler, 1976), 时间复杂度 $O(nm(1+\sqrt[3]{3})^n)$,约为 $O(nm\cdot 2.445^n)$。
  • 最小边染色算法:二分图最小边染色 [2] (Schrijver, 1998),时间复杂度 $O(\Delta m)$。

动态规划

思路

若要对于 $G=\langle V, E\rangle$ 染色 $\lbrace 1, 2, \cdots, k\rbrace$,可以考虑枚举染色为 $k$ 的顶点子集(独立集) $S\subseteq V$。容易得到

$$ \chi (G)=1+\min_{S}\lbrace \chi(G-S)\rbrace $$

其中要求 $S\subseteq V$ 且 $S$ 为 $G$ 的独立集。

边界条件 $\chi(\varnothing)=0$。

Observation 1. 贪心地,只需考虑 $S$ 是极大独立集。

若干结论

Claim 1. 对于任意图 $G$,其大小为 $r$ 的极大独立集数量不超过 $3^{r/3}$。

Claim 2. 存在算法可以在 $O(mrk)$ 时间内生成所有大小为 $r$ 的极大独立集,$k$ 为大小为 $r$ 的极大独立集的数量。

故对于所有的 $V'\subseteq V$,递推得到 $\chi(G[V'])$ 的时间之和线性于

$$ \sum_{r=0}^n \binom{n}{r}mr3^{r/3}\le nm\sum_{r=0}^n\binom{n}{r}(\sqrt[3]3)^r=nm(1+\sqrt[3]3)^n. $$

即时间复杂度为 $O(nm(1+\sqrt[3]3)^n)$。

二分图最小边染色

主要思路

  • $\quad$ 任意二分图 $G$
  • $\to$ $\Delta(G)$-正则二分图 $G'$
  • $\to$ 对 $G'$ 进行分治染色。

合理性

由于二分图是第一类图,故一定有 $\chi'(G)=\Delta(G)$。只需求其 $\Delta(G)$ 边染色。

将 $G$ 转化为 $\Delta(G)$-正则二分图 $G'$ 后,由于 $G'$ 仍然可以 $\Delta(G)$ 边染色,故不会影响解的存在性。

二分图 $G$ 至正则二分图 $G'$

  • 若在 $G$ 左部 $X$ 存在 $u, v\in X$,满足 $d(u)+d(v)\le \Delta(G)$,可以将点 $u,v$ 合并,直至不存在;
  • 对于右部,同理。
  • 再对于 $d(v)<\Delta(G)$ 的点 $v$,向另一部未满的点随意连边。

分治染色

对于 $k$-正则二分图 $G'$ 进行染色,分为两种情况

  • 若 $k$ 为偶数,可以对 $G'$ 进行欧拉划分,得到两个 $\frac{k}{2}$-正则二分图,分治进行染色
  • 若 $k$ 为奇数,可以先求 $G'$ 的一个完美匹配进行染色,则归约到 $k-1$ 为偶数的情况。

Theorem. 存在 $O(km)$ 的求 $k$-正则二分图完美匹配的算法。[2]

则该分治算法的复杂度为

$$ T(2k, 2m)=2T(k, m)+O(m) $$

$$ T(2k+1, 2m)=2T(k, m)+O(km) $$

解得 $T(k, m)=O(km)$.

参考文献

[1] Lawler, E. L. (1976). A note on the complexity of the chromatic number problem. Information Processing Letters, 5(3), 66-67.

[2] Schrijver, A. (1998). Bipartite edge coloring in O(Δm) time. SIAM Journal on Computing, 28(3), 841-846.

谢谢大家!