作业帮 > 综合 > 作业

lingo 程序如下我的疑惑是其中 这句是什么意思 @for(ps(j)|j#ne#15:z(j)+

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 02:48:17
lingo 程序如下
我的疑惑是其中 这句是什么意思 
@for(ps(j)|j#ne#15:z(j)+y(j+1)=b(j));
还有为什么要用  |j#ne#15
原函数 如图所示 

 
model:
sets:
  cai/1..7/: s,t,p;
  ps/1..15/: b,y,z;
  link(cai,ps): x, c;
endsets
目标函数;
  min=@sum(link(i,j): p(i)*x(i,j))+@sum(link(i,j): c(i,j)*x(i,j))+0.05/2*@sum(ps(j): (1+y(j))*y(j)+(1+z(j))*z(j));
约束;
  @for(cai(i):@bin(t(i)));
  @for(cai(i):@sum(ps(j):x(i,j))>500*t(i););
  @for(cai(i):@sum(ps(j):x(i,j))<s(i)*t(i););
  @for(ps(j):@sum(cai(i):x(i,j))=y(j)+z(j););
  @for(link(i,j):@gin(x(i,j)));
   @for(ps(j)|j#ne#15:z(j)+y(j+1)=b(j));
j不能是15啊 如果是的话那么后面y的下标就越界了
再问: 哦哦,了解了。那这个"|" 杠能不能再解释一下,新手没见过这个...
再答: 对满足后面条件的才进行集循环