求助:lingo运行错误,显示check for undefined indices and⼀or conditions in expression:4

2025-03-07 06:29:49
推荐回答(1个)
回答1:

model:
sets:
suppy/1..2/:p,e,w,ea,wa,g;
plant/1..3/:m,f,n,fa,na,ia,h,c;
pei/1..4/:d;
link1(suppy,plant):trs,tra,u,ua,x;
link2(plant,pei):trp,trb,vb,v,y;
endsets
data:
p=10,9;
e=0.2,0.3;
ea=50,45;
g=450,480;
f=0.15,0.1,0.2;
fa=30,35,30;
m=3,2,3;
h=0.3,0.2,0.2;
c=480,460,450;
d=400,450,450,400;
tra=30,35,40,
40,35,30;
trs=0.5,0.6,0.7,
0.6,0.7,0.5;
trp=0.9,0.8,1,0.8,
0.8,1,0.9,0.9,
0.9,0.8,0.8,0.9;
trb=40,35,35,40,
38,40,36,40,
38,36,40,38;
enddata
min=@sum(suppy(i):p(i)*@sum(plant(j):x(i,j)))+@sum(plant(j):m(j)*@sum(pei(k):y(j,k)))+@sum(suppy(i):e(i)*w(i)+ea(i)*wa(i))+@sum(plant(j):f(j)*n(j)+fa(j)*na(j))+@sum(suppy(i):@sum(plant(j):trs(i,j)*u(i,j)+tra(i,j)*ua(i,j)+trs(i,j)*x(i,j)))+@sum(plant(j):@sum(pei(k):trp(j,k)*v(j,k)+trb(j,k)*vb(j,k)+trp(j,k)*y(j,k)))+@sum(plant(j):ia(j)*h(j));
@sum(suppy(i):@sum(plant(j):x(i,j)-u(i,j)))<=400;
@sum(plant(j):@sum(pei(k):y(j,k)-v(j,k)))<=400;
@for(suppy(i):@sum(plant(j):x(i,j))<=g(i)+w(i));
@for(plant(j):@sum(suppy(i):x(i,j))<=c(j)+n(j));
@for(plant(j):@sum(suppy(i):x(i,j))-ia(j)=@sum(pei(k):y(j,k)));
@for(pei(k):@sum(plant(j):y(j,k))=d(k));
@for(suppy(i):@bin(wa(i)));
@for(plant(j):@bin(na(j)));
@for(suppy(i):@for(plant(j):@bin(ua(i,j))));
@for(plant(j):@for(pei(k):@bin(vb(j,k))));
!wa,na,ua,vb 01;
end