钢管下料程序(书)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
原料下料问题
生产中通过切割、剪裁、冲压等手段,将原材料加工成所需大小。 按照工艺要求,确定下料方案,使所用材料最省,或利润最大。
钢管下料
某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出,从钢管厂进货时得到的原料钢管都是19m 。
(1)现在一客户需要50根4m、20根6m 和15根8m 的钢管,应如何下料最节省?
(2)零售商如果采用的不同切割模式太多,将会导致生产过程的复杂化,从而增加生产和管理成本,所以该零售商规定采用的不同切割模式不能超过3种。此外,该客户除需要(1)中的三种钢管外,还需要10根5m 的钢管,应如何下料最节省?
原料钢管
:每根19米
客户需求(产品):
8米15根
6米20根
问题1. 如何下料最节省 ? 最省的标准是什么?
问题2. 与问题1类似,只是客户增加一种需求:5米10根,且切割模式不超过3种。
由于采用不同切割模式太多,会增加生产和管理成本,规定切割模式不能超过3种。如何下料最节省? 切割模式举例:
问题1
第一、计算切割模式的种类:合理切割模式的余料应小于客户需要钢管的最小尺寸。
分析:1根19m 的原料钢管需要切割为4m ,6m ,8m 的钢管产品的所有模式相当于求解不等式:
19
864321≤++k k k
的整数解,但要求剩余材料
()486419321<++-=k k k r
(可以用枚举法确定合理切割模式,当切割种类多时,可由程序去做) 利用Matlab 程序求出的所有模式(见表1)。
number=0;
fprintf('模式 4m 6m 8m 余料\n'); for k1=0:4 for k2=0:3 for k3=0:2
r=19-(4*k1+6*k2+8*k3); if (r>=0)&(r<4) number=number+1;
fprintf('%2d %2d %2d %2d %2d \n',number,k1,k2,k3,r) ; end end end end
输出结果为:
模式 4m 6m 8m 余料 1 0 0 2 3 2 0 3 0 1 3 1 1 1 1 4 1 2 0 3 5 2 0 1 3 6 3 1 0 1 7 4 0 0 3
表1
模式 4米钢管根数
6米钢管根数
8米钢管根数
余料(米)
1 4 0 0 3
2
3 1 0 1 3 2 0 1 3
4 0 0 2 3
5 0 3 0 1
6 1 1 1 1 7
1
2
3
为满足客户需要,按照哪些模式切割,每种模式切割多少根原料钢管,最为节省?节省的标准是什么?
两种标准:1. 切割后原料钢管剩余的总余料量最小
2. 切割原料钢管总根数最少
第二、按两种标准计算问题1的最优值
设按第i 种模式切割的原料钢管的根数为x i 根(i =1,2,…7) 。 目标1(以原料总余料量1Z 最少)
约束条件为:
整数约束:i x 为整数
最优解:x 2 =12, x 6=15, 其余为0; 最优值:=1Z 27。 即按模式2切割12根,按模式6切割15根,余料27米 model:
sets:
model/1..7/:x; endsets min=z1;
z1=3*x(1)+x(2)+3*x(3)+3*x(4)+x(5)+x(6)+3*x(7); z2=x(1)+x(2)+x(3)+x(4)+x(5)+x(6)+x(7); 4*x(1)+3*x(2)+2*x(3)+x(6)+x(7)>=50; x(2)+3*x(5)+x(6)+2*x(7)>=20; x(3)+2*x(4)+x(6)>=15; @for(model(i):@gin(x(i))); end
或用:
7
65432113333m in x x x x x x x Z ++++++=20
237652≥+++x x x x 15
2643≥++x x x 76543212x x x x x x x Z ++++++=5023476321≥++++x x x x x
model: min=z1;
z1=3*x1+x2+3*x3+3*x4+x5+x6+3*x7; z2=x1+x2+x3+x4+x5+x6+x7; 4*x1+3*x2+2*x3+x6+x7>=50; x2+3*x5+x6+2*x7>=20; x3+2*x4+x6>=15; @gin(x1);@gin(x2); @gin(x3);@gin(x4); @gin(x5);@gin(x6); @gin(x7); end
目标2(原料钢管总根数2Z 最少)
76543212m in x x x x x x x z ++++++= 765432113333x x x x x x x z ++++++=
约束条件不变
i x 取整数,
最优解:x 1=5, x 2=5, x 6=15, 其余为0; 最优值:=2z 25。
按模式1切割5根,按模式2切割5根,按模式6切割15根,余料35米 。
model: sets:
model/1..7/:x; endsets min=z2;
z1=3*x(1)+x(2)+3*x(3)+3*x(4)+x(5)+x(6)+3*x(7); z2=x(1)+x(2)+x(3)+x(4)+x(5)+x(6)+x(7);
20237652≥+++x x x x 15
2643≥++x x x 5023476321≥++++x x x x x