钢管下料摘要在生活中常遇到通过切割、剪裁、等手段,将原材料加工成所需尺寸的工艺过程,称为原料下料问题。
按照进一步工艺要求,确定下料方案,使用料最省或利润最大。
本文研究的是钢管下料问题。
用数学规划模型确定切割方案,使其既能满足顾客需求,又能用料最省。
对于问题(1),以按照第i 种模式(1,2,,7i =)切割的原料钢管的根数为研究对象,确定下料方案,使其用料最省。
①以切割后剩余的总余料量最小为目标建立整数线性规划模型如下:7171min ,1,2,3..0,1,2,,7i ii ji i j i iz c x a x b j s t x i ===⎧≥=⎪⎨⎪≥=⎩∑∑ 利用LINGO 软件进行求解得到一共需要切割27根原料钢管。
总余料量为27m 。
②以切割原料钢管的总根数最少为目标建立整数线性规划模型同上。
利用LINGO 软件进行求解得到一共需要切割25根原料钢管。
总余料量为35m 。
在余料没有什么用途的情况下,通常选择使用原料钢管的总根数最少为目标。
对于问题(2),以所使用的第i 种切割模式下每根原料钢管生产4m ,5m ,6m ,和8m 的钢管数量为研究对象(1,2,3i =),此处仅以切割原料钢管的总根数最少为目标,建立整数非线性规划模型如下:31314141min ,1,2,3,4,1,2,3..,1,2,30,1,2,3ii ji i j i j ji j j ji j iz y r y b j c r m i s t c r n i y i =====⎧≥=⎪⎪⎪≥=⎪⎨⎪⎪≤=⎪⎪≥=⎩∑∑∑∑ 利用LINGO 软件进行求解得到一共需要切割28根原料钢管。
此整数非线性规划模型的解并不唯一,本文仅给出其中一组解。
关键字:钢管下料,用料最省,切割模式,整数线性规划,整数非线性规划1. 问题重述某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出,从钢管厂进货时得到的原料钢管都是19m 。
(1)现有一客户需要50根4m 、20根6m 、15根8m 的钢管,应如何下料最节省?(2)零售商如果采用的不同切割模式太多,将会导致生产过程的复杂化,从而增加生产和管理成本,所以该零售商规定采用的不同切割模式不能超过3种。
此外,该客户出需要(1)中的三种钢管外,还需要10根5m 的钢管。
应如何下料最节省?2. 基本假设2.1 在加工钢管时机器正常工作,垂直切割且按所要求的规格切割。
2.2 零售商从钢管厂进货时所获得的钢管均为合格品。
2.3 假设在一个合理的切割模式下产生的余料不应该大于或等于客户需要的钢管的最小尺寸。
2.4 加工的钢管不考虑因摩擦或加热而引起的变形,即所加工的钢管都是令人满意的。
2.5 假设余料没有什么其他用途。
2.6 假设切割不会对钢管造成损耗。
2.7 对于原问题中“最节省”的理解可以有两种:一是切割后剩余的总余料量最小,二是切割原料钢管的总跟数最少。
3. 符号说明i x :表示按照第i 种模式切割的原料钢管的根数(1,2,,7i =)i y :表示按照第i 种模式切割的原料钢管的根数(1,2,3i =)1i r :表示第i 种切割模式下每根原料钢管生产4m 的钢管数量2i r :表示第i 种切割模式下每根原料钢管生产5m 的钢管数量3i r :表示第i 种切割模式下每根原料钢管生产6m 的钢管数量4i r :表示第i 种切割模式下每根原料钢管生产8m 的钢管数量4. 问题分析4.1 对于问题(1)的分析:首先应当确定哪些切割模型是可行的。
即按照顾客需要在原料钢管上安排切割的一种组合。
显然,可行的切割模式有很多种。
其次,应当确定哪些切割模式是合理的。
通常情况下,合理的切割模式的余料不应该大于或等于客户需要的钢管的最小尺寸。
在这种合理性的假设下,切割模式一共有7种,如表1所示。
表1 钢管下料的合理切割模式此时,问题转化为在满足客户需要的条件下,按照哪几种合理的模式,切割多少根原料钢管,最为节省。
对于节省的理解可以有两种:一是切割后剩余的总余料量最小,二是切割原料钢管的总跟数最少。
4.2 对于问题(2)的分析:按照(1)的思路,可以通过枚举法首先确定哪些模式是可行的。
但由于需求的钢管规格增加到4种,所以枚举法的工作量较大。
因此采用整数非线性规划模型,可以同时确定切割模式和切割计划,这是带有普遍性的方法。
同(1)类似,一个合理的切割模式的余料不应该大于或等于客户需要的钢管的最小尺寸(本题中为4m),切割计划中只使用合理的切割模式,而由于本题中参数都是整数,所以合理的切割模式的余量不能大于3m 。
这里仅选择总根数最少为目标进行求解。
5. 模型的建立与求解5.1对问题(1)进行模型建立。
用i x 表示按照第i 种模式(1,2,,7i =)切割的原料钢管的根数,显然它们应当是非负整数,即0i x ≥(1,2,,7i =)。
以切割后剩余的总余料量最小为目标,则由表1可得11234567min 3333z x x x x x x x =++++++(1)以切割原料钢管的总根数最少为目标,则有21234567min z x x x x x x x =++++++(2)为满足客户的需求,按照表1应有1234543250x x x x x ++++≥(3)24562320x x x x +++≥(4)357215x x x ++≥(5)5.1.1 下面分别在两种目标下建立模型:① 切割后剩余余料量最小:112345671234524563571234567min 3333432502320..215,,,,,,0z x x x x x x x x x x x x x x x x s t x x x x x x x x x x =++++++++++≥⎧⎪+++≥⎪⎨++≥⎪⎪≥⎩② 切割原料钢管的总根数最少: 212345671234524563571234567min 432502320..215,,,,,,0z x x x x x x x x x x x x x x x x s t x x x x x x x x x x =++++++++++≥⎧⎪+++≥⎪⎨++≥⎪⎪≥⎩5.1.2 模型求解①将整数线性规划模型①输入LINGO 求解,可以到最优解如下:212x =,515x = (其余变量为0)。
即按照模式2切割12根原料钢管、按照模式5切割15根原料钢管,共27根,总余料量为27m 。
亦即一共需要切割27根原料钢管。
其中12根按照每根原料钢管切割成3根4m 的钢管、1根6m 的钢管,余料为1m 的模式切割;另外15根按照每根原料钢管切割成1根4m 的钢管、1根6m 的钢管、1根8m 的钢管,余料为1m 的模式切割。
总余料量为27m 。
显然,在总余料量最小的目标下,最优解将是使用余料尽可能小的切割模式(模式2和模式5的余料为1m),但是这可能会导致切割原料钢管的总根数较多。
②将整数线性规划模型②输入LINGO 求解,可以得到最优解如下:125x x ==,515x = (其余变量为0)。
即按照模式1切割5根原料钢管、按照模式2切割5根、按照模式5切割15根,共25根,可算出总余料量为35m 。
亦即一共需要切割25根原料钢管。
其中5根按照每根原料钢管切割成4根4m 的钢管的模式切割;5根按照每根原料钢管切割成3根4m 的钢管和1根6m 的钢管的模式切割;另外15根按照每根原料钢管切割成1根4m 的钢管、1根6m 的钢管和1根8m 的钢管的模式切割。
总余料量为35m 。
与上面得到的结果相比,总余料量增加了8m ,但是所用的原料钢管的总根数减少了2根。
在余料没有什么用途的情况下,通常选择总根数最少为目标,而不选择总余料量最少为目标。
5.2 对问题(2)进行模型建立。
由不同切割模式不能超过3种,可以用i y 表示按照第i 种模式(1,2,3i =)切割的原料钢管的根数,显然它们应当是非负整数。
设所使用的第i 种切割模式下每根原料钢管生产4m ,5m ,6m 和8m 的钢管数量分别为1234,,,i i i i r r r r (非负整数)。
以切割原料钢管的总根数最少,则目标为:123min z y y y =++ (6)为满足客户的需求,应有如下约束:11112213350r y r y r y ++≥ (7)21122223310r y r y r y ++≥ (8)31132233320r y r y r y ++≥ (9)41142243315r y r y r y ++≥ (10)5.2.1 模型建立由上述目标函数和约束条件可得如下模型:123111122133211222233311322333411422433123min 501020..1501,2,31,2,3,4,,0ji z y y y r y r y r y r y r y r y r y r y r y s t r y r y r y r i j y y y =++++≥⎧⎪++≥⎪⎪++≥⎪⎨++≥⎪⎪≥==⎪≥⎪⎩ 5.2.2 模型求解在(7)~(10)式中出现决策变量的乘积,是一个整数非线性规划模型,虽然用IINGO 软件可以直接求解,但也可以增加一些显然的约束条件,从而缩小可行解的搜索范围,减少运行时间。
由于每一种切割模式必须可行、合理,所以每根原料钢管的成品量不能超过19m ,也不能少于16m(余量不能大于3m),于是有以下约束:1121314116456819r r r r ≤+++≤ (11)1222324216456819r r r r ≤+++≤ (12)1323334316456819r r r r ≤+++≤ (13)再此,3种切割模式的排列顺序是无关紧要的,所以不妨再增加以下约束:123y y y ≥≥ (14)另外,所需原料钢管的总根数有着明显的上届和下届,所以无论如何,首先,原料刚挂的总根数不可能少于45051062081512619⨯+⨯+⨯+⨯⎡⎤+=⎢⎥⎣⎦根;其次,考虑一种非常特殊的生产计划:第一种切割模式下只生产4m 钢管,一根原料钢管切割成4根4m 钢管,为满足50根4m 钢管的需求,需要13根原料钢管;第二种切割模式下只生产5m 、6m 钢管,一根原料钢管切割成1根5m 钢管和2根6m 钢管,为满足10根5m 和20根6m 钢管的需求,需要10根原料钢管;第三种切割模式下只生产8m 钢管,一根原料钢管切割成2根8m 钢管,为满足15根8m 钢管的需求,需要8根原料钢管。
于是满足要求的这种生产计划共需13+10+8=31根原料钢管,这就得到了最优解的一个上界。
所以还可以增加以下约束:1232631y y y ≤++≤ (15)于是可以将5.2.1中的模型转化为如下模型,记为5.2.1*:12311112213321122223331132233341142243311213141112131411222324212223242132333min 50102015456816456819456816..456819456z y y y r y r y r y r y r y r y r y r y r y r y r y r y r r r r r r r r r r r r s t r r r r r r r =++++≥++≥++≥++≥+++≥+++≤+++≥+++≤+++4313233343123123123816456819263101,2,31,2,3,40ji r r r r r y y y y y y r i j y y y ⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪≥⎪+++≤⎪⎪++≥⎪++≤⎪⎪≥==⎪⎪≥≥≥⎩ 将 5.2.1*中的模型输入LINGO 软件得到1210y y ==,38y =,3122231r r r ===,12432r r ==,113r =(其余变量为0)。