我有一个边加权无向图和 2 个节点(通常称为源和汇)。我需要找到一组可能权重最小的边,将这 2 个节点分成 2 个弱分量。
我知道Ford-Fulkerson 的最大流算法和他关于有向图上的最大流和最小割关系的定理。
我还知道 Ford-Fulkerson 的无向图最大流算法的修改,它用 2 个相反的有向边替换每个无向边,并同时更新流向它们的流。但是通过这种修改,max-flow-min-cut-theorem 似乎不再有效,因为在以下无向图中,将无法正确确定最小切割:
nodes: 0, 1, 2, 3
edges & capacities: {0,1}->5, {0,2}->6, {1,2}->2, {1,3}->7, {2,3}->4
source: 0
sink: 3
最大流最小割定理说,最小割是那些边,流动等于它们的容量,而通过修改后的福特-富克森就是所有的边,这显然不是正确的割。
我找到了一个Stoer–Wagner 算法,用于在无向图中找到全局最小割,但这不是我想要的,因为该算法不考虑任何源和汇,并且可以找到一个让节点位于的割相同的组件。
是否有任何算法可以有效地在具有源和汇的无向图中找到最小割,将这两个指定节点分开?我可以以某种方式修改前面提到的算法以使它们适用于我的情况吗?