1 原油开采与输送问题 摘要 本题是关于原油开采与输送费用的最优化问题。通过对题目的理解和分析可知:题目要求设计出合理的打井与铺设管道的计划,使得总费用最少,而打井与铺设管道的费用同时受炼油厂可提供的资金与需油量的影响。 关于本题,整个计划的总开支包括两部分:一部分为打井费用,另一部分为铺设管道的费用。要使整个计划的总开支尽量节省,即在满足题目所需条件的基础上使这两部分开支之和达到最小,目标函数为:total=铺设管道费用总和+打井费用总和,鉴于此,我们建立关于总开支最少的最优化模型。 由题可知,打井费用与铺设管道的费用必须满足几个约束条件:1、从炼油厂的需油量方面考虑,自备油井产油量、新打的油井供油量及铺设的管道的输油量的总和必须不小于每年炼油厂的需油量2、从炼油厂可提供的资金方面考虑,每年打井的费用与铺设管道的费用之和不能超过炼油厂每年可以提供的最多费用。 假设以后几年中已有的四口自备油井产油量按照近几年统计的数据预测的趋势变化,通过题中给出的四口自备油井近几年的产油量,我们用Matlab数据拟合可预测出各自备油井从2012到2016每年的产油量。用0、1变量整数规划思想表示每年每口油井的打与否(0:不打井,1:打井)。假设管道完全铺设完成后才可投入使用,通过管道输送只考虑购买的原油,由油井所产生的油不需通过管道输送,则从2015年以后开始通过管道购油,从新井与旧井产油情况可知:新井与旧井的产油量总和在2016年时小于2015年,而2016年的需油量却大于2015年,所以理论上2016年通过管道运输的油(Q2)大于2015年的(Q1),所以铺设管道费用公式中Q可以取Q2,而三年铺设管道的长度之和至少为20km,分别列出以后几年自备油井产油量、新打油井供油量与铺设管道输油量和需油量之间所满足的关系式。将打井期间打井费用与铺设管道费用应满足的资金条件列出;同时列出各口新井应满足的数量关系。将所有满足条件的式子列出后可知这是一个线性规划问题,通过Lingo软件编程计算出Q1=100万,Q2=100万,第一年打编号为1,2,3,5 的井,第二年打编号为7的井,第三年打编号为6的井,三年铺设管道长度分别为5.209050km,7.090096km,7.813576km,此时所对应的总开支为172万元。
关键词:最优化 目标函数 Mat lab数据拟合 Lingo软件编程 整数规划 2
一 问题重述 1.1问题情景 炼油厂需要用原油炼油,原油来源一方面通过已有的井获取、新打的井提供,另一方面从外部购买。 现有一炼油厂有四口自备井经过多年使用后,年产油量在逐年减少(近几年油井年产油量已知),而炼油厂的年需油量在逐年上升,为了满足炼油厂的需要,计划同时采用打井和从外部购买两种方法来弥补原油的缺乏。根据专家研究和预测,该厂拟订打的8口井基本情况(包括打井费用、当年产油量以及以后每年产油量变化趋势)已给出。从外部购买的原油需通过管道输送,所以需要铺设管道。铺设管道的费用与管道输送油量最大油量及长度有关,要求管道长度至少为20km,管道供油量不小于100万吨。 1.2要解决的问题 设计一个从2012年起三年的打井与铺设管道的计划,以使整个计划的总开支最节省,同时满足下列约束条件①打井和铺设管道费用不能超过该厂可提供资金②保证2012—2016年的产油量至少为150,160,170,180,190(万吨)
二 问题分析 题目中要求的是制定一个方案,使得打井和铺设管道所用的总费用最少,属于优化问题。
主要约束条件: 1). 2012至2016年间前三年每年打井和铺设管道的总费用不超过60万元; 2). 2012至2016这五年间每年分别至少获得150、160、170、180、190万吨油。
其他约束条件: a. 在2012至2014年打井期间,每口井最多只能打一次; b. 铺设管道的费用为万元的整数倍; c. 管道开始供油时,供油量不小于100万吨; d. 炼油厂与附近一个油田的输油管道距离为20公里,所以所铺设的管道的总长度应不小于20公里。
解决方法: 此模型为基于以上约束条件的整数规划的优化问题。我们可以分别列出满足各条件约束的函数关系式和目标函数,本题要求是设计在符合约束下的使目标函数最小值的方案,不难发现此题是线性归划问题,因此首先通过matlab软件完成对四口自备油井的预测,然后借助数学Lingo软件求出本题。 3
三 模型的假设 a. 假设每口油井的供油量呈稳定的趋势变化,不考虑其他因素对井产油量的影响;
b. 不考虑意外情况所造成的费用的增加; c. 输油管道的铺设需要三年的时间,在铺设期间输油管道不能输油供给,管道在完全完工之后即可开始供油;
d. 假设当年打的打井,当年即可产油、使用; e. 依据经验来看,每年打井和铺设管道应同时协调进行; f. 不考虑管道接口费用; g. 假设所需铺设管道的长度正好为油田与炼油厂的距离,不考虑地理环境对铺设管道长度的影响;
h. 炼油厂由井产生的油不需要管道输送; i. 所计算的费用里不包括从外部购买时的花费。
四 符号说明 符号 说明意义 I 拟计划打的油井的编号:1、2、3、4、5、6、7、8 Mi 编号为i的油井的打井费用 Ni 编号为i的油井的当年产油量 Aa 自备四口油井2012年产油量总和 Ab 自备四口油井2013年产油量总和 Ac 自备四口油井2014年产油量总和 Ad 自备四口油井2015年产油量总和 Ae 自备四口油井2016年产油量总和 Ai 2012年编号为i的油井在该年打(ai=0,1,当ai=1时说明该口井要在本年打,否则不在本年打) Bi 2013年编号为i的油井在该年打(bi=0,1,当bi=1是说明该口井要在本年打,否则不在本年打) Ci 2014年编号为i号油井在该年打(ci=0,1,当ci=1是说明该口井要在本年打,否则不在本年打) S1 2012年所打的油井产油量总和
S2 2013年所打的油井产油量总和 S3 2014年所打的油井产油量总和 4
co1 2012年打井所需的费用 co2 2013年打井所需的费用 co3 2014年打井所需的费用 L1 2012年铺设管道的长度 L2 2013年铺设管道的长度 L3 2014年铺设管道的长度 Q1 2015年输油管道的供油量 Q2 2016年输油管道的供油量 P1 2012年铺设管道所需的费用 P2 2013年铺设管道所需的费用 P3 2014年铺设管道所需的费用 Total 三年打井和铺设管道所需的总费用
五 模型的建立与求解 5.1模型的建立: 对于表一 各油井的近几年的产油量 我们可以利用matlab对数据拟合,然后根据函数预测2012年到2016年的油井产量
2012 2013 2014 2015 2016 一号油井 21.4472 20.2456 19.0439 17.8422 16.6406 二号油井 1.0690 0 0 0 0 三号油井 9.1306 7.0456 4.9606 2.8756 0.7906 四号邮件 11.8286 4.5071 0 0 0 总量 43.4754 31.7983 24.0045 20.7178 17.4312 由题意可得
(1). 1s 81iiina 0,1ia
(2). 2s 81iiinb 0,1ib (3). 3s 81iiinc 0,1ic 5
(4). 1co 81iiima 0,1ia (5). 2co 81iiimb 0,1ib (6). 3co 81iiimc 0,1ic (7). 1020l (8). 2020l (9). 3020l (10). 12320lll (11). 1p0.51210.66Ql (12). 2p0.51220.66Ql (13). 3p0.51230.66Ql (14). 1,23,ppp为整数 (15). 21100QQ (16). 1150Saa (17). 120.9160SSab (18). 21230.90.9170SSSac (19). 3212320.90.90.9180SSSadQ (20). 43212320.90.90.9190SSSaeQ (21). 1160cop (22). 2260cop (23). 3360cop (24). 123123totalcococoppp (目标函数) 6
(25). 01iiiabc 对式子进行分析: (1)式 2012年所打的油井产油量总和 (4)式 2012年打井所需的费用 (7)式 2012年铺设管道长度的限制条件 (10)式 三年铺设管道总长的限制条件 (11)式 2012年铺设管道所需的费用 (15)式 在这里我们假定21QQ,所以2Q影响铺设管道的费用
(18)式 2013年时,2012年打的油井产量已减少了10% (21)式 打井和铺设管道的费用不大于60万元 (24)式 目标函数,这是三年的总费用,题目要求是使的总费用最小 (25)式 三年不重复打井
5.2模型的求解: 利用lingo软件编程得出结果:
对模型解出的数据结果进行整理得到: 由于题目要求铺设管道的费用为万元的整数倍,所以它的实际铺设里程(题目要求)与理论里程有点误差。
12100QQ万吨 总费用:172 万元 打井和铺设管道规划: 管道 年份1 2 3 4 5 6 7 8 里程 (km) 管道费用(万元) 打井费用 (万元) 总费用 (万元)
2012 1 1 1 0 1 0 0 5.209050 36 23 59 2013 0 0 0 0 0 0 1 7.090096 49 5 54 2014 0 0 0 0 0 1 0 0 7.813576 54 5 59
注:0表示该油井不打,1表示该油井打