1、摘要 本片论文通过建立线性约束模型,并用lingo进行求解,分别对所给的模型一和模型二求解。 我们首先确定模型一和模型二求解时所用的铲位,分别以模型一和模型二的要求为目标函数,题中各类要求为约束函数,在10个铲位的情况下,通过lingo软件编程求解得到最优解,通过最优解分别剔除掉利用率最低的三个铲点,为下来模型的求解做铺垫。 针对模型一,我们确定了铲位1、2、3、4、8、9、10共7个铲位,以模型一的要求为目标函数,题中各类要求为约束函数,在确定铲位的情况下,求解得到需要出动7个电铲,13辆卡车,得到在满足各类条件的要求下最小运量为85628.6吨公里。并得到了13辆卡车的最优运输路线,具体参
2、见下文。 针对模型二,我们确定了1、2、3、5、7、8、10共7个铲位,类似于模型一的求解,通过lingo编程求得需要出动7辆铲车,20辆卡车,得到在满足各类条件的要求下最大产量为100716吨,其中矿石产量为55594吨,岩石产量为45122吨。同时通过使卡车空载运行里程最短,也求出了20辆卡车在各条线路上的分配情况,具体参见下文。论文最后我们也剖析了所选用模型的优点和需要改进的地方,也与实际联系比较。关键词:露天矿 车辆安排 线性规划 约束条件 最优解 lingo露天矿生产的车辆安排一问题重述铁矿是钢铁工业的主要原料基地,它的生产主要是由电铲装车、卡车运输来完成。提高这些大型设备的利用率是
3、增加露天矿经济效益的首要任务。 铲位情况:露天矿里有若干个爆破生成的石料堆,每堆称为一个铲位,每个铲位将石料分成矿石和岩石。每个铲位的矿石、岩石数量,以及矿石的平均铁含量(称为品位)都是已知的。每个铲位至多能安置一台电铲,电铲的平均装车时间为5分钟。 卸点情况:卸货地点(以下简称卸点)有卸矿石的矿石漏、2个铁路倒装场(以下简称倒装场)和卸岩石的岩石漏、岩场等,每个卸点都有各自的产量要求。矿石卸点需要的铁含量假设要求都为29.5%1%,称为品位限制,搭配的量在一个班次(8小时)内满足品位限制即可。卸点一个班次内不变。卡车的平均卸车时间为3分钟。 所用卡车情况:所用卡车载重量为154吨,平均时速2
4、8。卡车每个班次每台车消耗近1吨柴油。在安排时不应发生卡车等待的情况。电铲和卸点都不能同时为两辆及两辆以上卡车服务。卡车每次都是满载运输。 车道情况:每个铲位到每个卸点的道路都是专用的宽60的双向车道,不会出现堵车现象,每段道路的里程都是已知的。 求解要求:卡车不等待条件下满足产量和品位要求,并分别满足下列条件;1.总运量(吨公里)最小,同时出动最少的卡车,从而运输成本最小;2.利用现有车辆运输,获得最大的产量(岩石产量优先;在产量相同的情况下,取总运量最小的解)。请你就两条原则分别建立数学模型,并给出一个班次生产计划的快速算法。针对下面的实例,给出具体的生产计划、相应的总运量及岩石和矿石产量
5、。某露天矿有铲位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
6、个卸点的距离; 为第i个铲点可提供的矿石量; 为第i个铲点可提供的岩石量; 为第j个卸点需要的石料量; 为第i个铲点矿石的含铁量; 一次往返所需时间; 所需固定卡车数; 所需固定车次; 所需变动车次。四基于线性规划的模型的建立4.1 7个铲位的确定有10个铲位,却只有7量铲车,题目中并没有要求尽量减少铲车的数目,为了在8小时内完成任务,我们假设7量铲车都工作,我们第一步需要做的就是确定铲车工作的7个铲位。首先假设10个铲位都有铲车,根据线性约束条件求出最优解,然后选取解中装车次数最多的7个铲位为所用铲位。4.1.1 针对目标一的铲位的确定 针对原则一,目标函数为: 其中表示往返于第i个铲点和第
7、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矿石漏135213倒装场I4045倒装场II15268岩石漏8143岩场7015由上表可看出铲位5和6没有用到,从铲位的装车次数来看,铲
8、位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矿石漏16347112018倒装场I45112535935倒装场II5617102750岩石漏618148334140岩场2973263822917铲位车次总和97939667923591964985 由上表中最后一行易知,铲位6、9、4的装车车次相对来说
9、最少,故被淘汰,针对模型二,选用的铲位为1、2、3、5、7、8、10。4.2 基于线性规划对模型一、二的求解4.2.1 对模型一的求解 7个铲位确定后对公式中无关变量进行剔除,并加上限制条件,使所用卡车不超过20辆: 同样通过lingo求解(程序参见附录三)可得:表3 模型一7个铲位到卸点的运输车次铲位1铲位2铲位3铲位4铲位8铲位9铲位10矿石漏135411倒装场I4243倒装场II13270岩石漏8143岩场7015然后,对各条线路进行卡车车辆分配,其中,我们把卡车分为固定和变动两类,固定类的卡车一个班次内只在指定条线路上往返运输,变动类的卡车可中途变化运输路线。我们首先求出每条线路上所需
10、固定类的卡车数目,为了调度简便,我们假设优先最大量的安排固定类卡车,每条线路上的固定卡车数目计算方法如下:固定卡车数目=公式中表示取整其中, 一次往返所需时间: = 3+5+继而,可算出每条线路固定车次:固定车次=故可得下表:表4 模型一各线路上卡车数目总车次一次往返所需时间所需固定卡车数所需固定车次所需变动车次R(1,4)8110.814437R(2,1)1330.30013R(2,2)4212.31393R(2,3)1324.60013R(3,3)224002R(3,4)4313.51358R(4,2)4312.91376R(8,1)5416.212925R(9,5)7012.613832
11、R(10,1)1113.50011R(10,3)7010.214723R(10,5)1510.50015优先安排各铲点固定卡车数目如下表:表5 模型一各路线固定卡车数R(1,4)R(2,2)R(3,5)R(4,2)R(8,1)R(9,5)R(10,3)固定卡车编号1234567此时共用了7辆卡车,为计算各条线路变动卡车数,画出更直观的变动车次与线路关系如下图: 图1 变动车次与线路关系 当一辆卡车在R(1,4)上运输了37次后,有两种选择,要么从铲点1继续装载运往其他卸点,要么不再返回铲点1,直接从岩石漏出发去往其他需要的铲点,根据这种临近选择路线的方法,我们得到模型一的变动车辆安排如下:表6
12、 模型一各线路上变动车次的安排卡车编号运行线路运行车次8R(1,4)37R(3,4)59R(10,5)15R(9,5)2510R(2,1)13R(8,1)511R(8,1)20R(10,1)1112R(10,3)23R(3,3)2R(2,3)713R(2,3)6R(2,2)3R(4,2)6R(9,5)7R(3,4)3至此,对于模型一的求解结束,共需13辆卡车,7辆铲车,最小运量为85628.6吨公里,在实际中,变动车次安排中大部分车辆直接从卸点开始变动到另一线路,并未返回到原来铲点,节省了不少时间和路程,为了计算方便,运算过程中并未考虑这些,故可以轻松完成任务,并且总的运量更小。4.2.2 模
13、型二的求解选用的铲位为1、2、3、5、7、8、10,类似于模型一的求解,变换目标函数并剔除不必要的变量,并加上限制条件,使所用卡车不超过20辆: 利用lingo求解(程序参见附录四)得:表7 模型二7个铲位到卸点的运输车次铲位1铲位2铲位3铲位4铲位8铲位9铲位10矿石漏2059倒装场I15497125倒装场II1926432515岩石漏8128501岩场12281281表8 模型二各线路上卡车数目总车次一次往返所需时间所需固定卡车数所需固定车次所需变动车次R(1,2)1516.20015R(1,4)8110.814437R(2,2)4912.313910R(2,3)1924.61190R(2
14、,4)2815.60028R(3,1)2026.11182R(3,3)2624.01206R(3,4)5013.513515R(5,2)7113.52701R(5,4)119.8001R(5,5)1223.10012R(7,2)2514.40025R(7,3)4311.41421R(7,5)2818.61253R(8,1)5916.22581R(8,3)2515.0001R(8,5)1218.60012R(10,3)1510.2001R(10,5)8110.514536 由于时间原因,从铲点7运往倒装场I的矿石最多只能运19次,比计算出的少了6次,有计算可知,并不影响倒装场I的品位要求,故可舍
15、弃。 得到的车次安排如下:卡车编号运行线路运行车次1R(1,4)442R(2,2)393R(2,3)19R(10,5)14R(3,1)18R(10,3)15R(3,3)206R(3,4)357R(5,2)358R(5,2)359R(7,3)4210R(7,5)25R(7,2)111R(8,1)29R(10,3)112R(8,1)29R(10,3)1表9 模型二的卡车分配13R(10,5)4514R(1,4)37R(2.4)515R(1,2)15R(2,2)10R(2,4)716R(2,4)16R(3,4)15R(3,1)117R(3,1)1R(3,3)6R(7,3)1R(7,5)3R(8,5)
16、12R(8,1)118R(5,4)1R(5,5)12R(5,2)1R(7,2)11R(10,5)119R(8,3)25R(10,3)1020R(10,3)2R(10,5)34R(7,2)7 至此 ,模型二的求解结束,选择1、2、3、5、7、8、10共7个铲点,出动20辆卡车,获得的最大产量为100716吨,其中矿石产量为55594吨,岩石产量为45122吨。五模型的评价优点: 1.模型中假设车次都是往返于指定线路,简化了问题,便于找到合适的线性模型,同时也符合实际,便于工作人员对车辆进行调度。 2.在车次安排上面,充分考虑了线路问题,为尽可能减少空载运行距离,当线路变动时,并不是盲目变动,而是
17、选择就近线路继续运输,这样一来有些车次完成任务后并不需要回到原来的铲点,直接从卸点开始另外的任务,节省了时间和路程。缺点: 1.模型中后半部分的车辆安排,计算量太大,由于时间关系并未给出合理的计算程序或快捷的通用算法,不易于推广。 2.在分配变动车次时,有些变动卡车需要从一个铲位调到另一个铲位工作,其中定要再消耗一定时间和里程,本次计算中并未考虑,在实际中会引起矛盾。 3.对于模型一和模型二求出的最优解只是相对于选定的铲位而言,并不是对10个铲位而言的最优解,由于对于每种模型铲位的选取都有=120种可能,穷举运算量太大,所以只是选取了相对好的解。参考文献 【1】网络优化 赫孝良 【2】姜启源,
18、谢金星,叶俊.数学模型.高等教育出版社.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卷第34期 文 章标号1008-438X(2004)03-04-0099-05附录一data:kuangshi=9500,10500,10000,1
19、0500,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.26 1.9 4.42 0.64 5.89 5.19 0.99 3.86 1.76 5.61 4.21 1.9 3.72 1.27 5.61 4 1.13 3.16 1.8
20、3 4.56 2.95 1.27 2.25 2.74 3.51 2.74 2.25 2.81 2.6 3.65 2.46 1.48 0.78 4.21 2.46 1.9 2.04 1.62 3.72 2.46 0.64 3.09 1.27 5.05 1.06 1.27 3.51 0.5 6.1 0.57;enddatamin=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*ch
21、eci(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(xiedia
22、n(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,13
23、000;juli=5.26 1.9 4.42 0.64 5.89 5.19 0.99 3.86 1.76 5.61 4.21 1.9 3.72 1.27 5.61 4 1.13 3.16 1.83 4.56 2.95 1.27 2.25 2.74 3.51 2.74 2.25 2.81 2.6 3.65 2.46 1.48 0.78 4.21 2.46 1.9 2.04 1.62 3.72 2.46 0.64 3.09 1.27 5.05 1.06 1.27 3.51 0.5 6.1 0.57;enddatamax=sum(link:154*checi);for(chandian(i):sum
24、(xiedian(j)|j#LT#4:154*checi(i,j)=kuangshi(i););for(chandian(i):sum(xiedian(j)|j#GT#3: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(cha
25、ndian(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:mine problem;sets:chandian/1.7/:kuangshi,yanshi,hantieliang;xiedian/1.5/:shiliao;link(chandian,xiedian):checi,juli;endsetsdata:
26、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.26 1.9 4.42 0.64 5.89 5.19 0.99 3.86 1.76 5.61 4.21 1.9 3.72 1.27 5.61 2.95 1.27 2.25 2.74 3.51 2.46 1.48 0.78
27、 4.21 2.46 1.9 2.04 1.62 3.72 2.46 1.27 3.51 0.5 6.1 0.57;enddatamax=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)=shiliao(j););for(xiedian(j)|j#LT#4:(sum(chandian(i):154*checi(i,j)*hantieliang(i)/(sum(chan
28、dian(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:sum(link:checi*(8+30*juli/7)=9600;);for(link:gin(ch
29、eci););end 附录四model:title:mine problem;sets:chandian/1.7/:kuangshi,yanshi,hantieliang;xiedian/1.5/:shiliao;link(chandian,xiedian):checi,juli;endsetsdata:kuangshi=9500,10500,10000,10500,13000,13500,12500;yanshi=12500,11000,13500,10500,11500,13500,12500;hantieliang=0.3,0.28,0.29,0.32,0.31,0.33,0.31;sh
30、iliao=12000,13000,13000,19000,13000;juli=5.26 1.9 4.42 0.64 5.89 5.19 0.99 3.86 1.76 5.61 4.21 1.9 3.72 1.27 5.61 4 1.13 3.16 1.83 4.56 1.9 2.04 1.62 3.72 2.46 0.64 3.09 1.27 5.05 1.06 1.27 3.51 0.5 6.1 0.57;enddatamax=sum(link:154*checi);for(chandian(i):sum(xiedian(j)|j#LT#4:154*checi(i,j)=kuangshi
31、(i););for(chandian(i):sum(xiedian(j)|j#GT#3: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:sum(link:checi*(8+30*juli/7)=9600;);for(link:gin(checi););end 15