【问题标题】:Coloring a graph using Depth first traversal使用深度优先遍历为图着色
【发布时间】:2014-08-28 00:40:15
【问题描述】:

我知道,对于为图形节点着色,回溯/蛮力是一种常见的解决方案。但是我想知道使用 DFS 是否也可以实现解决方案?

回溯让您有机会返回并尝试其他颜色可能性,以便用 N 种颜色绘制所有节点

DFS 将从一个节点开始并为其着色,然后跳转到其邻居并将其着色为与其邻居不同的颜色等...

我搜索了有关使用此方法的信息,但没有找到使用此方法的算法。

问题:是否可以使用 DFS 为图形节点着色。如果是,是否比回溯更有效?

谢谢

【问题讨论】:

    标签: graph depth-first-search brute-force graph-coloring


    【解决方案1】:

    我相信在比较回溯和 DFS wrt 顶点着色时会有一些混淆。图的 DFS 遍历给出了与其结构相关的序列中的顶点的完整枚举。然而,它并不构成顶点着色问题的完整枚举,这需要考虑顶点可能的颜色。

    因此,如果我理解正确,您所实现的是由 DFS 指导的图形的贪婪启发式着色。 另一方面,您所命名的回溯/蛮力解决方案(例如[Randall-Brown 72])将为最小着色问题提供精确的解决方案,因为它考虑了每个可能的顶点着色。请注意,DFS 遍历可用于对顶点进行初始排序(拓扑排序)并将该顺序提供给精确求解器。

    【讨论】:

    • 所以基本上DFS不会保证顶点的最小K着色?谢谢
    • 如果你指的是一个 DFS 遍历,没有回溯颜色选择,它不会。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多