资源描述
黔南民族师范学院
2012年数学建模模拟竞赛论文
重型机械制造企业的发展规划问题
摘 要
本文研究重型机械制造企业的发展规划问题。问题一采用逐次逼近法解决最短路问题,得出决定各产地产量及产品调运方案;在问题一的基础上,问题二分析表1的中的数据,得出该设计规模不合理,应该建设新生产基地,且运用0-1规划建模来确定选址,用lingo分析求解相互新生产基地的位置和规模,最终得到新生产基地应该建立在、规模分别为1150,2460 ;问题三是原料储备问题,可以根据价格走势分析判断得出钢材的储备量和储备方案;问题四根据价格走势图对比比较得出本队所采用钢铁储备策略因钢材价格的不确定性所带来的风险。
关键词:逐次逼近法 0-1规划 lingo 选址问题
14
一、问题重述
某重型机械制造企业在全国有8个生产基地,在图1中分别用顶点,…,表示,其中,…,是已经建成并正常运作的生产基地,和正在建设中,预计一年后可以投入常规产品的正常生产。图中,…,所有顶点都是该企业的主要销售地,图中所示连接顶点和的边权重表示两个顶点之间的距离。该企业产品销售量在过去三年中每年增长速度都超过50%。企业在考虑当前生产经营和下一步发展规划时面临两个主要问题:
1.如果普通机械的运输费用为每台每公里1元,高端机械的运输费用为每台每公里3元,当前为第一季度初,试根据表2和表3中数据(表中,,,,包含出口需求),决定各产地产量及产品调运方案。
2.和为在建生产基地,它们的建设规模现在还可以根据需要进行调整。试问表1中的设计规模是否合理?按照现在的产能和需求情况,是否应该考虑在,…,中选择几个地点建设新生产基地?如果选择2个地点,根据表4中的建设成本,问新生产基地应该建在何处?多大规模?
3.原材料储备问题。该企业产品成本中钢材占50%,请根据当前钢材市场的价格走势和产品需求,确定钢材的储备量及储备策略。(设当前钢材库存为零,每台机械用5#角钢3吨,普中板(20*2000*8000)3吨,H型钢(300*300)3吨)
4.估计本队所采用钢铁储备策略因钢材价格的不确定性所带来的风险。
二、问题假设
1.两个交叉路口间的道路近似于直线段。
2.任意两个路口均可到达。
3.生产基地的占地面积相同。
4.研究储备量问题时,我们以价格因素和需求因素为主要因素,其他因素影响相对较小。
5.以普中板的价格为钢材价格。
6.不考虑机械的运费,储存费。
三、问题分析
2.1 问题一的分析
图模型及其距离矩阵和最佳路径阵的建立
以全市的交叉路口作为图的顶点(设顶点集为)、道路作为图的边(设边集为)构作图。依据假设1和2,建立权矩阵来表示图,其中,
为地到地的距离。
由假设2,图为连通图,由图的权矩阵,采用逐次逼近法求出图的每个顶点到达其他顶点的最短路径及路长。记为从顶点到达顶点的最短路长,可构作距离矩阵(其中,当=时,)。记为从顶点到达顶点的最短路径,可构作最佳路径阵,其中,为从顶点沿最短路径达到顶点依次经过的顶点编号构成的向量(特别地,)。另外,后面我们也用表示从顶点沿最短路径达到顶点所经过的顶点构成的集合。
2.2 问题二的分析
2.2.1 断设计规模的合理性
表1中设计普通机型产能为1500台/季度,设计普通机型产能为1200台/季度,而设计、的高端机型产能为0台/季度。我们可以通过计算4个季度普通机型产能和高端机型产能的总和来判断表1中的设计规模的合理性。
2.2.2 判断是否应该建设新生产基地
若上述方案合理,则直接进行问题三,否则根据当前的产能和需求情况,根据选址问题中的平面选址在,…,中选择几个地点建设新生产基地。
2.2.3 求解新生产基地的位置和规模
根据表4中的建设成本,选择2个地点来建设新的生产基地,运用0-1规划来建立模型求解新生产基地的位置,并计算其规模。
2.3 问题三的分析
在中国联合钢铁网数据库调用出5#角钢、普中板(20*2000*8000)、H型钢(300*300)的价格走势图,直接分析图形,分析比较确定了钢材的储备量和储存策略。
四、符号说明
1
某重型机械制造企业的主要销售地
2
第地的土地费用
3
从地到地的距离
4
产地所能生产的最大普通机械的数量
5
销地所需普通机械的数量
6
产地向地的运输量
7
是否在地建设新生产基地
8
产地所能生产的最大高效机械的数量
9
销地所需高效机械的数量
五、模型的建立与求解
5.1问题一的求解
采用逐次逼近法:首先设任一点到任一点都有一条弧。显然,从到的最短路是从出发,沿着这条路到某个点再沿弧到。则到的这条路必然也是到的所有路中的最短路。设表示从到的最短路长,表示从到的最短路长,则有下列方程:
开始时,令
即用v1到vj的直接距离做初始解。
从第二步起,使用递推公式:
求 ,当进行到第t步,若出现
则停止计算 即为v1到各点的最短路长
Matlab程序见附录,结果分析如下:
1
2
3
4
5
6
7
8
9
1
0
1520
1100
1400
1400
1600
1630
5100
2800
2
1520
0
2620
2330
1630
1830
3150
5330
3030
3
1100
1928
0
300
1600
1800
2730
5300
3000
4
1400
1628
300
0
1300
1500
3030
5000
2700
5
1400
928
1600
1300
0
200
3030
3700
1400
6
1600
1128
1800
1500
200
0
3230
3500
1200
10
11
12
13
14
15
16
17
18
1
2100
3380
2680
1850
1750
1150
1000
730
940
2
2330
3610
2910
1660
1980
780
1330
2250
2460
3
2300
3580
2880
2050
1250
1850
1300
1830
2040
4
2000
3280
2580
1750
950
1550
1000
2130
2340
5
700
1980
1280
450
350
850
400
2130
2340
6
500
1780
1080
650
550
1050
600
2330
2540
由上表分析判断可得出:
路径最小则花费最少,所以产品调运方案为:分别向、、等地运输机器,向运输机器,、不向外运输机器,分别向、、等地运输机器,分别向、、、、等地运输机器,、、、、、自己提供所需的机器量。
季度1普通机型各产地的产量:=2380 =680 =1300 =420 =2150 =2000
季度2普通机型各产地的产量:=2480 =880 =1350 =650 =2930 =2810
季度3普通机型各产地的产量:=2850 =900 =1300 =400 =2480 =2560
季度4普通机型各产地的产量:=2380 =700 =800 =300 =1670 =1680
季度1高效机型各产地的产量:=20 =0 =10 =0 =8 =10
季度2高效机型各产地的产量:=26 =0 =15 =0 =10 =18
季度3高效机型各产地的产量:=33 =0 =20 =0 =12 =18
季度4高效机型各产地的产量:=38 =0 =12 =0 =8 =10
5.2问题二的求解:
根据表1的数据画出普通机型产能和高端机型产能的图,如下:
根据上图可以看出:
1.机型产能远远高于高端机器产能
2.2、5、7、8号基地中高端机型产能为0台/季度
根据计算得出4个季度普通机型产能共31200台,高端机型产能共560台。根据表2的数据计算得出4个季度普通机型产能的需求量为38050台,高端机型产能的需求量为268台。根据分析得出,普通机型产能供小于求,高端机型产能供大于求,故表1中的设计规划不合理。
按照现在的产能和需求情况,应该考虑在,…,中选择几个地点建设新生产基地。
模型2的建立:
本题采用0-1规划求解。
普通机械供小于求,解题时先引入0-1变量(=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)
令
表示从运到的产品量
高效机械供大于求,所以与各产地到各个点的最小路有关。根据题一的结果可建立如下模型:
其中为最佳路径阵。
程序见附录,由模型得到应选和两地点作为新的生产基地根据题一的结果得到它们的规模1150,2460.
5.3问题三的求解。
上图为上海市2010年三种材料的价格变化图,三种材料的价格趋势基本相同,不妨设钢材的价格与H型钢的价格相同。
储存量和储存策略与钢材的价格走势有很大的关系,由图一二季度的曲线可近似看作二次曲线且一季度末为最大值点,所以一二季度的购买量为自身需求量。三四季度的曲线可近似看作一条直线且同增同减,所以三季度可把自己的需求量和四季度的需求量同时购买(或三四季度自给自足)。
5.4 问题四的求解
用上海市2010年的钢材价格走势确定2011钢材的储存量与储存策略,经过对照实际钢材价格可知虽整体趋势大致相同但存在一定的误差,误差达到50%以上。
六、模型的优缺点
优点:
1. 本文在正确清晰地分析了题意的基础上,建立了合理、科学的发展规划模型。
2. 模型具有坚实可靠的数学基础。很多数学理论已经证明这是设计生产基地分布的最好的方法。
3. 模型易于实现,易于应用于现实生活。
4. 模型使生产基地发挥最大的效能。
缺点:
1.考虑的影响因素较少,在处理问题时可能存在一些误差。
2.仅使用一年的数据具有一定的局限性。
3.规划模型的约束型比较简单。
4.三四问没有数据说明不充分。
七、模型的改进方向
1.对于模型一除了运用逐次分析法的出结果外,可用lingo求出最优解决方案。
2.对于模型二的求解可在0-1规划中加入约束条件求出新的生产基地的规模。
3.对于三四问,可建立数学模型得出储存量和储存策略。
参考文献
[1] 作者,书名,出版地:出版社,出版年。
[2] 作者,论文名,杂志名,卷期号:起止页码,出版年。
[3] 作者,资源标题,网址,访问时间(年月日)。
附录:
模型一逐次逼近法的matlab程序:
function [Spth,d,m]=WFshortpath(A,s,t)
Spth=t;
n=length(A); p1=ones(n,2);
p1(:,1)=p1(:,1)*s;
p1(:,2)=A(s,:)';
p2=p1;
for i=1:n
[tm k]=min(A(:,i)+p1(:,2));
if p2(i,2)>tm
p2(i,2)=tm;
p2(i,1)=k;
end
end
m=1; stop=(p1(:,2)==p2(:,2));
while sum(stop)~=n&m<101.
p1=p2;
for i=1:n
[tm k]=min(A(:,i)+p1(:,2));
if p2(i,2)>tm
p2(i,2)=tm;
p2(i,1)=k;
end
end
m=m+1;
stop=(p1(:,2)==p2(:,2));
end.
d=p2(t,2);
if p2(t,1)~=s
T=p2(t,1);
while T~=s
Spth=[T Spth];
T=p2(T,1);
end
end
Spth=[s Spth];
模型二的lingo程序:
其中为各个季度的需求量(下面程序中为第二季度的需求量)
model:
sets:
supply/1..18/:s,w,f;
demand/1..18/:d;
link(supply,demand):x,c;
endsets
data:
c= 0 1520 1100 0 0 0 1630 0 0 0 0 0 0 0 1150 1000 730 940
1520 0 0 0 0 0 0 0 0 0 0 0 1660 780 0 0 0
1100 0 0 300 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 300 0 0 0 0 0 0 0 0 0 0 950 0 1000 0 0
0 0 0 0 0 200 0 0 0 0 0 0 450 350 850 400 0 0
0 0 0 0 200 0 0 3500 0 500 0 1080 0 0 0 0 0 0
1630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 3500 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 700 0 0 0 0 0 0 0 0
0 0 0 0 0 500 0 0 700 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 700 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 700 0 0 0 0 0 0 0
0 1660 0 0 450 0 0 0 0 0 0 0 0 0 750 0 0 0
0 0 0 950 350 0 0 0 0 0 0 0 0 0 0 0 0 0
1150 780 0 0 850 0 0 0 0 0 0 0 750 0 0 550 0 0
1000 0 0 1000 400 0 0 0 0 0 0 0 0 0 550 0 0 0
730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
d=
300
480
1350
650
680
350
400
600
450
260
650
500
550
1200
400
500
1000
780
;
s=1000
800
800
800
1000
700
1500
1200
0
0
0
0
0
0
0
0
0
0
;
f=32
32
34
33
32
36
34
30
31
32
31
31
31
33
31
32
36
35
;
enddata
[obj] min=@sum(supply(i):f(i)*w(i))+@sum(link(i,j):c(i,j)*x(i,j));
@for(supply(i):@sum(demand(j):x(i,j))=s(i));
@for(demand(j):@sum(supply(i):x(i,j))<=d(j));
@sum(supply(i):w(i))=2;
@bin(w(1));
@bin(w(2));
@bin(w(3));
@bin(w(4));
@bin(w(5));
@bin(w(6));
@bin(w(6));
@bin(w(7));
@bin(w(8));
@bin(w(9));
@bin(w(10));
@bin(w(11));
@bin(w(12));
@bin(w(13));
@bin(w(14));
@bin(w(15));
@bin(w(16));
@bin(w(17));
@bin(w(18));
end
model:
sets:
supply/1..18/:m;
demand/1..18/:n;
link(supply,demand):x,p;
endsets
data:
c= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
0 1520 100 1400 400 1600 1630 5100 2800 2100 3380 2680 1850 1750 1150 1000 730 940
1520 0 2620 2330 1630 1830 3150 5330 3030 2330 3610 2910 1660 1980 780 1330 2250 2460
1100 1928 0 300 1600 1800 2730 5300 3000 2300 3580 2880 2050 1250 1850 1300 1830 2040
1400 1628 300 0 1300 1500 3030 5000 2700 2000 3280 2580 1750 950 1550 1000 2130 2340
1400 928 1600 1300 0 200 3030 3700 1400 700 1980 1280 450 350 850 400 2130 2340
1600 1128 1800 1500 200 0 3230 3500 1200 500 1780 1080 650 550 1050 600 2330 2540
1630 2858 2730 3030 3030 3230 0 6730 4430 3730 5010 4310 3480 3380 2780 2630 2360 2570
5100 4628 5300 5000 3500 3500 6730 0 4700 4000 5280 4580 4150 4050 4550 4100 5830 6040
2800 2328 3000 2700 1400 1200 4430 4700 0 700 2980 2280 1850 1750 2250 1800 3530 3740
2100 1628 2300 2000 700 500 3730 4000 700 0 2280 1580 1150 1050 1550 1100 2830 3040
3380 3610 3580 3280 1980 1780 5010 5280 2980 2280 0 700 2430 2330 2830 2380 4110 4320
2680 2910 2880 2580 1280 1080 4310 4580 2280 1580 700 0 1730 1630 2130 1680 3410 3620
1850 1660 2050 1750 450 3480 4150 1850 1150 1150 2430 1730 0 800 750 850 2580 2790
1750 1980 1250 950 350 550 3380 4050 1750 1050 2330 1630 800 0 1200 750 2480 2690
1150 780 1850 1550 850 1050 2780 4550 2250 1550 2830 2130 750 1200 0 550 1880 2090
1000 1330 1000 1000 400 600 2630 4100 1800 1100 2380 1680 850 750 550 0 1730 1940
730 2250 1830 2130 2130 2330 2360 5830 3530 2830 4110 3410 2580 2480 1880 1730 0 1670
940 2460 2040 2340 2340 2540 2570 6040 3740 3040 4320 3620 2790 2690 2090 1940 1670 0
;
d=
300
480
1350
650
680
350
400
600
450
260
650
500
550
1200
400
500
1000
780
;
s=100
0
20
0
0
20
0
0
0
0
0
0
0
0
0
0
0
0
;
enddata
[obj] min=@sum(link(i,j):p(i,j)*x(i,j));
@for(supply(i):@sum(demand(j):x(i,j))=m(i));
@for(demand(j):@sum(supply(i):x(i,j))<=n(j));
展开阅读全文