当地图被三角化时,4色问题是否容易出现?
出于调试目的,我想用尽可能少的颜色着色凸三维多面体表面的三角形(这样我就有很多清晰可辨的颜色可以用来着色特别感兴趣的三角形)。 / p> 4色定理指出4种颜色足以做到这一点,但我希望在表面被三角测量的附加条件下,算法将比一般情况更容易和更有效。
此外,在我的一些划痕示例中,我总是可以使用3种颜色。
答案 0 :(得分:3)
如果考虑四面体,则无法仅使用3种颜色为其面/三角形着色。因此,尺寸为3的三角形凸多面体的面可以用3种颜色着色是不正确的。但它恰好是唯一的反例!
实际上,您尝试着色的图形是立方(在每个面上放置一个顶点,并将其连接到三个相邻面),即每个顶点都有3度,它是也连接。因此,通过Brooks' theorem, K_4 的每个立方连通图可以用最多3种颜色着色。
编辑:
我在第一次阅读时没有注意到你也在寻找算法。我知道Brooks'定理是建设性的,因此我们有一个算法来解决你的问题。
在多面体的双重图上使用Steinitz's theorem,我们得到了我们想要着色的图形始终是3连接的。这不是真的需要,因为证明适用于其他情况,但这是更简单的情况,所以让我坚持3连接的情况,因为它是你的情况。
取任意三个顶点 v_1 , v_2 , v_n ,使 v_n 与其他两个顶点相邻,但是 v_1 和 v_2 是不相邻的(对于完整的图形,这样的三元组不存在)。使用该图表是3连接的,很明显,如果我们删除 v_1 和 v_2 ,结果图仍然是连接的。
按照 v_3 , v_4 ,..., v_n 的顺序排列剩余的顶点,以便每个 v_i < / em>存在 j &gt; i 使 v_i 和 v_j 相邻(这就像构建生成树一样,在Prim的算法中从开始v_n )。在序列的开头放置 v_1 , v_2 ,从而获得 v_1 , v_2 , v_3 < / em>,..., v_n 。
为 v_1 和 v_2 使用颜色1(这是有效的,因为它们不相邻)。现在按顺序为序列的其余部分贪婪地着色,即为每个顶点分配第一个有效颜色(第一个未分配给已着色的邻居)。对于 v_n 以外的每个顶点,我们都有一个&#34;右邻居&#34;,因此使用的颜色不超过3种。对于 v_n ,它也有效,因为 v_1 和 v_2 都有颜色1.现在我们有一个3颜色的图形,算法是线性的在图表的大小。