数学建模社区-数学中国

标题: 钢材下料优化的问题 [打印本页]

作者: KoWuDa    时间: 2013-10-14 16:46
标题: 钢材下料优化的问题
一般教程里面,都是固定了切割的模式,比如下面的题目:
, j! O( z5 M% i原料长度:19m8 Y. n( h& L3 o' P6 r' K
客户长度:4m,6m,8m,5m
: \& X7 [6 @, K- c       数量:50,20,15,104 ^7 p! N: g. ]6 t" B/ w
3 M: ^& N. J; |% E8 {
Min=x1+x2+x3;% U& s4 @4 P1 R% u
r11*x1+r12*x2+r13*x3>=50;
, N8 s* _+ g6 f' Xr21*x1+r22*x2+r23*x3>=10;   b' p( Y# _! S
r31*x1+r32*x2+r33*x3>=20; ; u$ m' H9 p' L5 F& n4 o
r41*x1+r42*x2+r43*x3>=15;
. y, X! x2 j9 ~/ p4*r11+5*r21+6*r31+8*r41<=19;( ^: ]9 e3 H5 T+ n4 f+ d5 d
4*r12+5*r22+6*r32+8*r42<=19;
* `! O7 r" T% c- v/ ?" ~/ i5 l( O4*r13+5*r23+6*r33+8*r43<=19;4 s& v! P7 R$ W/ Q' t. f- h
4*r14+5*r24+6*r34+8*r44<=19;
# v0 o3 R: Y+ n7 x( C3 i- C  e8 s( @
+ V$ n- P8 }. N
4*r11+5*r21+6*r31+8*r41>=16;! L9 M) |( [# t: o( l
4*r12+5*r22+6*r32+8*r42>=16;
4 R5 u1 n+ n. B4*r13+5*r23+6*r33+8*r43>=16;7 `# Y' n: x) P* i' d1 o5 c0 I# O, ^0 |
4*r14+5*r24+6*r34+8*r44>=16;
4 L2 i2 ~. r' p& A
" @) [7 r# J, \, \x1+x2+x3>=26;  T. b% W; t$ y' O
x1+x2+x3<=31;
) W  x7 b3 z3 N' O, G3 y' E) T$ |) @0 {1 d
x1>=x2;
3 K# x% F! K' r4 v! @! Y% k) }x2>=x3;
# C/ B# X2 ]/ @. V& x7 J" cx3>=x4;
2 \. L/ G0 N' {+ A  W, a# `* n6 x9 i: X( |
@gin(x1);@gin(x2);@gin(x3);@gin(x4);
1 A' L: Q2 W$ S( B9 s@gin(r11);@gin(r12);@gin(r13);@gin(r14);) i5 {" A1 q" }: T; O
@gin(r21);@gin(r22);@gin(r23);@gin(r24);
+ g# X( m( R$ G1 n@gin(r31);@gin(r32);@gin(r33);@gin(r34);; T8 {5 g% V- e( O: u; H1 x
@gin(r41);@gin(r42);@gin(r43);@gin(r44);1 X" A: r7 t. l: P: P

: ]: x8 U3 s& E3 r7 s$ D这里一般都规定死了,是三种切割模式,我问的是,如果没有规定死,怎样使用LINGO计算出各种切割模式下的结果,然后统计这些结果呢??. y# k. F8 {& w  W7 ?

$ @; K2 ?. K2 z/ W" a4 Z最好是有代码,我最近在做一个类似的下料问题,遇到这种情况,就是最后的切割模式先不管它,只要材料使用率最高就好!
* u1 U! _" n# S' F0 }3 S  l' f5 E4 P2 e( `" u% T
我是要在程序里调用LINGO,来返回数据的,所以,最好,能找个高手,教教我...急的不行了...!$ x  H7 K; ~$ |: W

5 ^% ?) D( }8 A6 n6 G) ?% h
作者: KoWuDa    时间: 2013-10-14 17:06
如果我要切割的种类,很多,光是枚举这些切割的模式,就要半天时间,而枚举出来的结果,如果是海量的数据,那又该怎么办呢?
作者: KoWuDa    时间: 2013-10-14 17:07
退一步,就算不是很多,如果有十几种,这也不算少了.按照前面的代码,那种写法,岂不是累死个人...
作者: linux5    时间: 2013-11-19 15:30
请参考IBM cplex中的cutstock例子,这个问题上个世纪60年代就解决了。方法是所谓的“column generation"
作者: shuang0813    时间: 2013-12-22 22:58
谢谢分享!
作者: warriorIverson    时间: 2014-1-17 15:50
感谢楼主分享,哈哈




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5