请教一下,我这段代码哪里错了,为什么lingo会报错(invalid set name)?
model:
sets:
factory/1..18/:a,f;
plant/1..9/:b,r,m,d1a,d2a,d1b,d2b,d1c,d2c,d1d,d2d;
fuzhi/1..4/:p;
coo(factory,plant):e,q;
endsets
data:
a=0.0532,0.0528,0.0706,0.0611,0.0896,0.0308,0.0587,0.0217,0.0486,0.0325,0.0775,0.0359,0.0512,0.0995,0.1041,0.0578,0.0173,0.0370;
b=0.0292,0.0681,0.4623,0.3501,0.0131,0.0056,0.0122,0.0414,0.0180;
e=432,1100,2300,6800,3300,4800,9600,1700,3700
1100,1800,3500,2400,4000,6800,9700,2000,4300
2500,2000,3900,7800,6400,3100,9700,6800,7300
1100,2800,7500,6400,9400,12100,9200,3300,6200
8800,8500,3000,886,7100,7000,9500,8000,2300
8500,8800,3700,12000,2300,7000,7400,5000,6600
6000,6800,3800,13000,8400,5300,3700,6500,8600
9600,7400,8000,2000,6500,5000,5200,9600,2300
6000,7800,8100,9000,8300,950,6700,1600,7500
3500,5800,4500,2000,2200,1800,6800,9100,7300
9100,5800,2200,9700,3300,9800,4800,6000,7600
3900,2200,9200,8100,2400,1700,4800,400,7000
1500,5500,3700,7000,7300,10000,400,3600,4200
3500,8700,7100,6500,5400,600,3100,5800,4900
7100,7000,7200,5200,4300,8000,2200,2300,9900
10500,11000,8600,7200,7000,8400,6400,8600,12900
5700,6700,8700,7000,6100,6500,9900,2700,917
2100,3300,1200,10000,2900,9200,6500,6100,2800;
m=19000,21000,7900,5800,16000,17000,7100,11000,5500;
enddata
min=@sum(plant(j):d1a(j)+d2a(j))*p(1)+@sum(plant(j):d1b(j)+d2b(j))*p(2)+@sum(plant(j):d1c(j)+d2c(j))*p(3)+@sum(plant(j):d1d(j)+d2d(j))*p(4);
@for(factory(i):@sum(plant(j):q(i,j))=1);
@for(plant(j):@sum(factory(i):a(i)*q(i,j))+d1a(j)-d2a(j)=b(j));
@sum(factory(i):a(i))=1;
@sum(plant(j):b(j))=1;
@sum(plant(j):r(j))=1;
@for(plant(j):r(j)+d1b(j)-d2b(j)=b(j));
@for(factory(i):@sum(plant(j):a(i)*q(i,j)*e(i,j))+d1c(j)-d2c(j)=f(i));
@for(factory(i):f(i)=a(i)*@smin(e(i,j)));
@for(plant(n):@sum(m(n)*r(n))+d1d(n)-d2d(n)=@smin(m(n)));
end
您好,在Lingo语言中,每一行前不能有空格。在您的代码中,sets和factory/1..18/:a,f;之间有一个空格,这会导致Lingo解析出错。如果您想解决这个问题,可以将空格删除,然后再重新运行您的程序。