最小费用最大流问题_第1页
最小费用最大流问题_第2页
最小费用最大流问题_第3页
最小费用最大流问题_第4页
最小费用最大流问题_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

最小费用最大流问题网络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=-bijvjvi4vj4vi3.0vjvi5.53vivj-3如果已知f是流量为V(f

)的最小费用流,求出关于f

的最小费用增广链。若(vi,vj)∈A,且fij=0(零弧),若(vi,vj

)∈A,且fij=cij(饱和弧),费用若(vi,vj)∈A,且0<fij<cij

vj4vi3.2则(vi,vj)∈W(f),且wij=bij

及(vj

,vi

)∈W(f),且wji=-bijvjvi4vivj-4新网络W(f)成为流f的(费用)增量网络。由增广链费用的概念及网络W(f)的定义,知在网络D中寻求关于可行流f的最小费用增广链,等价于在网络W(f)中寻求从vs到vt的最短路。二、最小费用最大流算法算法步骤:第一步:确定初始可行流f

0=0,令k=0;第二步:记经k

次调整得到的最小费用流为fk,构造增量网络W(fk);在W(fk)中,寻找vs到vt的最短路。若不存在最短路(即最短路路长是∞),则fk

就是最小费用最大流,若存在最短路,则此最短路即为原网络D中相应的可增广链µ,转入第

3步。

第三步:在增广链µ上对f

k

按下式进行调整,调整量为k=min令得新的可行流fk+1,返回第2步。第四步:停止运算,并输出当前最小费用可行流fk+1

,作为G的最小费用最大流。vsv2v34v1vt621132(a)w(f0)例1求下图所示网络的最小费用最大流。弧旁数字为

(bij,cij)。v2v3(4,10)v1vsvt(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)所示。v2v3(10,0)v1vsvt(2,0)(5,0)(8,0)(7,0)(10,0)(4,0)µ=(vs,v2,v1,vt)v2v3(10,0)v1vsvt(2,0)(5,5)(8,5)(7,5)(10,0)(4,0)(b)f1按照上述算法依次得f

1

,f

2

,f

3

,f

4

,流量依次为V(f

1)=5,V(f

2)=7,V(f

3)=10,V(f4)=11,构造相应的增量网络为W(f

1),W(f

2),W(f

3),W(f4),如图(a),(e),(g),(i)所示。vsv2v34v1vt621132(a)w(f0)v2v3(10,0)v1vsvt(2,0)(5,5)(8,5)(7,5)(10,0)(4,0)(b)f1V(f1)=5v2v3(10,0)v1vsvt(2,0)(5,5)(8,5)(7,5)(10,0)(4,0)(b)f1v2v3(10,2)v1vsvt(2,0)(5,5)(8,5)(7,7)(10,0)(4,0)(d)f2V(f2)=7vt2v2v3v1vs6-2-1-13(c)W(f

(1))411v2v3(10,2)v1vsvt(2,0)(5,5)(8,5)(7,7)(10,0)(4,0)(d)f2V(f2)=7

(e)

w(f

2)v1vs-1v2v3-46-2-1341vt2v2v3(10,2)v1vsvt(2,0)(5,5)(8,8)(7,7)(10,3)(4,3)(f)f3V(f3)=10v2v3(10,2)v1vsvt(2,0)(5,5)(8,8)(7,7)(10,3)(4,3)(f)f3V(f3)=10vt2v2v3-4v1vs6-2-1-13(g)W(f

3)4-3-2v2v3(10,3)v1vsvt(2,0)(5,4)(8,8)(7,7)(10,4)(4,4)(h)f4V(f4)=11图(i)中,不存在从vs到vt的最短路,所以f4为最小费用最大流。问题:(1)如何求网络W(f

k)中的vs到vt最短路?(2)如何判断无vs到vt的最短路?v2v3(10,3)v1vsvt(2,0)(5,4)(8,8)(7,7)(10,4)(4,4)(h)f4V(f4)=11vt-2v2v3-4v1vs6-2-1-13(i)W(f

4)4-32最小费用给定流xv1v2y3,0,45,2,24,4,23,2,44,2,2xv1v2y3,0,45,0,24,0,23,0,44,0,2xv1v2y3,1,45,1,24,3,23,2,44,2,2图中数字含义:[c(e),f(e),b(e)](2,6)(4,2)(10,3)(8,1)V2(5,2)(10,4)vsV1(7,1)vtV3求下图最小费用最大流第一轮:f0为初始可行流,作相应的费用有向图网络L(f

0),如图(a)。在L(f

0)上用DijksTra标号法求出由vs到vt的最短路(最小费用链)μ0=(vs,v2,v1,

vt),并对μ0按进行流量的调整,由于,所以有,其余不变,得新的可行流f1的流量有向图(b)。第二轮构造L(f

1),如图(c)所示,在L(f

1)中用逐次逼近法求最短路,为(vs,v1,vt),在G内相应的增广链上进行了流量的调整,调整量为2,得到流f2,如图(d)所示。第三轮构造L(f

2),如图(e)所示,在L(f

2)中用找到最短路(vs,v2,v3,vt),在G内相应的增广链上进行了流量的调整,调整量为3,得到,如图(f3)所示。第四轮构造L(f

3),如图(g)所示,在L(f

3)中用求的最短路(vs,v1,v2,v3,vt),在G内相应的增广链上进行了流量的调整,调整量为1,得到流(f4),如图(h)所示。第五轮

