6色图顶点着色算法

Posted

技术标签:

【中文标题】6色图顶点着色算法【英文标题】:6 Color Graph Vertex Coloring Algorithm 【发布时间】:2012-01-26 15:43:20 【问题描述】:

我正在尝试在 C++ 中创建一个算法,该算法将使用最多 6 种颜色为平面图的顶点着色。我只是在寻找一些伪代码来帮助我开始。任何帮助表示赞赏。谢谢。

【问题讨论】:

@EdHeal 我以为我们停止标记作业了?不过听起来确实如此。 是的。我知道使用双向链表,我认为我应该将最小 j 的非空 j 度列表的第一个顶点指定为顶点 ui。从 j 度列表中删除 ui。对于在 G 中与 ui 相邻并保留在某个度数列表中的每个顶点 U',比如 j',从 j' 度数列表中删除 - u' 并将 u' 插入到 j' - 1 度数列表中。有一个 for 循环来为每个顶点分配最小的颜色值(1-6 之间),这些颜色值不会出现在与 vi 相邻且已经着色的顶点上。听起来怎么样? 听起来您已经看过我在下面链接的同一篇论文的摘录。算法很好......那有什么问题? (我最近用Java编写了这个算法,如果你更具体,可以指点)。 【参考方案1】:

见:

平面图五色的两种线性时间算法 作者:David Matula、Yossi Shiloach、Robert Tarjan

(只需 Google 一下,您就会找到该论文的 PDF)。

所以这是一篇关于在 O(n) 时间内对平面图进行 5 次着色的论文,但它首先简单描述了 6 次着色的算法。这是重要的摘录(对格式表示歉意,这只是 PDF 抓取):

算法 6 色。给定邻接表中的 n 个顶点平面图 G 形式,该算法确定 G 的 6 色。 步骤 1. [建立 度列表。] 对于每个 j 其中 0- j - n - 1,形成双重

【讨论】:

以上是关于6色图顶点着色算法的主要内容,如果未能解决你的问题,请参考以下文章

图的着色算法

图着色算法详解(Graph Coloring)

[Unity Shader] 逐顶点光照和逐片元光照

算法分析设计实践——M着色问题

算法分析设计实践——M着色问题

OpenGL:将随机位置传递给顶点着色器