一道lingo编程题

来源:百度知道 编辑:UC知道 时间:2024/05/22 16:11:40
我编的程序如下,但有错,望各位朋友指教!
如果可以的话,也可用C语言或是matlab来编!所有变量非负。
sets:
years/1..5/:a,b,c,u,v,p,p1,p2,q,q1,q2,t;
ENDSETS

data:
a=97.5,,,,;
b=,,,0,0;
c=9.5,,,,;
p2=0,,,,;
q2=0,,,,;
enddata

!约束条件;
@for(years(i)|i#gt#1:a(i)=0.98*a(i-1)+0.95*c(i-1)-10);
@for(years(i):b(i)+v(i)=u(i));
@for(years(i)|i#gt#1:c(i)=0.95*b(i-1));
@for(years(i):u(i)=0.98*0.55*a(i));
@for(years(i):p(i)=1.1*s1(i)+0.9*s2(i)+0.8*s3(i)+0.65*s4(i));
@for(years(i):q(i)=1.5*s(i));
@for(years(i):s(i)+s1(i)+s2(i)+s3(i)+s4(i)+a(i)+2*(b(i)+c(i))/3<=200);
@for(years(i):t(i)=42*a(i)+10*(b(i)+c(i))+4*(s1(i)+s2(i)+s3(i)+s4(i))+14*(i));
@for(years(i):p(i)+p1(i)-p2(i)>=0.6*a(i));
@for(years(i):q(i)+q1(i)-q2(i)>=0.7*a(i));
@for(years(i):@bnd(0,s(i),120));
@for(years(i):@bnd(0,s1(i),20));
@for(years(i):@bnd(0,s2(i),30));
@for(years(i):@bnd(0,s3(i),20));
@for(years(i):@bnd(0,s4(i),10));
p(

建议楼主可以点击
Lingo->Generate->Display Model
看看建立的模型是不是与楼主的想法一致…
另外,完整的定义可能应该是这个样子的:
years/1..5/:a,b,c,u,v,p,p1,p2,q,q1,q2,t,s,s1,s2,s3,s4;

你在集里面没有定义s s1 s2 s3 s4
最后结果还是找不到可行解 因为具体的模型不知道所以不知道问题出在哪里