通过去除边缘(不超过边缘/ 2)来绘制二分图 - 算法?

时间:2017-12-04 05:06:46

标签: algorithm graph graph-theory bipartite

所以我们假设我们给出了一个图表,你可以删除边缘(不超过(原始图形的边缘)/ 2)直到它是一个二分图。

让我们说:'/ p>

E={ (4, 1),( 1 ,2), (2 ,3),( 7, 2),( 1 ,5),( 8 ,4), (5 ,8),( 8, 9)}

和顶点集:

V= { 1,2,3,4,5,6,7,8}

如何解决这个问题?有没有什么算法可以做到这一点?任何形式的解释将不胜感激。

1 个答案:

答案 0 :(得分:1)

选择任意节点作为集合A的第一个成员。如果有任何节点链接到它,则选择一个作为集合B的第一个成员。如果不是,则选择任何其他节点作为集合B的第一个成员。 / p>

现在你有两组节点,A和B.重复选择一个不在任何一个集合中的节点。计算将该节点链接到A和B中的节点的边数。如果有更多边将其链接到集A,则擦除将其链接到集B中的节点的边并将其放入集B.否则擦除将其链接到的边集合A中的节点并将其放在集合A中。请注意,擦除不超过链接到该节点的边缘的一半。