运筹学最小费用最大流流问题
第五节 最小费用最大流流问题
在实际的网络系统中,当涉及到有关流的问 题的时候,我们往往不仅仅考虑的是流量,还经 常要考虑费用的问题。比如一个铁路系统的运输 网络流,即要考虑网络流的货运量最大,又要考 虑总费用最小。最小费用最大流问题就是要解决 这一类问题。
最小费用最大流问题提法:
设一个网络G=(V,E,C),对于每一个弧(vi ,vj )∈E ,给 定容量cij外,还给出单位流量的费用dij 0 ,网络记为 G=(V,E,C,d)。网络系统的最小费用最大流问题,
bij bij
我们将 bij bij 叫做这条增广链的费用。
结论:如果可行流 f 在流量为w(f )的所有可行流中 的费用最小,并且 是关于f 的所有增广链中的费
用最小的增广链,那么沿增广链μ调整可行流f,得
到的新可行流f ’ ,也是流量为w(f ’)的所有可行流中 的最小费用流。依次类推,当 f ’ 是最大流时,就是 所要求的最小费用最大流。
对偶算法基本思路:
零流f ={0}是流量为0的最小费用流。一般地,寻求最小 费用流,总可以从零流f ={0}开始。下面的问题是:如果 已知f 是流量为w(f)的最小费用流,那么就要去寻找关于 f 的最小费用增广链,用最大流的方法将f(0)调整到f(1), 使f(1)流量为w(f(0))+θ,且保证f(1)在w(f(0))+θ流量下的
(5, 2)
(4, 2)
v2 (10, 3) v3
v1
(7, 1)
解:((110), 4取) 初始可行流(2,为6)零流f
(cij, dij) (0)v=t{0},构造赋权
有 (vs
向vs图 L(f(0)), 用
,v2 ,v1(,8v,t)1,)如图
Db(i5中j,k2s虚t)r线a 求所出示。从(v4s,
d(u) dij dij
(u)
(u)
v1
v2
3
51 4
vs
vt
d(u)=(3+1+4)-(5)=3
实际上在一个网络G中,当沿可行流 f 的一条 增广链μ,以调整量θ=1改进f ,得到的新可行流 f ’ 的流量,有 w(f ’ )=w(f )+1,而此时总费用b(f ’ ) 比b(f)增加了
b(f)b(f) bij(fij fij) bij(fij fij)
条方向相反的边(vi , vj)和(vj , vi)代替,各边的权
Lij为: 1、边(vi , vj) ∈E
li
j
di j
, ,
当fij cij 当fij cij
2、边( vj , vi )为原图 G中(vi,vj)的反向边
l ji
di j
, ,
当fi j 当fi j
0 0
并且将权为+∞的边去掉。
这样,在网络G中寻找关于f 的最小费用增广链就等于 价于在长度网络L(f )中寻求从vs 到vt 的最短路。 对偶算法基本步骤:
是指要寻求一个最大流 f ,使流量w(f)=v,且流的总费用
达到最小。 d(f)
dij fij
(vi,vj)E
如果要求f为最大流,问题转化为最小费用最大流。
其算法有:原始算法和对偶算法。
定义24:已知网络G=(V,E,C,d),f是G上的一
个可行流,u为从vs 到vt的可增广链,d(u)为链u的费 用。
并且分别构造相对应的赋权有向图L( f(1 )) ,
L(f (2) ) , L(f(3)),L(f(4))。
由于在L(f(4))中已经不存在从vs到vt的最短路,
因此,可行流f (4),v(f(1))=11是最小费用最大 流。
v1 (5)
(0)
(0)
vt
vs
(5)
(0)
(5)
s
v2
vt v3
v2 (0)
(1)、取零流f (0) ={0}.
(2)、如果在第K-1步得到最小费用流f (K-1),流量 w(f(k))<v,则构造长度网络L(f (k-1))。
(3)、 在长度网络L(f (k-1))中,寻求从vs到vt的最短路。如 果不存在最短路,则f (k-1)就是最小费用最大流。如果存在 最短路,则在原网络G中得到相对应的增广链μ。
m m i n (ciij nfi(jk 1 )),m (fii(jkn 1 ))
θ=min{8,5,7}=5,得到新可行流f (1),如图b所示。
f (k) ij
f (k1) ij
f (k1) ij
, 在上 ,在 上
其 它 不 变
按照以上的算法,依次类推,可以得到f (1), f (2),f( 3),f (4),流量分别为5,7,10,11,
(4)、在G中与这条最短路相应的可增广链μ上,对f (k–1)进行 调整, f(k) = f(k)uθ,取调整量
m m i n (ciij nfi(jk 1 )),m (fii(jkn 1 ))
令:
f (k) ij
f (k1) ij
f (k1) ij
, 在上 ,在 上
其 它 不 变
得到一个新的可行流f(k),其流量为w(f(k-1))+θ;
如果w(f(k-1))+θ=v,则停止;否则令f(k)代替f(k-1)返回2 。
例 求图所示网络中的流量为10的最小费用流,
弧旁的权是( cij , dij ).
v1
(10, 4)
(7, 1)
(2, 6)
(cij, dij) vt
vs
(8, 1)
v2
f(1),w( f (1))=5
图 c d( f (1))=5*1+5*2+5*3
f (1) =5
v1
(1)
(4) ( -1)
(6)
vs
(-1) (-2)
到 2)
vt
的
最
短
路
v1
(1) v2 (10, 3) v3
v1
(4)
vt
(6)
vt
vs
vs
(2)
(2)
(1)
v2 (3)
v3 L(f(0))
v2
v3பைடு நூலகம்
图b
f (0) =0
(2)在原网络G中,与这条最短路相对应的增广链为μ= (vs ,v2 ,v1 ,vt )。
(3)在μ上对f (0)={0}进行调整,
最小费用流,不断进行到w(f(k))=v为止。
定理12:如果f是流量为w(f)的最小费用流,u是关于f的从 vs到vt的一条最小费用可增广链,则f经过u调整流量θ得
到新可行流f’(f’=fuθ),一定是流量为w(f)+θ可行流中
的最小费用流。
定义25:网络G=(V,E,C,d),f是G上的一个
可行流,保持原网络各点,每一条边 ( vi , vj )用两