我使用在Edmonds-Karp算法维基页面上找到的伪代码实现了Edmonds-Karp算法:http://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm
它工作得很好,但是算法输出的是最大流量值(最小切割值),我需要这个切割包含的边的列表
我试着改变算法,但没有成功,你们能帮上忙吗?
谢谢
发布于 2011-03-22 01:04:31
如果你已经有了流,那么计算残差图。然后从源进行深度优先搜索(或者广度优先搜索,我认为这无关紧要),计算切割(S)的一半的顶点。剩下的顶点在切割的另一半,T。
这会给你你的分成(S,T)。如果你特别想要S和T之间的边,你可以遍历所有的边,选择连接S和T的边(尽管可能有一种更好的方法来完成最后一部分)。
发布于 2011-03-22 00:48:00
如果你已经知道最大流,那么最小割集是(S,T),其中S是残差网络中从源可达的顶点集,T是互补集。连接来自S的顶点和来自T的顶点的边属于切割。
发布于 2012-08-01 07:01:32
这里有一些提示,可以帮助澄清如何在未来为任何人做到这一点。
希望这篇文章能帮助任何想要弄清楚这一点的网民!祝好运!
https://stackoverflow.com/questions/5380420
复制相似问题