钢管下料问题某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出,从钢管厂进货时得到的原料钢管都是19m。(1)现在一客户需要50 根 4m、20 根 6m 和 15 根 8m 的钢管。应如何下料最节省?(2) 零售商如果采用的不同切割模式太多,将会导致生产过程的复杂化,从而增加生产和管理成本, 所以该零售商规定采用的不同切割模式不能超过3 种。此外,该客户除需要 ( 1)中的三种钢管外,还需要10 根 5m 的钢管。应如何下料最节省。问题( 1)分析与模型建立首先分析 1 根 19m 的钢管切割为4m、6m、8m 的钢管的模式,所有模式相当于求解不等式方程:1234681 9kkk的整数解。但要求剩余材料12319(468)4rkkk。容易得到所有模式见表1。表 1 钢管切割模式模式4m 6m 8m 余料 (m) 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 0 3 决策变量用ix 表示按照第i 种模式 (i=1,2, ⋯, 7)切割的原料钢管的根数。以切割原料钢管的总根数最少为目标,则有1234567min zxxxxxxx约束条件为满足客户的需求,4 米长的钢管至少50 根,有123674325 0xxxxx6 米长的钢管至少20 根,有25673220xxxx8 米长的钢管至少15 根,有346215xxx因此模型为:1234567min zxxxxxxx123672567346432503220..215,1,2,,7ixxxxxxxxxstxxxxi取整解得:12345670,12,0,0,0,15,0xxxxxxx目标值 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 的钢管的模式,所有模式相当于求解不等式方程:123446851 9kkkk的整数解。但要求剩余材料12319(468)4rkkk。利用 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...