当前位置:首页 > 数学建模问题研究报告
钢管下料问题(1)的求解
将式(1),式(3)~(6)构成的线性整数规划模型输入LINDO如下: min 3x1+x2+3x3+3x4+x5+x6+3x7 s.t
4x1+3x2+2x3+x4+x5>=50 x2+2x4+x5+3x6>=20 x3+x5+2x7>=15 END gin7
求解可以得到最优解如下:
OBJECTIVE FUNCTION VALUE 1) 27.00000
VARIABLE VALUE REDUCED COST X1 0.000000 3.000000 X2 12.000000 1.000000 X3 0.000000 3.000000 X4 0.000000 3.000000 X5 15.000000 1.000000 X6 0.000000 1.000000 X7 0.000000 3.000000
即按照模式2切割12根原料钢管,按照模式5切割15根原料钢管,共27根,总余料量27m。显然,在总余料量最小的目标下,最优解将是使用余料尽可能小的切割模式(模式2和模式5的余料为1m),这会导致切割原料钢管的总根数较多。
将式(2)~(6)构成的线性整数规划模型输入LINDO求解,可以得到最优解如下:
OBJECTIVE FUNCTION VALUE 1) 25.00000
VARIABLE VALUE REDUCED COST X1 0.000000 1.000000
X2 15.000000 1.000000 X3 0.000000 1.000000 X4 0.000000 1.000000 X5 5.000000 1.000000 X6 0.000000 1.000000 X7 5.000000 1.000000
即按照模式2切割15根原料钢管,按照模式5切割5根原料钢管,按照模式7切割5根原料钢管,共25根,总余料量35m。与上面得到的结果相比,总余料量增加了8m,但是所用的原料钢管的总根数减少了2根,在余料没有什么用途的情况下,通常选择总根数最少为目标。 钢管下料问题(2)的求解
非线性整数规划模型(7)~(15)虽然用LINGO软件可以直接求解,但为了减少运行时间,可以增加一些显然的约束条件,从而缩小可行解的搜索范围。 例如,由于3种切割模式的排列顺序是无关要紧的,所以不妨增加以下约束: x1≥x2≥x3 (16) 又如,注意到所需原料钢管的总根数有明显的上界和下界。首先,原料钢管的根数不可能少于
?4?50?5?10?6?20?8?15????2619??
(根)。其次,考虑一种非常特殊的生产计划:第一种切割模式下只生产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根原料钢管,这就得到了最优解的一个上界,所以可增加以下约束:
26≤x1+x2+x3≤31 (17)
将式(7)~(17)构成的模型输入LINGO如下: model:
min=x1+x2+x3;
r11*x1+r12*x2+r13*x3>=50;; r21*x1+r22*x2+r23*x3>=10; r31*x1+r32*x2+r33*x3>=20; r41*x1+r42*x2+r43*x3>=15; 4*r11+5*r21+6*r31+8*r41<=19; 4*r12+5*r22+6*r32+8*r42<=19; 4*r13+5*r23+6*r33+8*r43<=19; 4*r11+5*r21+6*r31+8*r41>=16; 4*r12+5*r22+6*r32+8*r42>=16; 4*r13+5*r23+6*r33+8*r43>=16; x1+x2+x3>=26; x1+x2+x3<=31; x1>=x2; x2>=x3;
@gin(x1);@gin(x2);@gin(x3); @gin(r11);@gin(r12);@gin(r13); @gin(r21);@gin(r22);@gin(r23); @gin(r31);@gin(r32);@gin(r33); @gin(r41);@gin(r42);@gin(r43); end
得到输出如下:
Local optimal solution found at iteration: Objective value: 28.00000 Variable Value Reduced Cost X1 10.00000 0.000000 X2 10.00000 2.000000 X3 8.000000 1.000000 r11 3.000000 0.000000 r12 2.000000 0.000000
12211 r13 0.000000 0.000000 r21 0.000000 0.000000
r22 1.000000 0.000000 r23 0.000000 0.000000 r31 1.000000 0.000000 r32 1.000000 0.000000 r33 0.000000 0.000000 r41 0.000000 0.000000 r42 0.000000 0.000000 r43 2.000000 0.000000
即按照模式1,2,3分别切割10根,10根,8根原料钢管,使用原料钢管总根数为28根。第一种切割模式下一根原料钢管切割成3根4m钢管和1根6m钢管;第二种切割模式下一根原料钢管切割成2根4m钢管,1根5m钢管和1根6m钢管;第三种切割模式下一根原料钢管切割成2根8m钢管。
4.模型的评价与推广
本题主要通过枚举法与整数线性规划的相关知识建立数学模型,进而求出各规格钢管数量的约束条件,并利用LINGO数学软件对模型求解,大大提高了运算效率。结果表明模型较为合理,结果比较精确。本模原理简洁明了,可以应用于实际。
题目中给出了在钢管数较少时采用枚举法的相关表格,对于较简单的离散问题十分有效,但当模型可能性较多情况下,我们应当使用更普遍的解决方法,采用线性整数规划的方法。当钢管规格超过4种时,我们只需要增加模型的未知量,再增加相应的约束条件即可对问题进行求解。
5. 参考文献
[1]韩中庚.数学建模竞赛·获奖论文精选与点评.北京:科学出版社,2007. [2]谢金星,薛毅.优化建模与LINDO/LINGO软件.北京:清华大学出版社.2006.
共分享92篇相关文档