为了证明
http://blog.csdn.net/tlonline/article/details/47403027
中的算法所求得的确是是最大流,我们首先介绍“割”这一概念。所谓的一个图的割,指的是对于某个顶点集合
S⊆V
,从S出发指向S外部的那些边的集合,记为割 (S,V\S)。这些边的容量之和被称为割的容量。如果有
s∈S
,而
t∈V/S
,那么此时的割又被称为s-t割。如果将网络中s-t割所包含的边都删去,也就不再有从s到t的路径了。因此,可以考虑一下如下问题:
对于给定网络,为了保证没有从s-t的路径,需要删去的边的总容量最小值是多少?
这个问题又被称为最小割问题。事实上,这个问题与之前的最大流问题有着很深的联系。
首先,让我们来考虑一下任意的
s−t
流
f
和任意的
由此可知f的流量一定小于等于割的容量。
接下来,让我们来考虑通过Ford-Fulkerson算法所求得的流
f′
记流
f′
对应的残余网络中从 s 可达的顶点v组成的集合为S,因为
f′
对应残余网络中不存在s-t路径。因此,
(S,V/S)
就是一个s-t割。此外,根据S的定义,对包含在割中的边e应该有
f′(e)=c(e)
,而对从V\S到S的边
e
应该有
利用该定理,我们我们就可以直接利用求解最大流问题的算法来求解最小割问题了。