称卡车)运输来完成。提高这些大型设备的利用率是增加露天矿经济效益的首要任务。
露天矿里有若干个爆破生成的石料堆,每堆称为一个铲位,每个铲位已预先根据铁含量将石料分成矿石和岩石。一般来说,平均铁含量不低于25%的为矿石,否则为岩石。每个铲位的矿石、岩石数量,以及矿石的平均铁含量(称为品位)都是已知的。每个铲位至多能安置一台电铲,电铲的平均装车时间为5分钟。
卸货地点(以下简称卸点)有卸矿石的矿石漏、2个铁路倒装场(以下简称倒装场)和卸岩石的岩石漏、岩场等,每个卸点都有各自的产量要求。从保护国家资源的角度及矿山的经济效益考虑,应该尽量把矿石按矿石卸点需要的铁含量(假设要求都为29.5%?1%,称为品位限制)搭配起来送到卸点,搭配的量在一个班次(8小时)内满足品位限制即可。从长远看,卸点可以移动,但一个班次内不变。卡车的平均卸车时间为3分钟。
所用卡车载重量为154吨,平均时速28kmh。卡车的耗油量很大,每个班次每台车消耗近1吨柴油。发动机点火时需要消耗相当多的电瓶能量,故一个班次中只在开始工作时点火一次。卡车在等待时所耗费的能量也是相当可观的,原则上在安排时不应发生卡车等待的情况。电铲和卸点都不能同时为两辆及两辆以上卡车服务。卡车每次都是满载运输。
每个铲位到每个卸点的道路都是专用的宽60m的双向车道,不会出现堵车现象,每段道路的里程都是已知的。
一个班次的生产计划应该包含以下内容:出动几台电铲,分别在哪些铲位上;出动几辆卡车,分别在哪些路线上各运输多少次(因为随机因素影响,装卸时间与运输时间都不精确,所以排时计划无效,只求出各条路线上的卡车数及安排即可)。一个合格的计划要在卡车不等待条件下满足产量和质量(品位)要求,而一个好的计划还应该考虑下面两条原则之一:
1.总运量(吨公里)最小,同时出动最少的卡车,从而运输成本最小;
2.利用现有车辆运输,获得最大的产量(岩石产量优先;在产量相同的情况下,取总运量最小的解)。
请你就两条原则分别建立数学模型,并给出一个班次生产计划的快速算法。针对下面的实例,给出具体的生产计划、相应的总运量及岩石和矿石产量。
某露天矿有铲位10个,卸点5个,现有铲车7台,卡车20辆。各卸点一个班次的产量要求:矿石漏1.2万吨、倒装场Ⅰ1.3万吨、倒装场Ⅱ1.3万吨、岩石漏1.9万吨、岩场1.3万吨。
铲位和卸点位置二维示意图如下,各铲位和各卸点之间的距离(公里)如下表: 铲位1 铲位2 铲位3 铲位4 铲位5 铲位6 铲位7 铲位8 铲位9 铲位10 矿石漏 倒装场Ⅰ 岩场 岩石漏 倒装场Ⅱ 5.26 5.19 4.21 4.00 2.95 2.74 2.46 1.90 0.64 1.90 0.99 1.90 1.13 1.27 2.25 1.48 2.04 3.09 5.89 5.61 5.61 4.56 3.51 3.65 2.46 2.46 1.06 0.64 1.76 1.27 1.83 2.74 2.60 4.21 3.72 5.05 4.42 3.86 3.72 3.16 2.25 2.81 0.78 1.62 1.27 1.27 3.51 0.57 6.10 0.50 各铲位矿石、岩石数量(万吨)和矿石的平均铁含量如下表: 矿石量 岩石量 铁含量 铲位1 铲位2 铲位3 铲位4 铲位5 铲位6 铲位7 铲位8 铲位9 铲位10 0.95 1.05 1.00 1.05 1.10 1.25 1.05 1.30 1.35 1.25 1.25 1.10 1.35 1.05 1.15 1.35 1.05 1.15 1.35 1.25 30% 28% 29% 32% 31% 33% 32% 31% 33% 31%
model:
title CUMCM-2003B-01; sets:
cai / 1..10 /:crate,cnum,cy,ck,flag; xie / 1 .. 5 /:xsubject,xnum;
link( xie,cai ):distance,lsubject,number,che,b; endsets data:
crate=30 28 29 32 31 33 32 31 33 31; xsubject= 1.2 1.3 1.3 1.9 1.3 ;
distance= 5.26 5.19 4.21 4.00 2.95 2.74 2.46 1.90 0.64 1.27 1.90 0.99 1.90 1.13 1.27 2.25 1.48 2.04 3.09 3.51 5.89 5.61 5.61 4.56 3.51 3.65 2.46 2.46 1.06 0.57 0.64 1.76 1.27 1.83 2.74 2.60 4.21 3.72 5.05 6.10 4.42 3.86 3.72 3.16 2.25 2.81 0.78 1.62 1.27 0.50; cy = 1.25 1.10 1.35 1.05 1.15 1.35 1.05 1.15 1.35 1.25; ck = 0.95 1.05 1.00 1.05 1.10 1.25 1.05 1.30 1.35 1.25; enddata !目标函数;
min=@sum( cai (i):
@sum ( xie (j):
number (j,i)*154*distance (j,i)));
!max =@sum(link(i,j):number(i,j));
!max=xnum (3)+xnum (4)+xnum (1)+xnum (2)+xnum(5); !min=@sum( cai (i):
! @sum ( xie (j):
! number (j,i)*154*distance (j,i))); !xnum (1)+xnum (2)+xnum(5)=340; !xnum (1)+xnum (2)+xnum(5)=341; !xnum (3)=160; !xnum (4)=160;
!卡车每一条路线上最多可以运行的次数; @for (link (i,j):
b(i,j)=@floor((8*60-(@floor((distance(i,j)/28*60*2+3+5)/5)-1)*5)/(distance(i,j)/28*60*2+3+5)));
!b(i,j)=@floor(8*60/(distance(i,j)/28*60*2+3+5)));
!t(i,j)=@floor((distance(i,j)/28*60*2+3+5)/5);
!b(i,j)=@floor((8*60-(@floor((distance(i,j)/28*60*2+3+5)/5))*5)/(distance(i,j)/28*60*2+3+5))); !每一条路线上的最大总车次的计算; @for( link (i,j):
lsubject(i,j)=(@floor((distance(i,j)/28*60*2+3+5)/5))*b(i,j)); !计算各个铲位的总产量; @for (cai(j):
cnum(j)=@sum(xie(i):number(i,j))); !计算各个卸点的总产量; @for (xie(i):
xnum(i)=@sum(cai(j):number(i,j))); !道路能力约束;
@for (link (i,j):
number(i,j)<=lsubject(i,j)); !电铲能力约束; @for (cai (j) :
cnum(j) <= flag(j)*8*60/5 ); !电铲数量约束
@sum(cai(j): flag(j) ) <=7; !卸点能力约束; @for (xie (i):
xnum (i)<=8*20); !铲位产量约束;
@for (cai (i):
number(1,i)+number(2,i)+number(5,i)<=ck(i)*10000/154);
@for (cai (i): number(3,i)+number(4,i)<=cy(i)*10000/154); !产量任务约束; @for (xie (i):
xnum (i)>= xsubject (i)*10000/154); !铁含量约束; @sum(cai (j):
number(1,j)*(crate(j)-30.5) )<=0; @sum(cai (j):
number(2,j)*(crate(j)-30.5) )<=0; @sum(cai (j):
number(5,j)*(crate(j)-30.5) )<=0; @sum(cai (j):
number(1,j)*(crate(j)-28.5) )>=0; @sum(cai (j):
number(2,j)*(crate(j)-28.5) )>=0; @sum(cai (j):
number(5,j)*(crate(j)-28.5) )>=0; !关于车辆的具体分配; @for (link (i,j):
che (i,j)=number (i,j)/b(i,j)); !各个路线所需卡车数简单加和;
hehe=@sum (link (i,j): che (i,j)); !整数约束;
@for (link (i,j): @gin(number (i,j))); @for (cai (j): @bin(flag (j))); !车辆能力约束; hehe<=20;
ccnum=@sum(cai (j): cnum(j) ); end
例7.6 最小生成树(Minimal Spanning Tree,MST)问题 求解最小生成树的方法虽然很多,但是利用LINGO建立相应的整数规划模型是一种新的尝试。这对于处理非标准的MST问题非常方便。我们主要参考了文[7]。
在图论中,称无圈的连通图为树。在一个连通图G中,称包含图G全部顶点的树为图G的生成树。生成树上各边的权之和称为该生成树的权。连通图G的权最小的生成树称为图G的最小生成树。
许多实际问题都可以归结为最小生成树。例如,如何修筑一些公路把若干个城镇连接起来;如何架设通讯网络将若干个地区连接起来;如何修筑水渠将水源和若干块待灌溉的土地连接起来等等。为了说明问题,以下面的问题作为范例。
范例:假设某电话公司计划在六个村庄架设电话线,各村庄之间的距离如图所示。试求出使电话线总长度最小的架线方案。
为了便于计算机求解,特作如下规定:(1)节点V1表示树根;(2)当两个节点之间没有线路时,规定两个节点之间的距离为MV3 1 3 V5 V1 (较大的值)。
4 MST的整数规划模型如下: 5 2
2 3 2 V4 1
3 V6 V2
例7.7 分配问题(指派问题,Assignment Problem)
这是个给n个人分配n项工作以获得某个最高总效果的问题。第i个人完成第j项工作需要平均时间
cij。要求给每个人分配一项工作,并要求分配完这些工作,以使完成全部任
nn??min??cijxiji?1j?1??s.t.?n?xij?1,j?1,2,?,n??i?1?n?xij?1,i?1,2,?,n??j?1??xij?0,1?务的总时间为最小。该问题可表示如下:
显然,此问题可看作是运输问题的特殊情况。可将此问题看作具有n个源和n个汇的问题,每个源有1单位的可获量,而每个汇有1单位的需要量。从表面看,这问题要求用整数规划以保证
xij能取0或1。然而,幸运的是,此问题是运输问题的特例,因此即使不限制
xij取0或1,最优解也将取0或1。如果把婚姻看作分配问题,丹茨证明,整数性质证明一夫一妻会带来最美满幸福的生活!显然,分配问题可以作为线性规划问题来求解,尽管模型可
能很大。例如,给100人分配100项工作将使所得的模型具有10000个变量。这时,如采用
3专门算法效果会更好。时间复杂度为O(n)的匈牙利算法便是好选择,这是由Kuhu(1955)提出的。
model:
!7个工人,7个工作的分配问题; sets:
workers/w1..w7/; jobs/j1..j7/;
links(workers,jobs): cost,volume; endsets
!目标函数;
min=@sum(links: cost*volume); !每个工人只能有一份工作; @for(workers(I):
@sum(jobs(J): volume(I,J))=1; );
!每份工作只能有一个工人; @for(jobs(J):
@sum(workers(I): volume(I,J))=1; ); data:
cost= 6 2 6 7 4 2 5 4 9 5 3 8 5 8 5 2 1 9 7 4 3 7 6 7 3 9 2 7 2 3 9 5 7 2 6 5 5 2 2 8 11 4 9 2 3 12 4 5 10; enddata end
计算的部分结果为:
Global optimal solution found at iteration: 14 Objective value: 18.00000
Variable Value Reduced Cost VOLUME( W1, J1) 0.000000 4.000000 VOLUME( W1, J2) 0.000000 0.000000 VOLUME( W1, J3) 0.000000 3.000000 VOLUME( W1, J4) 0.000000 4.000000 VOLUME( W1, J5) 1.000000 0.000000 VOLUME( W1, J6) 0.000000 0.000000 VOLUME( W1, J7) 0.000000 0.000000 VOLUME( W2, J1) 0.000000 2.000000 VOLUME( W2, J2) 0.000000 7.000000 VOLUME( W2, J3) 0.000000 2.000000 VOLUME( W2, J4) 1.000000 0.000000 VOLUME( W2, J5) 0.000000 4.000000 VOLUME( W2, J6) 0.000000 3.000000 VOLUME( W2, J7) 0.000000 3.000000 VOLUME( W3, J1) 0.000000 5.000000 VOLUME( W3, J2) 0.000000 2.000000 VOLUME( W3, J3) 0.000000 0.000000 VOLUME( W3, J4) 0.000000 8.000000 VOLUME( W3, J5) 0.000000 5.000000 VOLUME( W3, J6) 0.000000 4.000000 VOLUME( W3, J7) 1.000000 0.000000 VOLUME( W4, J1) 0.000000 5.000000 VOLUME( W4, J2) 0.000000 4.000000 VOLUME( W4, J3) 0.000000 4.000000
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库lingo中文手册 - 图文(5)在线全文阅读。
相关推荐: