露天矿生产的车辆安排-数学建模
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
承诺书
我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。
如有违反竞赛规则的行为,我们将受到严肃处理。
我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等)。
我们参赛选择的题号是(从A/B/C/D中选择一项填写):
我们的参赛报名号为(如果赛区设置报名号的话):
所属学校(请填写完整的全名):武汉工程大学
参赛队员(打印并签名) :
指导教师或指导教师组负责人(打印并签名):
日期: 2015 年 8 月 6日赛区评阅编号(由赛区组委会评阅前进行编号):
编号专用页
赛区评阅编号(由赛区组委会评阅前进行编号):
全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):
露天矿生产的车辆安排
摘要
本文主要是通过建模求解出对车辆的合理安排的问题,在建模的过程中我们进行了部分的优劣筛选,从而满足题目中所给原则和要求。
在对目标一的建模时,我们首先利用贪心原理对需要安置电铲的铲位进行了合理的筛选,得出结论为:必须安置电铲的铲位为:1 2 3 4 9 10;可能安置电铲的铲位为:5 6 7 8;则该问题就需要求解4种方案,再通过lingo编程求解可知,当选择安置电铲的铲位为:1 2 3 4 8 9 10 时,总运量(吨公里数)最小:85628吨,且出动的卡车最少:13辆,从而运输成本最少,具体路线的车辆安排见正文。
对目标二的建模时,我们需要利用目标一的建模,将目标函数进行改变,从而得到当所选铲位为:1 2 3 4 7 9 10 时可以得到最大的产量:100100.0吨,此时的矿石产量为:50974.0吨,岩石产量为:49126.0吨,出动的卡车数目为:20辆,总运量(吨公里数)为:151964.1吨·公里,具体路线的车辆安排见正文。
最后,我们建立计算机仿真模型。
在论文的最后,我们还对模型进行了优缺点的分析,说明了模型的实际操作和使用的范围。
关键词:贪心原理lingo编程优劣筛选
一、问题重述与分析
1.1问题重述
钢铁工业是国家工业的基础之一,铁矿是钢铁工业的主要原料基地。
许多现代化铁矿是露天开采的,它的生产主要是由电动铲车(以下简称电铲)装车、电动轮自卸卡车(以下简称卡车)运输来完成。
提高这些大型设备的利用率是增加露天矿经济效益的首要任务。
铲位情况:
露天矿里有若干个爆破生成的石料堆,每堆称为一个铲位,每个铲位已预先根据铁含量将石料分成矿石和岩石。
一般来说,平均铁含量不低于25%的为矿石,否则为岩石。
每个铲位的矿石、岩石数量,以及矿石的平均铁含量(称为品位)都是已知的。
每个铲位至多能安置一台电铲,电铲的平均装车时间为5分钟。
卸点情况:
卸货地点(以下简称卸点)有卸矿石的矿石漏、2个铁路倒装场(以下简称倒装场)和卸岩石的岩石漏、岩场等,每个卸点都有各自的产量要求。
从保护国家资源的角度及矿山的经济效益考虑,应该尽量把矿石按矿石卸点需要的铁含量(假设要求都为29.5% 1%,称为品位限制)搭配起来送到卸点,搭配的量在一个班次(8小时)内满足品位限制即可。
从长远看,卸点可以移动,但一个班次内不变。
卡车的平均卸车时间为3分钟。
所用卡车情况:
km。
卡车的耗油量很大,每个班所用卡车载重量为154吨,平均时速28h
次每台车消耗近1吨柴油。
发动机点火时需要消耗相当多的电瓶能量,故一个班次中只在开始工作时点火一次。
卡车在等待时所耗费的能量也是相当可观的,原则上在安排时不应发生卡车等待的情况。
电铲和卸点都不能同时为两辆及两辆以上卡车服务。
卡车每次都是满载运输。
其他情况:
每个铲位到每个卸点的道路都是专用的宽60m的双向车道,不会出现堵车现象,每段道路的里程都是已知的。
一个班次的生产计划应该包含以下内容:出动几台电铲,分别在哪些铲位上;出动几辆卡车,分别在哪些路线上各运输多少次(因为随机因素影响,装卸时间与运输时间都不精确,所以排时计划无效,只求出各条路线上的卡车数及安排即可)。
求解要求:
一个合格的计划要在卡车不等待条件下满足产量和质量(品位)要求,而一个好的计划还应该考虑下面两条原则之一:
1、总运量(吨公里)最小,同时出动最少的卡车,从而运输成本最小;
2、利用现有车辆运输,获得最大的产量(岩石产量优先;在产量相同的情况下,取总运量最小的解)。
请你就两条原则分别建立数学模型,并给出一个班次生产计划的快速算法。
针对下面的实例,给出具体的生产计划、相应的总运量及岩石和矿石产量。
某露天矿有铲位10个,卸点5个,现有铲车7台,卡车20辆。
各卸点一个班次的产量要求:矿石漏1.2万吨、倒装场Ⅰ1.3万吨、倒装场Ⅱ1.3万吨、岩石漏1.9万吨、岩场1.3万吨。
铲位和卸点位置的二维示意图、各铲位和各卸点之间的距离(公里)见表1,各铲位矿石、岩石数量(万吨)和矿石的平均铁含量见表2。
1.2问题分析
对问题一的分析:
问题一要求总运量最小,同时出动最少的卡车数,使得运输成本最少。
可以看出这是一个优化模型,需要求出一定条件下的最优解。
可以根据非线性规划建立该问题的数学模型。
在本问题中,影响总运量的限制条件有产量要求、铲位资源限制、卸点品位限制、运输车辆限制,目标函数就是总运量的关于运输量和距离的函数。
这样可以确定铲位,然后再确定卡车的安排。
对问题二的分析:
问题二要求总产量最大,当总产量相等时,我们考虑岩石总产量、总运量、需要的卡车数目,选取岩石产量相对较大,总运量相对较小,所需卡车数较少的方案为优。
以此寻求满足题目条件的最优解。
二、符号说明
L 为每辆卡车载重量
aj f 为第j 个铲位的矿石产量(1,2,3...7)j = bj f 为第j 个铲位的岩石产量(1,2,3...7)j = j P 为第j 个铲位的矿石的平均铁含量(1,2,3...7)j =
i N 为第i 个卸点的产量要求 (1,2,3,4,5)i = ij X 为从第j 个铲位到第i 个卸点的运送次数
ij D 为第j 个铲位和第i 个卸点间的距离
ij K 为一个班次内一辆车完成从第j 铲位装载到第i 个卸点卸载货物后再回到
第j 铲位的完整过程的次数
三、问题假设
(1) 每个铲位至多能安置一台电铲,卡车的装卸过程中没有意外。
(2) 卡车只在开始工作时点火一次,不发生熄火现象。
(3) 电铲和卸点都不能同时为两辆及两辆以上卡车服务。
(4) 卡车每次都是满载而归。
(5)在铲位和卸点之间不会出现堵车现象。
(5) 卸点可以移动,但一个班次内不变,不会影响最终结果。
(6) 当卡车的运输路线发生变化时,在赶往新路线上花费的时间忽略不计。
四、模型与求解
4.1由贪心原理确定部分铲位
通过分析表1,由铲位和卸点的距离和卸点的品位限制综合考虑。
首先看岩石漏,离其最近的为的铲位为铲位9,而该铲位的矿石平均铁含量为33%不满足品位限制,故再选择矿石平均铁含量小于(29.5%+1%)的铲位来使矿石平均含铁量达到品位限制,有铲位1、2、3平均铁含量均小于(29.5%+1%),这时选择它们中离岩石漏最近的铲位3;接着考虑倒装场Ⅰ,离其最近的为的铲位为铲位2,而该铲位的矿石平均铁含量为28%不满足品位限制,故再选择矿石平均铁含量大于(29.5%-1%)的铲位来使矿石平均含铁量达到品位限制,其他铲位平均铁含量均大于(29.5%-1%),这时选择它们中离倒装场Ⅰ最近的铲位4;再考虑倒装场Ⅱ,离其最近的为的铲位为铲位10,而该铲位的矿石平均铁含量为31%不满足品位限制,故再选择矿石平均铁含量小于(29.5%+1%)的铲位来
使矿石平均含铁量达到品位限制,铲位1、2、3平均铁含量均小于(29.5%+1%),这时选择它们中离倒装场Ⅱ最近的铲位3。
至于岩场、岩石漏没有品位限制,选择离岩场最近的铲位10和离岩石漏最近的铲位1。
综上,选出铲位1、2、3、4、9、10,共6个,最后一个铲位的确定需要分别结合两个问题的条件,从铲位5、6、7、8中选出。
4.2.1问题一模型建立
要求总运量(吨公里)最小,目标函数为:
5
7
11min ij ij
i j w L X D ===⋅⋅∑∑
(L 为每辆卡车载重量,ij X 为从第j 个铲位到第i 个卸点的运送次数,ij D 为第j 个铲位和第i 个卸点间的距离) 约束条件有:
(1)产量要求,即所有铲位向各卸点运送的石料总和应不小于该卸点所需的石料,函数关系如下:
()
7
1
1,2,3,4,5ij
i j L X
N i =⋅≥=∑
显然也有:
ij
X 0≥且为整数
(i N 为第i 个卸点的产量要求)
(2)资源限制,石料的资源限制即为各铲位输出的岩石和矿石量应不大于自身拥有的量,车辆的资源限制为总车辆数不超过20辆,函数关系如下: 对于岩石:
3
1(j 1,2,3...7)
ij
aj i L X
f =⋅≤=∑
对于矿石:
5
4
(j 1,2,3...7)
ij
bj i L X
f =⋅≤=∑
记
()126081,2,3,4,5;1,2,3...7260ij ij K i j D t t v ⎡⎤
⎢⎥
⨯===⎢
⎥⨯⨯⎢⎥++⎢⎥⎣⎦
(“[]”表示 向左取整)
车辆数的限制:
5
7
11
20
ij
i j ij
X K
==≤∑∑
(aj f 为第j 个铲位的矿石产量,bj f 为第j 个铲位的岩石产量;ij K 为一个班次内
一辆车完成从第j 铲位装载到第i 个卸点卸载货物后再回到第j 铲位的完整过程的次数)
(3)品位限制,即为各卸点接收的矿石的平均含铁量是29.5%±1%,函数关系如下:
()
7
1
71
28.5%30.5%1,2,3ij
j
j ij
j L X
P i L X ==⋅⋅≤
≤=⋅∑∑
(j P 为第j 个铲位的矿石的铁含量)
(5)一个班次(8小时)装卸车次数限制,即装车次数不大于(608
5
⨯)次,卸车次数不大于(
608
3
⨯)次: 装车限制:
5
1
608
(j 1,2,3...7)5ij i X =⨯≤
=∑
卸车限制:
7
1
608
(i 1,2,3,4,5)3
ij j X =⨯≤
=∑
(6)使没有车辆等待的条件,即同一条路线上,所有车辆装车时间不会大于在该条路线上运行总时间,函数关系如下:
112260[]1ij ij ij X D t t t K v ⎛⎫⨯⨯⋅+≤++ ⎪ ⎪⎝⎭
(“[]”符号表示:向左取整)
4.2.2目标一的模型求解
根据已知数据运用lingo 软件求最优解。
已知数据如下:
铲位10个,卸点5个,电铲7台,卡车20辆。
各卸点一个班次的产量要求:矿石漏1.2万吨、倒装场Ⅰ1.3万吨、倒装场Ⅱ1.3万吨、岩石漏1.9万吨、岩场1.3万吨。
电铲的平均装车时间1t 为5分钟,卡车的平均卸车时间2t 为3分钟。
所用卡车载重量为154吨,平均时速v 为h km /28,所需矿石含铁量为
%1%5.29 。
各铲位和各卸点之间的距离、各铲位矿石、岩石数量(万吨)和矿石的平均铁含量见表1、表2。
表2 各铲位矿石、岩石数量(万吨)和矿石的平均铁含量
求解过程如下:由于7个铲位中有6个确定,还有1个铲位是从剩下的4个铲位中选出,故分为4种方案(分别为:铲位1、2、3、4、9、10、5;铲位1、2、3、4、9、10、6;铲位1、2、3、4、9、10、7;铲位1、2、3、4、9、10、8),将每组对应的数据依次带入,用lingo 软件求解,比较算得的总运量及卡车数,得出最优方案。
源代码见附录一。
依据lingo 程序运行结果得到4种方案相关数据表3:
由上表可知:方案4所对应的总运量最小,且卡车数最少,故为最优解。
下面针对方案4给出具体的车辆调度计划。
由程序解得的ij X 的值得到表4:
依据程序运行结果的ij K
值,只要ij ij X K ,我们可以确定这条路径上有固定运输卡车,从而得到路线保持不变的车辆数为7(这7辆车依次编号为C7~C13),这7辆车的路径具体如表5:
剩下的会依调度改变路线的6辆车依次编号为C1、C2、C3、C4、C5、C6 记(,)R i j 表示卸点i 到铲位j 的路径。
(注:i =1,2,34,5分别表示矿石漏,倒装场Ⅰ,倒装场Ⅱ,岩场,岩石漏;j =1…7,分别表示 铲位1,2,3,4,9,10,8;)
耗时计算公式:若,,i j i j x k ≥,则1()480ij ij X K K T -=⨯
(其中K 表示对ij K 向下取整);否则1480ij ij X K T =⨯。
剩余时间计算公式:21480T T =-
我们算出耗时和剩余时间,根据贪心原理安排非固定车辆的工作路线: (注:以下时间单位为:分钟)
R(1,2):C1 耗时为393.2 剩余时间86.8
R(1,6):C2 耗时为147.9 剩余时间332.1
R(1,7):C3 耗时为404.0 剩余时间76.0
R(2,2):C4 耗时为36.7 剩余时间443.3
R(2,4):C5 耗时为77.0 剩余时间403.0
R(3,2):C6 耗时为318.3 剩余时间161.6
R(3,3):C3 耗时为48.0 剩余时间28.0(剩余时间内C3不工作)
R(3,6):C2 耗时为233.4 剩余时间98.7
R(4,5):C5 耗时为401.0 剩余时间2.0(剩余时间内C5不工作)
R(4,6):C1、C2 耗时为156.5 剩余时间29.0( 不工作其中C1运8次,C2运6次)(剩余时间内C1、C2不工作)
R(5,1):C4 耗时为397.3 剩余时间46.0(剩余时间内C4不工作) R(5,3):C6 耗时为107.6 剩余时间54.0(剩余时间内C6不工作)
故卡车调度如下表6:
)
4.3.1目标二的模型建立:
要求获得最大的产量,目标函数为:
5711max ij
i j w L X ===⋅∑∑
(L 为每辆卡车载重量,ij X 为从第j 个铲位到第i 个卸点的运送次数。
)
分析可知:目标二的约束条件与目标一相同。
4.3.2问题二的求解
依据lingo 程序运行结果得到4种方案相关数据表7(源代码见附录二):
由上表可知:方案3的总产量最大为100100.0吨,且其矿石产量也是最大的,故选择方案3是相对最合理的,即选择铲位 1 2 3 4 9 10 7。
下面针对方案3给出具体的车辆调度计划。
由程序解得的ij X 的值得到表8:
依据程序运行结果的ij K 值以及所需卡车数为20,只要ij ij X K ,我们可以
确定这条路径上有固定运输卡车,从而得到路线保持不变的车辆数为8(这8辆车依次编号为C13~C20),这7辆车的路径具体如表9:
剩下的会依调度改变路线的12辆车依次编号为C1~C12
记(,)
R i j表示卸点i到铲位j的路径。
(注:i=1,2,34,5分别表示矿石漏,倒装场Ⅰ,倒装场Ⅱ,岩场,岩石漏;j=1…7,分别表示铲位1,2,3,4,9,10,7;)
接着我们算出耗时和剩余时间,耗时及剩余时间计算公式与问题一求解中的一样,此处不再赘述。
根据贪心原理安排非固定车辆的工作路线:
(注:以下时间单位为:分钟)
R(1,2):C11 耗时为264 剩余时间216
R(1,5):C7、C10 耗时为225.6 剩余时间10.1(其中C7运输4次,C10运输17次,剩余时间内C7、C10不工作)
R(1,7):C12 耗时为222.5 剩余时间257.5
R(2,1):C5、C8 耗时为161.4 剩余时间9(其中C5运输1次,C8运输9次,剩余时间内C5、C8不工作)
R(2,2):C11 耗时为205.6 剩余时间10.4(剩余时间内C11不工作)
R(2,4):C1 耗时为393.3 剩余时间86.7
R(2,7):C2 耗时为372.9 剩余时间107.1
R(3,1):C1、C3 耗时为134.7 剩余时间25(其中C1运输3次,C3运输2次,剩余时间内C1、C3不工作)
R(3,2):C9 耗时为294.5 剩余时间185.5
R(3,3):C3 耗时为407 剩余时间73
R(3,6):C10 耗时为294.1 剩余时间185.9
R(3,7):C6 耗时为57.7 剩余时间32.1(剩余时间内C6不工作)
R(4,4):C4 耗时为440.7 剩余时间39.3(剩余时间内C4不工作)
R(4,5):C5 耗时为460.7 剩余时间19.3
R(4,6):C12 耗时为219.7 剩余时间37.8
R(5,1):C6 耗时为390.2 剩余时间89.8
R(5,2):C2 耗时为93.3 剩余时间13.8(剩余时间内C2不工作)
R(5,3):C7 耗时为430.2 剩余时间49.8
R(5,4):C9、C12 耗时为190.1 剩余时间33.2(其中C9运输11次,C12运
输1次,剩余时间内C9、C12不工作)
R(5,7):C8 耗时为328.9 剩余时间151.1
故卡车调度如下:
)
五、模型优缺点
优点:
1.我们按照题目要求建立了非线性规划模型,求得题目要求的最优解,模型,建立的模型有实用性,在露天矿生产过程中能得到较好运用
2.车次安排上,充分考虑了线路问题,使每辆车的时间利用率最大化
3.运用lingo软件进行求解计算,使得到的数据较为准确。
缺点:
1.部分铲位的确定、卡车路线安排均根据贪心原理得到,这样得到的不是全局上的最优解。
2.模型后部分的车辆安排,计算量太大。
且考虑变化路线时为了计算方便,是按车辆从原卸点回到原铲位、再从新的铲位运送到新的卸点的情况来算,实际安排是直接从原卸点回到新铲位,而不需回到原卸点,返回路线的距离不同,造成时间上的误差。
3.模型中的理想条件在实际环境下不能真正实现,装车和卸车过程也不可能完全按照题目给出的标准实现。
4.在对该模型进行不等待约束时,出于更加准确建立模型的考虑,运用了向左取整函数,所以在最后的车辆具体安排时,其处理过程具有一定的难度。
参考文献:
【1】工程数学学报 2003年12月第20卷第7期文章编号:1005-3085
(2003)07-0083-07
附录一:
问题一的lingo代码以及运行结果如下:
所选铲位为 1 2 3 4 9 10 8 时的代码如下:(其他的3种方案代码类似) model:
sets:
set1/1..5/:unload,N;
set2/1..7/:load,Fa,Fb,P;
set3(set1,set2):D,X,K,car;
endsets
min=@sum(set3(i,j):L*D(i,j)*X(i,j));
@for(set1(i):@sum(set2(j):L*X(i,j))>=N(i));
@for(set3(i,j):@gin(X));
@for(set2(j):@sum(set1(i)|i#LE#3:L*X(i,j))<=Fb(j));
@for(set2(j):@sum(set1(i)|i#GE#4:L*X(i,j))<=Fa(j));
@for(set3(i,j):K(i,j)=@floor(480/(8+2*D(i,j)*60/28)));
@sum(set3(i,j):car(i,j))<=20;
@for(set3(i,j):car(i,j)=X(i,j)/K(i,j));
C=@sum(set3(i,j):car(i,j));
@for(set1(i)|i#LE#3:@sum(set2(j):X(i,j))*L*0.285<=@sum(set2(j):L*X(i,j)*P(j)));
@for(set1(i)|i#LE#3:@sum(set2(j):L*X(i,j)*P(j))<=0.305*L*@sum(set2(j):X(i,j))); !铁含量约束;
@for(set1(i):@sum(set2(j):X(i,j))<=160);
@for(set2(j):@sum(set1(i):X(i,j))<=96);
ore=@sum(set3(i,j)|i#LE#3:L*X(i,j)); !矿石产量;
rock=@sum(set3(i,j)|i#GE#4:L*X(i,j)); !岩石产量;
@for(set3:@floor(car)+1<=(8+60*D/14)/5); !不等待约束;
data:
D=5.26 5.19 4.21 4.00 0.64 1.271.90
1.90 0.99 1.90 1.13 3.09 3.51
2.04
4.42 3.86 3.72 3.16 1.270.50 2.46
5.89 5.61 5.61 4.56 1.06 0.57 3.72
0.64 1.76 1.271.83 5.05 6.10 1.62;
N=12000 13000 13000 13000 19000;
Fb=9500 10500 10000 10500 13500 12500 13000;
Fa=12500 11000 13500 10500 13500 12500 11500;
P=0.3 0.28 0.29 0.32 0.33 0.31 0.31;
L=154;
enddata
end
运行结果如下:
Local optimal solution found.
Objective value: 85628.62
Extended solver steps: 13
Total solver iterations: 1313
Variable Value Reduced Cost L 154.0000 0.000000 C 12.80060 0.000000 ORE 38192.00 0.000000 ROCK 32186.00 0.000000 UNLOAD( 1) 0.000000 0.000000 UNLOAD( 2) 0.000000 0.000000 UNLOAD( 3) 0.000000 0.000000 UNLOAD( 4) 0.000000 0.000000 UNLOAD( 5) 0.000000 0.000000 N( 1) 12000.00 0.000000 N( 2) 13000.00 0.000000 N( 3) 13000.00 0.000000 N( 4) 13000.00 0.000000 N( 5) 19000.00 0.000000 LOAD( 1) 0.000000 0.000000 LOAD( 2) 0.000000 0.000000 LOAD( 3) 0.000000 0.000000 LOAD( 4) 0.000000 0.000000 LOAD( 5) 0.000000 0.000000 LOAD( 6) 0.000000 0.000000 LOAD( 7) 0.000000 0.000000 FA( 1) 12500.00 0.000000
FA( 3) 13500.00 0.000000 FA( 4) 10500.00 0.000000 FA( 5) 13500.00 0.000000 FA( 6) 12500.00 0.000000 FA( 7) 11500.00 0.000000 FB( 1) 9500.000 0.000000 FB( 2) 10500.00 0.000000 FB( 3) 10000.00 0.000000 FB( 4) 10500.00 0.000000 FB( 5) 13500.00 0.000000 FB( 6) 12500.00 0.000000 FB( 7) 13000.00 0.000000 P( 1) 0.3000000 0.000000 P( 2) 0.2800000 0.000000 P( 3) 0.2900000 0.000000 P( 4) 0.3200000 0.000000 P( 5) 0.3300000 0.000000 P( 6) 0.3100000 0.000000 P( 7) 0.3100000 0.000000 D( 1, 1) 5.260000 0.000000 D( 1, 2) 5.190000 0.000000 D( 1, 3) 4.210000 0.000000 D( 1, 4) 4.000000 0.000000 D( 1, 5) 0.6400000 0.000000 D( 1, 6) 1.270000 0.000000 D( 1, 7) 1.900000 0.000000 D( 2, 1) 1.900000 0.000000 D( 2, 2) 0.9900000 0.000000 D( 2, 3) 1.900000 0.000000 D( 2, 4) 1.130000 0.000000 D( 2, 5) 3.090000 0.000000 D( 2, 6) 3.510000 0.000000 D( 2, 7) 2.040000 0.000000 D( 3, 1) 4.420000 0.000000 D( 3, 2) 3.860000 0.000000 D( 3, 3) 3.720000 0.000000 D( 3, 4) 3.160000 0.000000 D( 3, 5) 1.270000 0.000000 D( 3, 6) 0.5000000 0.000000 D( 3, 7) 2.460000 0.000000 D( 4, 1) 5.890000 0.000000 D( 4, 2) 5.610000 0.000000 D( 4, 3) 5.610000 0.000000
D( 4, 5) 1.060000 0.000000 D( 4, 6) 0.5700000 0.000000 D( 4, 7) 3.720000 0.000000 D( 5, 1) 0.6400000 0.000000 D( 5, 2) 1.760000 0.000000 D( 5, 3) 1.270000 0.000000 D( 5, 4) 1.830000 0.000000 D( 5, 5) 5.050000 0.000000 D( 5, 6) 6.100000 0.000000 D( 5, 7) 1.620000 0.000000 X( 1, 1) 0.000000 810.0400 X( 1, 2) 13.00000 799.2600 X( 1, 3) 0.000000 648.3400 X( 1, 4) 0.000000 616.0000 X( 1, 5) 0.000000 98.56000 X( 1, 6) 11.00000 195.5800 X( 1, 7) 54.00000 292.6000 X( 2, 1) 0.000000 292.6000 X( 2, 2) 42.00000 152.4600 X( 2, 3) 0.000000 292.6000 X( 2, 4) 43.00000 174.0200 X( 2, 5) 0.000000 475.8600 X( 2, 6) 0.000000 540.5400 X( 2, 7) 0.000000 314.1600 X( 3, 1) 0.000000 680.6800 X( 3, 2) 13.00000 594.4400 X( 3, 3) 2.000000 572.8800 X( 3, 4) 0.000000 486.6400 X( 3, 5) 0.000000 195.5800 X( 3, 6) 70.00000 77.00000 X( 3, 7) 0.000000 378.8400 X( 4, 1) 0.000000 907.0600 X( 4, 2) 0.000000 863.9400 X( 4, 3) 0.000000 863.9400 X( 4, 4) 0.000000 702.2400 X( 4, 5) 70.00000 163.2400 X( 4, 6) 15.00000 87.78000 X( 4, 7) 0.000000 572.8800 X( 5, 1) 81.00000 98.56000 X( 5, 2) 0.000000 271.0400 X( 5, 3) 43.00000 195.5800 X( 5, 4) 0.000000 281.8200 X( 5, 5) 0.000000 777.7000
X( 5, 7) 0.000000 249.4800 K( 1, 1) 15.00000 0.000000 K( 1, 2) 15.00000 0.000000 K( 1, 3) 18.00000 0.000000 K( 1, 4) 19.00000 0.000000 K( 1, 5) 44.00000 0.000000 K( 1, 6) 35.00000 0.000000 K( 1, 7) 29.00000 0.000000 K( 2, 1) 29.00000 0.000000 K( 2, 2) 39.00000 0.000000 K( 2, 3) 29.00000 0.000000 K( 2, 4) 37.00000 0.000000 K( 2, 5) 22.00000 0.000000 K( 2, 6) 20.00000 0.000000 K( 2, 7) 28.00000 0.000000 K( 3, 1) 17.00000 0.000000 K( 3, 2) 19.00000 0.000000 K( 3, 3) 20.00000 0.000000 K( 3, 4) 22.00000 0.000000 K( 3, 5) 35.00000 0.000000 K( 3, 6) 47.00000 0.000000 K( 3, 7) 25.00000 0.000000 K( 4, 1) 14.00000 0.000000 K( 4, 2) 14.00000 0.000000 K( 4, 3) 14.00000 0.000000 K( 4, 4) 17.00000 0.000000 K( 4, 5) 38.00000 0.000000 K( 4, 6) 45.00000 0.000000 K( 4, 7) 20.00000 0.000000 K( 5, 1) 44.00000 0.000000 K( 5, 2) 30.00000 0.000000 K( 5, 3) 35.00000 0.000000 K( 5, 4) 30.00000 0.000000 K( 5, 5) 16.00000 0.000000 K( 5, 6) 14.00000 0.000000 K( 5, 7) 32.00000 0.000000 CAR( 1, 1) 0.000000 0.000000 CAR( 1, 2) 0.8666667 0.000000 CAR( 1, 3) 0.000000 0.000000 CAR( 1, 4) 0.000000 0.000000 CAR( 1, 5) 0.000000 0.000000 CAR( 1, 6) 0.3142857 0.000000 CAR( 1, 7) 1.862069 0.000000
CAR( 2, 2) 1.076923 0.000000 CAR( 2, 3) 0.000000 0.000000 CAR( 2, 4) 1.162162 0.000000 CAR( 2, 5) 0.000000 0.000000 CAR( 2, 6) 0.000000 0.000000 CAR( 2, 7) 0.000000 0.000000 CAR( 3, 1) 0.000000 0.000000 CAR( 3, 2) 0.6842105 0.000000 CAR( 3, 3) 0.1000000 0.000000 CAR( 3, 4) 0.000000 0.000000 CAR( 3, 5) 0.000000 0.000000 CAR( 3, 6) 1.489362 0.000000 CAR( 3, 7) 0.000000 0.000000 CAR( 4, 1) 0.000000 0.000000 CAR( 4, 2) 0.000000 0.000000 CAR( 4, 3) 0.000000 0.000000 CAR( 4, 4) 0.000000 0.000000 CAR( 4, 5) 1.842105 0.000000 CAR( 4, 6) 0.3333333 0.000000 CAR( 4, 7) 0.000000 0.000000 CAR( 5, 1) 1.840909 0.000000 CAR( 5, 2) 0.000000 0.000000 CAR( 5, 3) 1.228571 0.000000 CAR( 5, 4) 0.000000 0.000000 CAR( 5, 5) 0.000000 0.000000 CAR( 5, 6) 0.000000 0.000000 CAR( 5, 7) 0.000000 0.000000
附录二:
问题2的代码以及运行结果如下:
所选铲位为 1 2 3 4 9 10 7时的代码如下:(其他的3种方案代码类似)
model:
sets:
set1/1..5/:unload,N;
set2/1..7/:load,Fa,Fb,P;
set3(set1,set2):D,X,K,car;
endsets
max=@sum(set3(i,j):L*X(i,j));
ton=@sum(set3(i,j):L*X(i,j)*D(i,j)); !总的吨公里数;
@for(set1(i):@sum(set2(j):L*X(i,j))>=N(i));
@for(set3(i,j):@gin(X));
@for(set2(j):@sum(set1(i)|i#LE#3:L*X(i,j))<=Fb(j));
@for(set2(j):@sum(set1(i)|i#GE#4:L*X(i,j))<=Fa(j));
@for(set3(i,j):K(i,j)=@floor(480/(8+2*D(i,j)*60/28)));
@sum(set3(i,j):X(i,j)/K(i,j))<=20;
@for(set3(i,j):car(i,j)=X(i,j)/K(i,j));
C=@sum(set3(i,j):car(i,j));!需要的总的卡车数;
@for(set1(i)|i#LE#3:@sum(set2(j):X(i,j))*L*0.285<=@sum(set2(j):L*X(i, j)*P(j)));
@for(set1(i)|i#LE#3:@sum(set2(j):L*X(i,j)*P(j))<=0.305*L*@sum(set2(j) :X(i,j)));
@for(set1(i):@sum(set2(j):X(i,j))<=160);
@for(set2(j):@sum(set1(i):X(i,j))<=96);
@for(set3:@floor(car)+1<=(8+60*2*D/28)/5);
ore=@sum(set3(i,j)|i#LE#3:L*X(i,j));
rock=@sum(set3(i,j)|i#GE#4:L*X(i,j));
data:
D=5.26 5.19 4.21 4.00 0.64 1.27 2.46
1.90 0.99 1.90 1.13 3.09 3.51 1.48
4.42 3.86 3.72 3.16 1.27 0.50 2.46
5.89 5.61 5.61 4.56 1.06 0.57 4.21
0.64 1.76 1.27 1.83 5.05 6.10 0.78;
N=12000 13000 13000 13000 19000;
Fb=9500 10500 10000 10500 13500 12500 10500;
Fa=12500 11000 13500 10500 13500 12500 10500;
P=0.3 0.28 0.29 0.32 0.33 0.31 0.32;
L=154;
enddata
end
运行结果如下:
Local optimal solution found.
Objective value: 100100.0
Extended solver steps: 109
Total solver iterations: 148471
Variable Value Reduced Cost L 154.0000 0.000000 TON 151899.4 0.000000 C 19.97696 0.000000 ORE 51128.00 0.000000 ROCK 48972.00 0.000000 UNLOAD( 1) 0.000000 0.000000 UNLOAD( 2) 0.000000 0.000000 UNLOAD( 3) 0.000000 0.000000 UNLOAD( 4) 0.000000 0.000000 UNLOAD( 5) 0.000000 0.000000 N( 1) 12000.00 0.000000 N( 2) 13000.00 0.000000 N( 3) 13000.00 0.000000 N( 4) 13000.00 0.000000 N( 5) 19000.00 0.000000 LOAD( 1) 0.000000 0.000000 LOAD( 2) 0.000000 0.000000 LOAD( 3) 0.000000 0.000000 LOAD( 4) 0.000000 0.000000 LOAD( 5) 0.000000 0.000000 LOAD( 6) 0.000000 0.000000 LOAD( 7) 0.000000 0.000000 FA( 1) 12500.00 0.000000 FA( 2) 11000.00 0.000000 FA( 3) 13500.00 0.000000 FA( 4) 10500.00 0.000000 FA( 5) 13500.00 0.000000 FA( 6) 12500.00 0.000000 FA( 7) 10500.00 0.000000 FB( 1) 9500.000 0.000000 FB( 2) 10500.00 0.000000 FB( 3) 10000.00 0.000000
FB( 5) 13500.00 0.000000 FB( 6) 12500.00 0.000000 FB( 7) 10500.00 0.000000 P( 1) 0.3000000 0.000000 P( 2) 0.2800000 0.000000 P( 3) 0.2900000 0.000000 P( 4) 0.3200000 0.000000 P( 5) 0.3300000 0.000000 P( 6) 0.3100000 0.000000 P( 7) 0.3200000 0.000000 D( 1, 1) 5.260000 0.000000 D( 1, 2) 5.190000 0.000000 D( 1, 3) 4.210000 0.000000 D( 1, 4) 4.000000 0.000000 D( 1, 5) 0.6400000 0.000000 D( 1, 6) 1.270000 0.000000 D( 1, 7) 2.460000 0.000000 D( 2, 1) 1.900000 0.000000 D( 2, 2) 0.9900000 0.000000 D( 2, 3) 1.900000 0.000000 D( 2, 4) 1.130000 0.000000 D( 2, 5) 3.090000 0.000000 D( 2, 6) 3.510000 0.000000 D( 2, 7) 1.480000 0.000000 D( 3, 1) 4.420000 0.000000 D( 3, 2) 3.860000 0.000000 D( 3, 3) 3.720000 0.000000 D( 3, 4) 3.160000 0.000000 D( 3, 5) 1.270000 0.000000 D( 3, 6) 0.5000000 0.000000 D( 3, 7) 2.460000 0.000000 D( 4, 1) 5.890000 0.000000 D( 4, 2) 5.610000 0.000000 D( 4, 3) 5.610000 0.000000 D( 4, 4) 4.560000 0.000000 D( 4, 5) 1.060000 0.000000 D( 4, 6) 0.5700000 0.000000 D( 4, 7) 4.210000 0.000000 D( 5, 1) 0.6400000 0.000000 D( 5, 2) 1.760000 0.000000 D( 5, 3) 1.270000 0.000000 D( 5, 4) 1.830000 0.000000 D( 5, 5) 5.050000 0.000000
D( 5, 7) 0.7800000 0.000000 X( 1, 1) 0.000000 0.000000 X( 1, 2) 0.000000 -154.0000 X( 1, 3) 47.00000 -154.0000 X( 1, 4) 0.000000 -154.0000 X( 1, 5) 21.00000 -154.0000 X( 1, 6) 0.000000 -154.0000 X( 1, 7) 12.00000 -154.0000 X( 2, 1) 10.00000 0.000000 X( 2, 2) 56.00000 -154.0000 X( 2, 3) 0.000000 -154.0000 X( 2, 4) 68.00000 -154.0000 X( 2, 5) 0.000000 -154.0000 X( 2, 6) 0.000000 -154.0000 X( 2, 7) 26.00000 -154.0000 X( 3, 1) 5.000000 0.000000 X( 3, 2) 12.00000 -154.0000 X( 3, 3) 17.00000 -154.0000 X( 3, 4) 0.000000 -154.0000 X( 3, 5) 0.000000 -154.0000 X( 3, 6) 29.00000 -154.0000 X( 3, 7) 29.00000 -154.0000 X( 4, 1) 0.000000 0.000000 X( 4, 2) 0.000000 -154.0000 X( 4, 3) 0.000000 -154.0000 X( 4, 4) 16.00000 -154.0000 X( 4, 5) 75.00000 -154.0000 X( 4, 6) 67.00000 -154.0000 X( 4, 7) 0.000000 -154.0000 X( 5, 1) 81.00000 0.000000 X( 5, 2) 6.000000 -154.0000 X( 5, 3) 32.00000 -154.0000 X( 5, 4) 12.00000 -154.0000 X( 5, 5) 0.000000 -154.0000 X( 5, 6) 0.000000 -154.0000 X( 5, 7) 29.00000 -154.0000 K( 1, 1) 15.00000 0.000000 K( 1, 2) 15.00000 0.000000 K( 1, 3) 18.00000 0.000000 K( 1, 4) 19.00000 0.000000 K( 1, 5) 44.00000 0.000000 K( 1, 6) 35.00000 0.000000 K( 1, 7) 25.00000 0.000000
K( 2, 2) 39.00000 0.000000 K( 2, 3) 29.00000 0.000000 K( 2, 4) 37.00000 0.000000 K( 2, 5) 22.00000 0.000000 K( 2, 6) 20.00000 0.000000 K( 2, 7) 33.00000 0.000000 K( 3, 1) 17.00000 0.000000 K( 3, 2) 19.00000 0.000000 K( 3, 3) 20.00000 0.000000 K( 3, 4) 22.00000 0.000000 K( 3, 5) 35.00000 0.000000 K( 3, 6) 47.00000 0.000000 K( 3, 7) 25.00000 0.000000 K( 4, 1) 14.00000 0.000000 K( 4, 2) 14.00000 0.000000 K( 4, 3) 14.00000 0.000000 K( 4, 4) 17.00000 0.000000 K( 4, 5) 38.00000 0.000000 K( 4, 6) 45.00000 0.000000 K( 4, 7) 18.00000 0.000000 K( 5, 1) 44.00000 0.000000 K( 5, 2) 30.00000 0.000000 K( 5, 3) 35.00000 0.000000 K( 5, 4) 30.00000 0.000000 K( 5, 5) 16.00000 0.000000 K( 5, 6) 14.00000 0.000000 K( 5, 7) 42.00000 0.000000 CAR( 1, 1) 0.000000 0.000000 CAR( 1, 2) 0.000000 0.000000 CAR( 1, 3) 2.611111 0.000000 CAR( 1, 4) 0.000000 0.000000 CAR( 1, 5) 0.4772727 0.000000 CAR( 1, 6) 0.000000 0.000000 CAR( 1, 7) 0.4800000 0.000000 CAR( 2, 1) 0.3448276 0.000000 CAR( 2, 2) 1.435897 0.000000 CAR( 2, 3) 0.000000 0.000000 CAR( 2, 4) 1.837838 0.000000 CAR( 2, 5) 0.000000 0.000000 CAR( 2, 6) 0.000000 0.000000 CAR( 2, 7) 0.7878788 0.000000 CAR( 3, 1) 0.2941176 0.000000 CAR( 3, 2) 0.6315789 0.000000
CAR( 3, 4) 0.000000 0.000000
CAR( 3, 5) 0.000000 0.000000
CAR( 3, 6) 0.6170213 0.000000
CAR( 3, 7) 1.160000 0.000000
CAR( 4, 1) 0.000000 0.000000
CAR( 4, 2) 0.000000 0.000000
CAR( 4, 3) 0.000000 0.000000
CAR( 4, 4) 0.9411765 0.000000
CAR( 4, 5) 1.973684 0.000000
CAR( 4, 6) 1.488889 0.000000
CAR( 4, 7) 0.000000 0.000000
CAR( 5, 1) 1.840909 0.000000
CAR( 5, 2) 0.2000000 0.000000
CAR( 5, 3) 0.9142857 0.000000
CAR( 5, 4) 0.4000000 0.000000
CAR( 5, 5) 0.000000 0.000000
CAR( 5, 6) 0.000000 0.000000
CAR( 5, 7) 0.6904762 0.000000
怎样写作数学建模竞赛论文
一如何建立数学模型—建立数学模型的涉骤和方法
建立数学模型没有固定的模式,通常它与实际问题的性质、建模的目的等有关。
当然,建模的过程也有共性,一般说来大致可以分以下几个步骤:
1. 形成问题
要建立现实问题的数学模型,首先要对所要解决的问题有一个十分明晰的提法。
只有明确问题的背景,尽量弄清对象的特征,掌握有关的数据,确切地了解建立数学模型要达到的目的,才能形成一个比较明晰的“问题”。
2. 假设和简化
根据对象的特征和建模的目的,对问题进行必要的、合理的假设和简化。
现实问题通常是纷繁复杂的,我们必须紧紧抓住本质的因素(起支配作用的因素),忽略次要的因素。
此外,一般地说,一个现实问题不经过假设和简化,很难归结为数学问题。
因此,有必要对现实问题作一些简化,有时甚至是理想化
3 .模型的构建
根据所作的假设,分析对象的因果关系,用适当的数学语言刻画对象的内在规律,构建现实问题中各个量之间的数学结构,得到相应的数学模型。
这里,有一个应遵循的原则:即尽量采用简单的数学工具。
4. 检验和评价
数学模型能否反映厡来的现实问题,必须经受多种途径的检验。
这里包括:(1).数学结构的正确性,即有没有逻辑上自相矛盾的地方;(2).适合求解,即是否有多解或无解的情况出现;(3).数学方法的可行性,即迭代方法是否收敛,以及
算法的复杂性等。
而更重要和最困难的问题是检验模型是否真正反映厡来的现实问题。
模型必须反映现实,但又不等同于现实;模型必须简化,但过分的简化则使模型远离现实,无法解决现实问题。
因此,检验模型的合理性和适用性,对于建模的成败是非常重要的。
评价模型的根本标准是看它能否准确地反映现实问题和解决现实问题。
此外,是否容易求解也是评价模型的一个重要标准。
5. 模型的改进
模型在不断检验过程中经过不断修正,逐步趋向完善,这是建模必须遵循的重要规律。
一旦在检验中发现问题,人们必须重新审视在建模时所作的假设和简化的合理性,检查是否正确刻画对象内在的量之间的相互关系和服从的客观规律。
针对发现的问题作出相应的修正。
然后,再次重复上述检验、修改的过程,直到获得某种程度的满意模型为止。
6. 模型的求解
经过检验,能比较好地反映厡来现实问题的数学模型,最后将通过求解得到数学上的结果;再通过“翻译”回到现实问题,得到相应的结论。
模型若能获得解的确切表达式固然最好,但现实中多数场合需依靠电子计算机数值求解。
电子计算机技术的飞速发展,使数学模型这一有效的工具得以发扬光大。
数学建模的过程是一种创造性思维的过程,对于实际工作者来说,除了需要具有想象力、洞察力、判断力这些属于形象思维、逻辑思维范畴的能力外,直觉和灵感往往不可忽视,这就是人们对新事物的敏锐的领悟、理解、推理和判断。
它要求人们具有丰富的知识,实惯用不同的思维方式对问题进行艰苦探索和反复思考。
这种能力的培养要依靠长期的积累。
此外,用数学模型解决现际问题,还应当注意两方面的情况。
一方面,对于不同的实际问题,通常会使用不同的数学模型。
但是,有的时候,同一数学模型,往往可以用来解释表面上看来毫不相关的实际问题。
另一方面,对于同一实际问题要求不同,则构建的数学模型可能完全不同。
二写作数学建模竞赛论文应注意的问题:
1. 论文格式
论文的封面:
题目………
参赛队员:… … …
指导教师:……
单位:………
论文的第一页是摘要,第二页开始是论文的正文,论文要有以下几方面的内容:
一. 问题的提出
二. 问题的分析
三. 模型的假设
四. 模型的建立
五. 模型的求解
六. 模型的检验
七. 模型的修正
八. 模型的评估
九. 附录
以上各部分内容应该都是要具备的,但有些步骤可以合并在一起。
例如:问题的提出与问题的分析,模型的假设与模型的建立,模型的检验与模型的修正等。
下面就每一步以及建模过程中应注意的几个问题作一简要介绍。
2. 审题:赛题一般有两道(研究生的竞赛有4道题),我们可以从中任选一道,这就面临选哪道题合适的问题。
因此,首先必需弄清题目的意义。
数学建模的题目有时很长,有时很复杂。
不易弄懂它的意义,一般要用几个钟头的时间才能弄清楚它的含义。
因此我们要求:
(1). 深刻理解题意
(2). 弄清题目的实际背景
(3) 正确选择题目,根据自身的特长和优势作出决定。
要注意不要被题目的繁长的叙述哧住,碰到长的题目要有耐心,要仔细的分析题目的各部分内容、条件和要求。
3. 当选定题目后,接下来就应该是对题目进进一步的分析。
下面的几项工作是必需要做的:
(1). 在弄清问题的背景下,说清事情的来龙去脉。
(2). 列出必要的数据,题目所给的数据往往是不够的,还要寻找题目以外的数据。
(3). 列出和题目相关的各种条件和变量,分清各变量之间的主从关系。
(4). 给出研究对象的关键信息内容。
4 . 在分析问题的基础上,提出合理的假设
模型是在假设的前提下建立起来的。
对情景的说明不可能也不必要提供问题的每一个细节。
由题目所提供的假设来建立数学模型还是不够的,还要补充一些假设。
假设是建立数学模型很关键的一步,关系到模型的成败和优劣。
所以应该仔细地分析实际问题,从大量的变量中筛选出最能表现问题本质的变量,并简化它们的关系。
这部分内容就应该在论文的问题的假设部分中体现。
由于假设不是实际问题直接提供的,它因人而异,所以,在撰写这部分内容时要注意以下几个方面:
(1) 论文中的假设要以严格、确切的数学语言来表达,使读者不致产生任何曲解。
(2) 所提出的假设确实是建立数学模型所必需的,与建立数学模型无关的假设只会扰乱读者的思考
(3) 假设应该是合理的;怎样的假设才是合理的呢?a .假设应合乎生活常识。
b. 假设不能与已知的科学定律相悖。
c. 假设必需是对建模有用的。
d. 尽量使用。