本贴主要写的是网络流的基本概念,供复习时使用
1.流网络(G=(V,E))
定义有一个图存在两个点:源点和汇点。这两个点可以理解为流网络的起点和终点
且两点之间最多有一条边(即不考虑反向边),每一条边都有边权,我们称其为容量(c(u,v))
现在想象一下,有一些水从源点出发,经过若干条管道(边)流向汇点,管道的容积即为管道的容量
对于一个可行流,它的流量即为从源点流出的水量-流入源点的水量
而我们熟知的最大流即最大可行流,是一个流网络中
2.可行流(f)
我们称满足如下两个限制的一种流的方案即成为可行流
(我们称每一条边的流量为f(u,v))
限制1:容量限制
根据上文所说,每一条边都有容量,则不难发现,每一条边所流的水必须不超过容量
即
f(u,v)≤c(u,v)
限制2:流量守恒
流量守恒实际上就是说一个点所流入的水与流出的水相同
3.残留网络
残留网络实际上是在原来的流网络上加上每一条边的反向边,并把非反向边的容量变成还可增加的水量,把反向边变成还可退回的水量
这里贴一个图方便理解
这里有一个定理:对于任意一个在残留网络中的可行流′f′和在流网络中的可行流f,∣f+f′∣一定为流网络中的一个可行流
这里不给证明了,背过即可
4.增广路径
即在一个残留网络中从源点开始,每一次沿着边权大于0的边走,直到走到汇点为止,则该条路径称为一条增广路径
这里还有一个定理:当f的残留网络中没有增广路经,则f为最大流
5.割
割这一部分有两个定义
1.割的容量
首先我们把整个流网络分成互不包含的两个部分S,T,使S包含源点,T包含汇点
从S集合连到T集合连的边数即为割的容量
2.割的流量
即从S流向T的边的流量之和减去从T流向S的边的流量之和
对于任意一个割,割的流量一定小于割的容量
ps:我们所说的最小割为所有割的容量的最小值