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