钢管订购和运输求解1Word文件下载.docx
- 文档编号:16792052
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:28
- 大小:224.96KB
钢管订购和运输求解1Word文件下载.docx
《钢管订购和运输求解1Word文件下载.docx》由会员分享,可在线阅读,更多相关《钢管订购和运输求解1Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。
3000
160
155
150
1单位钢管的铁路运价如下表:
里程(km)
≤300
301~350
351~400
401~450
451~500
运价(万元)
20
23
26
29
32
501~600
601~700
701~800
801~900
901~1000
37
44
50
55
60
注:
1000km以上每增加1至100km运价增加5万元。
公路运输费用为1单位钢管每公里0.1万元(不足整公里部分按整公里计算)。
钢管可由铁路、公路运往铺设地点(不只是运到点
,而是管道全线)。
(1)请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。
(2)请就
(1)的模型分析:
哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。
(3)如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情形给出一种解决办法,并对图二按
(1)的要求给出模型和结果。
2、运费矩阵的计算模型
问题分析:
我们只考虑本题第一问的求解。
首先,所有钢管必须要运到天然气主管道铺设线上的节点
,然后才能向左或右铺设,因此,必须求出从每个钢管厂
(记为i=1,……,7)到每个节点
(记为j=1,……,15)的每单位钢管最小运费Cij(不妨称为运费矩阵)及其对应的运输方式和线路。
因为题目中没有给出装卸成本,我们简单假设总是采用最经济的运输方式,虽然这个铺设在实际中可能不太接近现实,也就是说,在运输过程中需要多次装卸也是允许的(如铁路转公路,再转铁路,等等)。
自然的想法是运输路线应该是走最短路径,但由于有两种运输和计价方式(铁路和公路),公路运输费用为1单位钢管每公里0.1万元(不足整公里部分按整公里计算),运费是路程的线性函数;
然而,铁路运费要通过运输里程查表得到,是一个阶梯函数。
这两种计价方式混合在一起,使得我们不能直接在整个铁路、公路混合的运输网络上计算最短路径作为运输路线,但可以分析分别在铁路、公路网上技计算最短路径,然后换算成相应的费用;
最后在整个网络上以两个子网上相应的运费为权,再求一次最短路问题,就可以把它们统一成一个标准的运费矩阵。
铁路子网络:
假设铁路运输线应该是走最短路径,而且采用连续路径计价方式一定优于分段计价方式(其实题中数据并不符合这一规定。
例如题中650km的运价为44万元,而分成300km和350km两段计价只需要43万元,这种情况不太符合实际,可能是每题时选择数据的疏忽,我们不过多考虑这种情况)。
这时,我们可以把铁路运输子网独立出来,在这个网络上计算任意两个节点i,j之间的最短路径长度dij1,然后按照这个最短路长度查铁路运价表得到最小费用Cij1。
在无向网络上求任意两点之间最短路径算法很多,尤其对本题这种弧上的权(距离)全为正数的情况,存在相对比较的算法。
例如,求任意两点之间最短路径的Floyd-Warshall算法是(可参阅网络优化的有关书籍)
(24)
这实际上是一种标号算法,其中n是网络节点数(节点编号为1,2,……,n);
wij是给定的网络上相邻节点i,j之间的直接距离(i,j不相邻时取wij充分大就可以了);
uij(k)可以看成是任意两个节点i,j之间距离的中间迭代值,(或称为临时编号),即从节点i到j但不允许经过其他节点k,k+1,……,n时的最短距离;
自然uij(k+1)就是i,j之间的最短距离(或称为永久标号),即dij1。
下面说明如何用LINGO软件求最短路。
对图中节点编号(除已经编号的节点si、Ai外,在增加编号B1……B17,如图所示)。
实际上如果令铁路运输子网以外的节点间的距离为充分大,就可以把整个铁路、公路网络放在一起考虑。
这样虽然增加了问题的规模,但对于最后将两个网络合并起来考虑是有利的。
所以我们采用这种想法来做。
对于本题,我们设这个充分大的数为BIG=20000(km),显然这已经足够大了。
相应的LINGO程序如下(简要解释参见程序中的注释语句):
model:
!
铁路运输网的运费计算;
SETS:
!
NOTES表示节点集合;
NODES/S1,S2,S3,S4,S5,S6,S7,
A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,
B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15,B16,B17/;
派生集合ROADS表示的是网络中的直接连接的道路(弧),
由于并非所有节点间都有道路直接连接,所以将弧具体列出,这是稀疏集合;
ROADS(NODES,NODES)/
要铺设的管道;
A1,A2A2,A3A3,A4A4,A5A5,A6A6,A7A7,A8A8,A9A9,A10A10,A11
A11,A12A12,A13A13,A14A14,A15
公路网;
B1,A2B2,A3B5,A4B4,A5B6,A6B7,A7S1,A7B8,A8B9,A9,B10,A10,
B11,A11B13,A12B15,A13S6,A14B16,A14B17,A15S7,A15
铁路网;
B1,B3B2,B3B3,B5B4,B6B6,B7B7,S1B5,B8B8,S1B8,S2B8,B9
B9,S3B9,B10B10,B12B12,B11B11,S5B12,S4B12,B14B14,B13
B14,B15B15,B16B16,S6B16,B17B17,S7
距离W0(i,j)是节点i到j的直接距离(已知);
/:
W0;
属性W表示基本的权矩阵(直接距离,考虑对称性并增加对不相邻弧的考虑),
D1(i,j)表示节点i到j的最优行驶路线的路长,
C1(i,j)表示节点i到j铁路运输的最小单位运价(万元);
LINK(NODES,NODES):
W,D1,C1;
属性U表示迭代过程的权矩阵(临时标号);
NNN(Nodes,nodes,nodes):
U;
ENDSETS
DATA:
针对铁路网计算时,将公路网的距离定为充分大(BIG=20000);
BIG=20000;
W0=20000200002000020000200002000020000200002000020000
20000200002000020000
20000200002000020000200002000020000200002000020000
20000200002000020000200002000020000
4508011503061952011002021200720
6905201708846269016070
3201607029030;
输出费用C1到文本文件中,以备后用;
@TEXT(TrainCost.txt)=@writefor(nodes(i):
@writefor(nodes(j):
@format(c1(i,j),'
5.0f'
)),@newline
(1));
ENDDATA
CALC:
无向网络,根据给定的直接距离具有对称性,得到初始距离矩阵;
@FOR(LINK(i,j)|@IN(ROADS,i,j):
W(i,j)=W0(i,j);
W(j,i)=W0(i,j);
);
@FOR(LINK(i,j)|i#eq#j:
W(i,j)=0);
所有无直接连接的节点间的距离定为充分大;
@FOR(LINK(i,j)|i#ne#j#and##not#@IN(ROADS,i,j)#and#
#not#@IN(ROADS,j,i):
W(i,j)=BIG;
W(j,i)=BIG;
以下三个循环语句就是最短路计算公式(Floyd-Warshall算法);
k=1的初值;
@FOR(NNN(i,j,k)|k#eq#1:
U(i,j,k)=W(i,j));
迭代过程;
@For(nodes(k)|k#lt#@size(nodes):
@FOR(LINK(i,j):
U(i,j,k+1)=
@if(U(i,j,k)#le#U(i,k,k)+U(k,j,k),
U(i,j,k),U(i,k,k)+U(k,j,k))));
最后一次迭代得到D1;
@FOR(NNN(i,j,k)|k#eq#@size(nodes):
D1(i,j)=
U(i,j,k),U(i,k,k)+U(k,j,k)));
以下就是按最短路D1查找相应运费C1的计算公式;
@FOR(LINK|D1#eq#0:
C1=0);
@FOR(LINK|D1#gt#0#and#D1#le#300:
C1=20);
@FOR(LINK|D1#gt#300#and#D1#le#350:
C1=23);
@FOR(LINK|D1#gt#350#and#D1#le#400:
C1=26);
@FOR(LINK|D1#gt#400#and#D1#le#450:
C1=29);
@FOR(LINK|D1#gt#450#and#D1#le#500:
C1=32);
@FOR(LINK|D1#gt#500#and#D1#le#600:
C1=37);
@FOR(LINK|D1#gt#600#and#D1#le#700:
C1=44);
@FOR(LINK|D1#gt#700#and#D1#le#800:
C1=50);
@FOR(LINK|D1#gt#800#and#D1#le#900:
C1=55);
@FOR(LINK|D1#gt#900#and#D1#le#1000:
C1=60);
@FOR(LINK|D1#gt#1000:
C1=60+5*@floor(D1/100-10)
+@if(@mod(D1,100)#eq#0,0,5));
ENDCALC
end
其实,这个LINGO模型中的计算过程完全是在计算(CALC)段完成的,所以LINGO很容易就得到了结果,相应的费用存放在文本文件TrainCost.txt中,这是一个39行,每行39个数据的文件,即铁路运输费用。
为节省篇幅,我们这里略去这个文件的具体内容,但应注意,上面文件中,对应费用大于1000时,其实就等价于这两点无法仅仅通过铁路相互到达。
【20000km,费用1010万元,60+(20000-1000)*5/100=60+950=1010】
公路子网络
类似地,可以假设公路运输路线应该是走最短路径,把公路运输子网独立出来,在这个网络上计算任意两个节点i,j之间的最短路长度,然后按照这个最短路长度dij2乘以0.1得到最小运费Cij2。
(因为公路运输费用为1单位钢管每公里0.1万元)。
此时,上面的LINGO模型中除了将C1改为C2,D1改为D2外,主要还需作以下修改
(1)初始的直接距离W0需要修改,新的数据段为:
针对公路网计算时,将铁路网的距离定为充分大(BIG=20000);
W0=104301750606194205201680480300
220210420500
326001051031124270
101062110302020
2000020000200002000020000200002000020000
2000020000200002000020000;
输出费用C2到文本文件中,以备后用(因为有小数,格式也变化了,否则一行太长);
@TEXT(TruckCost.txt)=@writefor(nodes(i):
c2(i,j),@newline
(1)));
(2)从距离转化成费用的语句需要修改为:
以下就是按最短路D2查找相应运费C2的计算公式;
@FOR(LINK:
C2=.1*D2);
作以上修改后,用LINDO求解得到相应的费用,存放在文本TruckCost.txt中,这是一个1521行,每行一个数据的文件,即公路运输费用。
这个文件中,对应费用等于2000时,其实等价于这两点无法仅仅通过公路相互到达。
相应的LINGO程序如下
公路运输网的运费计算;
A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,
B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15,B16,B17/;
属性W表示基本的权矩阵(直接距离),
D2(i,j)表示节点i到j的最优行驶路线的路长,
C2(i,j)表示节点i到j公路运输的最小单位运价(万元);
W,D2,C2;
输出费用C2到文本文件中,以备后用(因为有小数,格式也变化了);
@FOR(LINK(i,j)|i#ne#j#and##not#@IN(ROADS,i,j)
#and##not#@IN(ROADS,j,i):
D2(i,j)=
购运费用矩阵
在此基础上,就可以将以上两个子网络(需要分别看成两个完全子图)组合成一个网络,每条弧上相应的运费Cij1或Cij2为权(如果某条弧(i,j)上既有铁路运费Cij1,又有公路运费Cij2,只需取其中较小的一个即可)。
此时,再计算从每个钢管厂S1,S2……S7(记为i=1,2,……,7),到每个节点A1,A2,……,A15(记为j=1,2,……,15)的最短路,得到的就是每单位钢管的最小运费Cij.。
算法仍然可以采用Floyd-Warshall算法,完全类似地修改LINDO程序如下:
铁路公路混合运输网的运费计算;
B14,B15B15,B16B16,S6B16,B17B17,S7/;
属性W表示基本的权矩阵(由C1、C2得到),
C1(i,j)表示节点i到j铁路运输的最小单位运价(万元),
C2(i,j)表示节点i到j公路运输的最小单位运价(万元),
C(i,j)表示节点i到j混合运输的最小单位运价(万元);
W,C1,C2,C;
读出前面刚刚计算得到的结果;
C1=@);
C2=@);
输出费用C到文本文件中,以备后用;
@TEXT(FinalCost.txt)=@writefor(nodes(i)|i#le#7:
@writefor(nodes(j)|j#ge#8#and#j#le#22:
@format(c(i,j),'
6.1f'
得到初始距离矩阵;
W=@if(C1#le#C2,C1,C2));
C(i,j)=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 钢管 订购 运输 求解