数学建模社区-数学中国

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

作者: KoWuDa    时间: 2013-10-14 16:46
标题: 钢材下料优化的问题
一般教程里面,都是固定了切割的模式,比如下面的题目:
5 N4 u8 r. j1 ^# E& ^, Y' X原料长度:19m
& G0 Z: f% j7 I/ x5 V4 O3 r客户长度:4m,6m,8m,5m4 n: j, e4 `) S# m+ o9 ?
       数量:50,20,15,10/ E4 S4 j1 y. G) O, O4 g

6 Q9 s, F/ q. K4 l4 B% {$ UMin=x1+x2+x3;
0 E2 n! e# p+ ar11*x1+r12*x2+r13*x3>=50;
" E  o9 V4 y- Z8 v& J2 K0 hr21*x1+r22*x2+r23*x3>=10; 2 U& X  i+ o* Z( ]" M3 A
r31*x1+r32*x2+r33*x3>=20; 1 s8 I2 J$ F1 g% V  N
r41*x1+r42*x2+r43*x3>=15; 5 `. e/ q: y6 |7 Q
4*r11+5*r21+6*r31+8*r41<=19;
' M$ n9 x/ X6 L' O1 z  e4*r12+5*r22+6*r32+8*r42<=19;/ v" c0 h$ v* A. G
4*r13+5*r23+6*r33+8*r43<=19;
1 a( M* w) L# o4*r14+5*r24+6*r34+8*r44<=19;
3 u1 k2 [% G' D2 R5 ~$ e4 G" Q
& w0 S* {/ _7 J0 Y: u
2 P& h+ c: e0 u* z+ e2 E4*r11+5*r21+6*r31+8*r41>=16;) n' r( @4 \. u' c% P0 d4 r
4*r12+5*r22+6*r32+8*r42>=16;, Y6 o9 y3 {; v' A) Y
4*r13+5*r23+6*r33+8*r43>=16;
2 D; D% |9 j; U9 j4*r14+5*r24+6*r34+8*r44>=16;+ I/ y9 e/ L3 R  o1 T! y% R7 t' H

! V  }& q* \; @  B0 f* _: cx1+x2+x3>=26;
9 |: _! U  `1 ]. c3 V7 m, x% l; jx1+x2+x3<=31;. A  F5 I, i5 _: \" d6 I

" G& E: Q3 z! K6 f$ h) Vx1>=x2;
9 R" [* o" X9 ?8 ~6 L5 kx2>=x3;
# m7 l) v( f2 X; P: f+ V8 zx3>=x4;
- y3 x6 o; k9 `3 v  O  q/ d; s6 ?0 @
@gin(x1);@gin(x2);@gin(x3);@gin(x4);0 u+ B5 D: k' [6 H/ |9 s2 m7 \* c
@gin(r11);@gin(r12);@gin(r13);@gin(r14);9 z! ~) j( H3 c& G# T. \" J
@gin(r21);@gin(r22);@gin(r23);@gin(r24);
" {) c6 ?1 j6 F2 F8 S@gin(r31);@gin(r32);@gin(r33);@gin(r34);$ C2 l  ]( m  O1 j/ C% N
@gin(r41);@gin(r42);@gin(r43);@gin(r44);
9 j/ F# w9 A; l! {; {3 ?. h
/ a5 a$ ]- r2 a& i8 F, [这里一般都规定死了,是三种切割模式,我问的是,如果没有规定死,怎样使用LINGO计算出各种切割模式下的结果,然后统计这些结果呢??- z7 p' Z9 r9 \" O6 M
7 y' d) R8 I1 l( a- O; Y
最好是有代码,我最近在做一个类似的下料问题,遇到这种情况,就是最后的切割模式先不管它,只要材料使用率最高就好!; k1 a0 F, V! u1 }3 Q1 _
% L+ n3 g. q* }5 J$ H6 A  ]" f* V
我是要在程序里调用LINGO,来返回数据的,所以,最好,能找个高手,教教我...急的不行了...!
# h4 Y$ ^3 {! y+ ~" W' ~6 s# a- I9 t# W  w* M! H% a' }

作者: 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