构造L(f

4)

,如图(i)所示,在中不存在从vs到

vt的最短路,故算法结束。即f5为所求的最

小费用最大流。V16231V224vs1vtV3(a)L(f

0)

0005V250vs5vtV3(b)f1

V1vs6231V2541vtV3(c)L(f

1)

V10338V252vs7vtV3(f)f3V11-1vs6231V2-24-1vtV3(e)L(f

2)

V1-4-10005V252vs7vtV3(d)f2V12vt63-1V2-24-1V3(g)L(f

3)

V1-4-3-20448V243vs7vtV3(h)f4V1vs-463-1V2-24-1V3(i)L(f

4)

V1-3-2vtvs2最小费用最大流求解过程1.求下图所示网络的最小费用最大流,每弧旁的数字是(bij

.cij

)。(1,4)vsvt(3.5)(2.1)(4,2)(2.1)(3.3)(2.5)(1.3)(4.2)

2.下表给出某运输问题的产销平衡表与单位运价表。将此问题转化为最小费用最大流问题,画出网络图并求数值解。产地销地123产量AB2030242252087销量456最小总费用为240sBA321t(22,7)(24,8)(5,8)(30,7)(0,5)(0,6)(20,8)(0,7)(0,4)(20,8)(0,8)弧旁数字为(bij,cij

)3.现有两个煤矿X1和X2,每月分别能生产煤13及15个单位,每单位煤的生产费用分别为5及3个单位;另有两个电站Y1和Y2,每月需用煤分别为12及15个单位,从Xi至Yj的单位运费Wij如下表,问每个煤矿应生产多少煤并运往何处,才能满足所有要求,同时使总的运费最低?

YjXiY1Y2X1X23567(13,5)X(15,3)(15,7)(15,5)(13,3)(12,0)(15,0)(13,6)YX2X1Y1Y2W(X,X1)=5W(X,X2)=3?生产费用最小费用流1.基本概念及定理(1)流的费用定义

对于一个可行流f={fij}来说,如果网络

G=(V,A,C,W)中,对于每条弧aij

∈A,都有一个单位流费用ωij,则流的费用定义为:(2)最小费用流定义

网络G=(V,A,C,W)中,对于每一流值为V(f)

的可行流f来说,都存在一个流的费用

W(f),使W(f)为最小的可行流,则称为最小费用流。最小费用流的数学定义如下:目标函数:约束条件:(1)每一条弧;(2);

(3);

(4);其中:V(f)——目标流值;Cij

——能力;ωij——单位费用;Vs——发点;Vt——收点。(3)链的费用与最小费用增广链定义已知网络G=(V,A,C,W)

,f是G的可行流,μ为从

vs到vt的关于f的增广链,称为链的μ的费用。若μ*是vs三到vt所有增广链中费用最小的链,则称μ*为最小费用增广链。(4)最小费用流的有关定理定理若f是流量为V(f)的最小费用流,μ是关于f的从vs到vt的一条最小费用增广链,则f经过μ调整流量得到新的可行流f`,f`一定是流量为V(f)+θ

的可行流中的最小费用流。最小费用流算法及算例基本思想:从某个初始的最小费用可行流f(0)(一般为零流)开始,寻找从源点vs到收点vt的关于f(0)的最小费用增广链。在μ中按最大流的标号法的调整方法进行调整,只是在调整量上,要比较增广链μ0上可调整的量与θ0与V目标-V(f(0))的量值,若θ0

>V目标-V(f(0)),则μ0*上调整的量为V目标-V(f(0))

,算法结束。若在链μ0上按θ0流量进行调整,得到流值为V(f(1))

的最小费用可行流f(1)

,在f(1)上寻找从vs到vt的费用最小的增广链μ1,再在μ1按上述方法进行流量调整,如此反复,直到最小费用可行流的流值达到V目标为止。例求下图所示的网络G中,求从vs到vt的目标流值为

25的最小费用流,弧上括号内的数字第一个为容量,第二个为弧上单位流的费用。(17,3)(20,5)(15,4)V2(18,3)(14,5)V3V1(20,8)(12,8)vsvt解

:算法过程第一轮,k=0

取={0}开始,作如图(a)所示,用DijksTra算法求的中vs到vt的最短路(vs,v1,v3,v4),在网络G中相应的增广链μ0=(vs,v2,v1,

vt

)上用最大流算法进行流的调整。

μ0+={(vs,v1)、(v1,v3),(v3,

vt)}μ0-=φ得到f(1)的如图(b)所示。第二轮,k=1

作图L(f(1))如图(c)所示,由于弧上有负权,所以求最短路不能用DijksTra算法,可用逐次逼近法,最短路为(vs,v3,

vt),在G

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论