fordfulkerson实现java

fordfulkerson实现java,java,shortest-path,breadth-first-search,ford-fulkerson,edmonds-karp,Java,Shortest Path,Breadth First Search,Ford Fulkerson,Edmonds Karp,我试图学习用java实现Ford Fulkerson算法,并在互联网上找到了一些帮助,但我被这段代码卡住了 // 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]

我试图学习用java实现Ford Fulkerson算法,并在互联网上找到了一些帮助,但我被这段代码卡住了

        // 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;
        }
多亏了这个评论,我有点理解它是如何工作的,但不完全确定为什么需要它。你为什么要减法

来源:

您可以参考

还有视频

如果可以沿边缘沿任一方向推动流量,则从a到B的净流量必须在大小上相等,在符号上与从B到a的净流量相反

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

A     Resistor      B
O-----[======]------O
             <- -5A
这就像电路分析:如果5安培的电流从A流向B,那么-5A的电流从B流向A

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

A     Resistor      B
O-----[======]------O
             <- -5A
A电阻器B
O---------[=======]----O
5A->
A电阻器B
O---------[=======]----O

如何从该算法中获得每条边上的最终流量值?例如,在搜索初始可行流时。是原始图形值减去每条边上的剩余图形值吗?方向改变了吗?非常感谢。