用lingo编程,下面程序错在哪里?model:sets:dj/1..9/:i,j,v,f,a,b,c;endsetsmin=@sum((x+y-2000-i(n))*a(n)*v(n)+(j(n)-i(n))*b(n)*v(n)+z/12*c(n)*v(n)-c(n)*f(n));@for(dj(n):@if(((x+y-2000) #gt# i(n)) #and# ((x+y-2000) #le# j(n)) ,1,0)=a(n));@for(dj

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/07 04:51:58

用lingo编程,下面程序错在哪里?
model:
sets:
dj/1..9/:i,j,v,f,a,b,c;
endsets
min=@sum((x+y-2000-i(n))*a(n)*v(n)+(j(n)-i(n))*b(n)*v(n)+z/12*c(n)*v(n)-c(n)*f(n));
@for(dj(n):@if(((x+y-2000) #gt# i(n)) #and# ((x+y-2000) #le# j(n)) ,1,0)=a(n));
@for(dj(n):@if((x+y-2000) #gt# j(n) ,1,0)=b(n));
@for(dj(n):@if(((z/12) #gt# i(n)) #and# ((z/12) #le# j(n)) ,1,0)=c(n));
12y+z=p;
data:
x=
984
;
p=39030;
i=
0 500 2000 5000 20000 40000 60000 80000 100000;
j=
500 2000 5000 20000 40000 60000 80000 100000 200000;
v=
0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45;
f=
0 25 125 375 1375 3375 6375 10375 15375;

改成这样就行了 集操作函数一定要先声明集 乘号要写 data结束要写enddata
model:
sets:
dj/1..9/:i,j,v,f,a,b,c;

endsets
min=@sum(dj(n):(x+y-2000-i(n))*a(n)*v(n)+(j(n)-i(n))*b(n)*v(n)+z/12*c(n)*v(n)-c(n)*f(n));
@for(dj(n):@if(((x+y-2000) #gt# i(n)) #and# ((x+y-2000) #le# j(n)) , 1,0)=a(n));
@for(dj(n):@if((x+y-2000) #gt# j(n) , 1,0)=b(n));
@for(dj(n):@if(((z/12) #gt# i(n)) #and# ((z/12) #le# j(n)) , 1,0)=c(n));
12*y+z=p;
data:
x=
984
;
p=39030;
i=
0 500 2000 5000 20000 40000 60000 80000 100000;
j=
500 2000 5000 20000 40000 60000 80000 100000 200000;
v=
0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45;
f=
0 25 125 375 1375 3375 6375 10375 15375;
enddata
end