《最大流最小割定理.ppt》由会员分享,可在线阅读,更多相关《最大流最小割定理.ppt(31页珍藏版)》请在三一文库上搜索。
1、最大流最小割定理,网络流之二,一、割的有关概念和定量,1、割的定义:,割(CUT)是网络中顶点的一个划分,它把网络中的所有顶点划分成两个顶点集合S和T,其中源点sS,汇点tT。记为CUT(S,T)。,如右图:源点:s=1;汇点:t=5。 框外是容量,框内是流量,1)、 顶点集合S=1,2,3和T=4,5 构成一个割。,2)、 顶点集合S=1,3,T=2,4,5构成一个割。,3)、 顶点集合S=1,3,5,T=2,4不能构成一个割。,?, 如果一条弧的两个顶点分别属于顶点集S和T(一个顶点在S,另一个在T),那么这条弧称为割CUT(S,T)的一条割边。 从S指向T的割边是正向割边; 从T指向S的
2、割边是逆向割边。,如: 顶点集合S=1,3,T=2,4,5构成一个割。,正向割边:12;35 逆向割边:23, 割CUT(S,T)中所有正向割边的容量和称为割CUT(S,T)的容量。不同割的容量不同。,容量为:3+4=7,割的容量:4+4=8,割的正向流量:4+2=6 逆向割的流量:1,2、网络流与割的关系:,网络流量:5,1,2,3,4,割的流量,定理一: 如果f是网络中的一个流,CUT(S,T)是任意一个割,那么f的值等于正向割边的流量与负向割边的流量之差。,证明: 设X和Y是网络中的两个顶点集合,用f(X,Y)表示从X中的一个顶点指向Y的一个顶点的所有弧(弧尾在X中,弧头在Y中:XY)的
3、流量和. 只需证明:f=f(S,T)-f(T,S) 即可。,如果XY= ,那么: f(X,(Y1Y2)=f(X,Y1)+f(X,Y2) f(X1X2),Y)=f(X1,Y)+f(X2,Y) 成立。,下列结论成立:,根据网络流的特点:,如果V既不是源点也不是汇点,那么: f(V,ST)-f(ST,V)=0; 任何一个点,流入的与流出的量相等。 如果V是源,那么: f(V,ST)-f(ST,V)=f 对于S中的所有点V都有上述关系式,相加得到: f(S,ST)-f(ST,S)=f,又因为: f(S,ST)-f (ST,S) = (f(S,S)+f (S,T)-(f(S,S) +f (T,S) =
4、f(S,T)- f(T,S) 所以:f= f(S,T)- f(T,S) 定理得证,推论1: 如果f是网络中的一个流,CUT(S,T)是一个割,那么f的值不超过割CUT(S,T)的容量。,f= f(S,T)- f(T,S)=f(S,T)=割CUT(S,T)的容量,推论2: 网络中的最大流不超过任何割的容量,定量2: 在任何网络中,如果f是一个流,CUT(S,T)是一个割,且f的值等于割CUT(S,T)的容量,那么f是一个最大流,CUT(S,T)是一个最小割(容量最小的割)。,令割CUT(S,T)的容量为C,所以流f的流量也为C。 假设另外的任意流f1,流量为c1,根据流量不超过割的容量,则c1=
5、c,故,CUT(S,T)是最小割。,证明:,定量3:最大流最小割定量: 在任何的网络中,最大流的值等于最小割的容量。,1,2,4,3,5,6,4,2,3,4,5,2,1,2,1,2,4,3,5,4,2,3,4,5,2,2,2,1,1,1,2,2,最大流:7 S=1,2,3,T=4,5 Cut(S,T)是最小割,容量,结论1: 最大流时,最小割cut(S,T)中,正向割边的流量=容量,逆向割边的流量为0。否则还可以增广。,结论2: 在最小割中cut(S,T)中: 源点sS。 如果iS,结点j满足: 有弧,并且cI,jfI,j 或者有弧并且fj,i0, 那么jS。/否则不是最小割 即从s出发能找到
6、的含有残留的点组成集合S。其余的点组成集合T。,怎样求集合S?,数组bi记录增广路径上结点i的前驱结点。 初始值b= -1,b1=0;假设1是源点。 如果bi-1(有前驱,能从源点1找到的点),那么,iS。,怎样求正向割边和逆向割边?,水流管道的最大流量由最细的管子容量决定的,二、最大流最小割定量的应用,1、太空飞行计划问题 【问题描述:】 W 教授正在为国家航天中心计划一系列的太空飞行。每次太空飞行可进行一系列商业性实验而获取利润。现已确定了一个可供选择的实验集合E=E1,E2,Em,和进行这些实验需要使用的全部仪器的集合I=I1,I2,In。实验Ej需要用到的仪器是I的子集Rj 。配置仪器
7、Ik的费用为ck美元。实验Ej的赞助商已同意为该实验结果支付pj美元。W教授的任务是找出一个有效算法,确定在一次太空飞行中要进行哪些实验并因此而配置哪些仪器才能使太空飞行的净收益最大。这里净收益是指进行实验所获得的全部收入与配置仪器的全部费用的差额。 对于给定的实验和仪器配置情况,编程找出净收益最大的试验计划。,第1行有2 个正整数m和n。m是实验数,n是仪器数。接下来的m 行,每行是一个实验的有关数据。第一个数赞助商同意支付该实验的费用;接着是该实验需要用到的若干仪器的编号。最后一行的n个数是配置每个仪器的费用。 第1 行是实验编号;第2行是仪器编号;最后一行是净收益。,【输入:】,【输出:
8、】,【样例输入:】,2 3 10 1 2 25 2 3 5 6 7,【样例输出:】,1 2 1 2 3 17,构造网络图G如下:,顶点个数:m+n+2,样例如右图:,构造图时要重新编号,分析得出:,任意一种实验方案所做的实验以及所需的仪器以及t构成集合T,剩下的不做的实验以及不需要的仪器和s构成集合S。 T和S正好对应与图的一个割。,如做实验E2:需要仪器I2和I3,与t组成集合T。 S与不做的实验E1和没用的仪器I1组成集合S。 构成割:CUT(S,T) 净收益: E2:25-(6+7)=12,同理 : E1:10-(5+6)= -1 E1+E2:(10+25)-(5+6+7)=17,做实验
9、1:净收益:2-6=-4 做实验1,2:净收益:(2+5)-(6+3)=-2 做实验2,3:净收益:(5+9)-(3+4)=7,=(2+5+9)-(5+9)-6=(2+5+9)-(5+9+6),=(2+5+9)-9-(6+3)=(2+5+9)-(9+6+3),=(2+5+9)-2-(3+4)=(2+5+9)-(2+3+4),净收益=所有实验收入-相应实验方案割的容量,最大净收益=所有实验收入-最大流f,最大净收益: (10+25)-(5+6+7)=17,最大净收益:(2+5+9) ( 2+3+4 )= 16 最大流 9 = 7 做实验 2和3,实验仪器和实验的输出:,构造图时要重新编号,仪器:
10、1-3中bi=-1的点。 实验:4-6中bj=-1的点。,割边:如果存在弧, 满足:iS,bi=0, jT,bj= -1, 那么弧是一条割边,2、Plan问题 (2000年国家集训队题目) 【问题描述:】 某软件公司有n个可选的程序项目,其中第i个项目需要耗费资金ai元,开发成功后可以获得的收益为bi元。 当然,程序项目之间不是独立的:开发第i个项目前,必须先开发出一些其他的项目,这些项目成为第i个项目的“前驱项目”。 现在给出所有项目的ai和bi以及前驱项目。 你的任务是:帮助该公司从这n个程序项目中选择若干个进行开发,使获得的总收益最大。 【输入:】 共n+3行。 第一行:n(1=n=20
11、0). 第二行有n个正整数:a1,a2,。,an。 第三行有n个正整数:b1,b2,。,bn。 以下n行,第i行每行包含若干个正整数:ri,k1,k2,。,kri。第一个数ri表示第i个项目有ri个前驱项目,ri,k1,k2,。,kri表示i个ri个前驱项目。 【输出:】 一个整数max,表示最大收益。,分析: 令di=bi-ai,净收益。 A=i|di=0:可以获得利润的项目集合。 B=i|di0:亏损的项目集合。,构造网络图: G=(V,E,C)。 1、两类顶点:N+2个点:源点s个汇点t,第i个项目点vi。 2、三种弧: 如果iA,存在弧,容量为di。 如果iB,存在弧,容量法|di|。 如果i个前驱项目为j,存在弧,容量为+。,构造割cut(S,T),如果iT,则i的前驱jT。割对应一种实验方案。 求出最大流f。 最大收益:,A,B,S,T,
链接地址:https://www.31doc.com/p-3390990.html