问题标题:
【运行如下lingo程序时,出现indexvariablesmaynotsharenameswithothersvariables,这是为什么?model:sets:m/1..1000/;n/1..100/;numbers/v1..v100/:demand;links(m,n):a,x,y;endsetsmax=@sum(links:0.8*a(I,J)*x(I,J)+0.8*a(I-400,J)*y(I,J)-demand(】
问题描述:

运行如下lingo程序时,出现indexvariablesmaynotsharenameswithothersvariables,这是为什么?

model:

sets:

m/1..1000/;

n/1..100/;

numbers/v1..v100/:demand;

links(m,n):a,x,y;

endsets

max=@sum(links:0.8*a(I,J)*x(I,J)+0.8*a(I-400,J)*y(I,J)-demand(J));

@for(links:x(I,J)+y(I,J)

谭志强回答:
  集循环函数的集名后面和变量名后面都带上下标   另外你的a(I-400,J)在I小于400的时候怎么办你考虑过吗
卢彦辉回答:
  帅哥,你是专门回答lingo问题的吗?昨天也是你回答我的问题,昨天那个有1000X100变量的问题lingo居然算出来了。我的集名和变量名后面都加了下标,但还是出错了,那个a(I-400,J)方面,我的目标是让a*y只计算i=1...600而不是i=1...1000,然后我就这样编了
谭志强回答:
  那也不对你考虑i小于400的时候而且你限制i小于600也要写出来啊你在哪出现600这个数了
卢彦辉回答:
  我现在就是不知道那个i小于600怎么在程序中体现
谭志强回答:
  你先想清楚i小于600行不行i小于600能保证i-400在合适的范围内吗如果不能你的表达要改好吗
卢彦辉回答:
  题目的要求就是a(I,J)*y(I,J)中i的范围是1-600,不能超过600;a(I,J)*x(I,J)中的i还是1-1000。程序应该怎么改?
谭志强回答:
  那我问你i=1的时候是什么样的就因为你那里不对我才问你的好不
谭志强回答:
  那我问你i=1的时候是什么样的就因为你那里不对我才问你的好不
其它推荐
热门其它推荐