帮忙看看这个lingo程序哪不对?sets:d/d1..d4/:nP,op,q;loc/l1..l5/:y,fc,vx,cap;f/f1..f5/:gc,z;factory/f3..f5/;logcenter/l4,l5/;enviroment/e1,e2/;remanu(d,loc,f,logcenter,d):rx_rm,rc;reuse(d,loc,logcenter,d):rx_ru,uc;disposal(d,loc,enviroment):

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 22:06:08

帮忙看看这个lingo程序哪不对?sets:d/d1..d4/:nP,op,q;loc/l1..l5/:y,fc,vx,cap;f/f1..f5/:gc,z;factory/f3..f5/;logcenter/l4,l5/;enviroment/e1,e2/;remanu(d,loc,f,logcenter,d):rx_rm,rc;reuse(d,loc,logcenter,d):rx_ru,uc;disposal(d,loc,enviroment):
帮忙看看这个lingo程序哪不对?
sets:
d/d1..d4/:nP,op,q;
loc/l1..l5/:y,fc,vx,cap;
f/f1..f5/:gc,z;
factory/f3..f5/;
logcenter/l4,l5/;
enviroment/e1,e2/;
remanu(d,loc,f,logcenter,d):rx_rm,rc;
reuse(d,loc,logcenter,d):rx_ru,uc;
disposal(d,loc,enviroment):rx_d,dc;
newmanu(factory,logcenter,d):ux_nm,mc;
dloclink(d,loc):c1;
logloclink(logcenter,loc):c2;
facloclink(f,loc):c3;
envloclink(enviroment,loc):c4;
endsets
data:
np=1000 3000 2500 4000;
op=100 250 200 300;
q=200 300 300 600;
fc=3000 4000 2500 1000 2000;
gc=5000 6500 3000 2500 2000;
c1=40 20 13 40 30
15 30 30 25 20
33 35 23 36 30
30 32 25 20 16;
c2=28 40 25 0 35
40 31 35 35 0;
c3=30 40 50 20 15
38 40 20 26 30
30 40 30 20 40
60 20 10 30 20
30 30 10 50 20;
c4=50 60 30 40 60
30 45 55 40 50;
cap=800 600 800 200 500;
a1=0.7;a2=0.2;b1=0.1;
enddata
!目标函数;
min=@sum(loc:fc*y)+@sum(f:gc*z)+@sum(remanu:rx_rm*rc)+@sum(reuse:rx_ru*uc)+@sum(disposal:rx_d*dc)+@sum(newmanu:ux_nm*mc);
@for(remanu(i,j,k,l,m):rc(i,j,k,l,m)=c1(i,j)+c3(k,l)+c1(m,l));
@for(reuse(i,j,k,l):uc(i,j,k,l)=c1(i,j)+c2(k,j)+c1(l,k));
@for(disposal(i,j,k):dc(i,j,k)=c1(i,j)+c4(k,j));
@for(newmanu(i,j,k):mc(i,j,k)=c3(i,j)+c1(k,j));
!再生品供给不小于再生品需求;
@for(d(m):@sum(remanu(i,j,k,l,m):rx_rm(i,j,k,l,m)*(l-b1))+@sum(reuse(i,j,k,m):rx_ru(i,j,k,m))>=op(m));
!新产品供给不小于新产品需求;
@for(d(m):@sum(remanu(i,j,k,l,m):rx_rm(i,j,k,l,m)*b1)+@sum(newmanu(i,j,m):ux_nm(i,j,m))>=np(m));
!所有运出的回收品不大于所有产生的回收品;
@for(d(i):@sum(remanu(i,j,k,l,m):rx_rm(i,j,k,l,m))+@sum(reuse(i,j,k,m):rx_ru(i,j,k,m))+@sum(disposal(i,j,k):rx_d(i,j,k)=q(i));
!所有产生的回收品都运到回收中心;
@for(loc(j):@sum(remanu(i,j,k,l,m):rx_rm(i,j,k,l,m))+@sum(reuse(i,j,k,m):rx_ru(i,j,k,m))+@sum(disposal(i,j,k):rx_d(i,j,k))=vx(j));
!通过某地的产品总量不大于该地的能力限制;
@for(loc(j):vx(j)=(l-a1-a2)*vx(j));
!在某地某设施开放的条件下,才能有产品通过该地的该设施;
@for(loc(j):@sum(remanu(i,j,k,l,m):rx_rm(i,j,k,l,m))+@sum(reuse(i,j,k,m):rx_ru(i,j,k,m))+@sum(disposal(i,j,k):rx_d(i,j,k))=vx(j))

帮忙看看这个lingo程序哪不对?sets:d/d1..d4/:nP,op,q;loc/l1..l5/:y,fc,vx,cap;f/f1..f5/:gc,z;factory/f3..f5/;logcenter/l4,l5/;enviroment/e1,e2/;remanu(d,loc,f,logcenter,d):rx_rm,rc;reuse(d,loc,logcenter,d):rx_ru,uc;disposal(d,loc,enviroment):
错误很多 @for(loc(j):@sum(d(i):@sum(f(k):rx_d(i,j,k)))>=(l-a1-a2)*vx(j)); 这句的l哪来的
@for(f:bin(z));这句是@bin
@for(loc(j):@sum(remanu(i,j,k,l,m):rx_rm(i,j,k,l,m))+@sum(reuse(i,j,k,m):rx_ru(i,j,k,m))+@sum(disposal(i,j,k):rx_d(i,j,k))=vx(j))