Color a Graph Black&白色

时间:2014-06-04 19:07:45

标签: algorithm graph

我有一个图形,其中每条边(u,v)都有一些符号表示如何为顶点u和v着色。例如:边有两对(b,w) - 这意味着你将被着色为黑色,v将为白色。 问题是每个边可以有多个选项来着色它的顶点。

我需要在很长一段时间内找到合法的颜色(与选项匹配),如果有,我需要给出合法的颜色。

提前致谢。

3 个答案:

答案 0 :(得分:1)

这是2SAT的伪装版本。让每个顶点v产生变量x_v。设1为白色,0为黑色。为了排除例如v是白色而w是黑色的可能性,将((NOT x_v)OR x_w)添加到一起的子句列表中。与其高级堂兄2SAT is known to have linear-time algorithms不同。

答案 1 :(得分:1)

如上所述,@ zepp93需要使用色多项式。这里的铬色数(颜色数)是2.根据图表,您可以设计色彩多项式。找出来。

答案 2 :(得分:0)

我不确定你的意思是"合法着色"但你可能想看看 Chromatic Polynomials。可以找到使用n节点着色某个图的方法的数量。由于您有两种颜色,因此将色数设置为2并将其替换为您必须为图表找到的色度多项式方程式。在某些教程中,您可以了解如何执行此操作,并且我确定如果您尝试使用Google,则可以找到它。由Frank Hararay撰写的一本关于图论的伟大着作可在线获取。看看吧。