最大流最小割定理是
网络流理论的重要定理。是指在一个网络流中,能够从源点到达汇点的最大流量等于如果从网络中移除就能够导致网络流中断的边的集合的最小容量和。即在任何网络中,最大流的值等于最小割的容量。
基本内容
现实生活中,人们经常见到一些网络,如铁路网、公路网、通信网、运输网等等。这些网络有一个共同的特点,就是在网络中都有物资、人或信息等某种量从一个地方流向另一个地方,如何安排这些量的流动以便取得最大效益是一个很有意义的实际问题。50年代
福特(Ford)、富克逊(Fulkerson)建立的“
网络流理论”,是网络应用的重要组成部分。
最大流
给定指定的一个有向图,其中有两个特殊的点源S(Sources)和汇T(Sinks),每条边有指定的容量(Capacity),求满足条件的从S到T的最大流(MaxFlow)。
最小割
割是网络中定点的一个划分,它把网络中的所有顶点划分成两个顶点集合S和T,其中源点s∈S,汇点t∈T。记为CUT(S,T),满足条件的从S到T的最小割(Min cut)。
相关定理
定理一:
如果f是网络中的一个流,CUT(S,T)是任意一个割,那么f的值等于正向割边的流量与负向割边的流量之差。
证明:
设X和Y是网络中的两个顶点集合,用f(X,Y)表示从X中的一个顶点指向Y的一个顶点的所有弧(弧尾在X中,弧头在Y中: )的流量和。只需证明:f=f(S,T)-f(T,S) 即可。
下列结论成立:
如果X∩Y= ,那么:f(X,(Y1∪Y2))=f(X,Y1)+f(X,Y2) ,f((X1∪X2),Y)=f(X1,Y)+f(X2,Y) 成立。
根据网络流的特点:
如果V既不是源点也不是汇点,那么: f({V},S∪T)-f(S∪T,{V})=0;任何一个点,流入的与流出的量相等。
如果V是源,那么:f({V},S∪T)-f(S∪T,{V})=f。
对于S中的所有点V都有上述关系式,相加得到:f(S,S∪T)-f(S∪T,S)=f 。
又因为: f(S,S∪T)-f (S∪T,S)= (f(S,S)+f (S,T))-(f(S,S) +f (T,S))= f(S,T)- f(T,S),
所以:f= f(S,T)- f(T,S) 定理得证。
推论一:
如果f是网络中的一个流,CUT(S,T)是一个割,那么f的值不超过割CUT(S,T)的容量。
推论二:
网络中的最大流不超过任何割的容量。
定理二:
在网络中,如果f是一个流,CUT (S,T)是一个割,且f的值等于割CUT(S,T)的
容量,那么f是一个最大流, CUT(S,T)是一个最小割。
证明:
令割CUT(S,T)的容量为C,所以流f的流量也为C。假设另外的任意流f1,流量为c1,根据流量不超过割的容量,则c1<=c,所以f是最大流。 假设另外的任意割CUT(S1,T1),容量为c1,根据流量不超过割的容量,所以有c1>=c,故,CUT(S,T)是最小割。
定理结论
在任何的网络中,最大流的值等于最小割的容量。
结论一:
最大流时,最小割cut(S,T)中,正向割边的流量=容量,逆向割边的流量为0。
结论二:
在最小割cut(S,T)中:
应用举例
问题描述:
某软件公司有n个可选的程序项目,其中第i个项目需要耗费资金 元,开发成功后可以获得的收益为 元。
程序项目之间不是独立的:开发第i个项目的前提条件是必须先开发出一些其他的项目,这些项目成为第i个项目的“前驱项目”。已经给出所有项目的 和 以及前驱项目,请帮助该公司从这n个程序项目中选择若干个进行开发,使获得的总收益最大。
分析:令 ,净收益。A={i| >=0}:可以获得利润的项目集合。 B={i| <0}:亏损的项目集合。
构造网络图: G=(V,E,C)。
1、两类顶点:N+2个点:源点s个汇点t,第i个项目点vi。
2、三种弧:如果i∈A,存在弧,容量为 。如果i∈B,存在弧,容量法| |。如果i个前驱项目为j,存在弧,容量为+∞。
构造割cut(S,T),如果i∈T,则i的前驱j∈T。割对应一种实验方案。最大收益为 。