我正在研究 Cormen 的“算法简介第 2 版”中的 Ford-Fulkerson 算法。有向图 G=(V, E) 的伪代码描述如下,其中 f 是在 VxV 上定义的流
FORD-FULKERSON(G, s, t)
for each edge (u,v) in E(G)
do f[u, v] = 0
f[v, u] = 0
while there is a path p from s to t in the residual network Gf
do m = min{c(u, v)-f[u, v]: (u, v) is on p}
for each edge (u, v) on p
do f[u, v] = f[u, v] + m
f[v, u] = - f[u, v]
残差图 Gf 具有与 G 相同的顶点,并且将 c(u, v) - f(u, v) > 0 的有序顶点对 (u, v) 作为边。(编辑:c 是容量函数在不属于图形的边上开始并扩展为零时给出)
我不确定在“双向”存在边的情况下该怎么做,例如当边及其反向在图中时算法中会发生什么。我假设最小值中的 c(u, v) 用于图中的原始容量。当 (a, b) 和 (b, a) 都是边时,我是否需要以某种方式处理残差图中的四个边?目前在我的设置中,我无法直接处理平行边缘。
我在 SO 上发现了以下问题: Maximum flow - Ford-Fulkerson: Undirected graph 但我不清楚结果是什么。