问题求解(三) Open Topic 16 笔记

OT:除米什拉-格赖斯算法和贪心算法外,边染色和点染色问题还有很多其它算法,请为每种问题调研至少1种精确算法(暴力算法不在调研范围内),结合例子介绍算法的设计与分析。

slide

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

简介

  • 最小点染色算法:动态规划 [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]

则该分治算法的复杂度为

\[ \begin{aligned} T(2k, 2m)&=2T(k, m)+O(m)\\ T(2k+1, 2m)&=2T(k, m)+O(km) \end{aligned} \]

解得 \(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.