xiangxiu 发表于 2015-4-21 16:29

求助!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 16:36

本帖最后由 xiangxiu 于 2015-4-21 18:47 编辑

求大神给看看

fox 发表于 2015-4-22 08:22

先帮你改写成了一个能用的模型,主要是目标函数删除了一部分有错误东西,你看看是不是有用,如果有用明确写出来是什么,再帮你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-22 10:05

本帖最后由 xiangxiu 于 2015-4-23 16:54 编辑

我看出哪里错了 谢谢
页: [1]
查看完整版本: 求助!Lingo程序报错index variables may not share names with other variable