数学建模期中试题 2.docx
《数学建模期中试题 2.docx》由会员分享,可在线阅读,更多相关《数学建模期中试题 2.docx(10页珍藏版)》请在冰豆网上搜索。
数学建模期中试题2
数学建模实验报告
露天矿生产的车辆安排
院(系)名称
专业名称
学生姓名
指导教师
摘要
本实验报告要解决的问题主要围绕减少实际中的经济成本而展开。
在经济运作中,减少成本是作为露天矿生产带来利润最大化的有效手段之一。
而合理安排有效路线和车次,成为了解决减少成本问题的关键。
问题的分析
试题属于运输的整数规划问题。
10个矿位,5个卸点,运输矿石和岩石两种产品。
此题的重点在于限制条件的提取,由于题中所给条件较多如:
每个铲位至多能安置一台电铲,电铲的平均装车时间为5分钟。
卸货地有卸矿石的矿石漏、2个铁路倒装场和卸岩石的岩石漏、岩场等。
每个卸点都有各自的产量要求,岩石卸点的品味限制都为29.5%
1%。
电铲和卸点都不能同时为两辆及两辆以上卡车服务。
卡车每次都是满载运输,且在一个班次中不存在卡车等待情况,卡车只在开始时点火一次。
卡车的平均卸车时间为3分钟。
一个班次为8小时等等。
总之,限制条件比较隐晦,需要从题中认真挖掘。
本文需要解决的问题是如何设计一个班次使得总运量(吨公里)最小,同时出动最少的卡车,从而运输成本最小。
一个班次的生产计划应该包含以下内容:
出动几台电铲,分别在哪些铲位上;出动几辆卡车,分别在哪些路线上各运输多少次。
因此问题可转化为:
1、如何在满足所有限制条件的条件下,使得一个班次内所有卡车的总运量最小。
2在总运量最小的情况下,如何设计卡车路线,使得出动的卡车数最少,从而使总成本最低。
模型假设
1.卡车每次都是满载,且不出现堵车情况。
2.发动机点火时需要消耗相当多的电瓶能量,故每个班次每台车只在开时点火一次。
3.不存在卡车等待时间。
4.在铲位或卸点处因两条路线(及以上)造成的冲突时,只要平均
时间能完成任务即可,不进行排时讨论。
符号约定
Xij:
卸点i与产位j之间需要安排的车次数;
Cij:
从i号铲位到j号卸点的距离,单位:
公里;
Tij:
在i号铲位到j号卸点路线上运行一个周期平均所需时间,单位:
分;
Aij:
从i号铲位到j号卸点最多能同时运行的卡车数,单位:
辆;
Bij:
从i号铲位到j号卸点,一辆车一个班次中最多可以运行次数;
pi:
i号铲位的矿石铁含量;
:
j号卸点任务需求;
:
i号铲位的铁矿石储量,单位:
万吨;
:
i号铲位的岩石储量,单位:
万吨;
:
描述第i号铲位是否使用的0−1变量,不使用的铲位为0,使用的为1;
:
从i号铲位到j号卸点所需要的车的最小辆数(实数)数值上等于
/
模型建立
问题一:
总运量最小运输路线的设计
目标函数:
由题意易得目标函数为
(1)道路能力约束:
一个电铲(卸点)不能同时为两辆卡车服务,一条路线上最多能同时运行的卡车数是有限制的。
卡车从i号铲位到j号卸点运行一个周期平均所需时间为
(分钟)。
由于装车时间5分钟大于卸车时间3分钟,所以这条路线上在卡车不等待条件下最多能同时运行的卡车数为:
;其中最后开始发车的一辆卡车一个班次中在这条路线上最多可以运行的次数为(其他卡车可能比此数多1次)
,这里
是开始装车时最后一辆车的延时的时间。
一个班次中这条固定路线上最多可能运行的总车次大约为:
,总吨数
。
(2)电铲能力约束:
一台电铲不能同时为两辆卡车服务,所以一台电铲在一个班次中的最大可能产量为8×60/5×154(吨)。
(3)卸点能力约束:
卸点的最大吞吐量为每小时60/3=20车次,于是一个卸点在一个班次中的最大可能产量为8×20×154(吨)。
(4)铲位储量约束:
铲位的矿石和岩石产量都不能超过相应的储藏量。
(5)产量任务约束:
各卸点的产量不小于该卸点的任务要求。
(6)铁含量约束:
各矿石卸点的平均品位要求都在指定的范围内。
(7)电铲数量约束:
电铲数量约束无法用普通不等式表达,可以引入10个0—1变量来标志各个铲位是否有产量。
(8)整数约束:
当把问题作为整数规划模型时,流量xij除以154为非负整数。
(9)卡车数量约束:
不超过20辆。
得到的一种模型为
(0)
(1)
(2)
(3)
(4)
(5)
(6)
为整数
(7)
(8)
模型求解
由于限制条件较多,需要用快速解法
利用LINGO程序对以上模型求解
Model:
sets:
cai/1..10/:
p,cy,ck,f;
xie/1..5/:
q;
link(cai,xie):
a,b,c,t,x,che;
endsets
data:
v=28;
p=30282932313332313331;
q=1.21.31.31.91.3;
c=5.26001.90005.89000.64004.4200
5.19000.99005.61001.76003.8600
4.21001.90005.61001.27003.7200
4.00001.13004.56001.83003.1600
2.95001.27003.51002.74002.2500
2.74002.25003.65002.60002.8100
2.46001.48002.46004.21000.7800
1.90002.04002.46003.72001.6200
0.64003.09001.06005.05001.2700
1.27003.51000.57006.10000.5000;
cy=1.251.101.351.051.151.351.051.151.351.25;
ck=0.951.051.001.051.101.251.051.301.351.25;
enddata
@for(link:
t=120*c/v+8;a=@floor(t/5);b=@floor((485-5*a)/t));
min=@sum(link:
x*154*c);
@for(link:
x<=a*b);
@for(cai(i):
@sum(xie(j):
x(i,j))<=f(i)*96);
@for(xie(j):
@sum(cai(i):
x(i,j))<=160);
@for(cai(i):
x(i,1)+x(i,2)+x(i,5)<=ck(i)*10000/154);
@for(cai(i):
x(i,3)+x(i,4)<=cy(i)*10000/154);
@for(xie(j):
@sum(cai(i):
x(i,j))>=q(j)*10000/154);
@sum(cai(i):
x(i,1)*(p(i)-30.5))<=0;
@sum(cai(i):
x(i,2)*(p(i)-30.5))<=0;
@sum(cai(i):
x(i,5)*(p(i)-30.5))<=0;
@sum(cai(i):
x(i,1)*(p(i)-28.5))>=0;
@sum(cai(i):
x(i,2)*(p(i)-28.5))>=0;
@sum(cai(i):
x(i,5)*(p(i)-28.5))>=0;
@sum(link:
x/b)<=20;
@sum(cai:
f)<=7;
@for(link:
@gin(x));
@for(cai:
@bin(f));
@for(link:
che=x/b);
end
运行结果:
总运量85628吨公里
8.6万吨公里总产量70378吨
7.0万吨;矿石产量38192吨
3.8万吨岩石产量32186吨
3.2万吨;
出动7台铲车,分别安排在1,2,3,4,8,9,10七个铲位。
出动13辆卡车。
图表解析:
由LINGO程序可得:
从i号铲位到j号卸点所需要的车的最小辆数
(
);如表格所示:
铲位1
铲位2
铲位3
铲位4
铲位5
铲位6
铲位7
铲位8
铲位9
铲位10
矿石漏
0.867
1.862
0.314
倒装场Ⅰ
1.077
1.162
岩场
1.892
0.326
岩石漏
1.841
1.229
倒装场Ⅱ
0.684
0.1
1.489
易得:
有7辆卡车在一个班次内在固定路线上运输,它们的分布如下:
铲位1
铲位2
铲位3
铲位4
铲位5
铲位6
铲位7
铲位8
铲位9
铲位10
矿石漏
1
倒装场I
1
1
岩场
1
岩石漏
1
1
倒装场II
1
由LINGO程序可得:
每条路线上的总车次数(Xij:
),如表所示:
铲位1
铲位2
铲位3
铲位4
铲位5
铲位6
铲位7
铲位8
铲位9
铲位10
矿石漏
0
13
0
0
0
0
0
54
0
11
倒装场I
0
42
0
43
0
0
0
0
0
0
岩场
0
0
0
0
0
0
0
0
70
15
岩石漏
81
0
43
0
0
0
0
0
0
0
倒装场II
0
13
2
0
0
0
0
0
0
70
由上面所示的几个图可得:
固定运行的卡车共7辆,其它6辆车需要改变工作路线。
此时每条线上剩余的车次如表所示:
Ij
路线
卡车数
1—2
矿石漏—铲位2
13
1—8
矿石漏—铲位8
25
1—10
矿石漏—铲位10
11
2—2
倒装场I—铲位2
3
2—4
倒装场I—铲位4
6
3—2
倒装场II—铲位2
13
3—3
倒装场II—铲位3
2
3—10
倒装场II—铲位10
23
4—1
岩石漏—铲位1
37
4—3
岩石漏—铲位3
8
5—9
岩场—铲位9
32
5—10
岩场—铲位10
15
在改变路线的6辆车中:
第一辆:
在1-2线路运输3次,剩余时间T-13(
)=87分钟,可以继续在1-8线路运输87/(
)=5次。
剩余时间极小,忽略,此时1-8线路剩余车次25-5=20。
第二辆:
在1-8线路运输20次,剩余时间T-20(
)=157分钟,可以继续在1-10线路运输157/(
)=11次。
剩余时间极小,忽略,此时1-10线路无剩余车次。
第三辆:
在2-2线路运输3次,剩余时间T-3(Ta+Tb+2D22/V)=443分钟,可以继续在2-4线路运输6次,剩余时间为370分钟。
可以继续在3-2线路运输=13次,剩余时间为51分钟;可以继续在3-3线路运输2次;剩余时间极小,忽略,此时3-3线路无剩余车次。
第四辆:
在3-10线路运输23次,剩余时间247分钟,可以继续在4-1线路运输23次。
4-1线路运输剩余14次。
第五辆:
在4-1线路运输14次,剩余时间330分钟,可以继续在4-3线路运输8次,剩余时间222分钟;可以继续在5-9线路运输17次。
剩余时间极小,忽略,此时5-9线路剩余15次。
第六辆:
在5-9线路运输15次,剩余时间292分钟;可以继续在5-10线路运输15次。
剩余时间135分钟,此时5-10线路无剩余车次。
编号
路线
运输次数
1
矿石漏—铲位8
29
2
倒装场I—铲位2
39
3
倒装场I—铲位4
37
4
倒装场II—铲位10
47
5
岩石漏—铲位1
44
6
岩石漏—铲位3
35
7
岩场—铲位9
38
8
矿石漏—铲位2
13
矿石漏—铲位8
5
9
矿石漏—铲位8
20
矿石漏—铲位10
11
10
倒装场I—铲位2
3
倒装场I—铲位4
6
倒装场II—铲位2
13
倒装场II—铲位3
2
11
倒装场II—铲位10
23
岩石漏—铲位1
23
12
岩石漏—铲位1
14
岩石漏—铲位3
8
岩场—铲位9
17
13
岩场—铲位9
15
岩场—铲位10
15
模型分析
鉴于铲点到卸点线路的复杂性,我们把问题分成两个层次加以解决。
我们采用了整体规划的算法,建立了数学模型以求得最小运输量。
其基本思想是提取重要的约束性条件,对于总产量达最小的目标函数进行约束,运用lingo程序求出其最优解,最后得出结论。