你写的应该有点问题 按你给的数据来看 好像题目说每行求和<=z(i)才对
model:
sets:
set/15/:z;
ss(set,set):a1,a2,b,k,s,d;
endsets
data:
a1=350 50 48 15 320
4500 600 600 100 3500
1800 180 300 300 1200
90 6 9 10 64
14 35 35 15 96;
a2=500 100 80 30 400
5000 1000 1000 2000 5000
2000 300 500 500 2000
100 10 15 20 80
14 7 7 3 12;
z=4000 10000 4000 250 40;
s=04746 04036 02765 04146 04886
01403 01681 00999 01624 00643
01475 01905 01564 01832 00685
00626 00311 00619 00316 00453
01750 02067 04053 02082 03333;
enddata
max=@sum(ss:sk);
@for(ss:
d=a1/a2;
k=b/a2;
d<=k;
k<=1);
@for(set(i):@sum(set(j):b(i,j))<=z(i));
end
用集 具体的最好看教程 给个例子
sets:
set1/120/:;
set2/130/:;
ss(set1,set2):x,y;
endsets
你说的那个求和就是 @sum(ss(i,j):x(i,j)y(i,j))
以上回答你满意么?
@sum( setname [ ( set_index_list) [ | cond_qualifier]]: expression) ;
例如y=x2+x3+x4+x5可表示如下:
sets:
r/15/:x;
endsets
y=@sum(r(i)|i#ge#2:x(i));
先要定义集 然后才能求和 比如这样写 最好能直接来找我
sets:
row/17/:;
col/16/:;
link(row,col):x,y;
endsets
a=@sum(link(i,j):x(i,j)+y(i,j));
sets:
r/15/:;!行;
c/16/:;!列;
link(r,c):B;!定义二维集合,声明B;
endsets
y=@sum(link(i,j)|i#ge#2#and#i#le#4#and#j#ge#3#and#j#le#5:B(i,j)); !求B的第2-第4行中第3列-第5列各元素的和;
有疑问联系我。。。
以上就是关于这个Lingo程序如何写为什么我算了之后没有可行解 数据没有错全部的内容,包括:这个Lingo程序如何写为什么我算了之后没有可行解 数据没有错、lingo 求和、lingo 的带求和符号的程序 可以有个例子吗 谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)