最大流问题
对于一个流网络G (V,E),其流量 f 的最大值称为最大流,最大流问题就是求一个流网络的最大流。
增广路定理:当且仅当由当前的流f 压得的残留网络f G 中不存在增广路径时,流f 的流量f 达到最大。
根据增广路定理,我们可以设计出最基本的求最大流的方法,一开始将流网络G (V,E)的流 f 置为零流,即对于(u,v)E时, f (u,v) 0。然后构建残留网络,寻找增广路径增广,再修改残留网络,重复此过程,直到无法找到增广路径。
对于一个流网络G (V,E),其流量 f 的最大值称为最大流,最大流问题就是求一个流网络的最大流。
增广路定理:当且仅当由当前的流f 压得的残留网络f G 中不存在增广路径时,流f 的流量f 达到最大。
根据增广路定理,我们可以设计出最基本的求最大流的方法,一开始将流网络G (V,E)的流 f 置为零流,即对于(u,v)E时, f (u,v) 0。然后构建残留网络,寻找增广路径增广,再修改残留网络,重复此过程,直到无法找到增广路径。
此方法(之所以不是算法,是因为实现方法很多)称为Ford-Fulkerson 方法。
伪代码如下:
FORD-FULKERSON-METHORD (G, s, t)
1 initialize flow f to 0
2 while there exists an augmenting path p
3 do augment flow f along p
4 return f
Ford-Fulkerson 方法
(G,s,t
)
1 将各边上流量 f 初始化为 0
2 while 存在一条增广路径 p
3 do 沿路径 p 增广流量 f
4 return f
1 将各边上流量 f 初始化为 0
2 while 存在一条增广路径 p
3 do 沿路径 p 增广流量 f
4 return f
<