确定是否可以仅使用2种颜色对无向图进行着色

时间:2010-11-29 00:29:47

标签: java graph graph-theory

有关如何确定无向图是否只用2种颜色着色的任何提示? 怎么能在java中实现?

2 个答案:

答案 0 :(得分:5)

在图表上执行breadth-first search。在每个均匀深度处,将节点着色为一种颜色(例如红色),在奇数深度处,将节点着色为蓝色。每次有非树边缘(已经访问过的两个节点之间的边缘)时,请验证颜色是否不同。如果图表有多个连接的组件,您只需在每个组件上重复搜索。

答案 1 :(得分:1)

这与确定图表是否为二分相同。为此,您必须检查图中是否存在任何奇数周期。为此,您可以在图表上进行广度优先搜索。如果在BFS中的任何级别,在同一级别的节点之间存在任何边缘,则该图形不是二分的,即,它不能仅使用2种颜色着色。 (假设约束条件是相邻节点应具有不同的颜色)