求助!Lingo程序报错index variables may not share names with other variable
本帖最后由 xiangxiu 于 2015-4-24 07:32 编辑求大神帮忙看看,运行到目标函数下一行的时候报错 可是看的头大了也没发现有重名的变量名和索引 。
model:sets:plant/1..3/PCap,Pprod;warehouse/1..2/:WCap,Hw, WInitialInv;retailer/1..4/:RCap,Hr, RInitialInv;
transport/1..3/:TWAR;
endsets
!Formulation;
!Totalcost obj func;
min=@sum(period(t):@sum(plant(i):X(i,t)*Pprod(i)))+@sum(plwaper(i,j,t):Tij*y(i,j,t)) +@sum(waper(j,t):phi(j,t)*Hw(j))+@sum(reper(k,t):RInv(k,t)*Hr(k)) @for(plper(i,t):X(i,t)<PCap(i));@for(plper(i,t):X(i,t)=@sum(warehouse(j):y(i,j,t)));@for(waper(j,t):phi(j,t)<WCap(j));
@for(reper(k,t):RInv(k,t)<RCap(k));
!Data set;data:PCap=2000,2500,3500;Pprod=70,60,65;Tij=1.5;WCap=1900,2000;RCap=1100,1200,950,1000;RInitialInv=150,150,150,150;WInitialInv=300,300;Hw=2.1,2.5;Hr=4.5,4.7,5.2,4.5;R=246,346,124,250,365,269,372,173,235,238,229,231,389,297,406,307,424,153,342,372,398,400,397,245,249,347,251,249,272,382,292,294,229,286,347,268,279,283,285,190;TWAR=1.5,1,0.5;enddataend
本帖最后由 xiangxiu 于 2015-4-21 18:47 编辑
求大神给看看
先帮你改写成了一个能用的模型,主要是目标函数删除了一部分有错误东西,你看看是不是有用,如果有用明确写出来是什么,再帮你model:
sets:
plant/1..3/:PCap,Pprod;
warehouse/1..2/:WCap,Hw, Winitialinv;
retailer/1..4/:RCap,Hr, Rinitialinv;
period/1..10/;
transport/1..3/:TWAR;
plper(plant,period):X;
waper(warehouse,period):phi;
reper(retailer,period):R,Rinv;
plwaper(plant,warehouse,period):y;
warepertr(warehouse,retailer,period,transport):z;
endsets
data:
PCap=2000,2500,3500;
Pprod=70,60,65;
Tij=1.5;
WCap=1900,2000;
RCap=1100,1200,950,1000;
Rinitialinv=150,150,150,150;
Winitialinv=300,300;
Hw=2.1,2.5;
Hr=4.5,4.7,5.2,4.5;
R=246,346,124,250,365,269,372,173,235,238,
229,231,389,297,406,307,424,153,342,372,
398,400,397,245,249,347,251,249,272,382,
292,294,229,286,347,268,279,283,285,190;
TWAR=1.5,1,0.5;
enddata
!Formulation;
!Totalcost obj func;
min=@sum(period(t):@sum(plant(i):X(i,t)*Pprod(i)))+@sum(plwaper(i,j,t):Tij*y(i,j,t))
+@sum(waper(j,t):phi(j,t)*Hw(j))+@sum(reper(k,t):Rinv(k,t)*Hr(k));
@for(plper(ii,t):X(ii,t)<PCap(ii));
@for(plper(ii,t):X(ii,t)=@sum(warehouse(j):y(ii,j,t)));
@for(waper(j,t):phi(j,t)<WCap(j));
@for(waper(j,t)|t#le#9:phi(j,t+1)=phi(j,t)+@sum(plant(ii):y(ii,j,t))
-@sum(retailer(k):@sum(transport(m):z(j,k,t,m))));
@for(reper(k,t)|t#le#9:@sum(warehouse(j):@sum(transport(m):z(j,k,t+1,m)))+Rinv(k,t)
=R(k,t+1)+Rinv(k,t+1));
@for(reper(k,t):Rinv(k,t)<RCap(k));
!Data set;
end
本帖最后由 xiangxiu 于 2015-4-23 16:54 编辑
我看出哪里错了 谢谢
页:
[1]