2003高教社杯全国大学生数学建模竞赛
B题参考答案
注意:以下答案是命题人给出的,仅供参考。各评阅组应根据对题目的理解及学生的解答,自主地进行评阅。
问题:
钢铁工业是国家工业的基础之一,铁矿是钢铁工业的主要原料基地。许多现代化铁矿是露天开采的,它的生产主要是由电动铲车(以下简称电铲)装车、电动轮自卸卡车(以
下简称卡车)运输来完成。提高这些大型设备的利用率是增加露天矿经济效益的首要任务。
露天矿里有若干个爆破生成的石料堆,每堆称为一个铲位,每个铲位已预先根据铁含量将石料分成矿石和岩石。一般来说,平均铁含量不低于 25%的为矿石,否则为岩石。 每个铲位的矿石、岩石数量,以及矿石的平均铁含量(称为品位)都是已知的。每个铲 位至多能安置一台电铲,电铲的平均装车时间为 5 分钟。卸货地点(以下简称卸点)有卸矿石的矿石漏、2 个铁路倒装场(以下简称倒装场) 和卸岩石的岩石漏、岩场等,每个卸点都有各自的产量要求。从保护国家资源的角度及 矿山的经济效益考虑,应该尽量把矿石按矿石卸点需要的铁含量(假设要求都为29.5% 1%,称为品位限制)搭配起来送到卸点,搭配的量在一个班次(8 小时)内满足 品位限制即可。从长远看,卸点可以移动,但一个班次内不变。卡车的平均卸车时间为3 分钟。所用卡车载重量为 154 吨,平均时速 28kmh 。卡车的耗油量很大,每个班次每台车消耗近 1 吨柴油。发动机点火时需要消耗相当多的电瓶能量,故一个班次中只在开始 工作时点火一次。卡车在等待时所耗费的能量也是相当可观的,原则上在安排时不应发 生卡车等待的情况。电铲和卸点都不能同时为两辆及两辆以上卡车服务。卡车每次都是满载运输。
每个铲位到每个卸点的道路都是专用的宽 60 m 的双向车道,不会出现堵车现象,每段道路的里程都是已知的。一个班次的生产计划应该包含以下内容:出动几台电铲,分别在哪些铲位上;出动几辆卡车,分别在哪些路线上各运输多少次(因为随机因素影响,装卸时间与运输时间 都不精确,所以排时计划无效,只求出各条路线上的卡车数及安排即可)。一个合格的计划要在卡车不等待条件下满足产量和质量(品位)要求,而一个好的计划还应该考虑下面两条原则之一:
1.总运量(吨公里)最小,同时出动最少的卡车,从而运输成本最小;
2.利用现有车辆运输,获得最大的产量(岩石产量优先;在产量相同的情况下,取总运量最小的解)。
请你就两条原则分别建立数学模型,并给出一个班次生产计划的快速算法。针对下面的实例,给出具体的生产计划、相应的总运量及岩石和矿石产量。
某露天矿有铲位 10 个,卸点 5 个,现有铲车 7 台,卡车 20 辆。各卸点一个班次的 产量要求:矿石漏 1.2 万吨、倒装场Ⅰ1.3 万吨、倒装场Ⅱ1.3 万吨、岩石漏 1.9 万吨、 岩场 1.3 万吨
问题分析:
本题目与典型的运输问题明显有以下不同: 1. 运输矿石与岩石两种物资; 2. 产量大于销量的不平衡运输; 3. 在品位约束下矿石要搭配运输; 4. 产地、销地均有单位时间的流量限制;
1 / 7
5. 运输车辆每次都是满载,154吨/车次; 6. 铲位数多于铲车数意味着最优的选择不多于7个产地; 7. 最后求出各条路线上的派出车辆数及安排。
运输问题对应着线性规划,以上第1、2、3、4条可通过变量设计、调整约束条件实现;第5条使其变为整数线性规划;第6条用线性模型实现的一种办法,是从个整数规划中取最优的即得到最佳物流;对第7条由最佳物流算出各条路线上的最少派出车辆数(整数),再给出具体安排即完成全部计算。
对于这个实际问题,要求快速算法,计算含50个变量的整数规划比较困难。另外,这是一个二层规划,第二层是组合优化,如果求最优解计算量较大,现成的各种算法都无能为力。于是问题变为找一个寻求近优解的近似解法,例如可用启发式方法求解。
调用120次整数规划可用三种方法避免:(1)先不考虑电铲数量约束运行整数线性规划,再对解中运量最少的几个铲位进行筛选;(2)在整数线性规划的铲车约束中调用函数来实现;(3)增加10个0-1变量来标志各个铲位是否有产量。
这是一个多目标规划,第一问的目标有两层:第一层是总运量(吨公里)最小,第二层是出动卡车数最少,从而实现运输成本最小。第二问的目标有:岩石产量最大;矿石产量最大;运量最小,三者的重要性应按此序。
合理的假设主要有:
1. 卡车在一个班次中不应发生等待或熄火后再启动的情况;
2. 在铲位或卸点处因两条路线(及以上)造成的冲突时,只要平均时间能完成任务即
可,不进行排时讨论;
3. 空载与重载的速度都是28km/h,耗油相差却很大,因此总运量只考虑重载运量; 4. 卡车可提前退出系统。
符号:xij ~ 从i号铲位到j号卸点的石料运量 单位 吨;
cij ~ 从i号铲位到j号卸点的距离 公里; Tij ~ 从i号铲位到j号卸点路线上运行一个周期平均所需时间 分; Aij ~ 从i号铲位到j号卸点最多能同时运行的卡车数 辆; Bij ~ 从i号铲位到j号卸点路线上一辆车最多可以运行的次数 次;
pi ~ i号铲位的矿石铁含量。 %
p =(30,28,29,32,31,33,32,31,33,31) qj ~j号卸点任务需求 吨
q=(1.2,1.3,1.3,1.9,1.3)*10000 cki ~ i号铲位的铁矿石储量 万吨 cyi ~ i号铲位的岩石储量 万吨
fi: ~ 描述第i号铲位是否使用的0-1开关变量,取1为使用;取0为关闭。
模型建立、算法设计与模型求解: 问题一、求运输成本最小的生产计划
一.以总运量最小为目标函数求解最佳物流—-第一层规划
(1)道路能力约束:一个电铲(卸点)不能同时为两辆卡车服务,一条路线上最多能同时运行的卡车数是有限制的。卡车从i号铲位到j号卸点运行一个周期平均所需时间为
(分钟)。由于装车时间5分钟大于卸车时间3分钟,所以这条路线上在卡车不等待条件下最多能同时运行的卡车数为:
;其中最后开
始发车的一辆卡车一个班次中在这条路线上最多可以运行的次数为(其他卡车可能比此数多1次),这里是开始装车时最后一辆车的延时时间。
2 / 7
一个班次中这条固定路线上最多可能运行的总车次大约为:,总吨数。
(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)
s.t.
(1) (2) (3)
(4)
(5)
(6)
. (7)
(8)
(9)
二.对最佳物流的结果进行派车—-第二层规划
这是组合优化中的一维背包模型,针对快速算法的要求,用启发式方法求近优解。 先用最佳物流修正Bij, 确定卡车一个班次中在这条路线上实际最多可以运行的次数。然后在以目标为出动总卡车数最少的各路线派车中,把各路线需要的卡车数
分成整数部分和小数部分,进而可以分配任务让辆车
3 / 7
在i到j路线上,每辆往返运输Bij次。为了最后实现第二层规划的目标,只需联合处理所有的时把这些小数组合成最少的整数卡车数。所需总卡车数的下界显然是
。如果某种派车方案恰好派出Y0辆车实现了所有的xij,则其即为第二层目标意
义下近优解的最优方案。但由于有联合派车而总公里数不一定最小,故不一定为全局意义下的最佳方案。
出动卡车数最少,意味着出动的卡车利用率要最大。容易出现的一辆卡车为两个以上路线服务的联合派车,可分为两种情况:⑴有共同铲位(或卸点)的联合派车(V字形或更复杂);⑵不同铲位且不同卸点之间的联合派车(Z字形或四边形或更复杂)。派车方案的空载路线应尽量安排在第一层规划的最佳物流路线内,即使有的超出也要保证超出的路程总和最小,这样才能实现重载路程最小且使卡车空载路程也最小。而情况⑴的路线不会超出第一层规划的最佳物流路线。只有情况⑵才会有一部分不在第一层规划的最佳物流路线内。
问题:各路线都是小数的需车数,如何组合使总卡车数最少且如果出现情况⑵时空载超出部分总和尽量小。
如果存在情况⑴,则整体考虑情况⑴形路线需要的卡车数相加的和,先确定和的整数部分的车数并对这些车分配任务(任务的形式为在哪条路线上运几趟,再在哪条路线上运几趟,等等)。之后已无情况⑴了,再对各个小数进行组合相加试探,在所有动用卡车数最少的情况中,选择超出第一层最佳物流路线的总和最小的,即为最后派车方案,再对这些车分配任务。由于属情况⑴的为多数,故后面的组合搜索比较简单,常常只有一两个任务属情况⑵。
根据最后派车方案,回代计算出各车辆在各路线的运输次数。由于整数部分已分配完运输次数,小数乘以对应路线上的Bij取整计算出小数部分对应的具体运输次数.
进一步计算出实际总运量与矿石和岩石的产量。 三、求解过程:
(一) 第一层规划
求解前面给出的整数规划模型可计算出最优值为总运量85628.62吨公里。 最佳物流相对应的各个路线上的最佳运输车次:
矿石漏 铲位1 铲位2 铲位3 铲位4 铲位5 铲位6 铲位7 铲位8 铲位9 铲位10 倒装场Ⅰ 岩场 岩石漏 81 倒装场Ⅱ 13 42 13 43 2 43 54 70 11 15 70 (二)第二层规划
用具体流量计算卡车在各个路线上一个班次最多可以运行的次数:(即修正的Bij) 矿石漏 倒装场Ⅰ 岩场 岩石漏 倒装场Ⅱ 铲位1 铲位2 铲位3 铲位4 铲位5 铲位6 铲位7 铲位8 铲位9 铲位10 3 14 44 18 铲位1 3 19 铲位2 2 铲位3 铲位4 铲位5 4 铲位6 26 33 6 铲位7 29 28 26 20 铲位8 45 22 37 16 36 铲位9 35 21 46 14 47 铲位10 根据最佳物流,计算各路线上需要的卡车数(实数): 矿石漏 倒装场Ⅰ 岩场 岩石漏 1.841 倒装场Ⅱ 0.867 1.077 1.229 0.684 0.1 1.162 1.862 1.892 0.314 0.326 1.489 所有路线所需卡车数(实数)的和为 12.843。 各路线上需要的整数卡车数为7(这些卡车在一个班次内一直在固定路线上运输):
4 / 7
矿石漏 铲位1 铲位2 铲位3 铲位4 铲位5 铲位6 铲位7 铲位8 铲位9 铲位10 倒装场Ⅰ 岩场 岩石漏 1 倒装场Ⅱ 1 1 1 1 1 1 各个路线上的联合派车的卡车数为6,方案为:
第1辆:从铲位1、3到岩石漏,铲位1到岩石漏运37车,铲位3到岩石漏运5车。 第2辆:从铲位9、10到岩场,铲位9到岩场运33车,铲位10到岩场运5车。
第3辆:从铲位8、10到矿石漏,铲位8到矿石漏运22车,铲位10到矿石漏运6车。 第4辆:从铲位2、8到矿石漏,铲位2到矿石漏运13车,铲位8到矿石漏运3车。 第5辆:从铲位2、4到倒装场Ⅰ和从铲位2、3到倒装场Ⅱ,铲位2到倒装场Ⅰ运3车,铲位4到倒装场Ⅰ运6车,铲位2到倒装场Ⅱ运13车,铲位3到倒装场Ⅱ运1车。
第6辆:从铲位3到倒装场Ⅱ、岩石漏和从铲位10到矿石漏、岩场、倒装场Ⅱ,铲位3到岩石漏运3车,铲位3到倒装场Ⅱ运1车,铲位10到倒装场Ⅱ运23车,铲位10到岩场运10车,铲位10到矿石漏运5车。
对这道题的数据来说,只有共卸点或共铲位情况,没出现⑵型联合派车。 铲位1、2、3、4、8、9、10处各放置一台电铲。 一共使用13辆卡车;总运量为85628.62吨公里; 岩石产量为32186吨;矿石产量为38192吨。
问题二、利用现有车辆运输而获得最大的产量
一. 在卡车不等待条件下利用现有车辆资源运输,获得最大的产量(岩石产量优先,在产量相同的情况下,取总运量最小的解)
卡车不发生等待,即每条路线的车不能过多,否则将增加空载耗油,同时降低设备利用率,所以不一定全部车都用。
第二问的解法和第一问类似,也采用多目标二层规划算法,第一层用整数线性规划,第二层用求派出车辆数最小的启发式方法。下面是第二问解法与第一问的不同之处。
(一)第一层目标函数的确定
由于岩石产量优先,第一层规划计算前先做目标函数取岩石产量最大(
)的试算,来判断岩石产量是否能达到上限
。
如果是,把岩石的总产量取最大值,即加入到约束条件中,以矿石产
量最大为目标;如果否,把岩石产量最大做为目标,求解最佳物流。为了求岩石(或矿石)产量最大的同时,保证总运量(吨公里)较小,还不影响轻重顺序,运量的加权系数很小。如
(10)
或
(11)
为目标函数。
(二)第一层约束条件的确定
以(10)或(11)为目标,(1)至(9)为约束求解。 第一层规划采用结合线性规划来求解整数规划: (1)在现有条件下岩石产量能否达到上限
以岩石产量最大为目标函数试算整数线性规划,可得岩石卸点总产量达到了约束上限。
5 / 7