图论最大流问题.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《图论最大流问题.ppt》由会员分享,可在线阅读,更多相关《图论最大流问题.ppt(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络与网络流网络与网络流一、网络流的基本概念一、网络流的基本概念先来看一个实例。先来看一个实例。现在现在想将一些物资从想将一些物资从S运抵运抵T,必须经过一些中转,必须经过一些中转站。连接中转站的是公路,每条公路都有最大运站。连接中转站的是公路,每条公路都有最大运载量。载量。S、T和中转站作为点,每条公路作为弧作有向图,和中转站作为点,每条公路作为弧作有向图,每条弧上赋予该公路的最大运载量。最多能将多每条弧上赋予该公路的最大运载量。最多能将多少货物从少货物从S运抵运抵T?定义定义1若有向图满足下列条件:若有向图满足下列条件:(1)有且仅有一个入度为零的顶点有且仅有一个入度为零的顶点s,称为源点
2、;,称为源点;(2)有且仅有一个出度为零的顶点有且仅有一个出度为零的顶点t,称为汇点,称为汇点;(3)每一条弧每一条弧(vi,vj)都有一个非负数都有一个非负数cij,称为该,称为该边的容量。如果边的容量。如果vi,vj之间没有边,之间没有边,cij=0。则称之为网络,记为则称之为网络,记为N=(V,E,C).图图1所给出的一个赋权有向图所给出的一个赋权有向图N就是一个网络,就是一个网络,指定指定v1是源点,是源点,v4为汇点,弧旁的数字为为汇点,弧旁的数字为cij。图图1图图2网络流:是定义在弧集合网络流:是定义在弧集合E上一个函数上一个函数f=f(vi,vj),并称,并称f(vi,vj)为
3、弧为弧(vi,vj)上的流量上的流量(简记为简记为fij)。如。如图图2所示的网络所示的网络N,弧上两个数,第一个数表示容量,弧上两个数,第一个数表示容量cij,第二个数表示流量,第二个数表示流量fij。二、可行流与最大流二、可行流与最大流1.定义定义在实际问题中,对于流有两个显然的要求:一是在实际问题中,对于流有两个显然的要求:一是每个弧上的流量不能超过该弧的最大通过能力每个弧上的流量不能超过该弧的最大通过能力(即弧即弧的容量的容量);二是中间点的流量为;二是中间点的流量为0,源点的净流出,源点的净流出量量和汇点的净流入量必相等。因此有定义如下。和汇点的净流入量必相等。因此有定义如下。定义定
4、义2网络网络N中每条边都给定一个非负实数中每条边都给定一个非负实数fij满足满足下列条件下列条件(1)容量约束:容量约束:0fijcij,(vi,vj)E,(2)守恒条件守恒条件对于中间点:流入量对于中间点:流入量=流出量,即流出量,即对于源点与汇对于源点与汇点:源点的净流出量点:源点的净流出量=汇点的净汇点的净流入量,即流入量,即这一这一组组fij称为网络称为网络N上的上的可行流可行流,记为记为f,w称为流量称为流量.网络网络N中流值最大的流中流值最大的流f*称为称为N的的最大流最大流.2.可增广(流)路径可增广(流)路径可增广路径可增广路径,是指这条路径上的流可以修改,通,是指这条路径上的
5、流可以修改,通过修改,使得整个网络的流值增大。过修改,使得整个网络的流值增大。定义定义3设设f是一个可行流,是一个可行流,P是从源点是从源点s到汇点到汇点t的一的一条路,若条路,若P满足下列条件:满足下列条件:(1)在在P上的所有前向弧上的所有前向弧(vivj)都是非饱和弧,即都是非饱和弧,即0fijcij;(2)在在P上的所有后向弧上的所有后向弧(vivj)都是非零弧,即都是非零弧,即0fijcij。则称。则称P为为(关于可行流关于可行流f的的)一条可增广路一条可增广路径。径。3.割及其容量割及其容量定义定义4如果如果S是是V的一个子集,的一个子集,则称边集,则称边集为网络为网络N的一个的一
6、个割。显然,若把某一割的弧从网络中去掉,则割。显然,若把某一割的弧从网络中去掉,则从从s到到t就不存在路。所以直观上讲,割是从就不存在路。所以直观上讲,割是从s到到t的必经之道。的必经之道。定义定义5给一割给一割,把其中所有弧的容量,把其中所有弧的容量之和称为这个之和称为这个割的容量割的容量,记为,记为,即,即网络网络N中容量最小的割中容量最小的割称为称为N的的最小割最小割。不难证明,任何一个可行流的流量不难证明,任何一个可行流的流量w都不会超过都不会超过任一割的容量,即任一割的容量,即例如,图例如,图2中,若中,若图图2定理定理1网络的最大流量不超过最小的割的容量,即网络的最大流量不超过最小
7、的割的容量,即证明证明设设f是给定网络的任意可行流,由可行流的性质是给定网络的任意可行流,由可行流的性质任给一个割任给一个割即即所以所以因因由于由于所以所以由于可行流和割的任意性,定理成立。由于可行流和割的任意性,定理成立。如果网络的可行流不是最大流,就一定存在从如果网络的可行流不是最大流,就一定存在从s到到t的的可增流路径可增流路径。令令s,v1,v2,vk,t是一条是一条s到到t的路径的路径Pst,其中,其中每条边的方向都是每条边的方向都是vj到到vj+1,称为称为向前边向前边。如果这。如果这条路径上每条边条路径上每条边eij都有都有fijcij,那么令,那么令令令Pst每条边的流都增加每
8、条边的流都增加d d,所得流分布仍然是网,所得流分布仍然是网络的可行流分布,但流增加了络的可行流分布,但流增加了d d.(5,3)(2,1)(6,2)(4,1)(5,2)sv4tv1v2v3(5,4)(2,2)(6,2)(4,2)(5,3)sv4tv1v2v3d d=1图图3网络中网络中的一部分的一部分图图4还可以包含向后的可增流路径还可以包含向后的可增流路径Pst,要求向前边,要求向前边eij都有都有fij0,对前向边对前向边eij后向边后向边eji,图图5,d d=1,图图5,d d=1,(5,3)(2,1)(6,2)(4,1)(5,2)sv4tv1v2v3图图5,d d=1,(5,4)(
9、2,2)(6,1)(4,2)(5,3)sv4tv1v2v3(1,0)(2,0)(1,0)(2,0)(2,0)stacb第第1条可增路条可增路s,c,b,t,d(1,0)(1,0)(2,2)(1,0)(2,2)(2,2)stacbd(1,0)d d=2第第2条可增路条可增路s,a,b,c,d,t,(1,0)(1,0)(1,1)(2,2)(1,1)(2,1)(2,2)stacbd(1,1)(1,1)最大流最大流w=3图图6图图7图图8定理定理2最大流最小割定理:在一个网络最大流最小割定理:在一个网络N中,最中,最大流量等于最小割的容量大流量等于最小割的容量。证明证明设网络的一个可行流设网络的一个可
10、行流f 为最大流,确定一为最大流,确定一个割如下:个割如下:是向前边且是向前边且,则,则若若是后前边且是后前边且,则,则若若则则,否则存在否则存在s到到t的一条可增路,矛盾。的一条可增路,矛盾。因此,因此,则任意则任意的边的边(x,y)有有若若是向前边,是向前边,是后前边,是后前边,由定理由定理1,又又所以所以最大网络流最大网络流最大流问题实际上是求一可行流最大流问题实际上是求一可行流fij,使得,使得w达到最大。若给了一个可行流达到最大。若给了一个可行流f,只要判断,只要判断N中有中有无关于无关于f的的增广路径增广路径,如果有增广路径,改进,如果有增广路径,改进f,得到一个流量增大的新的可行
11、流;如果没有增广得到一个流量增大的新的可行流;如果没有增广路径,则得到最大流。路径,则得到最大流。设设是最小割,下面用是最小割,下面用顶点标号法顶点标号法来定义来定义S*,在标号过程中,有标号的顶点表示是,在标号过程中,有标号的顶点表示是S*中的中的点,没有标号的点表示不是点,没有标号的点表示不是S*中的点。中的点。如如果果t有有标号,则说明找到了一条增广路;标号,则说明找到了一条增广路;如果标号过程如果标号过程进行不下去,而进行不下去,而t没有标号,则说明不存在增广路,没有标号,则说明不存在增广路,于是得到了最大流,同时也得到了一个最小割集。于是得到了最大流,同时也得到了一个最小割集。求最大
12、流的标号法求最大流的标号法(Ford,Fulkerson)从一个可行流从一个可行流(一般取零流一般取零流)开始,不断进行以开始,不断进行以下的下的标号过程标号过程与与增广过程增广过程,直到找不到关于,直到找不到关于f的可的可增广路径为止。增广路径为止。1.标号过程标号过程A标记过程中每个结点给予标记过程中每个结点给予3个标号,第一个标号个标号,第一个标号表示该点的先驱点,第二个标号为表示该点的先驱点,第二个标号为“+”或或“-”,表示先驱点与该点连接的边在可增广路中是前,表示先驱点与该点连接的边在可增广路中是前向边还是反向边,第三个标号表示这条边上能增向边还是反向边,第三个标号表示这条边上能增
13、加或减少的流值。加或减少的流值。stepA1发点发点s标记为标记为(s,+,),此时成为已标记,此时成为已标记,未检查,其余点均称为未标记,未检查。未检查,其余点均称为未标记,未检查。stepA2任选一已标记未检查的结点任选一已标记未检查的结点x,若结点,若结点y与与x邻接且未标记,则当邻接且未标记,则当(1)若若(x,y)E且且cxyfxy时,则时,则y标记为标记为(x,+,d dy),其中,其中d dy=mind dx,cxy-fxy之后,称之后,称y已标记未检查。已标记未检查。(2)若若(y,x)E且且fyx0时,则时,则y标记为标记为(x,-,d dy),其中其中d dy=mind d
14、x,fxy之后,称之后,称y已标记未检查。已标记未检查。(3)与结点与结点x邻接的所有结点都标记完之后,将邻接的所有结点都标记完之后,将x的的标记的符号标记的符号“+”或或“-”加以标记,表示加以标记,表示x已标记已标记且已检查。且已检查。StepA3重重复复stepA2,直直到到收收点点t被被标标记记,或或者者收收点点不不能能获获得得标标记记为为止止。如如果果是是前前者者,转转向向增增广广过过程程,如果是后者,算法结束,所得流即是最大流。如果是后者,算法结束,所得流即是最大流。2.增广过程增广过程BstepB1令令z=tstepB2若若z的标记为的标记为(q,+,d dz),则,则若若z的标
15、记为的标记为(q,-,d dz),则,则stepB3若若 q=s,则把全部标记去掉,则把全部标记去掉,转向标记转向标记过程过程A,否则令否则令z=q,转到,转到B2.例例求图求图9所示的最大流。边上的数字表示容量。所示的最大流。边上的数字表示容量。st8v1v4v3v2752961059设设f是任意可行流,从是任意可行流,从零流开始,设每条边零流开始,设每条边的流均为的流均为0,即,即1.找一条可增广路并增加其流值找一条可增广路并增加其流值A(标记过程标记过程)(1)发点发点s标记为标记为(s,+,)(2)考察与考察与s邻接的点邻接的点v1和和v2。对点。对点v1,则则图图9st8,0v1v4
16、v3v27,05,02,09,06,010,05,09,0于是,于是,v1标记为(标记为(s,+,8)同样的方法同样的方法v2得到标记(得到标记(s,+,7)。)。与与s邻接的点都已标记,邻接的点都已标记,s标记中的标记中的“+”写成写成,表示表示s已标记,已检查,如图已标记,已检查,如图10。图图10(s,)(s,+,8)(s,+,7)(3)重复重复stepA2,选一已标记、未检查的点,如选选一已标记、未检查的点,如选v1点,与点,与v1邻接且未标记的点只有邻接且未标记的点只有v3。因。因v3标记为标记为(v1,+,8)。点点v1已标记、已检查,将其标记中的已标记、已检查,将其标记中的“+”
17、写成写成,如图,如图11。st8,0v1v4v3v27,05,02,09,06,010,05,09,0图图11(s,)(s,8)(s,+,7)则则(v1,+,8)(4)重复重复stepA2,选一已标记、未检查的点,如选选一已标记、未检查的点,如选v3点,与点,与v3邻接且未标记的点有邻接且未标记的点有v4和和t。对于点对于点v4,因(,因(v4,v3)E 且且fv4v3=0,因此,不,因此,不能用点能用点v3去标记点去标记点v4.对于点对于点t,因,因st8,0v1v4v3v27,05,02,09,06,010,05,09,0图图12(s,)(s,8)(s,+,7)(v1,+,8)t标记为标记
18、为(v3,+,5)。如图如图12。由于由于t已标记,已标记,转到增广过程转到增广过程B.(v3,+,5)B.增广过程增广过程st8,5v1v4v3v27,05,02,09,06,010,05,59,5图图13至此,完成增广过程至此,完成增广过程。如图如图13。2.找一条可增广路并增加其流值找一条可增广路并增加其流值图图14A(标记过程标记过程)(2)考察与考察与s邻接的点邻接的点v1和和v2。对点。对点v1,st8,5v1v4v3v27,05,02,09,06,010,05,59,5(1)发点发点s标记为标记为(s,+,)(s,+,)st8,5v1v4v3v27,05,02,09,06,010
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最大 问题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内