好文档 - 专业文书写作范文服务资料分享网站

数学建模之钢管下料问题案例分析 

天下 分享 时间: 加入收藏 我要投稿 点赞

钢管下料问题

某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出,从钢管厂进货时得到的原料钢管都是19m。

(1)现在一客户需要50根4m、20根6m和15根8m的钢管。应如何下料最节省?

(2) 零售商如果采用的不同切割模式太多,将会导致生产过程的复杂化,从而增加生产和管理成本,所以该零售商规定采用的不同切割模式不能超过3种。此外,该客户除需要(1)中的三种钢管外,还需要10根5m的钢管。应如何下料最节省。

问题(1)分析与模型建立

首先分析1根19m的钢管切割为4m、6m、8m的钢管的模式,所有模式相当于求解不等式方程:

4k1?6k2?8k3?1 9的整数解。但要求剩余材料r?19?(4k1?6k2?8k3)?4。 容易得到所有模式见表1。

表1 钢管切割模式 模式 1 2 3 4 5 6 7 决策变量 用xi表示按照第i种模式(i=1,2,…,7)切割的原料钢管的根数。

以切割原料钢管的总根数最少为目标,则有

minz?x1?x2?x3?x4?x5?x6?x7 约束条件 为满足客户的需求,4米长的钢管至少50根,有

4m 4 3 2 0 0 1 1 6m 0 1 0 0 3 1 2 8m 0 0 1 2 0 1 0 余料(m) 3 1 3 3 1 1 3 4x1?3x2?2x3?x6?x7?5 0 6米长的钢管至少20根,有 x2?3x5?x6?2x7?20 8米长的钢管至少15根,有 x3?2x4?x6?15 因此模型为:

minz?x1?x2?x3?x4?x5?x6?x7

?4x1?3x2?2x3?x6?x7?50?x?3x?x?2x?20?2567s..t? ?x3?2x4?x6?15??xi取整,i?1,2,?,7解得:

x1?0,x2?12,x3?0,x4?0,x5?0,x6?15,x7?0

目标值z=27。

即12根钢管采用切割模式2:3根4m,1根6m,余料1m。

15根钢管采用切割模式6:1根4m,1根6m,1根8m,余料1m。 切割模式只采用了2种,余料为27m,使用钢管27根。

LINGO程序:

model: sets:

model/1..7/:x; endsets

min=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的钢管的模式,所有模式相当

于求解不等式方程:

4k1?6k2?8k3?5k4?1 9的整数解。但要求剩余材料r?19?(4k1?6k2?8k3)?4。

利用Matlab程序求出所有模式见表2。

求出所有模式的Matlab程序: number=0; for k1=0:4 for k2=0:3 for k3=0:2 for k4=0:3

r=19-(4*k1+6*k2+8*k3+5*k4); if(r>=0)&(r<4)

number=number+1;

fprintf('- - - - - -\\n',number,k1,k2,k3,k4,r); end

end end end end

表2 钢管切割模式 模式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 决策变量 用xi表示按照第i种模式(i=1,2,…,16)切割的原料钢管的根数。

4m 0 0 0 0 0 0 1 1 1 1 2 2 2 3 3 4 6m 0 0 1 1 2 3 0 0 1 2 0 0 1 0 1 0 8m 1 2 0 1 0 0 0 1 1 0 0 1 0 0 0 0 5m 2 0 2 1 1 0 3 1 0 0 2 0 1 1 0 0 余料(m) 1 3 3 0 2 1 0 2 1 3 1 3 0 2 1 3 决策目标 以切割原料钢管的总根数最少为目标,则有 minz2??x

ii?116 设第i种切割模式下4米长的钢管ai根,6米长的钢管bi根,8米长的钢管ci根,5米长的钢管di根。则约束条件有:

为满足客户的需求,4米长的钢管至少50根,有

?axi?11616ii?50

6米长的钢管至少20根,有

?bxi?1ii?20

8米长的钢管至少15根,有

?cxi?11616ii?15

5米长的钢管至少10根,有

?dxi?1ii?10

为实现最多使用3种切割模式,增设0-1变量yi,i?1,2,?,16。

当yi?0时,xi?0,表示不使用第i种切割模式;当yi?1时,xi?1,表示使用第i种切割模式。因此有:

xi?yi,xi?M.yi,i?1,2,?,16 其中M足够大,如这里取100。

?yi?116i?3

因此模型为:

minz??xi

i?116?16??aixi?50?i?1?16??bixi?20?i?1?16??cixi?15?i?1?16??dixi?10s..t?i?1?xi?M.yi,i?1,2,?,16??xi?yi,i?1,2,?,16?16??yi?3?i?1?x取整,i?1,2,?,16?i?yi?0或1,i?1,2,?,16??M足大

解得:

当所用钢管z最少时,求得的解为:

x2?8,x13?10,x15?10,其余为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; endsets data:

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,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; enddata min=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))>=15;!8米长钢管约束; @sum(model(i):d(i)*x(i))>=10;!5米长钢管约束; @for(model(i):x(i)>=y(i)); @for(model(i):x(i)<=1000*y(i)); @sum(model(i):y(i))<=3; @for(model(i):@gin(x(i))); @for(model(i):@bin(y(i))); end

数学建模之钢管下料问题案例分析 

钢管下料问题某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出,从钢管厂进货时得到的原料钢管都是19m。(1)现在一客户需要50根4m、20根6m和15根8m的钢管。应如何下料最节省?(2)零售商如果采用的不同切割模式太多,将会导致生产过程的复杂化,从而增加生产和管理成本,所以该零售商规定采用的不同切割模式不能超过3种。此外,该客户除需
推荐度:
点击下载文档文档为doc格式
18b0b878ya4bpta10m07
领取福利

微信扫码领取福利

微信扫码分享