福特富克森......倒退的目的是什么?

时间:2015-12-05 23:06:02

标签: algorithm ford-fulkerson

我正在学习福特富尔克森算法,并且我对后向边缘的目的感到困惑,以及它们如何帮助我们达到最大流量。我观看了几个不同的视频并阅读了有关算法的一些文档,但没有点击任何内容。也许这里的某个人可以用一种对我有意义的方式来表达它!

1 个答案:

答案 0 :(得分:2)

Gassa的评论是正确的。这是一个简单的例子。

假设你有一个源S,一个接收器T,两个中间节点A和B,以及从S到A和A到T,从S到B和B到容量为1的路径。

  A
 / \
S   T
 \ /
  B

显然,每个边缘都有一个重量2的流动。现在,添加容量为1的A到B的边缘。

  A
 /|\
S V T
 \|/
  B

这不会增加最大流量,但是当您逐步创建流量时,它会让您有机会陷入困境。您可以从S-> A-> B-> T开始。

  A
 /|
S V T
  |/
  B

为了找到最大流量,您需要能够减少从A到B的流量。您可以通过增加沿S-> B-> A-> T的流量来实现。

  A         A         A
 /|         |\       / \
S V T  +  S ^ T  =  S   T
  |/       \|        \ /
  B         B         B

沿A-> B向后移动意味着减少从A到B的流量。