为什么Ford-Fulkerson算法需要后沿?

时间:2013-10-18 15:21:05

标签: algorithm graph graph-algorithm ford-fulkerson

要在图形中找到最大流量,为什么仅仅在该路径中使用最小边缘容量饱和所有增强路径而不考虑后边缘是否足够?我的意思是,如果我们从它那里假设流量,那么称它为后缘是什么意思呢?

1 个答案:

答案 0 :(得分:21)

在执行Ford-Fulkerson算法时,如果您选择的路径不是整个流程的一部分,则需要使用后沿。

作为需要后沿的示例,请考虑此流网络:

    s
   / \
  a   b
   \ / \
    c   d
     \ /
      t

假设所有边都指向下方,并且所有边都有容量1,并且您想要找到从s到t的流。假设在Ford-Fulkerson的第一次迭代中你采用了路径s - > b - > c - >吨。此时,您已将一个流量单位从s推到t。如果你没有添加任何后边缘,你就会留下这个:

    s
   / 
  a   b
   \   \
    c   d
       /
      t

没有更多的s-t路径,但这并不意味着你有最大流量。您可以通过沿路径s - >发送一个从s到t的两个流量单位。 a - > c - > t和另一个沿路径s - > b - > d - >吨。在残余流网络中没有任何后沿,您将永远不会发现这条其他路径。

希望这有帮助!