




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络流初步,1,最大流算法最小费用最大流最大流最小割定理,2,最大流算法,网络流之一,3,问题:问从S到T的最大水流量是多少?,实例:,有一自来水管道输送系统,起点是S,目标是T,途中经过的管道都有一个最大的容量。,4,1S,4,3,2,5,6t,7,3,4,8,4,2,4,6,4,6,2,2,2,4,4,6,最大水流量是10,5,一、网络流的定义,有唯一的一个源点S(入度为0:出发点)有唯一的一个汇点T(出度为0:结束点)图中每条弧(u,v)都有一非负容量c(u,v),有向图G=(V,E)中:,满足上述条件的图G称为网络流图。记为:G=(V,E,C),6,1、可行流,每条弧(u,v)上给定一个实数f(u,v),满足:有0-3减的由-补充,17,4、一条增广路径:15d=min6-1,4-2=2增加流量:2Sum=5+2=7,1,2,4,3,5,6,4,2,3,4,5,2,2-1=1,2,1,2,4,3,5,4,2,3,4,2,2,2,1,1,1,18,定理:可行流f为最大流,当且仅当不存在关于f的增广路径证:若f是最大流,但图中存在关于f的增广路径,则可以沿该增广路径增广,得到的是一个更大的流,与f是最大流矛盾。所以,最大流不存在增广路径。,19,Ford-Fulkerson方法(增广流)求最大流(福特-福克森),步骤:(1)如果存在增广路径,就找出一条增广路径DFS,BFS(2)然后沿该条增广路径进行更新流量(增加流量),While有增广路径do更新该路径的流量迭代算法,20,cu,v:容量fu,v:流量Bi:保存找到的增广路径,记录路径上结点i的前驱结点。Sum:最大流量。假定:1是源点S;n是汇点T。,算法的实现:,21,functionfindflow(k:integer):boolean;找结点k的后继结点ivari:integer;beginifk=nthenexit(true);找到了一条增广路径fori:=1tondoif(bi=-1)and(ck,i-fk,i0)or(fi,k0)thenbeginbi:=k;iffindflow(i)thenexit(true);end;exit(false);end;,1):DFS找增广路径,22,2)procedureaddflow;/沿增广路径增广(增加流量),d:=maxint;增量i:=n;沿增广路径的终点向起点反向求dwhilebi0dobeginifcbi,i0thend:=min(d,cbi,i-fbi,i);正向边ifci,bi0thend:=min(d,fi,bi);逆向边i:=bi;end;i:=n;whilebi0do逆向更新每条边的流量beginifcbi,i0theninc(fbi,i,d);正向边ifci,bi0thendec(fi,bi,d);逆向边i:=bi;end;inc(sum,d);总流量增加d,23,主程序:fori:=1tondobi:=-1;初始化增广路径b1:=0;whilefindflow(1)do增广流beginaddflow;fori:=1tondobi:=-1;b1:=0;end;writeln(sum);输出最大流fori:=1tondo输出每条边的流量forj:=1tondoiffi,j0thenwriteln(i,-,j,fi,j);,24,优化,残留网络d的设置:若存在(u,v)则d(u,v)=c(u,v)f(u,v)d(v,u)=f(u,v)d(u,v)是从u到v能增加的最大流量理解:(u,v)的流量为f(u,v),作为正向边还可以增加的量是c(u,v)f(u,v),作为逆向边,还可以增加的流量为:f(u,v)。增广路上正向边流量增加,逆向边增加流量减少。,d(u,v)=c(u,v)d(v,u)=0,25,深搜找增广路径过程functionfind(k:integer):boolean;ifk=nthenexit(true);fori:=1tondoif(bi=-1)and(dk,i0)thenbi:=k;iffind(i)thenexit(true);/此处bi不需要变回-1exit(false);/b1=0;b2n=-1;主函数中调用find(1),26,广搜找增广路径过程functionbfsbfs:boolean;a是广搜队列fori:=1tondobi:=-1;b是前驱b1:=0;a1:=1;open:=0;closed:=1;whileopen0)theninc(closed);aclosed:=i;bi:=k;ifi=nthenexit(true);找到增广路exit(false);没找到增广路,27,增广过程min:=maxint;i:=n;whilebi0(i1)do/逆向求增加流minifmindbi,ithenmin:=dbi,i;i:=bi;i:=n;whilebi0(i1)do/逆向修改流量dec(dbi,i,min);inc(di,bi,min);i:=bi;inc(sum,min);sum是总流量,28,问题1:奶牛的新年晚会,奶牛们要举办一次别开生面的新年晚会。每头奶牛会做一些不同样式的食品(单位是盘)。到时候他们会把自己最拿手的不超过k样食品各做一盘带到晚会,和其他奶牛一起分享。但考虑到食品太多会浪费掉,他们给每种食品的总盘数都规定了一个不一定相同的上限值。这让他们很伤脑筋,究竟应该怎样做,才能让晚会上食品的总盘数尽量的多呢?,例如:有4头奶牛,每头奶牛最多可以带3盘食品。一共有5种食品,它们的数量上限是2、2、2、2、3。奶牛1会做食品14,奶牛2会做食品25,奶牛3会做食品1、2、4,奶牛4会做食品13。那么最多可以带9盘食品到晚会上。即奶牛1做食品24,奶牛2做食品35,奶奶3做食品1、2,奶牛4做食品1。这样,4种食品各有2、2、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度温泉酒店装修合同预算范本
- 二零二五版酒店用品行业绿色供应链管理合同
- 二零二五年度新型汽车抵押权转让及维修保养服务合同
- 2025版防火门窗行业市场拓展与品牌战略合同
- 2025版二手房买卖合同涉及房屋交易过程中的物业服务协议范本
- 二零二五年度工程咨询服务居间合同范本
- 二零二五年度高层综合楼物业投诉处理委托合同
- 二零二五年度高端执业药师租赁服务合作协议
- 2025版废弃渣土运输合同生态补偿机制示范文本
- 二零二五年度跨境电商广告合同履行与品牌推广
- 养老护理员(技师、高级技师)知识考试复习题库(含答案)
- 学校安全“日管控、周排查、月总结”工作制度
- 机械原理课程设计15吨压片机设计
- 2023年五四青年节演讲比赛PPT担负青年使命弘扬五四精神PPT课件(带内容)
- 网络设备巡检报告
- 2023年义务教育音乐2022版新课程标准考试测试题及答案
- GB/T 4513.7-2017不定形耐火材料第7部分:预制件的测定
- 2023年资产评估师《资产评估基础》题库附参考答案(基础题)
- 铁路职工政治理论应知应会题库
- 服装购销合同范本服装购销合同
- 科室随访系统-功能清单-DC20180129
评论
0/150
提交评论