菜菜菜 发表于 2013-7-29 17:57

lingo程序,求大神解答——0-1规划就是出不来

用的lingo11,跑出来的结果,x不为0-1,是数量级较小的数,在10-7左右,不知道为什么,bin函数用不成。是语句问题么?

源程序采自《lingo和excel在数学建模中的应用》P100页
!火力发电厂;
model:
sets:
mon/1..12/:a,b,c,x,y;
endsets
data:
a=1875 1960 2160 1980 2085 2395 2555 2675 2330 2125 1930 2180;        !每月耗油量;
b=2626.15 2620.75 2647.275 2693.9 2737.775 2729.9 2707.425 2705.475 2703.85 2700.6 2718.5 2753.825;        !每月柴油价格预测;
enddata
@for(mon:@bin(x));
@for(mon:@gin(y));     注:英文输入‘:’变为了表情
min=@sum(mon(i):(d+y(i)*b(i)+@if(y(i)#le#2000,40,@if(y(i)#gt#12000,30,42-0.001*y(i)))*y(i))*x(i))+@sum(mon(i):(30*c(i)-15*a(i))*e);
d=10000;
e=0.5;
!限制条件;
c(1)=y(1)*x(1)+a(1)/2;
@for(mon(k)|k#ge#2:c(k)=@sum(mon(j)|j#le#k:y(j)*x(j))+a(1)/2-@sum(mon(i)|i#lt#k:a(i)));
c(12)>=1.5*a(12);
@for(mon(i)|i#lt#12:c(i)>=a(i)+a(i+1)/2);
@for(mon(i):c(i)<=20000);
@for(mon(i):y(i)>=1000*x(i));
end

菜菜菜 发表于 2013-7-29 18:49

{:3_50:}{:3_50:}

菜菜菜 发表于 2013-7-29 19:38

不能沉啊,求救啊!
{:3_50:}

_kk 发表于 2013-7-29 21:56

至少把题目完整贴出来吧 = =
我随便改了下!火力发电厂;
model:
sets:
mon/1..12/:a,b,c,x,y;
endsets
data:
a=1875 1960 2160 1980 2085 2395 2555 2675 2330 2125 1930 2180;        !每月耗油量;
b=2626.15 2620.75 2647.275 2693.9 2737.775 2729.9 2707.425 2705.475 2703.85 2700.6 2718.5 2753.825;        !每月柴油价格预测;
enddata
@bin(x(i));
@gin(y(i));
min=@sum(mon(i):(d+x(i)*b(i)+@if(y(i)#le#2000,40,@if(y(i)#gt#12000,30,42-0.001*y(i)))*y(i))*x(i))+(@sum(mon(i):30*c(i)-15*a(i))*e);
d=10000;
e=0.5;
!限制条件;
c(1)=y(1)*x(1)+a(1)/2;
@for(mon(k)|k#ge#2:c(k)=@sum(mon(j)|j#le#k:y(j)*x(j))+a(1)/2-@sum(mon(i)|i#lt#k:a(i)));
c(12)>=1.5*a(12);
@for(mon(i)|i#lt#12:c(i)>=a(i)+a(i+1)/2);
@for(mon(i):c(i)<=20000);
@for(mon(i):y(i)>=1000*x(i));
end
没报错了。但是结果跟你的差不多。
但是运行时出现
model is ill defined.这就跟目标规划的思想差不多了。当不能同时满足时,就弱化一个条件呗 柔性条件之类的吧~~

菜菜菜 发表于 2013-7-30 08:48

_kk 发表于 2013-7-29 21:56 static/image/common/back.gif
至少把题目完整贴出来吧 = =
我随便改了下!火力发电厂;
model:


我的这个也没有报错啊,你把@bin()改成了x(i),我也试过,model is ill defined是不是因为你定义@bin的时候没有用for遍历啊?我也不知道哪里错了。
条件限制不是问题,放宽以后本来就很慢的程序不知道还要跑多久,,,,实在不知道bin哪里出问题了。linus,,救救我吧!

百年孤独 发表于 2013-7-30 10:05

菜菜菜 发表于 2013-7-30 08:48 static/image/common/back.gif
我的这个也没有报错啊,你把@bin()改成了x(i),我也试过,model is ill defined是不是因为你定义@bin的时候 ...

你用的是 lingo9吗???

菜菜菜 发表于 2013-7-30 12:07

百年孤独 发表于 2013-7-30 10:05 static/image/common/back.gif
你用的是 lingo9吗???

lingo11证书齐全啊....是不是设置错了?

发表于 1970-1-1 08:00

发表于 1970-1-1 08:00

发表于 1970-1-1 08:00

页: [1] 2
查看完整版本: lingo程序,求大神解答——0-1规划就是出不来