如何使用Edmonds-Karp算法获得剪辑?

cio*_*Pep 8 java algorithm pseudocode edmonds-karp

我使用我在Edmonds-Karp算法wiki页面中找到的Pseudocode实现了Edmonds-Karp算法:http://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm

它工作得很好,但算法输出是最大流量值(最小切割值),我需要这个切割所包含的边缘列表

我试图改变算法,没有成功,你们可以帮忙吗?

谢谢

Rob*_*lan 4

如果您已经有了流量,则计算残差图。然后从源进行深度优先搜索(或广度优先搜索,我认为这并不重要),以计算一半切割(S)中的顶点。剩余的顶点位于切割的另一半中,T。

这给了你你的削减(S,T)。如果您特别想要 S 和 T 之间的边,则可以迭代所有边,选择连接 S 和 T 的边。(尽管可能有一种更优雅的方法来完成最后一部分。)