【问题标题】:6 Color Graph Vertex Coloring Algorithm6色图顶点着色算法
【发布时间】: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编写了这个算法,如果你更具体,可以指点)。

标签: c++ algorithm graph


【解决方案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,形成双重

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2018-04-14
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多