- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.5网络流图-Read.ppt
;5.5 网络流图
1. 定义:一个运输网络N(或称网络流图)是一个没有自环的有向连通图,它满足:
(1)只有一个源点s (入度为0,只可流出不可流入)
(2)只有一个收点t (出度为0,只可流入不可流出)
(3)每边均有一个非负实数权cij, 称为该边的容量(最大通过能力)。(对不存在的边,约定其cij=0); 定义: 一个实际输送方案中流{fij}称为容许流, 诸fij应满足如下要求。 ;s; 多源点、多收点情形以及源点有入边、收点有出边情形的处理
建立一个超源点s0, 从s0各引容量为0的边与原来各源点相连。
建立一个超收点t0, 从原来各收点各引容量为0的边与t0相连。;2.最大流与最小割
(1)割集及其容量
设S是网络流图N=(V,E)中的含源点s的一个结点集, 收点t?; (1) S={s}, S={a,b,c,d,t}, ;(2) 定理 最大流量≤最小割量,即
max W ≤ min C(S, S)
证明: 设{fij}是给定网络的任一容许流, 则其流量;3.求最大流的Ford-Fulkerson算法
基本想法是, 从一个容许流开始, 逐步增大流量(一直保持为容许流), 直至不可能再增流为止。最后所得流即为最大流。
(1)增流路径(增广路)
对于当前容许流,要找一条增流路径L增大流量(新流仍为容许流)。
(1)L是一条从s到t的路径, 其中每条边的方向与s到t的方向一致(称为向前边), 且每条边均为非饱和边.; (2) L是一条从s到t的路径, 其中向前边均为非饱和边, 向后边(方向与s到t的方向相反)的流量均大于0.; 先给s标号(-, ?)。对于已标号的结点u,考察其相邻的结点v是否可以标号:
若(u,v)是向前边且fuvcuv, 则v可标号且标号为
(u+, min(?u, cuv – fuv));
若(u,v)是向后边且fvu0, 则v可标号且标号为
(u+, min(?u, fvu)).
在标号过程中,若收点t得到标号,则已找到s到t的一条增流路径,其路径可用t的标号倒推得到(增加的流量也由t的标号得知)。否则,如果t未得到标号且已得标号的全部结点的所有相邻结点均不得到标号,则当前容许流不可能再增大,已是最大流。;(3) Ford-Fulkerson最大流标号算法
1° 从一个容许流开始(如零流);
2° 对于当前容许流,用标号的办法找一条s到t的增流路径L;
3° 若L存在, 则在L上调整流量(向前边+?t 、向后边-?t ), 返回2°; 若L不存在,则已得最大流,结束。
;例 求以下问题的最大流。;b; (4) 最大流最小割定理
定理 在一个网络流图N中,其最大流量等于其最小割割量。即有
max W = min C(S, S).
证:由前面的定理,有
max W ? min C(S, S).
用Ford-Fulkerson最大流标号算法对N进行标号过程,则在最后一轮标号中,t 无法得到标号。
令此时已得标号的全部结点集为S,其余结点的集合为S,则按标号的规则知割集中的每条边均为饱和边,且S到S的每条边流量均为0,故;5.7 最大流的Edmonds-Karp算法
Ford-Fulkerson标号法中,对结点的标号顺序是任意的。这种特点, 虽然有方便的一面, 但同时存在很严重的缺陷。有例子表明,算法的迭代次数与容量有关, 当容量为无理数时算法甚至需要迭代无限多次。 ; Edmonds-Karp提出上述标号算法的一个改进: 在每次都沿用一条最短(边数最少)的增流路径增流。
为此只需在原算法的基础上,将原来按任意顺序标号改为用广探法进行标号,即每次优先对相邻于最早标号结点的未标号结点进行标号。
定理 Edmonds-Karp最大流算法的计算复杂性为O(m2n).;s;例 用Edmonds-Karp算法求以下问题的最大流。;b;5.8 最小费用流
对于一个网络流图,其最???流往往是不唯一的。如果考虑输送费用,即给定每条边单位流量的费用,求哪个最大流的总输送费用最小,这就是最小费用流问题。
求解此问题的算法的基本思想是,对最大流问题算法进行改造:
在每次确定增加路径时,将费用看作该边的长度, 寻找一条从s到t的长度最短的增流路径, 确定此路上的运量增流值?并调整流量;然后根据当前容许流的情况修改每边边长,再找下一最短增流路径;….; 反复进行,直到得到一
文档评论(0)