KoWuDa 发表于 2013-10-14 16:46

钢材下料优化的问题

一般教程里面,都是固定了切割的模式,比如下面的题目:
原料长度:19m
客户长度:4m,6m,8m,5m
       数量:50,20,15,10

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*r14+5*r24+6*r34+8*r44<=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;
4*r14+5*r24+6*r34+8*r44>=16;

x1+x2+x3>=26;
x1+x2+x3<=31;

x1>=x2;
x2>=x3;
x3>=x4;

@gin(x1);@gin(x2);@gin(x3);@gin(x4);
@gin(r11);@gin(r12);@gin(r13);@gin(r14);
@gin(r21);@gin(r22);@gin(r23);@gin(r24);
@gin(r31);@gin(r32);@gin(r33);@gin(r34);
@gin(r41);@gin(r42);@gin(r43);@gin(r44);

这里一般都规定死了,是三种切割模式,我问的是,如果没有规定死,怎样使用LINGO计算出各种切割模式下的结果,然后统计这些结果呢??

最好是有代码,我最近在做一个类似的下料问题,遇到这种情况,就是最后的切割模式先不管它,只要材料使用率最高就好!

我是要在程序里调用LINGO,来返回数据的,所以,最好,能找个高手,教教我...急的不行了...!

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

感谢楼主分享,哈哈
页: [1]
查看完整版本: 钢材下料优化的问题