露天矿生产的车辆安排数学建模论文.docx
《露天矿生产的车辆安排数学建模论文.docx》由会员分享,可在线阅读,更多相关《露天矿生产的车辆安排数学建模论文.docx(21页珍藏版)》请在冰豆网上搜索。
![露天矿生产的车辆安排数学建模论文.docx](https://file1.bdocx.com/fileroot1/2023-7/26/b69745dd-caa8-4896-a83d-e6169d0f800a/b69745dd-caa8-4896-a83d-e6169d0f800a1.gif)
露天矿生产的车辆安排数学建模论文
摘要
本片论文通过建立线性约束模型,并用lingo进行求解,分别对所给的模型一和模型二求解。
我们首先确定模型一和模型二求解时所用的铲位,分别以模型一和模型二的要求为目标函数,题中各类要求为约束函数,在10个铲位的情况下,通过lingo软件编程求解得到最优解,通过最优解分别剔除掉利用率最低的三个铲点,为下来模型的求解做铺垫。
针对模型一,我们确定了铲位1、2、3、4、8、9、10共7个铲位,以模型一的要求为目标函数,题中各类要求为约束函数,在确定铲位的情况下,求解得到需要出动7个电铲,13辆卡车,得到在满足各类条件的要求下最小运量为85628.6吨公里。
并得到了13辆卡车的最优运输路线,具体参见下文。
针对模型二,我们确定了1、2、3、5、7、8、10共7个铲位,类似于模型一的求解,通过lingo编程求得需要出动7辆铲车,20辆卡车,得到在满足各类条件的要求下最大产量为100716吨,其中矿石产量为55594吨,岩石产量为45122吨。
同时通过使卡车空载运行里程最短,也求出了20辆卡车在各条线路上的分配情况,具体参见下文。
论文最后我们也剖析了所选用模型的优点和需要改进的地方,也与实际联系比较。
关键词:
露天矿车辆安排线性规划约束条件最优解lingo
露天矿生产的车辆安排
一.问题重述
铁矿是钢铁工业的主要原料基地,它的生产主要是由电铲装车、卡车运输来完成。
提高这些大型设备的利用率是增加露天矿经济效益的首要任务。
铲位情况:
露天矿里有若干个爆破生成的石料堆,每堆称为一个铲位,每个铲位将石料分成矿石和岩石。
每个铲位的矿石、岩石数量,以及矿石的平均铁含量(称为品位)都是已知的。
每个铲位至多能安置一台电铲,电铲的平均装车时间为5分钟。
卸点情况:
卸货地点(以下简称卸点)有卸矿石的矿石漏、2个铁路倒装场(以下简称倒装场)和卸岩石的岩石漏、岩场等,每个卸点都有各自的产量要求。
矿石卸点需要的铁含量假设要求都为29.5%
1%,称为品位限制,搭配的量在一个班次(8小时)内满足品位限制即可。
卸点一个班次内不变。
卡车的平均卸车时间为3分钟。
所用卡车情况:
所用卡车载重量为154吨,平均时速28
。
卡车每个班次每台车消耗近1吨柴油。
在安排时不应发生卡车等待的情况。
电铲和卸点都不能同时为两辆及两辆以上卡车服务。
卡车每次都是满载运输。
车道情况:
每个铲位到每个卸点的道路都是专用的宽60
的双向车道,不会出现堵车现象,每段道路的里程都是已知的。
求解要求:
卡车不等待条件下满足产量和品位要求,并分别满足下列条件;
1.总运量(吨公里)最小,同时出动最少的卡车,从而运输成本最小;
2.利用现有车辆运输,获得最大的产量(岩石产量优先;在产量相同的情况下,取总运量最小的解)。
请你就两条原则分别建立数学模型,并给出一个班次生产计划的快速算法。
针对下面的实例,给出具体的生产计划、相应的总运量及岩石和矿石产量。
某露天矿有铲位10个,卸点5个,现有铲车7台,卡车20辆。
各卸点一个班次的产量要求:
矿石漏1.2万吨、倒装场Ⅰ1.3万吨、倒装场Ⅱ1.3万吨、岩石漏1.9万吨、岩场1.3万吨。
二.问题的假设
1)为了方便调度卡车,假设优先安排使卡车尽量往返于指定线路上。
2)假设一个班次内卡车中途不停歇。
3)电铲和卡车在一个班次的时间内都要正常工作,不需要维修。
4)题中所给的数据都是准确无误的。
5)只考虑一个班次的生产计划。
6)电铲和卸点都不能同时为两辆及两辆以上的卡车服务。
7)卡车的调头时间可以忽略不计。
8)假设一个班次内卸点不发生改变。
三.符号的说明
表示往返于第i个铲点和第j个卸点的车次数;
表示第i个铲点到第j个卸点的距离;
为第i个铲点可提供的矿石量;
为第i个铲点可提供的岩石量;
为第j个卸点需要的石料量;
为第i个铲点矿石的含铁量;
一次往返所需时间;
所需固定卡车数;
所需固定车次;
所需变动车次。
四.基于线性规划的模型的建立
4.17个铲位的确定
有10个铲位,却只有7量铲车,题目中并没有要求尽量减少铲车的数目,为了在8小时内完成任务,我们假设7量铲车都工作,我们第一步需要做的就是确定铲车工作的7个铲位。
首先假设10个铲位都有铲车,根据线性约束条件求出最优解,然后选取解中装车次数最多的7个铲位为所用铲位。
4.1.1针对目标一的铲位的确定
针对原则一,目标函数为:
其中
表示往返于第i个铲点和第j个卸点的车次数,
表示第i个铲点到第j个卸点的距离。
约束条件有:
(1)铲点所供石料量限制:
其中
为第i个铲点可提供的矿石量,
为第i个铲点可提供的岩石量;
(2)卸点所需石料量限制:
其中
为第j个卸点需要的石料量;
(3)品位限制:
(j=1、2、3;)
其中
为第i个铲点矿石的含铁量;
(4)时间限制:
在lingo软件中求解(程序参见附录一)得:
表1模型一10个铲位到卸点的运输车次
注:
表中空白处表示为零
铲位1
铲位2
铲位3
铲位4
铲位5
铲位6
铲位7
铲位8
铲位9
铲位10
矿石漏
13
52
13
倒装场I
40
45
倒装场II
15
2
68
岩石漏
81
43
岩场
70
15
由上表可看出铲位5和6没有用到,从铲位的装车次数来看,铲位7的装车次数为2,是最少,故铲位5、6、7被淘汰,7个铲车分别安排在铲位1、铲位2、铲位3、铲位4、铲位8、铲位9、铲位10。
4.1.2针对目标二的铲位的确定
针对目标二,其约束条件不变,目标函数变为:
用lingo求解(程序参见附录二)得:
表2模型二10个铲位到卸点的运输车次
铲位1
铲位2
铲位3
铲位4
铲位5
铲位6
铲位7
铲位8
铲位9
铲位10
矿石漏
1
63
47
11
20
18
倒装场I
4
51
1
25
35
9
35
倒装场II
56
17
10
27
50
岩石漏
6
18
14
8
33
41
40
岩场
29
7
32
6
38
22
9
17
铲位车次总和
97
93
96
67
92
35
91
96
49
85
由上表中最后一行易知,铲位6、9、4的装车车次相对来说最少,故被淘汰,针对模型二,选用的铲位为1、2、3、5、7、8、10。
4.2基于线性规划对模型一、二的求解
4.2.1对模型一的求解
7个铲位确定后对公式中无关变量进行剔除,并加上限制条件,使所用卡车不超过20辆:
同样通过lingo求解(程序参见附录三)可得:
表3模型一7个铲位到卸点的运输车次
铲位1
铲位2
铲位3
铲位4
铲位8
铲位9
铲位10
矿石漏
13
54
11
倒装场I
42
43
倒装场II
13
2
70
岩石漏
81
43
岩场
70
15
然后,对各条线路进行卡车车辆分配,其中,我们把卡车分为固定和变动两类,固定类的卡车一个班次内只在指定条线路上往返运输,变动类的卡车可中途变化运输路线。
我们首先求出每条线路上所需固定类的卡车数目,为了调度简便,我们假设优先最大量的安排固定类卡车,每条线路上的固定卡车数目计算方法如下:
固定卡车数目=
公式中[]表示取整
其中,一次往返所需时间:
=3+5+
继而,可算出每条线路固定车次:
固定车次=
故可得下表:
表4模型一各线路上卡车数目
总车次
一次往返所需时间
所需固定卡车数
所需固定车次
所需变动车次
R(1,4)
81
10.8
1
44
37
R(2,1)
13
30.3
0
0
13
R(2,2)
42
12.3
1
39
3
R(2,3)
13
24.6
0
0
13
R(3,3)
2
24
0
0
2
R(3,4)
43
13.5
1
35
8
R(4,2)
43
12.9
1
37
6
R(8,1)
54
16.2
1
29
25
R(9,5)
70
12.6
1
38
32
R(10,1)
11
13.5
0
0
11
R(10,3)
70
10.2
1
47
23
R(10,5)
15
10.5
0
0
15
优先安排各铲点固定卡车数目如下表:
表5模型一各路线固定卡车数
R(1,4)
R(2,2)
R(3,5)
R(4,2)
R(8,1)
R(9,5)
R(10,3)
固定卡车编号
1
2
3
4
5
6
7
此时共用了7辆卡车,为计算各条线路变动卡车数,画出更直观的变动车次与线路关系如下图:
图1变动车次与线路关系
当一辆卡车在R(1,4)上运输了37次后,有两种选择,要么从铲点1继续装载运往其他卸点,要么不再返回铲点1,直接从岩石漏出发去往其他需要的铲点,根据这种临近选择路线的方法,我们得到模型一的变动车辆安排如下:
表6模型一各线路上变动车次的安排
卡车编号
运行线路
运行车次
8
R(1,4)
37
R(3,4)
5
9
R(10,5)
15
R(9,5)
25
10
R(2,1)
13
R(8,1)
5
11
R(8,1)
20
R(10,1)
11
12
R(10,3)
23
R(3,3)
2
R(2,3)
7
13
R(2,3)
6
R(2,2)
3
R(4,2)
6
R(9,5)
7
R(3,4)
3
至此,对于模型一的求解结束,共需13辆卡车,7辆铲车,最小运量为85628.6吨公里,在实际中,变动车次安排中大部分车辆直接从卸点开始变动到另一线路,并未返回到原来铲点,节省了不少时间和路程,为了计算方便,运算过程中并未考虑这些,故可以轻松完成任务,并且总的运量更小。
4.2.2模型二的求解
选用的铲位为1、2、3、5、7、8、10,类似于模型一的求解,变换目标函数并剔除不必要的变量,并加上限制条件,使所用卡车不超过20辆:
利用lingo求解(程序参见附录四)得:
表7模型二7个铲位到卸点的运输车次
铲位1
铲位2
铲位3
铲位4
铲位8
铲位9
铲位10
矿石漏
20
59
倒装场I
15
49
71
25
倒装场II
19
26
43
25
15
岩石漏
81
28
50
1
岩场
12
28
12
81
表8模型二各线路上卡车数目
总车次
一次往返所需时间
所需固定卡车数
所需固定车次
所需变动车次
R(1,2)
15
16.2
0
0
15
R(1,4)
81
10.8
1
44
37
R(2,2)
49
12.3
1
39
10
R(2,3)
19
24.6
1
19
0
R(2,4)
28
15.6
0
0
28
R(3,1)
20
26.1
1
18
2
R(3,3)
26
24.0
1
20
6
R(3,4)
50
13.5
1
35
15
R(5,2)
71
13.5
2
70
1
R(5,4)
1
19.8
0
0
1
R(5,5)
12
23.1
0
0
12
R(7,2)
25
14.4
0
0
25
R(7,3)
43
11.4
1
42
1
R(7,5)
28
18.6
1
25
3
R(8,1)
59
16.2
2
58
1
R(8,3)
25
15.0
0
0
1
R(8,5)
12
18.6
0
0
12
R(10,3)
15
10.2
0
0
1
R(10,5)
81
10.5
1
45
36
由于时间原因,从铲点7运往倒装场I的矿石最多只能运19次,比计算出的少了6次,有计算可知,并不影响倒装场I的品位要求,故可舍弃。
得到的车次安排如下:
卡车编号
运行线路
运行车次
1
R(1,4)
44
2
R(2,2)
39
3
R(2,3)
19
R(10,5)
1
4
R(3,1)
18
R(10,3)
1
5
R(3,3)
20
6
R(3,4)
35
7
R(5,2)
35
8
R(5,2)
35
9
R(7,3)
42
10
R(7,5)
25
R(7,2)
1
11
R(8,1)
29
R(10,3)
1
12
R(8,1)
29
R(10,3)
1
表9模型二的卡车分配
13
R(10,5)
45
14
R(1,4)
37
R(2.4)
5
15
R(1,2)
15
R(2,2)
10
R(2,4)
7
16
R(2,4)
16
R(3,4)
15
R(3,1)
1
17
R(3,1)
1
R(3,3)
6
R(7,3)
1
R(7,5)
3
R(8,5)
12
R(8,1)
1
18
R(5,4)
1
R(5,5)
12
R(5,2)
1
R(7,2)
11
R(10,5)
1
19
R(8,3)
25
R(10,3)
10
20
R(10,3)
2
R(10,5)
34
R(7,2)
7
至此,模型二的求解结束,选择1、2、3、5、7、8、10共7个铲点,出动20辆卡车,获得的最大产量为100716吨,其中矿石产量为55594吨,岩石产量为45122吨。
五.模型的评价
优点:
1.模型中假设车次都是往返于指定线路,简化了问题,便于找到合适的线性模型,同时也符合实际,便于工作人员对车辆进行调度。
2.在车次安排上面,充分考虑了线路问题,为尽可能减少空载运行距离,当线路变动时,并不是盲目变动,而是选择就近线路继续运输,这样一来有些车次完成任务后并不需要回到原来的铲点,直接从卸点开始另外的任务,节省了时间和路程。
缺点:
1.模型中后半部分的车辆安排,计算量太大,由于时间关系并未给出合理的计算程序或快捷的通用算法,不易于推广。
2.在分配变动车次时,有些变动卡车需要从一个铲位调到另一个铲位工作,其中定要再消耗一定时间和里程,本次计算中并未考虑,在实际中会引起矛盾。
3.对于模型一和模型二求出的最优解只是相对于选定的铲位而言,并不是对10个铲位而言的最优解,由于对于每种模型铲位的选取都有
=120种可能,穷举运算量太大,所以只是选取了相对好的解。
参考文献
【1】网络优化赫孝良
【2】姜启源,谢金星,叶俊.数学模型.高等教育出版社.2011.1
【3】露天矿生产的车辆安排赵航陈哲李辉
【4】李继承.数学实验.高等教育出版社.2006.10
【5】工程数学学报2003年12月第20卷第7期文章编号:
1005-3085
(2003)07-0069-07
【6】工程数学学报2003年12月第20卷第7期文章编号:
1005-3085
(2003)07-0083-07
【7】四川理工学院学报(自然科学版)2004年12月第17卷第3•4期文
章标号1008-438X(2004)03-04-0099-05
附录一
data:
kuangshi=9500,10500,10000,10500,11000,12500,10500,13000,13500,12500;
yanshi=12500,11000,13500,10500,11500,13500,10500,11500,13500,12500;
hantieliang=0.3,0.28,0.29,0.32,0.31,0.33,0.32,0.31,0.33,0.31;
shiliao=12000,13000,13000,19000,13000;
juli=5.261.94.420.645.89
5.190.993.861.765.61
4.211.93.721.275.61
41.133.161.834.56
2.951.272.252.743.51
2.742.252.812.63.65
2.461.480.784.212.46
1.92.041.623.722.46
0.643.091.275.051.06
1.273.510.56.10.57;
enddata
min=@sum(link:
154*checi*juli);
@for(chandian(i):
@sum(xiedian(j)|j#LT#4:
154*checi(i,j))<=kuangshi(i););
@for(chandian(i):
@sum(xiedian(j)|j#GT#3:
154*checi(i,j))<=yanshi(i););
@for(xiedian(j):
@sum(chandian(i):
154*checi(i,j))>=shiliao(j););
@for(xiedian(j)|j#LT#4:
(@sum(chandian(i):
154*checi(i,j)*hantieliang(i)))/(@sum(chandian(i):
154*checi(i,j)))>=0.285;);
@for(xiedian(j)|j#LT#4:
(@sum(chandian(i):
154*checi(i,j)*hantieliang(i)))/(@sum(chandian(i):
154*checi(i,j)))<=0.305;);
@for(chandian(i):
@sum(xiedian(j):
5*checi(i,j))<=480;);
@for(xiedian(j):
@sum(chandian(i):
3*checi(i,j))<=480;);
@for(link:
@gin(checi););
附录二
data:
kuangshi=9500,10500,10000,10500,11000,12500,10500,13000,13500,12500;
yanshi=12500,11000,13500,10500,11500,13500,10500,11500,13500,12500;
hantieliang=0.3,0.28,0.29,0.32,0.31,0.33,0.32,0.31,0.33,0.31;
shiliao=12000,13000,13000,19000,13000;
juli=5.261.94.420.645.89
5.190.993.861.765.61
4.211.93.721.275.61
41.133.161.834.56
2.951.272.252.743.51
2.742.252.812.63.65
2.461.480.784.212.46
1.92.041.623.722.46
0.643.091.275.051.06
1.273.510.56.10.57;
enddata
max=@sum(link:
154*checi);
@for(chandian(i):
@sum(xiedian(j)|j#LT#4:
154*checi(i,j))<=kuangshi(i););
@for(chandian(i):
@sum(xiedian(j)|j#GT#3:
154*checi(i,j))<=yanshi(i););
@for(xiedian(j):
@sum(chandian(i):
154*checi(i,j))>=shiliao(j););
@for(xiedian(j)|j#LT#4:
(@sum(chandian(i):
154*checi(i,j)*hantieliang(i)))/(@sum(chandian(i):
154*checi(i,j)))>=0.285;);
@for(xiedian(j)|j#LT#4:
(@sum(chandian(i):
154*checi(i,j)*hantieliang(i)))/(@sum(chandian(i):
154*checi(i,j)))<=0.305;);
@for(chandian(i):
@sum(xiedian(j):
5*checi(i,j))<=480;);
@for(xiedian(j):
@sum(chandian(i):
3*checi(i,j))<=480;);
@for(link:
@gin(checi););
end
附录三
model:
title:
mineproblem;
sets:
chandian/1..7/:
kuangshi,yanshi,hantieliang;
xiedian/1..5/:
shiliao;
link(chandian,xiedian):
checi,juli;
endsets
data:
kuangshi=9500,10500,10000,11000,10500,13000,12500;
yanshi=12500,11000,13500,11500,10500,11500,12500;
hantieliang=0.3,0.28,0.29,0.31,0.32,0.31,0.31;
shiliao=12000,13000,13000,19000,13000;
juli=5.261.94.420.645.89
5.190.993.861.765.61
4.211.93.721.275.61
2.951.272.252.743.51
2.461.480.784.212.46
1.92.041.623.722.46
1.273.510.56.10.57;
e