钢管订购和运输优化模型
要铺设一条的输送天然气的主管道,如图1所示(见反面).经筛选后可以生产这种主管道钢管的钢厂有.图中粗线表示铁路,单细线表示公路,双细线表示要铺设的管道(假设沿管道或者原来有公路,或者建有施工公路),圆圈表示火车站,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位:km).
为方便计,1km主管道钢管称为1单位钢管.
一个钢厂如果承担制造这种钢管,至少需要生产500个单位.钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:

1
2
3
4
5
6
7

800
800
1000
2000
2000
2000
3000

160
155
155
160
155
150
160
1单位钢管的铁路运价如下表:
里程(km)
≤300
301~350
351~400
401~450
451~500
运价(万元)
20
23
26
29
32
里程(km)
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)如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情形给出一种解决办法,并对图2按(1)的要求给出模型和结果.
一,基本假设沿铺设的主管道以有公路或者有施工公路.
在主管道上,每千米卸1单位的钢管.
公路运输费用为1单位钢管每千米0.1万元(不足整千米部分按整千米计算)
在计算总费用时,只考虑运输费和购买钢管的费用,而不考虑其他费用.
在计算钢厂的产量对购运计划影响时,只考虑钢厂的产量足够满足需要的情况,即钢厂的产量不受限制.
假设钢管在铁路运输路程超过1000km时,铁路每增加1至100km,1单位钢管的运价增加5万元.
二、符号说明:
:第个钢厂; 
:第个钢厂的最大产量; 
:输送管道(主管道)上的第个点; 
:第个钢厂1单位钢管的销价; 
:钢厂向点运输的钢管量;  
:在点与点之间的公路上,运输点向点方向铺设的钢管量;
()
:1单位钢管从钢厂运到结点的最少总费用,即公路运费﹑铁路运费和
钢管销价之和;  
:与点相连的公路和铁路的相交点; 
:相邻点与之间的距离; 

三、模型的建立与求解问题一:讨论如何调整主管道钢管的订购和运输方案使总费用最小由题意可知,钢管从钢厂到运输结点的费用包括钢管的销价﹑钢管的铁路运输费用和钢管的公路运输费用.在费用最小时,对钢管的订购和运输进行分配,可得出本问题的最佳方案.
求钢管从钢厂运到运输点的最小费用
1)将图1转换为一系列以单位钢管的运输费用为权的赋权图.
由于钢管从钢厂运到运输点要通过铁路和公路运输,而铁路运输费用是分段函数,与全程运输总距离有关.又由于钢厂直接与铁路相连,所以可先求出钢厂到铁路与公路相交点的最短路径.如图3

图3 铁路网络图
依据钢管的铁路运价表,算出钢厂到铁路与公路相交点的最小铁路运输费用,并把费用作为边权赋给从钢厂到的边.再将与相连的公路、运输点及其与之相连的要铺设管道的线路(也是公路)添加到图上,根据单位钢管在公路上的运价规定,得出每一段公路的运费,并把此费用作为边权赋给相应的边.以为例得图4.

图4 钢管从钢厂运到各运输点的铁路运输与公路运输费用权值图
2)计算单位钢管从到的最少运输费用根据图4,借助图论软件包中求最短路的方法求出单位钢管从到的最少运输费用依次为:170.7,160.3,140.2,98.6,38,20.5,3.1,21.2,64.2,92,96,106,121.2,128,142(单位:万元).加上单位钢管的销售价,得出从钢厂购买单位钢管运输到点的最小费用依次为:330.3,320.3,300.2,258.6,198,180.5,163.1,181.2,224.2,252,256,266,281.2,288,302(单位:万元).
同理,可用同样的方法求出钢厂﹑﹑﹑﹑﹑到点的最小费用,从而得出钢厂到点的最小总费用(单位:万元)为:
表1 到点最小费用
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
S1
320.3
300.2
258.6
198
180.5
163
181.2
224.2
252
256
266
281.2
288
302

360.3
345.2
326.6
266
250.5
241
226.2
269.2
297
301
311
326.2
333
347

375.3
355.2
336.6
276
260.5
251
241.2
203.2
237
241
251
266.2
273
287

410.3
395.2
376.6
316
300.5
291
276.2
244.2
222
211
221
236.2
243
257

400.3
380.2
361.6
301
285.5
276
266.2
234.2
212
188
206
226.2
228
242

405.3
385.2
366.6
306
290.5
281
271.2
234.2
212
201
195
176.2
161
178

425.3
405.2
386.6
326
310.5
301
291.2
259.2
237
226
216
198.2
186
162
2,建立模型运输总费用可分为两部分:
运输总费用=钢厂到各点的运输费用+铺设费用.
运输费用:若运输点向钢厂订购单位钢管,则钢管从钢厂运到运输点所需的费用为.由于钢管运到必须经过,所以可不考虑,那么所有钢管从各钢厂运到各运输点上的总费用为:.
铺设费用:当钢管从钢厂运到点后,钢管就要向运输点的两边段和段运输(铺设)管道.设向段铺设的管道长度为,则向段的运输费用为(万元);由于相邻运输点与之间的距离为,那么向段铺设的管道长为,所对应的铺设费用为(万元).所以,主管道上的铺设费用为:
总费用为:
又因为一个钢厂如果承担制造钢管任务,至少需要生产500个单位,钢厂在指定期限内最大生产量为个单位,故 或 因此本问题可建立如下的非线性规划模型:
3,模型求解:
由于MATLAB不能直接处理约束条件:或,我们可先将此条件改为,得到如下模型:
用MATLAB求解,分析结果后发现购运方案中钢厂的生产量不足500单位,下面我们采用不让钢厂生产和要求钢厂的产量不小于500个单位两种方法计算:
1)不让钢厂生产
计算结果:1278632(万元)(此时每个钢厂的产量都满足条件).
2)要求钢厂的产量不小于500个单位
计算结果: 1279664 (万元) (此时每个钢厂的产量都满足条件).
比较这两种情况,得最优解为,=1278632(万元) 具体的购运计划如表2:
表2 问题一的订购和调运方案
订购量
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
S1
800
0
201
133
200
266
0
0
0
0
0
0
0
0
0
S2
800
179
11
14
295
0
0
300
0
0
0
0
0
0
0
S3
1000
139
11
186
0
0
0
664
0
0
0
0
0
0
0
S4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
S5
1015
0
358
242
0
0
0
0
0
0
415
0
0
0
0
S6
1556
0
0
0
0
0
0
0
0
0
351
86
333
621
165
S7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0