假设我们重新定义剩余网络以禁止边缘
s
。认为FORD-FULKERSON程序仍能正确计算最大流量。
我在想,当我们增加一条路径时,反向边缘的剩余容量会增加,并且如果需要,可以用来减少该边缘的流量(但总体上会增加网络流量)。因此,如果我们不允许边缘进入s
,则意味着我们不允许减少边缘中的流量s- x
(x
是s
的相邻节点)。因此,当我们允许边进入s
时,我们可以有一个像
s to x_1 leadsto y leadsto x_2 to s to x_3 leadsto t
但是如果我们再次禁止s
进入{{1}}边缘,我们可以找到与循环不同的路径。以上都是直观的想法,但我想要一个正式的证据。
问题来自Cormen等人的算法导论
答案 0 :(得分:0)
我认为你的直观想法已足以证明。让我们考虑两个图:在图G1中我们允许边进入s,而在图G2中我们不允许。
现在,假设Ford-Fulkerson算法在G1中发现了更大的流量,那么它在G2中发现了更大的流量。由于G2中的所有增广路径在G1中也是有效的,我们可以尽可能长时间地在两个图上使用相同的增广路径,然后获得在G1中存在增强路径的剩余网络的状态,但不是G2。
但是,正如您所指出的,任何在G1中有效的扩充路径在G2中也是有效的,前提是我们删除了在上次访问s之前的每个边缘。因此我们的假设是错误的,这种情况不可能存在 - Ford-Fulkerson将在G1和G2上产生相同的输出。