基于线性规划的建厂问题.docx
- 文档编号:18623819
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:19
- 大小:119.89KB
基于线性规划的建厂问题.docx
《基于线性规划的建厂问题.docx》由会员分享,可在线阅读,更多相关《基于线性规划的建厂问题.docx(19页珍藏版)》请在冰点文库上搜索。
基于线性规划的建厂问题
基于线性规划的建厂问题
摘要
随着我国经济的不断发展,特别是工业的现代化,关于如何建立工厂并使其获得最大的经济效益这一类问题成为工业经济方面的常见问题。
本文研究的是建厂方案问题。
内容为确定一个建厂的方案(包括建厂的地点,生产规模,运输销售方案等各因素),使得超轻型合金销售的年平均利润最大,其实质就是利用线性规划求解最优解问题。
针对第一问求三市之间距离,本文建立了几何数学模型,对三市简化为地球表面上的点,地球看做标准球体使得问题简化。
利用弧长公式以及MATLAB软件即可求得:
A1、A2两市距离为132.6625km;A1、A3两市距离为309.5062km;A2、A3两市距离为294.8311km。
针对第二问建厂方案问题,建立了线性规划模型。
将整个建厂方案简化为:
年平均利润=销售额-原料成本-年均建厂成本-运输费用-人工费用-废料处理费-保证金。
问题综合考虑产品售价,原料成本,建厂成本,运输费用,人工费用,废料处理费,环保保证金,原料限制等因素,列出利润的目标函数以及相关约束条件。
针对模型的求解,本文应用MATLAB软件中线性规划的相关知识求解,在得出目标函数和约束条件后,利用MATLAB软件编写目标函数与约束条件关系便可得到满足最优解的各变量的值以及最大年平均利润。
其建厂方案为:
A1,A3作为建厂地点,A1生产规模为192860吨/年,A3生产规模为96430吨/年;对于主要原材料ST21运输,A1市的310000吨全部用于本地生产,A2市的230000吨全部运输到A1生产,A3市的270000吨也全部用于本地生产;对于超轻型合金的销售,A1市本地销售120000吨,A1市运输到A2市销售72860吨,A3市生产的96430吨全部运输到A2销售;这样可以达到最大年平均利润2.2184*10^9元。
在模型的评价与推广中,将所得的各项数据联系实际情况,考虑模型的优缺点,得到数据符合客观事实,具有一定的真实性和稳定性。
然后对模型进行了扩展,进而得出工业类问题的最大经济效益模型。
关键词:
球面距离,线性规划,MATLAB软件
一、问题重述
生产某种新型金属合金‘超轻型合金’,主要原材料是矿石ST21,主要产地是A1、A2、A3市,三地ST21产量分别为31万吨/年,23万吨/年,27万吨/年,它的运输费用为4.8元/吨*公里。
超轻型合金在生产时还需要耗费其他原材料,以及不同地方不同的人工费和废料处理费(见附表1)。
A1、A2两市建有超轻型合金市场,市场需求分别为12万吨/年,17万吨/年,超轻型合金的运输费用为5.2元/吨*公里。
A1、A3市建厂,生产规模不受限制;如果在A2市建厂,生产规模受到环保新规定的相应限制。
建厂成本和生产规模成正比,比例系数为ki(见附表1),使用年限50年。
问题一:
根据附表1,计算A1、A2、A3之间的距离(以球面距离计算即可),并用MATLAB绘图工具绘制示意图。
问题二:
设计建厂方案(建厂地点、生产规模、运输销售方案),使得超轻型合金销售的年平均利润最大。
建厂地点的选择就是确定工厂坐落的具体地点,工厂建在什么地点,不仅影响生产规模,而且还影响工厂的运输销售。
它直接关系到一个公司在未来的销售利润或者得失和成败。
附表1
城市
A1
A2
A3
人工费(元/吨)
908.654
1439.6
1317.2
废料处理费(元/吨)
3509.8
4423.7
2721.6
经度
E53°09′35.81″
E51°49′13.88″
E52°51′49.18″
维度
N29°46′22.62″
N30°02′51.43″
N32°32′41.42″
ki(万元/百吨)
319.96
481.87
364.25
二、问题分析
问题一:
已知A1、A2、A3经纬度,计算三市之间的距离。
这属于求解球面上点之间的球面距离的几何数学问题,对于解决此类问题一般根据L=nπR/180,结合MATLAB中distance函数即可求解。
MATLAB绘制示意图:
三维图真实反映了三市实际位置,但是A1、A2、A3之间距离相对地球表面较小,无法清晰显示三市位置关系。
因此结合二维图,以经纬度为纵横坐标可弥补上述缺点。
问题二:
选择建厂位置,合理安排生产规模与运输销售方案,以取得“超轻型合金”最大年平均利润。
它属于线性规划数学问题,对于解决此类问题,我们必须首先确定目标函数,其次是约束条件。
经分析,此题目标函数:
年平均利润=销售额-主要原材料ST21费用-其他原材料费用-人工费-废料处理费-排污保证金-原材料ST21运输费-超轻型合金运输费-年均建厂成本。
其约束条件受到多方面影响,如:
三市ST21的产量;A1、A2市场需求;A2生产规模等。
表示约束条件的时候,不能改变各变量范围,相应变量对应相应界限;此模型约束条件不仅包括不等式,也含有一系列等式约束。
只有全面考虑,才能使得结果符合实际情况。
三、模型假设及符号说明
3.1模型假设
①地球是标准球体;
②A1、A2、A3市相对地球表面(参考物)均看做点;
③建厂后50年内主要原材料ST21价格、其他原材料费用、人工费、废料处理费、ST21运输费、超轻型合金运输费均保持不变;
④建厂后50年内三地ST21产量、A1,A2两市市场需求保持不变;
⑤建厂一次性可确保使用50年。
表2:
3.2符号说明
n
圆心角
Lij
Ai与Aj之间球面距离(单位:
公里)
R
地球半径,即6371公里
z
年平均利润(单位:
元)
Si
Ai市生产规模(i=1,2,3.单位:
吨/年)
Yij
Ai运输到Aj的原材料ST21数量(i,j=1,2,3.单位:
吨)
Qij
Ai运输到Aj的超轻型合金数量(i=1,2,3.j=1,2.单位:
吨)
四、模型的建立与求解
4.1问题一:
计算A1,A2,A3之间的距离(球面距离)
A1、A2、A3三市经纬度:
城市
A1
A2
A3
经度
E53°09′35.81″
E51°49′13.88″
E52°51′49.18″
维度
N29°46′22.62″
N30°02′51.43″
N32°32′41.42″
表三
地球半径为6371公里,根据几何关系球面上任意两点之间的球面距离:
L=nπR/180⑴式
利用MATLAB中distance函数可以得到的球面上两点圆心角度数
n=distance(纬度1,经度1,纬度2,经度2)
代入⑴式,结合MATLAB 语言编程(见附录1)得到:
A1、A2、A3三市之间距离:
L
距离(km)
L12
132.6625
L23
294.8311
L13
309.5062
表四
图1:
A1、A2、A3三地位置关系三维图(见附录2)
图2:
纬度
经度
A1、A2、A3三地位置关系二维图(见附录3)
4.2问题二:
建厂方案设计
4.2.1模型的分析
根据“问题分析“的结果,需要利用线性规划的知识建立利润最大的数学模型,使得超轻型合金销售的年平均利润最大。
4.2.2建立线性规划模型
4.2.2.1目标函数的建立
由上述“问题分析”得到:
年平均利润=销售额-主要原材料ST21费用-其他原材料费用-人工费-废料处理费-排污保证金-原材料ST21运输费-超轻型合金运输费-年均建厂成本,则有目标函数:
maxz=(31515-3694.5-2.8*5000-908.654-3509.8)S1+(31515-3694.5-2.8*5000-1439.6-4423.7)S2+(3151-3694.5-2.8*5000-1317.8-2721.6)S3-4.8*132.6625*(Y12+Y21)-4.8*309.5062*(Y13+Y31)-4.8*294.8311*(Y23+Y32)-5.2*132.6625*(Q12+Q21)-5.2*309.5062*Q31-5.2*294.8311Q32-4423.7*S2*50%-31996*S1/50-48187*S2/50-36425*S3/50
简化,得:
maxz=8763.126S1+4781.61S2+9052.6S3-636.78Y12-1485.6297Y13-636.78Y12-1415.1892Y23-1485.6297Y31-1415.1892Y32-689.845Q12-689.845Q21-1609.4322Q31-1533.1217Q32
4.2.2.2约束条件的建立
由“问题分析”可知:
1.A1、A2、A3三地ST21产量分别为31万吨/年,23万吨/年,27万吨/年,本地拥有量与外地运来量之和大于生产用去量与运到外地量之和,可得①②③。
2.A1、A2、A3三地生产规模受到原材料ST21总量与市场需求限制,而29万吨的市场需求大于原材料ST21总量可生产的超轻型合金,所以应以后者来控制对变量的影响,可得⑥。
3.A2建厂,规模不超过6万吨,可得⑦。
4.A1、A2市场需求分别为12万吨/年,17万吨/年,超轻型合金在这两地的销售应不超过市场需求,可得④⑤。
5.A1、A2、A3三市生产规模等于本地出售量与运到外地出售量,可得⑧⑨⑩。
6.各决策变量非负,可得11。
从而得到以下约束条件:
②③④⑤⑥⑦⑧⑨⑩
①
2.8S1+Y12+Y13-Y21-Y31《310000
2.8S2+Y21+Y23-Y12-Y32《230000
2.8S3+Y31+Y32-Y13-Y23《270000
S1+Q21+Q31-Q12《120000
S2+Q12+Q32-Q21《170000
S1+S2+S3《810000/2.8
S2《60000
S1=Q11+Q12
S2=Q21+Q22
S3=Q31+Q32
Si,Yij,Qij》0(i=1,2,3;j=1,2,3)
X1+X2+X3《810000/2.8
11
4.2.3模型的求解
利用MATLAB求解线性规划(见附录4),得到结果:
x=
1.0e+005*
1.9286
0.0000
0.9643
3.1000
0.0000
0.0000
2.3000
0.0000
0.0000
0.0000
0.0000
2.7000
1.2000
0.7286
0.0000
0.0000
0.0000
0.9643
fval=
-2.2184e+009
4.2.4结果的分析
表五
变量结果(未说明的全部等于零):
S1:
A1生产规模
192860吨/年
S3:
A3生产规模
96430吨/年
Y11:
A1运输到A1原材料ST21数量
310000吨
Y21:
A2运输到A1原材料ST21数量
230000吨
Y33:
A3运输到A3原材料ST21数量
270000吨
Q11:
A1运输到A1超轻型合金数量
120000吨
Q12:
A1运输到A2超轻型合金数量
72860吨
Q32:
A3运输到A2超轻型合金数量
96430吨
Z:
最大年平均利润
2.2184*10^9元
由此可知,应选择A1,A3作为建厂地点,A1生产规模为192860吨/年,A3生产规模为96430吨/年。
对于主要原材料ST21运输,A1市的310000吨全部用于本地生产,A2市的230000吨全部运输到A1生产,A3市的270000吨也全部用于本地生产。
对于超轻型合金的销售,A1市本地销售120000吨/年,A1市运输到A2市销售72860吨/年,A3市生产的96430吨/年全部运输到A2销售;则A1销售量为120000吨/年,A2销售量为169290吨/年。
这样可以达到最大年平均利润2.2184*10^9元。
图3:
生产规模:
192860吨/年
原材料ST21:
310000吨
超轻型合金本地销售:
120000吨/年
生产规模:
0
原材料ST21:
230000吨
超轻型合金销售量:
169290吨/年
生产规模:
96430吨/年
原材料ST21:
270000吨
超轻型合金本地销售:
0
运输销售示意图
五、模型的评价与推广
5.1优点:
1、本文在正确、清楚地分析了题意的基础上,建立了合理、科学的线性规划模型,便于计算得到最大年平均利润。
2、在假设基础上建立的可供计算的模型,巧妙解决了各种费用随时间的变化等不确定问题。
4、运用了合理的数据处理方法,很好的解决了数值近似问题。
5、对于各项数据以表格或者示意图处理,给人以直观清晰的感觉,使得论文更具说服力。
6、建立的线性规划模型与实际相联系,模型相对简单,利于操作。
结合实际情况对问题进行求解,使得模型具有很好的通用性和推广型。
5.2缺点:
1、在假设中,我们做出了售价以及人工费等不变的假设,这与实际情况不完全相符。
2、模型建立过程中引入的变量过多,容易引起“维数灾”,且不利于编程处理。
3、这个模型的建立过程,许多变量受到约束不足,导致结果相对特殊,不能适用于一般模型。
4、线性规划模型的约束条件有点简单。
六、参考文献
[1]陈国华韦程东蒋建初付军,数学模型与数学建模方法,南开大学出版社,2012.
[2]杨高波,MATLAB7.0混合编程,电子工业出版社,2006.
[3]于润伟,MATLAB基础及应用,2007.
七、附录
附录1
A1,A2
distance(29+46/60+22.62/3600,53+9/60+35.81/3600,30+2/60+51.43/3600,51+49/60+13.88/3600)*6371*pi/180
ans=
132.6625
A1,A3
distance(29+46/60+22.62/3600,53+9/60+35.81/3600,32+32/60+41.42/3600,52+51/60+49.18/3600)*6371*pi/180
ans=
309.5062
A2,A3
distance(30+2/60+51.43/3600,51+49/60+13.88/3600,32+32/60+41.42/3600,52+51/60+49.18/3600)*6371*pi/180
ans=
294.8311
附录2
tic%timebegin
clear
theta=[(29+46/60+22.62/3600),(30+2/60+51.43/3600),(32+32/60+41.42/3600),(29+46/60+22.62/3600)]/180*pi;
fai=([(53+9/60+35.81/3600),(51+49/60+13.88/3600),(52+51/60+49.18/3600),(53+9/60+35.81/3600)]+180)/180*pi;
R=6371;
x=R*cos(theta).*cos(fai);
y=R*cos(theta).*sin(fai);
z=R*sin(theta);
fori=1:
4
cor{i}=[x(i),y(i),z(i)];
end
fori=1:
3
th{i}=acos(dot(cor{i},cor{i+1})/(norm(cor{i})*norm(cor{i+1})));
end
A=R*[th{1},th{2}];
distance_1={'A1到A2长度',fix(sum(A));'A1到A3长度',fix(th{3}*R)};%长度计算
distance_2={'A1到A2','A2到A3',fix(A
(1)),fix(A
(2))};
theta2=(-90:
5:
90)*pi/180;
fai2=(-180:
5:
180)*pi/180;
X=R*cos(theta2)'*cos(fai2);
Y=R*cos(theta2)'*sin(fai2);
Z=R*sin(theta2)'*ones(size(fai2));
load('topo.mat','topo','topomap1');
whostopotopomap1;
contour(0:
359,-89:
90,topo,[00],'b');
axisequal
boxon
set(gca,'XLim',[0360],'YLim',[-9090],...
'XTick',[060120180240300360],...
'Ytick',[-90-60-300306090]);
holdon
image([0360],[-9090],topo,'CDataMapping','scaled');
colormap(topomap1);
clareset
axissquareoff
props.AmbientStrength=0.1;
props.DiffuseStrength=1;
props.SpecularColorReflectance=0.5;
props.SpecularExponent=20;
props.SpecularStrength=1;
props.FaceColor='texture';
props.EdgeColor='none';
props.FaceLighting='phong';
props.Cdata=topo;
surface(X,Y,Z,props);%画地球表面并进行光照和材质处理
axisoff
axisequal
light('position',[-80003009200]);
light('position',[80009000-9200]);
light('position',[800-500200]);
light('position',[85005000-8600],'color',[.6.2.2]);
view(130,150)
holdon
theta3=31/180*pi;%CD位置
fai3=103/180*pi+pi;
x3=R*cos(theta3).*cos(fai3);
y3=R*cos(theta3).*sin(fai3);
z3=R*sin(theta3);
theta4=48.194/180*pi;%LD位置
fai4=2/180*pi+pi;
x4=R*cos(theta4).*cos(fai4);
y4=R*cos(theta4).*sin(fai4);
z4=R*sin(theta4);
scatter3([x(1:
3),x3,x4,0,0],[y(1:
3),y3,y4,0,0],[z(1:
3),z3,z4,R,-R],'filled')%画各点分布
t=(0:
20)/20;
fori=1:
2%画A1到A2到A3
X=(1-t)*x(i)+t*x(i+1);
Y=(1-t)*y(i)+t*y(i+1);
Z=(1-t)*z(i)+t*z(i+1);
r=sqrt(X.*X+Y.*Y+Z.*Z);
X=R*X./r;Y=R*Y./r;Z=R*Z./r;
holdon
plot3(X,Y,Z,'r','LineWidth',2)
end
X=(1-t)*x(3)+t*x(3+1);%画A1到A3曲线
Y=(1-t)*y(3)+t*y(3+1);
Z=(1-t)*z(3)+t*z(3+1);
r=sqrt(X.*X+Y.*Y+Z.*Z);
X=R*X./r;Y=R*Y./r;Z=R*Z./r;
holdon
plot3(X,Y,Z,'b','LineWidth',2)
text(x
(1),y
(1),z
(1),'A1')%各位置标注
text(x
(2),y
(2),z
(2),'A2')
text(x(3),y(3),z(3),'A3')
text(x3,y3,z3,'CD')
text(0,0,R,'北极')
text(0,0,-R,'南极')
text(x4,y4,z4,'LD')
str1=num2str(fix(sum(A)));str2=num2str(fix(th{3}*R));
title(strcat('A1到A3',str1,'4公里,','A1到A3距离',str2,'公里'))
yu1=num2str(fix(A
(1)));yu2=num2str(fix(A
(2)));
text(10000,100,15000,'分段路程表示')%分段路程表示
text(9000,100,11000,strcat('A1到A2',yu1,'公里'))
text(9000,100,7000,strcat('A2到A3距离',yu2,'公里'))
formatrat
distance_1
distance_2
toc
附录3
closeall;
clc;
plot([(53+9/60+35.81/3600)(51+49/60+13.88/3600)(52+51/60+49.18/3600)(53+9/60+35.81/3600)],[(29+46/60+22.62/3600)(30+2/60+51.43/3600)(32+32/60+41.42/3600)(29+46/60+22.62/3600)]);
text((53+9/60+35.81/3600),(29+46/60+22.62/3600),'A1');
text((51+49/60+13.88/3600),(30+2/60+51.43/3600),'A2');
text((52+51/60+49.18/3600),(32+32/60+41.42/3600),'A3');
axisequal
gridon
附录4
clear;
closeall;
clc;
f=[-8763.126-4781.61-9052.60636.781485.6297636.7801415.18921485.62971415.189200689.845689.84501609.43221533.1217];
A=[2.800011-100-100000000;02.800-101010-10000000;002.800-100-1110000000;111000000000000000;010000000000000000;01000000000001-1001;1000000000000-11010];
b=[310000;230000;270000;810000/2.8;6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 线性规划 建厂 问题
![提示](https://static.bingdoc.com/images/bang_tan.gif)