- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第八章线性规划和网络流
预流推进算法 1 算法基本思想 增广路算法的特点是找到增广路后,立即沿增广路对网络流进行增广。 每一次增广可能需要对最多n-1条边进行操作。 最坏情况下,每一次增广需要O(n)计算时间。 有些情况下,这个代价是很高的。下面是一个极端的例子。 无论用哪种增广路算法,都会找到10条增广路,每条路长为10,容量为1。 共需要10次增广,每次增广需要对10条边进行操作,每条边增广1个单位流量。 10条增广路中的前9个顶点(前8条边)是完全一样的。 如果直接将前8条边的流量增广10个单位,而只对后面长为2的不同的有向路单独操作,就可以节省许多计算时间。 这就是预流推进(preflow push )算法的基本思想。 预流推进算法注重对每一条边的增流,而不必每次一定对一条增广路增流。 通常将沿一条边增流的运算称为一次推进(push)。 在算法的推进过程中,网络流满足容量约束,但一般不满足流量平衡约束。 从每个顶点(除s和t外)流出的流量之和总是小于等于流入该顶点的流量之和。 这种流称为预流(preflow)。这也是这类算法被称为预流推进算法的原因。 下面先给出预流的严格定义。 给定网络G=(V,E)一个预流是定义在G的边集E上的一个正边流函数。 该函数满足容量约束,即对G的每一条边(v,w)∈E,满足0≤flow(v,w)≤cap(v,w)。 G的每一中间顶点满足流出量小于或等于流入量。 即对每个v∈V(v≠s,t)有 满足条件 的中间顶点v称为活顶点。 量 称为顶点v的存流。 按此定义,源s和汇t不可能成为活顶点。 对网络G上的一个预流,如果存在活顶点,则说明该预流不是可行流。 预流推进算法就是要选择活顶点,并通过把一定的流量推进到它的邻点,尽可能地将当前活顶点处正的存流减少为0,直至网络中不再有活顶点,从而使预流成为可行流。 如果当前活顶点有多个邻点,那么首先推进到哪个邻点呢? 由于算法最后的目的是尽可能将流推进到汇点t,因此算法应寻求把流量推进到它的邻点中距顶点t最近的顶点。 预流推进算法中用到一个高度函数h来确定推流边。 对于给定网络G=(V,E)的一个流,其高度函数h是定义在G的顶点集V上的一个非负函数。该函数满足: (1)对于G的残流网络中的每一条边(u,v)有,h(u) ? h(v)+1; (2)h(t)=0。 G的残流网络中满足h(u) = h(v)+1的边(u,v)称为G的可推流边。 一般的预流推进算法 一般的预流推进算法的每次迭代是一次推进运算或者一次高度重新标号运算。 如果推进的流量等于推流边上的残留容量,则称为饱和推进,否则称为非饱和推进。 算法终止时,网络中不含有活顶点。此时只有顶点s和t的存流非零。此时的预流实际上已经是一个可行流。 算法预处理阶段已经令h(s)=n,而高度函数在计算过程中不会减少,因此算法在计算过程中可以保证网络中不存在增广路。 根据增广路定理,算法终止时的可行流是一个最大流。 步骤0:构造初始预流flow: 对源顶点s的每条出边(s,v)令flow(s,v)=cap(s,v); 对其余边(u,v)令flow(u,v)=0。构造一有效的高度函数h。 步骤1:如果残量网络中不存在活顶点,则计算结束,已经得到最大流; 否则转步骤2。 步骤2:在网络中选取活顶点v。 如果存在顶点v的出边为可推流边,则选取一条这样的可推流边,并沿此边推流。 否则令h(v) = min{h(w)+1 | (v,w)是当前残流网络中的边},并转步骤1。 一般的预流推进算法并未给出如何选择活顶点和可推流边。 不同的选择策略导致不同的预流推进算法。 在基于顶点的预流推进算法中,选定一个活顶点后,算法沿该活顶点的所有推流边进行推流运算,直至无可推流边或该顶点的存变成0时为止。 3 算法的计算复杂性 基于顶点的预流推进算法用一个广义队列gQ存储当前活顶点集合。 广义队列可以是通常的FIFO队列,LIFO栈,随机化队列,随机化栈,或按各种优先级定义的优先队列。 算法的效率与广义优先队列的选择密切相关。 如果选用通常的FIFO队列,则在最坏情况下,预流推进算法求最大流所需的计算时间为O(mn2),其中m和n分别为图G的边数和顶点数。 如果以顶点高度值为优先级,选用优先队列实现预流推进算法,则在最坏情况下,求最大流所需的计算时间为 这个算法也称为最高顶点标号预流推进算法。 近来已提出许多其它预流推进算法的实现策略,在最坏情况下算法所需的计算时间已接近O(mn)。 8.3 最小费用流问题 1 网络流的费用 在实际应用中,与网络流有关的问题,不仅涉及流量,而且还有费用的因素。 网络的每一条边(v,w
您可能关注的文档
- [工学]第二章上 摄影的基本知识与航空摄影测量对摄影的基本要求.ppt
- [工学]第二章交换网络.ppt
- [工学]第二章习题课--多元函数微分学习题课.ppt
- [工学]第二章2放大电路的基本知识.ppt
- [工学]第二章、信号及其分类2011-2012-1 2.ppt
- [工学]第二章图形学教学.ppt
- [工学]第二章可编程序控制器的结构和工作原理.ppt
- [工学]第二章控制系统的数学模型例题.ppt
- [工学]第二章基本控制环节.ppt
- [工学]第二章工厂供电.ppt
- 预应力筋用锚具、夹具和连接器应用技术规程 JGJ 85-2010 知识培训.pptx
- 多联机空调系统工程技术规程 JGJ 174-2010 知识培训.pptx
- 2025届山西晋中学市榆次区中考冲刺卷历史试题含解析.doc
- 钢管满堂支架预压技术规程 JGJ_T 194-2009 知识培训.pptx
- 河北省唐山市古治区2025届中考历史模拟试卷含解析.doc
- 建筑桩基技术规范 JGJ 94-2008知识培训.pptx
- 普通混凝土用砂、石质量及检验方法标准培训.pptx
- 建筑施工作业劳动防护用品配备及使用标准 JGJ 184-2009知识培训.pptx
- 城市轨道交通引起建筑物振动与二次辐射噪声限值及其测量方法标准 JGJ_T 170-2009知识培训.pptx
- 岩溶地区建筑地基基础技术规范 DBJ_T 15-136-2018 知识培训.pptx
最近下载
- 计算机组装实验报告计算机组装实验报告.doc VIP
- 同济大学工程造价课后答案.docx VIP
- 2023年江西财经大学现代经济管理学院公共课《马克思主义哲学》期末试卷A(有答案).docx VIP
- 保险公司服务方案及承诺.docx VIP
- S7-200 SMART PLC完全精通教程课件:S7-200 SMART PLC的编程语言.pptx VIP
- 2023年江西财经大学现代经济管理学院公共课《马克思主义基本原理概论》期末试卷A(有答案).docx VIP
- S7-200 SMART PLC完全精通教程课件:S7-200 SMART PLC在变频器调速系统中的应用.pptx VIP
- 门店及督导考核、巡店表(1).xls VIP
- 【西门子】S7-200 SMART 系统手册.pdf VIP
- 【完美精致】江南大学毕业论文答辩PPT模板.pptx VIP
文档评论(0)