下料问题数学建模钢管.docx
- 文档编号:18015542
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:18
- 大小:21.45KB
下料问题数学建模钢管.docx
《下料问题数学建模钢管.docx》由会员分享,可在线阅读,更多相关《下料问题数学建模钢管.docx(18页珍藏版)》请在冰点文库上搜索。
下料问题数学建模钢管
防盗窗下料问题
摘要
本文针对寻找经济效果最优的钢管下料方案,建立了优化模型。
问题中的圆形管下料设定目标为切割原料圆形管数量尽可能少且在使用一定数量圆形管的过程中使被切割利用过的原料总进价尽可能低。
问题中的方形管原料不足以提供所需截得的所用钢管,故设目标为使截得后剩余方形管总余量最小。
模型的建立过程中,首先运用了C语言程序,利用逐层分析方法,罗列出针对一根钢材的截取模式;然后根据条件得出约束关系,写出函数关系并对圆形管下料建立了线性模型,对方形管下料建立了非线性模型;接着,在对模型按实际情况进行简化后,借助lingo程序对模型求解,得出了模型的最优解,并给出了最符合经济效果最优原则的截取方案。
关键词:
钢管下料;最优化;lingo;
问题提出
某不锈钢装饰公司承接了一住宅小区的防盗窗安装工程,为此购进了一批型号为304的不锈钢管,分为方形管和圆形管两种,方管规格为25×25×1.2(mm),圆管规格Φ19×1.2(mm)。
每种管管长有4米和6米两种,其中4米圆形管5000根,6米圆形管9000根,4米方形管2000根,6米方形管2000根。
根据小区的实际情况,需要截取1.2m圆管8000根,1.5m圆管16500根,1.8m圆管12000根,1.4m方形管6000根,1.7m方形管4200根,3m方形管2800根。
请根据上述的实际情况建立数学模型,寻找经济效果最优的下料方案。
基本假设和符号说明
1、假设钢管切割过程中无原料损耗或损坏;
2、假设余料不可焊接;
3、假设同种钢材可采用的切割模式数量不限;
4、假设不同长度钢管运费、存储资源价值没有区别;
5、假设该304型号不锈钢管未经切割则价值不变,可在其它地方使用。
为便于描述问题,文中引入一些符号来代替基本变量,如表一所示:
表一符号说明
变量
意义
rxi
按照第i种模式(i=1,2,…,11)切割的6米圆形管的根数,均是非负整数
ryj
按照第j种模式(j=1,2,…,6)切割的4米圆形管的根数,均是非负整数
rp1
6米圆形管每根单价
rp2
4米圆形管每根单价
Z1
使用的6米圆形管总根数,是非负整数
Z2
使用的4米圆形管总根数,是非负整数
sxi
按照第i种模式(i=1,2,…,7)切割的6米方形管的根数,均是非负整数
syj
按照第j种模式(j=1,2,…,4)切割的4米方形管的根数,均是非负整数
T1
使用的6米方形管总根数,是非负整数
T2
使用的4米方形管总根数,是非负整数
问题分析与模型建立
问题中的圆形管原料足够,寻找经济效果最优的下料方案,即目标为切割原料圆形管数量尽可能少。
考虑到6米圆形管与4米圆形管的采购价格应该是不同的,所以我们寻求的是在使用一定数量6米圆形管与4米圆形管的过程中使被切割利用过的原料总进价尽可能低。
首先要确定针对6米和4米不同规格的圆形管合理的截取模式各有哪几种。
然后我们从所有截取模式中选取若干种截取模式,并设计出最佳的截取方案。
问题中的方形管原料不足以提供所需截得的所用钢管,所用的原料必然都要用于切割,不存在使用总钢管数量最少的说法,故我们可建立模型使截得后剩余方形管总余量最小。
类似于圆形管截取,我们同样首先要确定针对6米和4米不同规格的方形管合理的截取模式各有哪几种。
然后我们从所有截取模式中选取若干种截取模式,并设计出满足目标的最佳截取方案。
确定截取方式可以利用C语言程序,得到所用满足约束的截取方式的罗列;模型可利用lingo软件求解。
圆形管下料模型建立:
首先,我们确定怎样的切割模式才是合理的。
通常,一个合理的切割模式的余料不应该大于或等于客户需要的钢管的最小尺寸,在此实际问题中,即余料长度应当小于1.2m。
现在先求6米长圆形管的切割模式,用整数a,b,c分别表示一根圆形管切得的1.2m、1.5m、1.8m钢管数量,则1.2a+1.5b+1.8c≤6。
要使余料长度小于1.2m,使用的钢管长度要大于4.8m,即1.2a+1.5b+1.8c>4.8。
一根6米长圆形管全用于截取1.2m钢管最多可截得的1.2m钢管数量为5根,全用于截取1.5m钢管最多可截得的1.5m钢管数量为4根,全用于截取1.8m钢管最多可截得的1.8m钢管数量为3根,所以0≤a≤5,0≤b≤4,0≤c≤3。
编写C代码得到结果如下表所示(具体代码见附录一):
6m长圆形管截取模式
截取模式
1.2m钢管数量
1.5m钢管数量
1.8m钢管数量
余料长度(m)
模式一
0
0
3
0.6
模式二
0
1
2
0.9
模式三
0
4
0
0
模式四
1
2
1
0
模式五
1
3
0
0.3
模式六
2
0
2
0
模式七
2
1
1
0.3
模式八
2
2
0
0.6
模式九
3
0
1
0.6
模式十
3
1
0
0.9
模式十一
5
0
0
0
4米长圆形管的切割模式,同样用整数a,b,c分别表示一根圆形管切得的1.2m、1.5m、1.8m钢管数量,则2.8<1.2a+1.5b+1.8c≤4。
一根4米长圆形管全用于截取1.2m钢管最多可截得的1.2m钢管数量为3根,全用于截取1.5m钢管最多可截得的1.5m钢管数量为2根,全用于截取1.8m钢管最多可截得的1.8m钢管数量为2根,所以0≤a≤3,0≤b≤2,0≤c≤2。
编写C代码得到结果如下表所示(具体代码见附录二):
4m长圆形管截取模式
截取模式
1.2m钢管数量
1.5m钢管数量
1.8m钢管数量
余料长度(m)
模式一
0
0
2
0.4
模式二
0
1
1
0.7
模式三
0
2
0
1
模式四
1
0
1
1
模式五
2
1
0
0.1
模式六
3
0
0
0.4
接着,用非负整数rxi表示按照第i种模式(i=1,2,…,11)切割的6米长钢管的根数,用非负整数ryj表示按照第j种模式(j=1,2,…,6)切割的4米长钢管的根数。
要在使用一定数量6米圆形管与4米圆形管的过程中使被切割利用过的原料总进价尽可能低,决策目标为:
Min=rp1*Z1+rp2*Z2=rp1*(rx1+rx2+rx3+rx4+rx5+rx6+rx7+rx8+rx9+rx10+rx11)+rp2*(ry1+ry2+ry3+ry4+ry5+ry6)
各模式所截得的1.2m圆管总数目不少于8000根,1.5m圆管总数目不少于16500根,1.8m圆管总数目不少于12000根。
并且可供使用的6米圆形管数量Z1最多不超过9000根,4米圆形管数量Z2最多不超过5000根。
由上得到约束条件:
Z1=rx1+rx2+rx3+rx4+rx5+rx6+rx7+rx8+rx9+rx10+rx11≤9000
Z2=ry1+ry2+ry3+ry4+ry5+ry6≤5000
rx4+rx5+2rx6+2rx7+2rx8+3rx9+3rx10+5rx11+ry4+2ry5+3ry6≥8000
rx2+4rx3+2rx4+3rx5+rx7+2rx8+rx10+ry2+2ry3+ry5≥16500
3rx1+2rx2+rx4+2rx6+rx7+rx9+2ry1+ry2+ry4≥12000
rxi,ryj,Z1,Z2∈z+
方形管下料模型建立:
现在先求6米长的方形管的切割模式,用整数a,b,c分别表示一根方形管切得的1.4m、1.7m、3m钢管数量,则1.4a+1.7b+3c≤6。
要使余料长度小于1.4m,使用的钢管长度要大于4.6m,即1.4a+1.7b+3c>4.6。
一根6米长的方形管全用于截取1.4m钢管最多可截得的1.4m钢管数量为4根,全用于截取1.7m钢管最多可截得的1.7m钢管数量为3根,全用于截取3m钢管最多可截得的3m钢管数量为2根,所以0≤a≤4,0≤b≤3,0≤c≤2。
编写C代码得到结果如下表所示(具体代码见附录三):
6m长的方形管截取模式
截取模式
1.4m钢管数量
1.7m钢管数量
3m钢管数量
余料长度(m)
模式一
0
0
2
0
模式二
0
1
1
1.3
模式三
0
3
0
0.9
模式四
1
2
0
1.2
模式五
2
0
1
0.2
模式六
3
1
0
0.1
模式七
4
0
0
0.4
4米长的方形管的切割模式,同样用整数a,b,c分别表示一根方形管切得的1.4m、1.7m、3m钢管数量,则2.6<1.4a+1.7b+3c≤4。
一根4米长圆形管全用于截取1.4m钢管最多可截得的1.4m钢管数量为2根,全用于截取1.7m钢管最多可截得的1.7m钢管数量为2根,全用于截取3m钢管最多可截得的3m钢管数量为1根,所以0≤a≤2,0≤b≤2,0≤c≤1。
编写C代码得到结果如下表所示(具体代码见附录四):
4m长的方形管截取模式
截取模式
1.4m钢管数量
1.7m钢管数量
3m钢管数量
余料长度(m)
模式一
0
0
1
1
模式二
0
2
0
0.6
模式三
1
1
0
0.9
模式四
2
0
0
1.2
接着,用非负整数sxi表示按照第i种模式(i=1,2,…,7)切割的6米长钢管的根数,用非负整数syj表示按照第j种模式(j=1,2,…,4)切割的4米长钢管的根数。
要使截得后剩余方形管总余量最小,决策目标为:
Min=1.3sx2+0.9sx3+1.2sx4+0.2sx5+0.1sx6+0.4sx7+sy1+0.6sy2+0.9sy3+1.2sy4
需要1.4m方形管6000根,1.7m方形管4200根,3m方形管2800根,并且可供使用的6米方形管数量T1最多不超过2000根,4米圆形管数量T2最多不超过2000根。
由上得到约束条件:
T1=sx1+sx2+sx3+sx4+sx5+sx6+sx7≤2000
T2=sy1+sy2+sy3+sy4≤2000
sx4+2sx5+3sx6+4sx7+sy3+2sy4≥6000
sx2+3sx3+2sx4+sx6+2sy2+sy3≥4200
2sx1+sx2+sx5+sy1≥2800
sxi,syj,T1,T2∈z+
模型简化与求解
圆形管下料模型简化与求解:
由于rp1与rp2未知,故取rp1与rp2的比值k,根据k的不同取值,用lingo得到不同的最优解,如下所示:
K取值
1.6
1.7
1.8
1.9
2
2.1
6m管用量
9000
6897
6887
6887
6887
6885
4m管用量
1440
4979
4996
4996
4996
5000
即当k小于等于1.6时,优先选择切割6m管;
当k大于等于2.1时,优先选择切割4m管;
当k在1.6与2.1之间时,根据k的取值确定使用6m管与4m管的数量配比。
但在实际生活中,同规格的钢管的每根价格往往与长度成正比,厂家在进货时购得钢管以每吨若干元或每米若干元计算。
因此,可简化模型,使k=1.5,即6m管单价是4m管的1.5倍。
此时得到的简化模型如下:
决策目标:
Min=Z2=ry1+ry2+ry3+ry4+ry5+ry6
约束条件:
Z1=rx1+rx2+rx3+rx4+rx5+rx6+rx7+rx8+rx9+rx10+rx11≤9000
Z2=ry1+ry2+ry3+ry4+ry5+ry6≤5000
rx4+rx5+2rx6+2rx7+2rx8+3rx9+3rx10+5rx11+ry4+2ry5+3ry6≥8000
rx2+4rx3+2rx4+3rx5+rx7+2rx8+rx10+ry2+2ry3+ry5≥16500
3rx1+2rx2+rx4+2rx6+rx7+rx9+2ry1+ry2+ry4≥12000
rxi,ryj,Z1,Z2∈z+
用lingo得到的最优结果为(具体代码见附录五,结果见附录六):
6m圆管使用总根数
9000
4m圆管使用总根数
1440
6m圆管切割模式
按模式一切割根数
1430
4m圆管切割模式
按模式一切割根数
240
按模式二切割根数
1430
按模式二切割根数
240
按模式三切割根数
1430
按模式三切割根数
240
按模式四切割根数
1430
按模式四切割根数
240
按模式五切割根数
1430
按模式五切割根数
240
按模式六切割根数
820
按模式六切割根数
240
按模式七切割根数
820
按模式八切割根数
210
按模式九切割根数
0
按模式十切割根数
0
按模式十一切割根数
0
方形管下料模型简化与求解:
要使截得后剩余方形管总余量最小,决策目标:
Min=1.3sx2+0.9sx3+1.2sx4+0.2sx5+0.1sx6+0.4sx7+sy1+0.6sy2+0.9sy3+1.2sy4
约束条件:
T1=sx1+sx2+sx3+sx4+sx5+sx6+sx7≤2000
T2=sy1+sy2+sy3+sy4≤2000
sx4+2sx5+3sx6+4sx7+sy3+2sy4≥6000
sx2+3sx3+2sx4+sx6+2sy2+sy3≥4200
2sx1+sx2+sx5+sy1≥2800
sxi,syj,T1,T2∈z+
由于条件不能全部满足,故分优先级(考虑到截得的钢管越长,后续可加工再利用率越高,故首先满足3m钢管数量要求,最后满足1.4m钢管数量要求):
P1:
T1=sx1+sx2+sx3+sx4+sx5+sx6+sx7≤2000;T2=sy1+sy2+sy3+sy4≤2000;sxi,syj,T1,T2∈z+
P2:
2sx1+sx2+sx5+sy1≥2800
P3:
sx2+3sx3+2sx4+sx6+2sy2+sy3≥4200
P4:
sx4+2sx5+3sx6+4sx7+sy3+2sy4≥6000
用lingo得到的最优结果为(具体代码见附录七,结果见附录八):
6m方管使用总根数
2000
4m方管使用总根数
2000
6m方管切割模式
按模式一切割根数
600
4m方管切割模式
按模式一切割根数
1000
按模式二切割根数
400
按模式二切割根数
1000
按模式三切割根数
400
按模式三切割根数
0
按模式四切割根数
200
按模式四切割根数
0
按模式五切割根数
200
按模式六切割根数
200
按模式七切割根数
0
余料总量:
2780m
模型优缺点与改进方向
圆形管下料模型有较高的稳定性,但是当k值在1.6以上时,优化结果非最优化结果,可根据初级模型建立带参数k的带参模型,便于代入求得最优解。
方形管下料模型是非线性的,它有较大的结果偏差,稳定性一般。
参考文献
[1]姜启源等,《数学模型》,北京:
高等教育出版社,2004年
[2]长治学院物理系数学建模培训第二次测试论文,钢材截短问题,2011年
[3]谢金星薛毅,优化建模与LINGO/LINDO软件,北京:
清华大学出版社,2004年
[4]韩中庚,数学建模方法及其应用,北京:
高等教育出版社,2005年
[5]
附录
附录一:
#include
voidmain()
{
inta,b,c;
for(a=0;a<=5;a++)
for(b=0;b<=4;b++)
for(c=0;c<=3;c++)
if((1.2*a+1.5*b+1.8*c)<=6&&(1.2*a+1.5*b+1.8*c)>4.8)
printf("a=%d,b=%d,c=%d,余料=%f\n",a,b,c,6-(1.2*a+1.5*b+1.8*c));
}
附录二:
#include
voidmain()
{
inta,b,c;
for(a=0;a<=3;a++)
for(b=0;b<=2;b++)
for(c=0;c<=2;c++)
if((1.2*a+1.5*b+1.8*c)<=4&&(1.2*a+1.5*b+1.8*c)>2.8)
printf("a=%d,b=%d,c=%d,余料=%f\n",a,b,c,4-(1.2*a+1.5*b+1.8*c));
}
附录三:
#include
voidmain()
{
inta,b,c;
for(a=0;a<=4;a++)
for(b=0;b<=3;b++)
for(c=0;c<=2;c++)
if((1.4*a+1.7*b+3*c)<=6&&(1.4*a+1.7*b+3*c)>4.6)
printf("a=%d,b=%d,c=%d,余料=%f\n",a,b,c,6-(1.4*a+1.7*b+3*c));
}
附录四:
#include
voidmain()
{
inta,b,c;
for(a=0;a<=2;a++)
for(b=0;b<=2;b++)
for(c=0;c<=1;c++)
if((1.4*a+1.7*b+3*c)<=4&&(1.4*a+1.7*b+3*c)>2.6)
printf("a=%d,b=%d,c=%d,余料=%f\n",a,b,c,4-(1.4*a+1.7*b+3*c));
}
附录五:
z1=x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11;
min=y1+y2+y3+y4+y5+y6;
x4+x5+2*x6+2*x7+2*x8+3*x9+3*x10+5*x11+y4+2*y5+3*y6>=8000;
x2+4*x3+2*x4+3*x5+x7+2*x8+x10+y2+2*y3+y5>=16500;
3*x1+2*x2+x4+2*x6+x7+x9+2*y1+y2+y4>=12000;
y1+y2+y3+y4+y5+y6<=5000;
x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11<=9000;
x1>=x2;
x2>=x3;
x3>=x4;
x4>=x5;
x5>=x6;
x6>=x7;
x7>=x8;
x8>=x9;
x9>=x10;
x10>=x11;
y1>=y2;
y2>=y3;
y3>=y4;
y4>=y5;
y5>=y6;
@gin(x1);@gin(x2);@gin(x3);
@gin(x4);@gin(x5);@gin(x6);
@gin(x7);@gin(x8);@gin(x9);
@gin(x10);@gin(x11);@gin(y1);
@gin(y2);@gin(y3);@gin(y4);
@gin(y5);@gin(y6);@gin(z1);
附录六:
Globaloptimalsolutionfound.
Objectivevalue:
1440.000
Extendedsolversteps:
0
Totalsolveriterations:
26
VariableValueReducedCost
Z19000.0000.000000
X11430.0000.000000
X21430.0000.000000
X31430.0000.000000
X41430.0000.000000
X51430.0000.000000
X6820.00000.000000
X7820.00000.000000
X8210.00000.000000
X90.0000000.000000
X100.0000000.000000
X110.0000000.000000
Y1240.00001.000000
Y2240.00001.000000
Y3240.00001.000000
Y4240.00001.000000
Y5240.00001.000000
Y6240.00001.000000
RowSlackorSurplusDualPrice
10.0000000.000000
21440.000-1.000000
30.0000000.000000
40.0000000.000000
50.0000000.000000
63560.0000.000000
70.0000000.000000
80.0000000.000000
90.0000000.000000
100.0000000.000000
110.0000000.000000
12610.00000.000000
130.0000000.000000
14610.00000.000000
15210.00000.000000
160.0000000.000000
170.0000000.000000
180.0000000.000000
190.0000000.000000
200.0000000.000000
210.0000000.000000
220.0000000.000000
附录七:
model:
Min=1.3*sx2+0.9*sx3+1.2*sx4+0.2*sx5+0.1*sx6+0.4*sx7+sy1+0.6*sy2+0.9*sy3+1.2*sy4;
sx1+sx2+sx3+sx4+sx5+sx6+sx7<=2000;
sy1+sy2+sy3+sy4<=2000;
sx4+2*sx5+3*sx6+4*sx7+sy3+2*sy4>=1200;
sx2+3*sx3+2*sx4+sx6+2*sy2+sy3>=4200;
2*sx1+sx2+sx5+sy1>=2800;
sx1>=sx2;
sx2>=sx3;
sx3>=sx4;
sx4>=sx5;
sx5>=sx6;
sx6>=sx7;
sy1>=sy2;
sy2>=sy3;
sy3>=sy4;@gin(sx1);@gin(sx2);@gin(sx3);
@gin(sx4);@gin(sx5);@gin(sx6);
@gin(sx7);@gin(sy1);@gin(sy2);
@gin(sy3);@gin(sy4);
end
附录八:
Globaloptimalsolutionfound.
Objectivevalue:
2780.000
Extendedsolversteps:
0
Totalsolveriteration
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 问题 数学 建模 钢管