求助,,程序出现Index variable may not share names with other variables错误,...
如题,,程序代码model:
sets:
S/1..7/:p,f;
A/1..15/:y,z,l;
link(S,A):c,x;
endsets
data:
c=@file('最少运费.txt');
p=160,155,155,160,155,150,160;
l=104,301,750,606,194,205,201,680,480,300,220,210,420,500,;
enddata
min=@sum(link:c*x)+0.1/2*@sum(A(j):z(j)*(z(j)+1)+y(j)*(y(j)+1))+@sum(S(i):p(i)*@sum(A(j):x(i,j)));
@for(S(i):@sum(A(j):x(i,j))=z(j)+y(j));
@for(A(j)|j#le#14:l(j)=y(j+1)+z(j));
y(1)=0;
@for(S(i):@bin(f(i)));
@for(S(i):f(i)*500<=@sum(A(j):x(i,j))<=S(i):f(i)*p(i)));
end
还有,,这种错误是什么情况下会出现?? 额~~不知道那两个表情怎么出来的,,它们以前是冒号{:3_49:}{:3_49:} 哦,,这个是txt文件~~~ 我改了一下,确保可以运行了,但是具体模型是不是这个样子,你需要自己判断一下model:
sets:
S/1..7/:p,f;
A/1..15/:y,z,l;
link(S,A):c,x;
endsets
data:
c=@file('d:\最少运费.txt');
p=160,155,155,160,155,150,160;
l=104,301,750,606,194,205,201,680,480,300,220,210,420,500,;
enddata
min=@sum(link:c*x)+0.1/2*@sum(A(j):z(j)*(z(j)+1)+y(j)*(y(j)+1))+@sum(S(i):p(i)*@sum(A(j):x(i,j)));
@for(A(j):@sum(S(i):x(i,j))=z(j)+y(j));
@for(A(jj)|jj#le#14:l(jj)=y(jj+1)+z(jj));
y(1)=0;
@for(S(i):@bin(f(i)));
@for(S(i):@sum(A(jj):x(i,jj))>=f(i)*500);
@for(S(i):@sum(A(jj):x(i,jj))<=f(i)*p(i));
end 谢谢大神了,,,不过被你说对了,我的程序确实有问题,现在已经改好啦。
还有一点我不太明白,为什么这段程序要更换下标变量 j呢?这个变量没和其它变量重复呀?? madio 发表于 2014-8-23 17:02 static/image/common/back.gif
我改了一下,确保可以运行了,但是具体模型是不是这个样子,你需要自己判断一下
谢谢大神了,,,不过被你说对了,我的程序确实有问题,现在已经改好啦。
还有一点我不太明白,为什么这段程序要更换下标变量 j呢?这个变量没和其它变量重复呀?? 哦~~~{:3_41:}{:3_41:}原来如此,,看来软件也有潜规则的,编程还是要细心呀,多谢大神啦!!{:3_59:}{:3_59:}
页:
[1]