lingo软件的问题

我用lingo编了个程序,但总是报错,请教高手,错在哪里?
model:
sets:
viab/1..3/: p,r1,r2,r3,rs,rp;
endsets
data:
r=0.0354;
r1=0.046,0.04,0.0312;
r2=0.064,0.058,0.021;
r3=-0.143,0.109,0.038;
rp=0.039,0.05566,0.0133;
enddata
min=a;
a>=0;
p0>1;
@for(viab(i): p(i)<0);
@sum(viab(i):p)+p0=1;
rs(1)=@sum(viab:p*r1)+p0*r;
rs(2)=@sum(viab:p*r2)+p0*r;
rs(3)=@sum(viab:p*r3)+p0*r;
@for(viab: rs(i)-rp(i)-a<=0);
@for(viab: rp(i)-rs(i)-a<=0);
end

错误显示为模型定义错误,,
在倒数第二三排集合名viab后加上(i)就行
model:
sets:
viab/1..3/: p,r1,r2,r3,rs,rp;
endsets
data:
r=0.0354;
r1=0.046,0.04,0.0312;
r2=0.064,0.058,0.021;
r3=-0.143,0.109,0.038;
rp=0.039,0.05566,0.0133;
enddata
min=a;
a>=0;
p0>1;
@for(viab(i): p(i)<0);
@sum(viab(i):p)+p0=1;
rs(1)=@sum(viab:p*r1)+p0*r;
rs(2)=@sum(viab:p*r2)+p0*r;
rs(3)=@sum(viab:p*r3)+p0*r;
@for(viab(i): rs(i)-rp(i)-a<=0);
@for(viab(i): rp(i)-rs(i)-a<=0);
end
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-18
倒数二三行少(i),我估计你以为这里可以省略,但是这里不可以。因为这里同时出现了两个变量,这样写的话lingo认为你的约束条件是rs(1)-rp(1)-a<=0
rs(1)-rp(2)-a<=0;rs(1)-rp(3)-a<=0;rs(2)-rp(1)-a<=0等等,你看懂了吧!以后有什么问题找我啊,想当年我学lingo的时候遇到问题没人问,现在你们多好啊!
相似回答