为图表着色,使每个节点都着色或与彩色节点相邻

时间:2016-10-14 02:45:47

标签: algorithm graph graph-algorithm graph-coloring

假设您有一个连接的无向图G.您希望G中的每个节点都是彩色节点或与彩色节点相邻。设计一种算法,适当地为图G着色。您只能使用彩色底层(n / 2)节点,其中n是节点总数。

我尝试了一个解决方案,但我发现它并没有完全解决约束的问题,我想要一个轻推或被告知我在错误的轨道上

我的解决方案基本上是运行BFS,并为每三分之一的节点着色""。但我确定了一个失败的实例 - 只是一个三个节点的链表。如果我为头部或尾部着色,那么其中一个节点距离彩色节点的距离为2,我不太确定如何保证中间节点将被着色。

1 个答案:

答案 0 :(得分:2)

选择一个根并生成一个生成树,例如DFS。

然后为每个第二级中的节点着色。选择为偶数级别或奇数级别着色,根据哪个选项将为最少的节点着色。