【发布时间】:2015-03-07 10:15:02
【问题描述】:
我正在尝试使用 DFS 使用最少颜色数为图形的顶点着色。我被困在一个无法从单个起点完全访问图表的特定位置。一旦我为顶点指定颜色,我会改变它吗?是否涉及回溯?
如果有回溯,如何使用 DFS 为如下图着色:
A B
\ |
\|
C--D
【问题讨论】:
标签: algorithm depth-first-search
我正在尝试使用 DFS 使用最少颜色数为图形的顶点着色。我被困在一个无法从单个起点完全访问图表的特定位置。一旦我为顶点指定颜色,我会改变它吗?是否涉及回溯?
如果有回溯,如何使用 DFS 为如下图着色:
A B
\ |
\|
C--D
【问题讨论】:
标签: algorithm depth-first-search
对于一个图,你可以检查一个节点是否被着色(已经访问过)来跟踪你已经被 DFS 访问过的节点。
当一个节点的 DFS 无法继续前进时,你必须从其他未访问的节点启动 DFS,直到每个节点都被访问/着色。
此外,一旦遇到已访问/着色的节点,您就会终止每个 DFS 路径。
这是一种贪心着色算法。但是,在选择最少颜色数量时可能不是最佳选择。 更多信息请访问http://en.wikipedia.org/wiki/Graph_coloring#Algorithms
【讨论】: