教案18图论最小费用最大流摘要.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 第五节 最小费用最大流问题 网络D=(V,A,C),每一弧(vi,vj)∈A,给出(vi,vj)上单位流的费用b(vi,vj)≥0,(简记bij)。 最小费用最大流问题: 求一个最大流 f,使流的总费用 取最小值。 一、求解原理 设对可行流 f 存在增广链 μ,当沿 μ 以?=1调整f,得新的可行流 f 时,(显然 V(f )=V(f )+1),两流的费用之差 b( f )-b( f′) 称为增广链 μ 的费用。 最小费用最大流的原理的主要依据: 若f 是流值为V(f )的所有可行流中费用最小者, 而μ 是关于f 的所有增广链中费用最小的增广链,则沿 μ 以?去调整 f ,得可行流 f ? ,f ?就是流量为V(f )+ ? 的所有可行流中费用最小的可行流。这样,当 f ?是 最大流时, f ?就是所求的最小费用最大流。 b( f ′) -b( f ) +1 -1 构造赋权有向图W( f ),它的顶点是D的顶点,W(f )中弧及其权wij 按弧(vi,vj)在D中的情形分为: 则(vi,vj)∈W(f ),且wij= bij 则( vj , vi )∈W(f ),且wji= - bij vj vi 4 vj 4 vi 3.0 vj vi 5.5 3 vi vj -3 如果已知 f 是流量为V(f )的最小费用流, 求出关于f 的最小费用增广链。 若(vi,vj)∈A,且fij=0(零弧), 若(vi,vj )∈A,且fij=cij(饱和弧), 费用 若(vi,vj)∈A,且0<fijcij vj 4 vi 3.2 则(vi,vj)∈W(f ),且wij= bij 及( vj , vi )∈W(f ),且wji= - bij vj vi 4 vi vj -4 新网络W(f )成为流f 的(费用)长度网络。 由增广链费用的概念及网络W(f )的定义,知 在网络D中寻求关于可行流f 的最小费用增广链,等价于在网络W(f )中寻求从vs到vt的最短路。 二、最小费用最大流算法 算法步骤: 第1步:确定初始可行流f 0 =0,令k=0; 第2步:记经 k 次调整得到的最小费用流为f k,构造 增量网络W(f k); 第3步:在W(f k)中,寻找vs到vt的最短路。若不存 在最短路(即最短路路长是∞),则f k 就是 最小费用最大流,若存在最短路,则此最短 路即为原网络D中相应的可增广链μ,转入第 4步。 第4步:在增广链μ上对f k 按下式进行调整,调整量? 为 ? = min 令 得新的可行流f k+1 , 返回第2步。 vs v2 v3 4 v1 vt 6 2 1 1 3 2 (a) w(f0) 例 求下图所示网络的最小费用最大流。弧旁数字为 (bij,cij)。 v2 v3 (4,10) v1 vs vt (6,2) (2,5) (1,8) (1,7) (3,10) (2,4) 解:(1)取初始 可行流f 0 = 0; (2)按算法要求构造 长度网络W(f 0 ), 求出从vs到vt的最短路。 (3)在原网络D中,与这条最短路对应的增广链为 μ =(vs,v2,v1,vt)。 (3)在原网络D中, 与这条最短路对应 的增广链为 : (4)在μ上进行调整, ? = 5,得f 1 , 如图(b)所示。 v2 v3 (10,0) v1 vs vt (2,0) (5,0) (8,0) (7,0) (10,0) (4,0) μ =(vs,v2,v1,vt) v2 v3 (10,0) v1 vs vt (2,0) (5,5) (8,5) (7,5) (10,0) (4,0) (b) f 1 按照上述算法依次得f 1 ,f 2 ,f 3 ,f 4 ,流量依次为V(f 1)=5,V(f 2)=7,V(f 3)=10,V( f 4)=11, 构造相应的增量网络为W(f 1),W(f 2),W(f 3),W( f 4), 如图(a), (e), (g), (i)所示。 vs v2 v3 4 v1 vt 6 2 1 1 3 2 (a) w(f0) v2 v3 (10,0) v1 vs vt (2,0) (5,5) (8,5) (7,5) (10,0) (4,0) (b) f 1 V(f 1 ) = 5 v2 v3 (10

文档评论(0)

宝贝计划 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档