首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ford-Fulkerson实现java

Ford-Fulkerson实现java
EN

Stack Overflow用户
提问于 2016-04-14 07:28:26
回答 2查看 1.4K关注 0票数 1

我正在努力学习如何在java中实现Ford-Fulkersons算法,并在互联网上找到了一些帮助,但我被困在了这段代码片段中。

代码语言:javascript
复制
        // 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/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-14 08:22:51

如果你可以沿着一个边缘沿任一方向推进一个流动,那么从A到B的净流量必须在大小上相等,从B到A的净流量在符号上是相反的。

就像在电路分析中一样:如果从A到B的电流为5安培,那么从B到A的电流为-5A。

代码语言:javascript
复制
A     Resistor      B
O-----[======]------O
  5A ->

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

因此,通过将“更多”从A推到B,你必须将从B推到A的数量减少一个相应的数量。

票数 2
EN

Stack Overflow用户

发布于 2016-04-14 07:34:31

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36616429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档