Java 如何使用Edmonds–;卡普算法?
我使用在Edmonds–Karp算法wiki页面中找到的伪代码实现了Edmonds–Karp算法: 它工作得很好,但是算法输出是最大流量值(最小切割值),我需要查看此切割包含的边列表 我试图改变算法,但没有成功,你们能帮忙吗Java 如何使用Edmonds–;卡普算法?,java,algorithm,pseudocode,edmonds-karp,Java,Algorithm,Pseudocode,Edmonds Karp,我使用在Edmonds–Karp算法wiki页面中找到的伪代码实现了Edmonds–Karp算法: 它工作得很好,但是算法输出是最大流量值(最小切割值),我需要查看此切割包含的边列表 我试图改变算法,但没有成功,你们能帮忙吗 谢谢如果您已经知道最大流,那么最小割是(S,T),其中S是剩余网络中可从源到达的顶点集,T是互补集。连接S顶点和T顶点的边属于切割。如果已经有流,则计算残差图。然后从源位置进行深度优先搜索(或者广度优先搜索,我认为这并不重要),以计算一半切割中的顶点。其余顶点位于切割的另一
谢谢如果您已经知道最大流,那么最小割是(S,T),其中S是剩余网络中可从源到达的顶点集,T是互补集。连接S顶点和T顶点的边属于切割。如果已经有流,则计算残差图。然后从源位置进行深度优先搜索(或者广度优先搜索,我认为这并不重要),以计算一半切割中的顶点。其余顶点位于切割的另一半T中
这会让你的伤口(S,T)。如果你特别想要S和T之间的边,你可以遍历所有的边,选择连接S和T的边(尽管最后一部分可能有一种更简单的方法。)这里有一些指针,可以帮助你为将来的任何人阐明如何做到这一点
希望这有助于任何未来的互联网人试图弄明白这一点!祝你好运 我只知道最小切割值…不知道set@ciochPep你说你实施了Edmonds Karp?它与值一起查找流。你能解释fnxn矩阵中数字的含义吗?我该如何准确地使用它们?@ciochPep F[I,j]是沿着I到j的边缘的流。在实际算法中,它可能表示为一列边,而不是一个矩阵。你可以解释fnxn矩阵中数字的含义吗?我该如何准确地使用它们?@ciochPep:矩阵F给出了图中每一条边的流量,以实现最大流量——本质上,埃德蒙·卡普算法就是为了计算这些流量而设计的。这也使得计算残差图变得简单:它只是矩阵C和矩阵F的差。