gpt4 book ai didi

java - 福特-富尔克森实现java

转载 作者:行者123 更新时间:2023-11-30 07:27:31 25 4
gpt4 key购买 nike

我正在尝试学习在 java 中实现 Ford-Fulkersons 算法,并在互联网上找到了一些帮助,但我陷入了这段代码

        // update residual capacities of the edges and
// reverse edges along the path
for (v=t; v != s; v=parent[v])
{
u = parent[v];
rGraph[u][v] -= path_flow;
rGraph[v][u] += path_flow;
}

由于评论,我有点理解它是如何工作的,但不完全确定为什么需要它。为什么需要减法?

来源:http://www.geeksforgeeks.org/ford-fulkerson-algorithm-for-maximum-flow-problem/

最佳答案

如果可以沿边向任一方向插入流量,则从 A 到 B 的净流量必须与从 B 到 A 的净流量大小相等且符号相反。

就像电路分析一样:如果 5 安培的电流从 A 流向 B,则 -5A 的电流从 B 流向 A。

A     Resistor      B
O-----[======]------O
5A ->

A Resistor B
O-----[======]------O
<- -5A

因此,通过从 A 向 B 推送“更多”,您必须减少从 B 向 A 推送的相应量。

关于java - 福特-富尔克森实现java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36616429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com