【问题标题】:Can a graph be colored such that adjacent vertices are different colors and non-adjacent vertices are the same color?可以对图形进行着色,以使相邻顶点具有不同的颜色并且不相邻的顶点具有相同的颜色吗?
【发布时间】:2020-01-14 21:54:19
【问题描述】:

给定一个图,是否有一种有效的算法来为它的顶点着色,使得任何两个相邻的顶点是不同的颜色,并且任何两个不相邻的顶点是相同的颜色,并且用最少的颜色数量来做到这一点?

我意识到的是,除了图没有边的琐碎情况,它必须是连通的,否则这样的着色是不可能的:取任何现有的边uv,很明显任何其他顶点x必须是连接到其端点之一,否则 color(x) = u 和 color(x) = v,与 color(u) != color(v) 相矛盾。

关于如何解决这个问题的任何其他想法?

【问题讨论】:

  • 这看起来像是图论问题,而不是编码问题
  • 这是一道算法题。那你建议我把它贴在哪里?
  • 如果您考虑带有边集补集的图形,这会更容易,即当顶点不在原始图形中时它们是相邻的,反之亦然。
  • @cupcake111680 我认为这些中的任何一个都会更好math.stackexchange.com 或mathoverflow.net 或datascience.stackexchange.com 或scicomp.stackexchange.com 我对这些没有那么积极,所以你应该探索他们中的哪一个会成为我认为的最佳选择。
  • 这是一个NP完全问题Chrommatic number

标签: algorithm graph-coloring


【解决方案1】:

让我们考虑具有边集补集的图,即当顶点不在原始图中时它们是相邻的,反之亦然。

在这个新图中,相邻的顶点必须具有相同的颜色。这意味着,形成连接组件的所有顶点必须具有相同的颜色。此外,如果可以着色,则此连通分量必须是完整图(即所有顶点成对相邻),否则该分量中有两个节点在原始间隙中连接,因此必须具有不同的颜色:矛盾。

现在,新图中的每个连通分量都必须具有不同的颜色。

【讨论】:

  • 知道了。谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-07-11
  • 2014-12-18
  • 2022-10-19
  • 2019-07-15
  • 1970-01-01
  • 2019-06-03
  • 2019-11-03
  • 1970-01-01
相关资源
最近更新 更多