似乎不行,存在一些小问题。上面用i/1..5/,j/1..5/可能不行,最好换两个命名,下面的n(0,i)必须改为n(1,i)
在LINGO中如何用@for语句给二维数组部分赋值?
赋值要在calc段里面 写法和约束一样的 写在约束里面也能做 你这个应该写成 model:sets:i/1..5/;j/1..5/;number(i,j):n;endsets for(j(q): n(1,q)=0);end 注意不要把集名和下标名写重复了
lingo二维数组怎么赋值,
model:sets:qt/1,2,3,4,5/: r_value; ! -> 下标不能是0 <- ;sit/1,2,3,4/;link(qt,sit):x;endsetsmin=@sum(qt(i): x(i,1)*400 + x(i,2)*450 + x(i,3)*20;);@for(qt(i): x(i,1) < 40;);@for(qt(i): x(i,4) < x(i,1)+x(i,2)+x(i,3)...
lingo中for函数用法?
for语句的格式为:@For(中间是具体的语言);中间具体的语言是:你定义的集合变量申明,然后冒号 之后就是你的运算表达式,表达式方式和正常的方式相同。比如 sets:ww/w1..w6/:x,y;endsets 定义了ww集合 for(ww(i):x(i)*y(i)<=10) 就是对集合ww的操作,是x1*y1<=10,x2*y2<=10......
在LINGO里怎样用变量来给变量赋值
这个可以用一个for循环就搞定了: week/1..4/:q,y;改为week/1..5/:q,y;且定义第一个已知的属性的值为0,然后就可以用下面的语句来实现了: @for(week(i)|i#lt3#:y(i+1)=@sum(week(i):q(i))); 怎么样?自己去试试吧...
lingo怎么用FOR循环
sets:r/1..8/:d;c/1..8/:;link(r,c):x,y;endsets for(r(i):@for(c(j):x(i,j)<=y(i,j)));!可用@for(link:x<=y)代替,此处举例;for(r(i)|i#ge#2:d(i)>=3)
lingo程序中,定义了两个二维数组w,k然后派生二维数组,link(w.k),给...
求volume(1,1)+volume(2,1)+...+volume(20,1)吗? 加如下的语句在主程序中就可以了,用求和的语句: @for(supplyment(I): s=@sum(receiver(J)|J#le#2:volume(I,J))); 即修改后的程序是 sets: supplyment/s1..s20/: supply; receiver/r...
lingo如何赋值,在数据段data中,只知道dem的前两个数据13和12,其余不...
model:sets:qt/1,2,3,4/:dem,rp,op,inv;endsetsdata:enddatamin=@sum(qt:rp*400+op*450+20*inv);@for(qt:rp<40;);@for(qt(i)|i#GT#1:inv(i)=inv(i-1)+rp(i)+op(i)-dem(i));dem(1)=13;dem(2)=12;end
lingo能实现步长为2的for循环吗
LINGO里面,for的语法是@for(集(集指标):待操作的语句),它是根据集来进行循环的,你只要在集中把步长设定好,应该可以实现你的功能。
LINGO的for循环
多了2个 ) 号,在 )=@sum(clientnumber(k):y(a,f,k)))中的第1个和最后1个。
lingo中怎么用循环等解决问题
sets:r/1..5/:;l/1..4/:;link(r,l):x,c;endsets data:c= ;!系数矩阵c;enddata min=@sum(c*x);for(r(i):@sum(l(j):x(i,j))<=1);for(j(j):@sum(r(i):x(i,j))=1);for(link:@bin(x));