图染色数
考虑为 的顶点染色,而使每边的两端不同色。以符号表示,条件是:对于图 中任意两个顶点 ,如果 ,那么 所染成的颜色不同。
对于图 ,如果存在一个 种颜色的恰当染色方案,称 可染 色(或“ 可着色”)。在所有满足条件的 中,称最小的那个 称为染色数 。
图最小染色数和图最大度数关系
图 的最大度记作 。对于任意图 , 始终成立。但是这个上界并不足够紧。而布鲁克斯定理提供了一个更紧的上界。
图着色问题有一个贪心染色法(greedy coloring)[2],将颜色标号为 ,将图G的顶点排序为 ,按顺序对顶点 进行染色。染 时,其邻居至多有 个,所以已染色的邻居中,至多衹用了 种色,尚有某种色未用,可选择该种色作为 的着色。
根据布鲁克斯定理,不等式 取等当且仅当G为完全图或奇环。当G为完全图时, , ,当G为奇环时, , ,均满足 。
此处给出洛瓦兹·拉兹洛[3]的一个证明(亦见诸[4])。
记 。当 的时候, 是完全图。当 的时候,由于 不是奇环,那么 要么是一条路径 ,或者偶环 。此时 。所以,衹需从 开始考虑。分下列三种情况:
G不是k正则图
选择G中度小于k的点 最后染色。由于 连通,有某种排序方式使得除 之外,每个节点都有一个邻点排在它的后面:例如从 出发对图G进行深度优先遍历,按照DFS序的逆序排列G的节点。故只有小于等于k - 1个邻点排在它前面,这样,只有小于等于k - 1个邻点排在它前面,而 ,故也只有小于等于k - 1个邻点排在它前面,按该次序的贪心染色最多衹用k种色。
若要避免术语“DFS”,可以构造下列集合 直到里面包含 中所有顶点:
-
然后可以用上述贪心染色算法对图 进行染色。染色顺序为:先染 中的点,再染 中的点,一直这么下去直到染完 中的点。这种算法使用 种颜色就能完成。当染到点 时, 在 中至少有一个邻居,所以 邻居中至多只有 个被染色过,所以能对 进行染色。
当染点 的时候,由于 , 邻居中至多只有 个被染色过,所以同样能对 进行染色。所以用 种颜色对 恰当染色。
G是k正则图但有割点
假设割点为 ,那么 就不是连通图,设 有 个连通分量 。对于任意一个连通分支 ,考虑 。由于 在 的度数小于 , 。由前述贪心染色算法可知, 可染 色。然后只需令这些染色方案中 所染的颜色一样(如果不一样,将所有点染的颜色重新排列一下),就能拼成 的染色方案,所以可用 种颜色对 恰当染色。
G是k正则图且无割点
由于 中没有割点, 是2连通图。断言可以找到一个顶点 ,使得它有两个邻点 ,满足 不相邻,且 连通。如果这样的 存在,就可以先将 染成同色,然后贪心地为其他点染色,使 最后染。这样贪心染法衹用不超过 种色,因为除 之外的点,只有小于等于 个邻点排在它前面,而 又有两个邻点 同色,故 的邻域衹用前 种色,尚有余下颜色可用。以下说明为何有此种 。
如果 是3连通的,则可以选取距离为2的两点 (因为 不是完全图),及其公共邻点 。如此有 ,又由于 是3连通的, 是连通图,即为所求。
仅剩 是2连通但不是3连通的情况。此时有顶点 使 仅为1连通,考虑 各个双连通分支,之间以割点连接,组成一棵树。因为 不是2连通,该树至少有两个叶区块(leaf block),设为 。又因为 无割点,所以 的每一个叶区块中,必有某个非割点与 相邻。于是,可以在 中各取 的邻点 ,使 不是 的割点。如此, 不相邻(否则 属同一双连通分支),且 连通。因为 ,所以 连通。证毕。