将连通图分成两个分量的算法

时间:2010-10-27 15:08:42

标签: graph graph-theory

假设我有一个加权的连通图。我想找到一个可以从图表中删除的边缘列表,将其拆分为两个组件,以便删除边缘的权重之和很小。理想情况下,我希望得到最小的总和,但我会接受一个合理的近似值。

这似乎是一个难题。这样做有什么好的算法吗?

如果有帮助,在我的情况下节点的数量大约为50,图形可能是密集的,因此大多数节点对将在它们之间有边缘。

3 个答案:

答案 0 :(得分:3)

我认为您正在寻找最小削减算法。 Wikipedia

在Edmunds-Karp算法出现Ford-Fulkerson algorithm之前。对于它的价值,算法书[Cormen,Rivest]在图论的章节中引用了这两种算法。

答案 1 :(得分:2)

我相信你所寻找的是一种计算最小切割的算法。 Edmonds-Karp algorithm为流网络(具有源顶点和汇点顶点)执行此操作。 Hao and Orlin (1994)将此概括为有向加权图。对于 n 顶点和 nm lg( n ^ 2 / m ))中运行> m 边缘。 Chekuri et al. (1997)根据经验比较几种算法,其中一些比郝和奥林有更好的大O.

答案 2 :(得分:0)

我的想法可能有问题,但Ford Fulkerson算法找不到解决此问题的方法,因为Ford Fulkerson假设有源节点和目标节点,并且尝试从源传输材料到目的地。因此,该算法无法计算所有可能的最小割数。