数学建模社区-数学中国

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

作者: KoWuDa    时间: 2013-10-14 16:46
标题: 钢材下料优化的问题
一般教程里面,都是固定了切割的模式,比如下面的题目:$ J/ K& [2 S! d0 x+ }; t
原料长度:19m* c' J6 g3 x0 u8 `- G
客户长度:4m,6m,8m,5m
$ j/ K9 b* [" o, p0 w       数量:50,20,15,106 F! Q1 y; w: ?: z) T. v2 W
& k: p- n/ F& ^0 g
Min=x1+x2+x3;
: t4 H" ^/ ]# n6 O  [r11*x1+r12*x2+r13*x3>=50;/ d$ b/ g4 K" B3 o0 ^
r21*x1+r22*x2+r23*x3>=10;
4 Q, v" \! ~4 X: [# v% Er31*x1+r32*x2+r33*x3>=20; 8 T- ^' `4 q( J% S1 W1 K9 I3 M
r41*x1+r42*x2+r43*x3>=15;
! G3 }( M4 I( ?4*r11+5*r21+6*r31+8*r41<=19;" W4 o, j5 X9 B, V
4*r12+5*r22+6*r32+8*r42<=19;
% X1 ?# V0 S1 v4 I4*r13+5*r23+6*r33+8*r43<=19;/ M5 K$ m) j' T9 X* d' o7 x! |* Q
4*r14+5*r24+6*r34+8*r44<=19;: U5 G6 |9 g' d8 y- c

6 i! v- C% |! V$ ~7 |& ?
* T) d; _% W8 V- t4*r11+5*r21+6*r31+8*r41>=16;  Y" o" d6 H6 H  e
4*r12+5*r22+6*r32+8*r42>=16;
1 q- }6 K2 {- A4*r13+5*r23+6*r33+8*r43>=16;
9 g! N  {$ h8 D/ m! A4*r14+5*r24+6*r34+8*r44>=16;
+ ^8 E# U7 b0 J5 |/ G8 `9 w1 b+ C' F# A- d8 N1 c/ P  U
x1+x2+x3>=26;: c# E9 R# ?; V3 e5 P6 i$ A/ d
x1+x2+x3<=31;
4 c, S! p4 f7 N6 A8 ?: G: o6 c) M' P3 P, Y5 m3 S3 V6 y5 l0 s2 x4 K: l
x1>=x2;
+ J8 U' b9 h2 q* n$ M3 `/ @x2>=x3;
0 J2 Y" @: G; a) z) o. U: yx3>=x4;
6 {2 K/ u! H! S+ T1 J) O6 _% ^( J: T" E) H* p# ?. C6 e
@gin(x1);@gin(x2);@gin(x3);@gin(x4);
8 G+ |' L6 I( n7 c@gin(r11);@gin(r12);@gin(r13);@gin(r14);
# q8 G1 u) ~6 _% O( e# ~- g' W@gin(r21);@gin(r22);@gin(r23);@gin(r24);
& r! t9 z/ P! x) ]@gin(r31);@gin(r32);@gin(r33);@gin(r34);' R1 W; F# \# o
@gin(r41);@gin(r42);@gin(r43);@gin(r44);( r: s9 d+ q/ W0 R

: J3 f4 J; G5 x# W! m0 g/ F4 A这里一般都规定死了,是三种切割模式,我问的是,如果没有规定死,怎样使用LINGO计算出各种切割模式下的结果,然后统计这些结果呢??
. ~0 P8 x) p9 N0 [# e1 T7 X* P6 c& d% m9 Q" m; I+ j0 y# S+ }
最好是有代码,我最近在做一个类似的下料问题,遇到这种情况,就是最后的切割模式先不管它,只要材料使用率最高就好!3 N3 o# F. {4 a, a' F: {

. W. V; Y; O; e+ t; ~9 o我是要在程序里调用LINGO,来返回数据的,所以,最好,能找个高手,教教我...急的不行了...!, k! r: E* G) c& ~5 Z

* a" f) x% n( o4 w* K: Y
作者: 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