下料问题数学建模(钢管)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
防盗窗下料问题
摘要
本文针对寻找经济效果最优的钢管下料方案,建立了优化模型。问题中的圆形管下料设定目标为切割原料圆形管数量尽可能少且在使用一定数量圆形管的过程中使被切割利用过的原料总进价尽可能低。问题中的方形管原料不足以提供所需截得的所用钢管,故设目标为使截得后剩余方形管总余量最小。模型的建立过程中,首先运用了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型号不锈钢管未经切割则价值不变,可在其它地方使用。
为便于描述问题,文中引入一些符号来代替基本变量,如表一所示:
问题分析与模型建立
问题中的圆形管原料足够,寻找经济效果最优的下料方案,即目标为切割原料圆形管数量尽可能少。考虑到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代码得到结果如下表所示(具体代码见附录一):
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代码得到结果如下表所示(具体代码见附录二):
接着,用非负整数rx
i
表示按照第i种模式(i=1,2,…,11)切割的6米长钢管的
根数,用非负整数ry
j
表示按照第j种模式(j=1,2,…,6)切割的4米长钢管的根数。
要在使用一定数量6米圆形管与4米圆形管的过程中使被切割利用过的原料总进价尽可能低,决策目标为:
Min=rp
1*Z
1
+rp
2
*Z
2
=rp
1
*(rx
1
+rx
2
+rx
3
+rx
4
+rx
5
+rx
6
+rx
7
+rx
8
+rx
9
+rx
10
+rx
11
)+rp
2
*(ry
1
+ry
2
+ry
3
+ry
4+ry
5
+ry
6
)
各模式所截得的1.2m圆管总数目不少于8000根, 1.5m圆管总数目不少于16500
根,1.8m圆管总数目不少于12000根。并且可供使用的6米圆形管数量Z
1
最多不超过
9000根,4米圆形管数量Z
2
最多不超过5000根。由上得到约束条件:
Z 1=rx
1
+rx
2
+rx
3
+rx
4
+rx
5
+rx
6
+rx
7
+rx
8
+rx
9
+rx
10
+rx
11
≤9000
Z 2=ry
1
+ry
2
+ry
3
+ry
4
+ry
5
+ry
6
≤5000
rx
4+rx
5
+2rx
6
+2rx
7
+2rx
8
+3rx
9
+3rx
10
+5rx
11
+ry
4
+2ry
5
+3ry
6
≥8000
rx
2+4rx
3
+2rx
4
+3rx
5
+rx
7
+2rx
8
+rx
10
+ry
2
+2ry
3
+ry
5
≥16500
3rx
1+2rx
2
+rx
4
+2rx
6
+rx
7
+rx
9
+2ry
1
+ry
2
+ry
4
≥12000
rx
i ,ry
j
,Z
1
,Z
2
∈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代码得到结果如下表所示(具体代码见附录三):
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代码得到结果如下表所示(具体代码见附录四):