书签 分享 收藏 举报 版权申诉 / 51
上传文档赚钱

类型网络流算法介绍课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5211005
  • 上传时间:2023-02-17
  • 格式:PPT
  • 页数:51
  • 大小:272.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《网络流算法介绍课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    网络 算法 介绍 课件
    资源描述:

    1、网络算法介绍PPT网络流算法介绍1.基本概念2.最大流问题求解3.二分图匹配4.二分图最佳匹配关键词:源点、源点、汇点、汇点、容量、容量、流量、流量、残量、残量、费用、费用、增广路径增广路径网络流问题类比:求最短路径把实际问题的道路地图抽象为有向图,然后用一定算法求解最短路径。我们也可以将一个有向图看作一个流网络来解决另一类型的问题。匹配问题、运输问题、任务分配问题。流网络定义(Flow Network)nV表示整个图中的所有结点的集合.nE表示整个图中所有边的集合.nG=(V,E),表示整个有向图.ns表示网络的源点,t表示网络的汇点.n对于每条边(u,v),有一个容量c(u,v)(c(u,

    2、v)=0)n如果c(u,v)=0,则表示(u,v)不在网络中。n如果原网络中不存在边(u,v),则令c(u,v)=0n对于每条边(u,v),有一个流量f(u,v).流网络示例水源水源源点源点S蓄水池蓄水池汇点汇点T水管水管/边边流速限制流速限制容量容量c流速流速/流量流量f网络流三个性质n容量限制:f(u,v)=c(u,v)n对称性:f(u,v)=-f(v,u)n收支平衡:对于不是源点也不是汇点的任意结点,流入该结点的流量和等于流出该结点的流量和。只要满足这三个性质只要满足这三个性质,就是一个合法的网络流就是一个合法的网络流.网络的流量、最大流一个合法的网络流量|f|定义为:n从源点流出的流量

    3、f(s,v)n流向汇点的流量 f(v,t)n|f|的最大值表示为最大流流网络示例收支平衡容量限制f(v4,v6)=-f(v6,v4)=1f(v6,v4)图中不给出网络的流量|f|=5+3=8或等于5+2+1(汇点处)0=|f|=最大流残量网络n对于网络中的每一条边,计算容量与流量的差即表示为残量。nR(u,v)=C(u,v)F(u,v)n形象的说,一条边的残量即为该边还能流过的流量。残量网络举例v1tsv2(2,2)(4,4)(2,4)(0,3)(2,2)v1tsv2232422原网络残量网络残量网络n从残量网络中可以清楚地看到:n因为存在边(s,v2)=3,则知道从S到v2还可以再增加2单位

    4、的流量;n因为存在边(v1,t)=2,则从v1到t还可以再增加2单位的流量。v1tsv2232422后向弧n其中像(v1,s)这样的边称为后向弧,它表示从v1到s还可以增加4单位的流量。n但是从v1到s和原网络中的弧的方向相反。这样的弧称为后向弧。n问题:有必要建后向弧线?tsv232422v1为什么要建立后向弧n在寻找最大流的过程中,有些弧的选择一开始可能就是错误的。n所以在路径中加上后向弧,作为标记。n当发现了另一条可增广的路径是并包含后向弧,意味这条路径对以前对这条弧顶选择进行取消n后向弧为算法纠正自己所犯的错误提供了可能性,它允许算法取消先前的错误的行为增广路径n在残量网络中,从源点S

    5、出发到汇点T的一条路径。n增广路径上的最小残量表示该网络还可增加的额外流量。点集间的流量定义点集间的流量:f(X,Y)=f(x,y)则有:f(X,X)=0 (流的对称性)f(X,Y)=-f(Y,X)(流的对称性)f(XY,Z)=f(X,Z)+f(Y,Z)f(X,YZ)=f(X,Y)+f(X,Z)xX yY点集间的流量n不包含s,t的点集,与它关联的边上的流量和为零证明:f(X,V)=f(x,v)=0(流量收支平衡)=0 xXvVxX网络中的割n割(S,T)由两个点集S,T组成,满足1、S+T=V2、源点在S集合中3、汇点在T集合中4、f(S,T)表示割的流量5、c(S,T)表示割的容量最小切割

    6、时使c(S,T)最小的切割割的流量n任意割的流量等于网络的流量证明:f(S,T)=f(S,V)f(S,S)=f(S,V)+0 =f(s,V)+f(S-s,V)=f(s,V)+0 =|f|割的流量n网络的流量小等于任意割的容量证明:|f|=f(S,T)=f(x,y)2n反证法n假设残量网络中还有增广路径,n增广路径上的流量至少为1n由该路径增广后的流量fn与f是最大流矛盾2 3n此时的残量网络中不存在s-t通路n定义S为s可达的点集n定义T为可达t的点集n显然ST=Vn(S,T)中所有弧都满载,否则残量网络将不为0,使s-t有通路n所以|f|=c(S,T)3 1n由|f|3的证明给出了从最大流构

    7、造最小割的过程,即求出s的可达点集S,再令T=V-S求最大流的增广路算法n每次用BFS找一条最短的增广路径;n然后沿着这条路径修改流量值(实际修改的是残量网络的边权)。路径上的后向弧+流量值路径上的前向弧-流量值n当没有增广路时,算法停止,此时的流就是最大流。最大流例题BOJ1154n典型的最大流问题n已知网络容量,求最大流量n根据题意构图如下:1为源点,M为汇点.容量为题目已知给出,可能的情况是相同两个结点之间有多条水渠,将它们累加即可.初始化流量网络为0,则残量网络即初始为容量网络.n算法流程:构图-求最大流-输出最大流最大流例题BOJ1154n寻找增广路nbool findload()n

    8、n memset(visited,0,sizeof(visited);n head=tail=0;n queuetail+=s;n while(head tail)n n j=queuehead+;n for(i=1;i 0)/cap为容量,本题可以直接表示为残量n n prei=j;/路径标志n visitedi=1;n if(i=t)return true;/找到s-t通路n queuetail+=i;n n return false;n最大流例题BOJ1154n求最大流nint maxflow()nn int i,j,flow=0,min;/min为增广路径上的瓶颈流量;flow网络最大

    9、流n while(findload()n n min=0 x7ffffff;n for(i=t;i!=s;i=prei)n min 0的pillars拆开,有L的点由源点向其引一条边,边容量为1,能跳出边界的点向汇点引边,边容量为无穷.n其他题目:pku 3498Cable TV Network n题意:一个无向图,问去掉几个点使得其不连通.n思路:最小点割集,根据最小割最大流定理求解.拆点,求最大流.因为此题没有明确的源点和汇点,所以要枚举源点和汇点,然后求最大流,最大流的最小值就是最小割的最小值.n其他题目:POJ3469 二分图n二分图作为流网络的一个特例,我们既可以特别去讨论它,也可以

    10、从网络流的角度来理解它。n定义:二分图又称二部图,它是一个无向图,图的顶点分成两个不相交的点集X,Y.对于图中任意一条边的两端点分别来自不同点集。112233445二分图匹配n给定二分图G,在G的子图M中,M的任意两条边都不共点,则称M为G图的一个匹配。nM中边数最大的子集称为G的最大匹配。n如果在最大匹配中,边涵盖了图中所有的点,则这样的匹配为完美匹配。匈牙利算法n实际上它也是一种不断寻找增广路径的算法n增广路径定义:若path是图G中一条连通两个未匹配顶点(分别属于X,Y)的路径,并且属M的边和不属M的边(即已匹配和待匹配的边)在Path上交替出现,则称Path为相对于M的一条增广路径。二

    11、分图增广路n由增广路定义可以得出:1、path的长度必为奇数,且第一条边和最后一条边为不匹配边。2、path经过路径取反操作以后,得到比当前更大的匹配。3、当找不到增广路径时候,得到的匹配即为最大匹配。与增广路求最大流算法很类似最大流和二分图匹配n实际上二分图可以改造成一个流网络n把X,Y的边改成从X到Y的有向边,并赋值为1,表示从X到Y容量为1。n添加源点s,s到X部每个点的容量都为1。n添加汇点t,Y到t部每个点的容量都为1。n以此建立的流网络求得到最大流,即为原二分图中的最大匹配数。最大流和二分图匹配n对上述的流网络求最大流的增广路算法我们已经了解了。n每次找增广路时必然是以条从s到t的

    12、通路,除去s到X,Y到t两条边,剩下的边必然是在原二分图中交替前进。n前向弧表示尚未匹配的边n后向弧表示已经匹配的边n路径取反操作实际上是更新流量操作二分图匹配的构图n首先划分“对立”的两个集合n明确每个匹配关系的含义n明确最大匹配的意义n从最大流的构图方法来入手二分图匹配例题BOJ1155n中文题目,题意好理解n构图:考虑将墙面看成一个国际象棋的棋盘,那么每块瓷砖贴在棋盘上必然占一格白格和一格黑格.n用棋盘的黑色格子表示二分图X部n用棋盘的黑色格子表示二分图Y部n相邻的格子用一条边连接二分图匹配例题BOJ1155n找增广路径nint path(int v)/从X部的V点找增广路径nnfor(

    13、int i=1;i=m;i+)nnif(gvi&!visitedi)/找到未匹配边nnvisitedi=true;nif(matchi=-1|path(matchi)=1)nnmatchi=v;/路径取反操作nreturn 1;nnnnreturn 0;n二分图匹配例题BOJ1155n求最大匹配n cnt=0;/最大匹配数 memset(match,-1,sizeof(match);n for(i=1;i=wij;n对于所有边e(i,j)在M中,都有lxi+lyj=wij;n则M是G的最佳匹配二分图最佳匹配n先将一个未被匹配的顶点u做一次增广路,记下哪些结点被访问那些结点没有被访问。n求出d=

    14、minlxi+lyj-wi,j其中i结点被访问,j结点没有被访问。n调整lx和ly:对于访问过的x顶点,将它的可行标减去d,访问过的y顶点,将它的可行标增加d。n修改后的顶标仍是可行顶标,原来的匹配M仍然存在,相等子图中至少出现了一条不属于M的边,所以造成M的逐渐增广。算法流程n(1)初始化可行顶标的值n(2)用匈牙利算法寻找完备匹配n(3)若未找到完备匹配则修改可行顶标的值n(4)重复(2)(3)直到找到相等子图的完备匹配为止二分图最佳匹配例题BOJ1080n题目意思非常清晰n构图非常明确,工作为X,人为YnX到Y的权值已知n求X到Y的最小匹配n把X到Y的劝值改为负数,求最佳匹配后,再取负数

    15、,得到的就是最小匹配值.二分图最佳匹配例题BOJ1080n找增广路径nint find(int v)nn int i,tmp;n xv=1;n for(i=0;i n;i+)n if(!yi&lxv+lyi=mapvi)n n tmp=matchi;matchi=v;n yi=1;n if(tmp=-1|find(tmp)n return 1;n matchi=tmp;n n return 0;n二分图最佳匹配例题BOJ1080nint KM()nn int i,j,k,d,ans;n for(k=0;k n;k+)n while(1)n n memset(x,0,sizeof(x);n me

    16、mset(y,0,sizeof(y);n if(find(k)break;/找完美匹配子图 n for(d=MAX,i=0;i n;i+)n if(xi)n for(j=0;j n;j+)n if(!yj)d?=lxi+lyj-mapij;n for(i=0;i n;i+)n n if(xi)lxi-=d;n if(yi)lyi+=d;n n n for(ans=0,i=0;i n;i+)ans+=mapmatchii;nreturn ans;n/*可行顶标ly记为0,lx记为与x相连的边的权最大值*/memset(ly,0,sizeof(ly);memset(match,-1,sizeof(match);for(i=0;i n;i+)lxi=-MAX;for(j=0;j?=mapij;总结n网络流模型可以用来解决很多关于分配求最优值得问题,它的最大流,最小费用最大流求解算法我们已经大概了解。n在更多的实际问题中,网络流模型的建立往往是难点。n巧妙的建立一个模型往往能诞生一个优质的算法。Thank you!

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:网络流算法介绍课件.ppt
    链接地址:https://www.163wenku.com/p-5211005.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库