流网络
流网络是一个有向图,
G=(V,E)
,图中的每条边有一个非负的容量值
c(u,v)≥0
.如果
(u,v)∉E
,则定义
c(u,v)=0
。且在流网络中含有两个特殊的点:源节点
s
和汇结点
流网络的形式化定义如下:
设
G=(V,E)
为一个流网络,其容量函数为
c
。
容量限制:对于所有结点 u,v∈V ,其中 0≤f(u,v)≥c(u,v) .
对于所有结点 u∈V−s,t ,其中
∑v∈Vf(v,u)=∑v∈Vf(u,v)
f(u,v)
为从结点
u
到结点
流
一个流的值 |f| 定义为:
即,流 f 的值为从源结点流出的总流量减去流入源结点的总流量。
最大流问题就是在给定的流网络中找到最大的流。
Ford-Fulkerson
之所以称它为方法,是因为它本身包含了几种运行时间各不相同的具体实现。
在了解Ford-Fulkerson方法之前,我们先来看以下几个概念。
残存网络
在给定的流网络 而残存网络的每条边,即残存边必须允许大于0的流量通过。
只有当
cf(u,v)>0
,才将边
<u,v>
<script type="math/tex" id="MathJax-Element-79">
</script>加入到残次网络中。
更一般的,残存容量可以定义为:
假定有一个流网络
G=(V,E)
,其源结点为
s
,汇结点为