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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

钢管下料问题

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

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

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

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

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

12346819k k k ++≤

的整数解。但要求剩余材料12319(468)4r k k k =-++<。 容易得到所有模式见表1。

表1 钢管切割模式

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

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

1234567min z x x x x x x x =++++++ 约束条件 为满足客户的需求,4米长的钢管至少50根,有 1236743250x x x x x ++++≥ 6米长的钢管至少20根,有 25673220x x x x +++≥ 8米长的钢管至少15根,有 346215x x x ++≥ 因此模型为:

1234567min z x x x x x x x =++++++

123672567

346432503220..215,1,2,,7

i x x x x x x x x x s t x x x x i ++++≥⎧⎪+++≥⎪⎨

++≥⎪⎪=⎩取整 解得:

12345670,12,0,0,0,15,0x x x x x x x =======

目标值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 的钢管的模式,所有模式相当于求解不等式方程:

1234468519k k k k +++≤

的整数解。但要求剩余材料12319(468)4r k k k =-++<。 利用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('%2d %2d %2d %2d %2d %2d\n',number,k1,k2,k3,k4,r); end

end

end

end

end

表2 钢管切割模式

决策变量 用i x 表示按照第i 种模式(i=1,2,…,16)切割的原料钢管的根数。 决策目标 以切割原料钢管的总根数最少为目标,则有 16

21

min i i z x ==

设第i 种切割模式下4米长的钢管i a 根,6米长的钢管i b 根,8米长的钢管i c 根,5米长的钢管i d 根。则约束条件有:

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

16

1

50i i

i a x

=≥∑

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

16

1

20i i

i b x

=≥∑

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

16

1

15i i

i c x

=≥∑

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

16

1

10i i

i d x

=≥∑

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

,16i y i =。

当0i y =时,0i x =,表示不使用第i 种切割模式;当1i y =时,1i x ≥,表示使用第i 种切割模式。因此有:

i i x y ≥,.i i x M y ≤,1,2,,16i =

其中M 足够大,如这里取100。

16

1

3i

i y

=≤∑

因此模型为:

16

1

min i i z x ==∑

16

116

116

116

1

16

1

50201510...,1,2,,16,1,2,,163,1,2,,1601,1,2,,16i i i i i i i i i i i i i i i i i i i

i a x b x c x d x s t x M y i x y i y x i y i M =====⎧≥⎪⎪⎪≥⎪⎪⎪≥⎪⎪⎪≥⎪⎨⎪≤=⎪

≥=⎪⎪⎪≤⎪⎪=⎪⎪==⎪

⎩∑∑∑∑∑取整或足大

解得:

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

213158,10,10x x x ===,其余为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 程序为:

相关文档
最新文档