证明图是二分的

时间:2016-01-18 14:11:33

标签: algorithm graph-theory proof bipartite

给出图G,其中每条边连接偶度节点和奇度节点。我怎样才能证明图是二分的?

提前致谢

4 个答案:

答案 0 :(得分:2)

因为根据定义,你已经有两个不相交的顶点集,这样只有一个顶点在一个集合中的顶点和另一个集合中的顶点之间。

偶数度节点是一组,奇数度节点是另一组。

答案 1 :(得分:1)

选择任何节点,将其放入集合A.取所有链接到它的节点,将它们放入集合B.现在为添加的每个节点添加所有节点到相反的集合,并检查那些已经属于它们在正确集合中的集合之一。如果你遇到矛盾,那么图表就不是二分图。

如果你的邻居用完但剩下的节点仍然存在,再次选择任何节点并继续算法,直到你没有节点或发现矛盾为止。

答案 2 :(得分:1)

这是威尔士 - 鲍威尔图着色算法:

  1. 所有顶点都根据列表中度数的递减值排序V

  2. 颜色以列表C

  3. 排序
  4. V中的第一个非彩色顶点v用C中的第一个可用颜色着色。“可用”表示此算法以前未使用过的颜色

  5. 遍历有序列表V的剩余部分,并且为每个没有相邻顶点具有相同颜色的顶点分配相同的颜色

  6. 迭代应用步骤3和4,直到所有顶点都已着色

  7. 图表是二分的,如果它是2可着色的。这个直观的事实已在剑桥大学数学杂志131中得到证实。

    当然,这是射击蚊子的大炮。如果图的顶点可以被分成两组,那么每个边都将第1组的顶点连接到第2组中的一个,你就已经有了这样的一个分区:每个边连接一组奇数顶点的顶点,到偶数度顶点集合中的顶点。

答案 3 :(得分:0)

如果通过“证明”,你的意思是“找出”,完整的解决方案就在这里

Bipartite.java

它通过保留两个布尔数组来工作。一个标记的数组,用于检查是否已访问过某个节点,以及另一个彩色数组。然后它进行深度优先搜索,用替代颜色标记邻居。如果邻居标记的颜色相同,则图表不是二分图。