炼油厂选址.docx
- 文档编号:11895754
- 上传时间:2023-04-08
- 格式:DOCX
- 页数:22
- 大小:189.85KB
炼油厂选址.docx
《炼油厂选址.docx》由会员分享,可在线阅读,更多相关《炼油厂选址.docx(22页珍藏版)》请在冰豆网上搜索。
炼油厂选址
第五届太原地区数学建模联赛
承诺书
我们仔细阅读了太原地区数学建模联赛的竞赛规则.
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。
如有违反竞赛规则的行为,我们将受到严肃处理。
我们参赛选择的题号是(从A/B中选择一项填写):
A
我们的参赛报名号为:
06005
参赛队员(打印并签名):
1.
2.
3.
日期:
2011年5月15日
第五届太原地区数学建模联赛
评阅记录
评阅记录(可供评阅时使用):
评
阅
人
评
分
备
注
炼油厂的选址
摘要
本文首先将所给的9个油井口的坐标用图形描绘出,通过给出的所对应的油井口的产量分别分析3个问题,列出所求的目标函数,借助编程来实现复杂的计算,并且通过比较得到较优的方案。
问题一是一个距离动态的优化问题,通过合理安排炼油厂的位置来缩短运输距离,考虑到各个油井口的油产量不一样,综合产量的因素,建立模型。
针对问题一,可以通过计算以1—9号油井口为中心的炼油厂与其他的油井口的折线距离(考虑上相应的产量),通过用VC编程实现计算,得到的方案是:
1号油井口附近建一个炼油厂,且此时的总运输费用13720。
问题二通过在该区域中随机模拟炼油厂的位置,计算出所需要的总运输费用,并且经过大量的随机模拟,找出其中较好的方案,经过MATLAB编程得到的最终方案是:
炼油厂建在坐标(32.4,35.0)km处,该总运输费用为10213。
问题三将所给的9个油井口分成2组,共有4种方案,分别为(1,8),(2,7),(3,6),(4,5)表示M、N这2个炼油厂分别负责的油井口数量。
现在就通过问题二随机的方法分别计算出4个方案中比较好的方案,然后列表对比得到最终的方案。
由MATLAB程序和对比得到的最终的方案是:
炼油厂M负责3号油井口,建在3号炼油厂附近,即M的坐标(4,81)km;炼油厂N负责其余的8个油井口,所在的位置为(41.6,24.9)km,且所需要的总运输费用为6546。
最后本文所建立的模型在实际中进行了分析,并提出了改进。
结合实际,加入了重要因素的考虑,比如:
炼油厂的建设费用,以及油井与炼油厂不可能都是直线连接的。
关键字:
图形描绘随机模拟动态优化分组编程计算
一、问题重述
在商品高度市场化的当今社会,物品时时刻刻处于流动之中。
资料显示,商品的平均物流成本占总成本的36%,而其制造成本仅占总成本的13%。
据2011年5月9日CCTV《经济半小时》报道,去年我国物流总费用占GDP的18%,比发达国家高出近一倍,放在市场竞争日益激烈的今天,物流管理显得日益重要。
某一油田在一平坦地区拥有九口油井,其年产量及位置如下表所示。
所有的原油都需要运输到炼油厂进行提炼。
现在不考虑炼油厂的建设费用,因此总的费用仅与炼油厂的位置有关。
在假定的单位运费与运输距离成正比的条件下,需对以下问题做出决策:
一、如果两点间的距离以折线计算,且九个井口均可作为炼油厂的候选位置,问炼油厂建在哪个井口附近(该井口到炼油厂距离以0计)最佳,总运输费用是多少?
二、若两点间距离以直线距离计算,且该区域的任一点均可作为炼油厂的候选厂址,炼油厂应建在何处,总费用是多少?
三、若油田高层已决定在该地区见两个炼油厂,不考虑炼油厂的建造费用,仅考虑运费,两个炼油厂分别建在什么位置,各应服务于哪几个油井(假定一个油井的原油只能运往一个炼油厂),才能使总运费最低,总费用是多少?
井号
位置(X,Y)(km)
产量(万吨)
1
(22,38)
17
2
(8,13)
40
3
(4,81)
60
4
(51,32)
20
5
(38,11)
25
6
(17,12)
15
7
(81,63)
50
8
(19,45)
8
9
(62,12)
30
请分别建立以上三个问题的数学模型,并予以求解,对你所建模型的优劣性进行评估。
二、问题分析
问题—:
由于炼油厂被要求建设在所给的9个油井口附近,则以其中一个油井口为中心分别向其它井口作折线。
不妨计算出分别以1-9号井口为炼油厂所需要的总运输费用,然后比较得出较好的方案。
这部分可以利用VC编程实现。
问题二:
现在炼油厂可以建在所给的区域的任一点,我们利用MATLAB里的随机函数随机出一点,假设作为炼油厂的选址地点。
然后以这一点为中心,分别计算与1—9号油井口运输所需的运输费用,然后求和。
根据所取点的随机性,我们可以多次随机,并比较就能得出较优的方案。
该部分就可以利用MATLAB编程实现。
问题三:
现在又要求建2个炼油厂,我们由此考虑将那9个油井口分成2组,2组可以有4种情况:
(1,8)、(2,7)、(3,6)、(4,5)。
然后再分情况计算所需要的总运输费用,最后比较得出哪种情况较好。
这方面MATLAB可以很好的实现。
三、模型的假设
1、当炼油厂建在某个井口附近,则该井口到炼油厂的距离以0计;
2、题中我所给的平坦地区假设为
3、炼油厂的建设费用不考虑(题目已知);
4、单位运输与运输距离成正比(题目已知);
5、单位运输的费用与运输距离的比例系数假定为1.
四、符号说明
符号
说明
X
各油井横坐标的数组
Y
各油井纵坐标的数组
Z
各油井产量的数组
D
总运输费用
M
炼油厂M
N
炼油厂N
号油井的横坐标
号油井的纵坐标
号油井的产量
第
次随机时油厂的横坐标
第
次随机时油厂的纵坐标
第
次随机时炼油厂M的横坐标
第
次随机时炼油厂M的纵坐标
第
次随机时炼油厂N的横坐标
第
次随机时炼油厂N的横坐标
油厂建设在
号油井时的总运输费用(问题一);
第
次随机时,总运输费用(问题二)
五、模型建立与求解
首先将1—9号油井口的位置在图中标识:
如下
问题一;
1)、计算从1—9号油井口分别建炼油厂的总运输费用
2)、比较
,得出方案
。
3)、求解(用VC编程求解,源程序见附录1)
炼油厂建在油井口的序号
1
2
3
4
5
6
7
8
9
总运输费用
13720
15317
18635
14835
15185
14875
20108
13980
16970
炼油厂分别建在1—9号油井口的总运输费用
比较得出炼油厂应该建设在1号油井,且建在一号井口的总运输费用是13720如下图所示:
问题二:
1)、为了求出最佳的地点,我们将本区域内任一随机点
视为已知坐标的点,即
为常数。
然后求解出这一点(炼油厂)和各点(油井)之间的距离,进而求出运输费用。
运输费用
2)、随机数
越来越大时,运输费用
越趋向于所有可能。
然后找出其中最小的一个
,以及和其相对应的
。
即为我们想要求解的最佳地点和最佳运输费用。
3)、求解(通过TLAB编程得来,源程序见附录2)。
基于以上思路,我们利用MATLAB软件进行随机模拟,最终求出了最佳的炼油厂地址,以及此炼油厂地址的总运输费用。
求出的炼油厂建在(32.4,35.0)km处,如下图所示。
且此时的总费用是10213
问题三:
1)、建设两座炼油厂,每座炼油厂将会负责的油井数如下
炼油厂M
炼油厂N
1
8
2
7
3
6
4
5
2)、基于问题二的思路,我们随机模拟出两个点
,即已知两座炼油厂的位置。
首先让炼油厂M负责九个井口其中的一个,炼油厂N负责其他八座井口。
以此求出总费用
。
3)、求解(通过TLAB编程得来,源程序见附录3、4、5、6)
共有九种可能,找出其中最小的运输费用,以及该费用所对应的炼油厂M和炼油厂N的坐标,和他们所负责的井口。
利用以上方法求解出表上表格中的各情况的总运输费用
。
比较他们的大小,找出最小的一个运输费用,即为此模型的最优解。
一个炼油厂负责1个井口,另一个炼油厂负责8个井口
一个炼油厂负责2个井口,另一个炼油厂负责7个井口
一个炼油厂负责3个井口,另一个炼油厂负责6个井口
一个炼油厂负责4个井口,另一个炼油厂负责5个井口
M,N这2个炼油厂各自负责的井口序号
M(3)
N(1,2,4,5,6,7,8,9)
M(3,7)、
N(1,2,4,5,6,8,9)
M(3,4,7)
N(1,2,5,6,8,9)
M(3,4,7,9)
N(1,2,5,6,8)
两个炼油厂的坐标(km)
M(4,81)
N(41.6,24.9)
M(4.1,80.9)、
N(31.2,17.6)
M(52.7,59.9)
N(19.2,16.8)
M(52.6,52.1)
N(15.3,14.4)
总运输费用
6546
10878
13086
12868
费用从低到高排列
1
2
4
3
由上表可知最佳的方案为炼油厂M建设在3号井(4,81),仅负责3号井;炼油厂N建设在坐标为(41.6,24.9)的点处,负责其他八座油井。
且此时的运输费用为6546。
位置如下图所示:
六、模型评价与推广
1、模型的评价:
(1)优点:
1.计算过程采用MATLAB数学软件,使计算比较精确简便,减少误差;
2.合理的假设,使复杂问题简单化,抽象问题具体化;
3.在模型分析中,通过多种方法对比计算,更容易找到我们的优化解决方案;
4.运用了一些图形,用数形结合法来进行分析,使模型思路更清晰,更有说服力;
5.本文建立模型符合实际情况,真实的考虑了各种车型、运费单价等等情况对总费用最省的影响,并且具有一般性,便于模型的实施、应用和推广;
6.本文用的数学方法都比较简单易懂,方便方案的利用。
7.我们采用了随机性,更加具有普遍性,这样更能接近真实值。
(2)缺点:
1.虽然用了数学软件MATLAB编程计算,但由于自身电脑性能的限制,不能进行更加精确的计算,其中不免有些误差。
2.模型假设的时候可能考虑不周,难免存在一些细小问题被忽略;
3.语言方面表达可能有所欠缺,影响论文。
2、模型的推广:
本文中的模型都是在综合考虑了各种不同情况下得出的满足实际需求的最优解决方案,因此它的适用性较强,可以推广到很多类似的现实问题。
(1)可以用更好的软件或方法得到更好的最优方案来满足社会的需求;
(2)具体模型可以运用于各种运输路线设置,如:
输油管道的设置、西气东输的输气管设置、南水北调的输水管设置、通信电缆的安装路线、农村抽水管的设置以及水源点的寻找和利用、仓库地点的设置等。
(3)应用于一些最短距离的求法、旅游(省时又省力)的模型中等等。
七.模型的改进
现实生活中,物流费用推高了物价,但物流的钱也越来越难赚。
下面是大部分物流公司的经营成本构成图一,而本模型略去了车辆维修费用,为减少炼油厂的物流费用,除考虑总运输费用外,还必须考虑炼油厂的建设费用;而运输费用也需要包括道路维修费用,这占用了一大部分的支出;同时井口到炼油厂的距离不可能以零计算,这之间一定有运输费用的;各各个井口之间不可能按直线连接。
将以上因素考虑进去之后,尽管模型相对比较复杂,但是更加切合实际,更加有利于实际应用。
八、参考文献
[1]万福永.等.数学实验教程(MATLAB版).北京:
科学出版社,2006.
[2]谭浩强.C程序设计.第三版.北京:
北京大学出版社,2005.
九、附录
具体程序在附件中
附录1:
问题一中计算分别以1—9号井口为炼油厂的运输费用以及最少的运输费用和所对应的炼油厂的编号的VC源程序;
附录2:
问题二中的计算的炼油厂的建设最合理的坐标以及所对应的总运输费用的MTALAB源程序;
附录3:
问题三中的第一种分类,一个炼油厂负责1个井口,另一个炼油厂负责8个井口,计算出两个炼油厂的最合理的坐标以及所对应的总运输费用的MTALAB源程序;
附录4:
问题三中的第二种分类,一个炼油厂负责2个井口,另一个炼油厂负责7个井口,计算出两个炼油厂的最合理的坐标以及所对应的总运输费用的MTALAB源程序;
附录5:
问题三中的第三种分类,一个炼油厂负责3个井口,另一个炼油厂负责6个井口,计算出两个炼油厂的最合理的坐标以及所对应的总运输费用的MTALAB源程序;
附录6:
问题三中的第四种分类,一个炼油厂负责4个井口,另一个炼油厂负责5个井口,计算出两个炼油厂的最合理的坐标以及所对应的总运输费用的MTALAB源程序;
附件1:
C语言程序
#include
#include
voidmain()
{
inta[9]={22,8,4,51,38,17,81,19,62};
intb[9]={38,13,81,32,11,12,63,45,12};
intc[9]={17,40,60,20,25,15,50,8,30};
ints[9]={0,0,0,0,0,0,0,0,0};
inti,j,k;
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
s[i]=s[i]+(abs(a[i]-a[j])+abs(b[i]-b[j]))*c[j];
}
for(i=0;i<9;i++)
printf("%d\n",s[i]);
for(k=0;i<9;i++)
{
if(s[k]
s[k]=s[k+1];
}
printf("炼油厂建在井口的序号是=%d\n总最佳运费=%d\n",k+1,s[k]);
}
附件2:
MATLAB程序
clear
formatlong
A=[2284513817811962];
B=[381381321112634512];
C=[17406020251550830];
fori=1:
500000
x(i)=rand
(1)*81;y(i)=rand
(1)*81;
D(i)=0;
forj=1:
9
D(i)=D(i)+sqrt((x(i)-A(j))^2+(y(i)-B(j))^2)*C(j);
end
end
f=min(D)
fork=1:
500000
iff==D(k)
x(k)
y(k)
end
end
附件3:
MATLAB程序
clear
A=[2284513817811962];
B=[381381321112634512];
C=[17406020251550830];
form=1:
2000
G=randperm(9);
fori=1:
10000
x1(i)=rand
(1)*81;y1(i)=rand
(1)*81;
x2(i)=rand
(1)*81;y2(i)=rand
(1)*81;
D1(i)=0;D2(i)=0;
D1(i)=D1(i)+sqrt((x1(i)-A(G
(1)))^2+(y1(i)-B(G
(1)))^2)*C(G
(1));
fork=2:
9
D2(i)=D2(i)+sqrt((x2(i)-A(G(k)))^2+(y2(i)-B(G(k)))^2)*C(G(k));
end
end
f1(m)=min(D1);
f2(m)=min(D2);
fori=1:
10000
iff1(m)==D1(i)
xm(m)=x1(i);
ym(m)=y1(i);
end
iff2(m)==D2(i)
xn(m)=x2(i);
yn(m)=y2(i);
end
end
f(m)=f1(m)+f2(m);
fork=1:
9
E(m,k)=G(k);
end
end
F=min(f)
fori=1:
2000
ifF==f(i)
xm(i)
ym(i)
xn(i)
yn(i)
E(i,1)
E(i,2)
E(i,3)
E(i,4)
E(i,5)
E(i,6)
E(i,7)
E(i,8)
E(i,9)
end
end
附件4:
MATLAB程序
clear
A=[2284513817811962];
B=[381381321112634512];
C=[17406020251550830];
form=1:
2000
G=randperm(9);
fori=1:
10000
x1(i)=rand
(1)*81;y1(i)=rand
(1)*81;
x2(i)=rand
(1)*81;y2(i)=rand
(1)*81;
D1(i)=0;D2(i)=0;
forj=1:
2
D1(i)=D1(i)+sqrt((x1(i)-A(G(j)))^2+(y1(i)-B(G(j)))^2)*C(G(j));
fork=3:
9
D2(i)=D2(i)+sqrt((x2(i)-A(G(k)))^2+(y2(i)-B(G(k)))^2)*C(G(k));
end
end
end
f1(m)=min(D1);
f2(m)=min(D2);
fori=1:
10000
iff1(m)==D1(i)
xm(m)=x1(i);
ym(m)=y1(i);
end
iff2(m)==D2(i)
xn(m)=x2(i);
yn(m)=y2(i);
end
end
f(m)=f1(m)+f2(m);
fork=1:
9
E(m,k)=G(k);
end
end
F=min(f)
fori=1:
2000
ifF==f(i)
xm(i)
ym(i)
xn(i)
yn(i)
E(i,1)
E(i,2)
E(i,3)
E(i,4)
E(i,5)
E(i,6)
E(i,7)
E(i,8)
E(i,9)
end
end
附件5:
MATLAB程序
clear
A=[2284513817811962];
B=[381381321112634512];
C=[17406020251550830];
form=1:
2000
G=randperm(9);
fori=1:
10000
x1(i)=rand
(1)*81;y1(i)=rand
(1)*81;
x2(i)=rand
(1)*81;y2(i)=rand
(1)*81;
D1(i)=0;D2(i)=0;
forj=1:
3
D1(i)=D1(i)+sqrt((x1(i)-A(G(j)))^2+(y1(i)-B(G(j)))^2)*C(G(j));
fork=4:
9
D2(i)=D2(i)+sqrt((x2(i)-A(G(k)))^2+(y2(i)-B(G(k)))^2)*C(G(k));
end
end
end
f1(m)=min(D1);
f2(m)=min(D2);
fori=1:
10000
iff1(m)==D1(i)
xm(m)=x1(i);
ym(m)=y1(i);
end
iff2(m)==D2(i)
xn(m)=x2(i);
yn(m)=y2(i);
end
end
f(m)=f1(m)+f2(m);
fork=1:
9
E(m,k)=G(k);
end
end
F=min(f)
fori=1:
2000
ifF==f(i)
xm(i)
ym(i)
xn(i)
yn(i)
E(i,1)
E(i,2)
E(i,3)
E(i,4)
E(i,5)
E(i,6)
E(i,7)
E(i,8)
E(i,9)
end
end
附件6:
MATLAB程序
clear
A=[2284513817811962];
B=[381381321112634512];
C=[17406020251550830];
form=1:
2000
G=randperm(9);
fori=1:
10000
x1(i)=rand
(1)*81;y1(i)=rand
(1)*81;
x2(i)=rand
(1)*81;y2(i)=rand
(1)*81;
D1(i)=0;D2(i)=0;
forj=1:
4
D1(i)=D1(i)+sqrt((x1(i)-A(G(j)))^2+(y1(i)-B(G(j)))^2)*C(G(j));
fork=5:
9
D2(i)=D2(i)+sqrt((x2(i)-A(G(k)))^2+(y2(i)-B(G(k)))^2)*C(G(k));
end
end
end
f1(m)=min(D1);
f2(m)=min(D2);
fori=1:
10000
iff1(m)==D1(i)
xm(m)=x1(i);
ym(m)=y1(i);
end
iff2(m)==D2(i)
xn(m)=x2(i);
yn(m)=y2(i);
end
end
f(m)=f1(m)+f2(m);
fork=1:
9
E(m,k)=G(k);
end
end
F=min(f)
fori=1:
2000
ifF==f(i)
xm(i)
ym(i)
xn(i)
yn(i)
E(i,1)
E(i,2)
E(i,3)
E(i,4)
E(i,5)
E(i,6)
E(i,7)
E(i,8)
E(i,9)
end
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 炼油厂 选址