遥远的期待 发表于 2010-3-31 17:49

lingo语言问题

model:
title 下料问题;
sets:
needs/1..4/:length,num;
cuts/1..4/:x,c,y;
patterns(needs,cuts):r;
endsets
data:
length=290 315 350 455;
num=15 28 21 30;
c=0.1 0.2 0.3 0.4;
enddata
min=@sum(cuts(i):y(i)*x(i)+x(i));
@for(needs(i):@sum(cuts(j):x(j)*r(i,j))>num(i));
@for(cuts(j):@sum(needs(i):length(i)*r(i,j))<capacity);
@for(cuts(j):@sum(needs(i):length(i)*r(i,j))>1750);
@for(cuts(j):@sum(needs(i):r(i,j))<5);
@for(cuts(i)|i#lt#@size(cuts):x(i)>x(i+1));
@for(cuts(j):@gin(x(j)));
@for(patterns(i,j):@gin(r(i,j)));
@for(cuts(i):@bin(y(i)));
@for(cuts(i):@sum(cuts(i):y(i))<4);
end


部分结果:
  X( 1)        8.999995            0.000000
  X( 2)        6.000000          -0.3333330
  X( 3)        3.000002            0.000000
X( 4)        1.000000          -0.3333332
为什么会出现非整数的情况;难道@gin()没用吗?   还有个问题是有哪些原因会导致出现局部最优解?谢谢

olh2008 发表于 2010-3-31 18:21

我执行了一下你的代码,结果没有出现这样的情况,但有些时候是局部最优。建议你对模型进行优化。以下为执行结果:

olh2008 发表于 2010-3-31 18:25

还有建议你以后发代码尽量用高级模式里的代码环境,不要直接粘贴上来,因为这会加入许多乱码,我刚才整理你的代码花了至少3分钟的时间。代码环境为【code】 。。。【/code】(注英文状态下的方文括号)

wangruidan 发表于 2010-3-31 21:24

我也不是好清楚呢~刚刚学习LINGO软件~望与楼主共勉

linmatsas 发表于 2010-3-31 23:02

好复杂~~看来要学的还有很多……

linmatsas 发表于 2010-4-1 13:00

lingo有个最小误差限的]问题,他给自动近似了,这张里面的Integrality是条绝对误差和相对误差限的……貌似因为这个吧……
页: [1]
查看完整版本: lingo语言问题