数学建模社区-数学中国
标题:
钢材下料优化的问题
[打印本页]
作者:
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,5m
4 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% {$ U
Min=x1+x2+x3;
0 E2 n! e# p+ a
r11*x1+r12*x2+r13*x3>=50;
" E o9 V4 y- Z8 v& J2 K0 h
r21*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 e
4*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# o
4*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 E
4*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 j
4*r14+5*r24+6*r34+8*r44>=16;
+ I/ y9 e/ L3 R o1 T! y% R7 t' H
! V }& q* \; @ B0 f* _: c
x1+x2+x3>=26;
9 |: _! U `1 ]. c3 V7 m, x% l; j
x1+x2+x3<=31;
. A F5 I, i5 _: \" d6 I
" G& E: Q3 z! K6 f$ h) V
x1>=x2;
9 R" [* o" X9 ?8 ~6 L5 k
x2>=x3;
# m7 l) v( f2 X; P: f+ V8 z
x3>=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