资源描述:
《数学的建模之钢管下料问的题目案例分析报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文案钢管下料问题某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出,从钢管厂进货时得到的原料钢管都是19m。(1)现在一客户需要50根4m、20根6m和15根8m的钢管。应如何下料最节省?(2)零售商如果采用的不同切割模式太多,将会导致生产过程的复杂化,从而增加生产和管理成本,所以该零售商规定采用的不同切割模式不能超过3种。此外,该客户除需要(1)中的三种钢管外,还需要10根5m的钢管。应如何下料最节省。问题(1)分析与模型建立首先分析1根19m的钢管切割为4m、6m、8m的钢管的模式,所有模式相当于求解不等式方程:的整数解。但要求剩余材料。容易得到所有模式见
2、表1。表1钢管切割模式模式4m6m8m余料(m)14003231013201340023503016111171203决策变量用表示按照第i种模式(i=1,2,…,7)切割的原料钢管的根数。以切割原料钢管的总根数最少为目标,则有约束条件为满足客户的需求,4米长的钢管至少50根,有精彩文档实用标准文案6米长的钢管至少20根,有8米长的钢管至少15根,有因此模型为:解得:目标值z=27。即12根钢管采用切割模式2:3根4m,1根6m,余料1m。15根钢管采用切割模式6:1根4m,1根6m,1根8m,余料1m。切割模式只采用了2种,余料为27m,使用钢管27根。LINGO程序:m
3、odel:sets:model/1..7/:x;endsetsmin=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问题(2)模型建立首先分析1根19m的钢管精彩文档实用标准文案切割为4m、6m、8m、5m的钢管的模式,所有模式相当于求解不等式方程:的整数解。但要求剩余材料。利用Matlab程序求出所有模式见表2。求出所有模式的
4、Matlab程序:number=0;fork1=0:4fork2=0:3fork3=0:2fork4=0:3r=19-(4*k1+6*k2+8*k3+5*k4);if(r>=0)&(r<4)number=number+1;fprintf('%2d%2d%2d%2d%2d%2d',number,k1,k2,k3,k4,r);endendendendend表2钢管切割模式模式4m6m8m5m余料(m)1001212002033010234011105020126030017100308101129111011012003112002112201031321010143001
5、215310011640003决策变量用表示按照第i种模式(i=1,2,…,16)切割的原料钢管的根数。精彩文档实用标准文案决策目标以切割原料钢管的总根数最少为目标,则有设第i种切割模式下4米长的钢管根,6米长的钢管根,8米长的钢管根,5米长的钢管根。则约束条件有:为满足客户的需求,4米长的钢管至少50根,有6米长的钢管至少20根,有8米长的钢管至少15根,有5米长的钢管至少10根,有为实现最多使用3种切割模式,增设0-1变量。当时,,表示不使用第i种切割模式;当时,,表示使用第i种切割模式。因此有:,,其中足够大,如这里取100。因此模型为:精彩文档实用标准文案解得:当所
6、用钢管z最少时,求得的解为:,其余为0。目标值z=28。即8根钢管采用切割模式2:2根8m,余料3m。10根钢管采用切割模式13:2根4m,1根6m,1根5m,余料为0。10根钢管采用切割模式15:3根4m,1根6m,余料1m。切割模式采用了3种,余料为34,使用钢管z=28根。LINGO程序为:model:sets:model/1..16/:a,b,c,d,r,x,y;endsetsdata:a=0,0,0,0,0,0,1,1,1,1,2,2,2,3,3,4;b=0,0,1,1,2,3,0,0,1,2,0,0,1,0,1,0;c=1,2,0,1,0,0,0,1,1,0,0
7、,1,0,0,0,0;d=2,0,2,1,1,0,3,1,0,0,2,0,1,1,0,0;r=1,3,3,0,2,1,0,2,1,3,1,3,0,2,1,3;enddatamin=z;z1=@sum(model(i):r(i)*x(i));!余料;精彩文档实用标准文案z=@sum(model(i):x(i));!钢管总数;@sum(model(i):a(i)*x(i))>=50;!4米长钢管约束;@sum(model(i):b(i)*x(i))>=20;!6米长钢管约束;@sum(model(i):c(i)*x(i