lingo矩阵元素求和
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/23 12:32:34
求和的地方写的没问题但是你集定义有问题集名和下标不要用一样的名字
可以用多个for循环解决另外可以下载数据使用
m=rands(5,4)m=0.51550.41210.6469-0.12250.4863-0.93630.3897-0.2369-0.2155-0.4462-0.36580.53100.3110-0
sets:r/1..5/:;!行;c/1..6/:;!列;link(r,c):B;!定义二维集合,声明B;endsetsy=@sum(link(i,j)|i#ge#2#and#i#le#4#and#j
你输入数据个数跟定义不符合应该怎么写没法知道你把你写的发上来
@for(links(i,j):@bin(volume(i,j)));
lingo有集你把矩阵当成一个集里面的元素做就行了随便找个教程看看吧不是一句话就能说清楚的事
@sum(links:a);
如下程序表示y1的x的前五项和,y2表示x的后五项和.sets:r/1..10/:x;endsetsy1=@sum(r(i)|i#le#5:x(i));y2=@sum(r(i)|i#gt#5:x(i)
用lingo还更简单…model:sets:myset/1..2/;link(myset,myset):a,b,c;endsetsdata:a=1111;b=2222;enddata@for(link
sets:liu/1..n/:a,b;endsetsfor(liu(i):a(i)*b(i).);
举例说明对a矩阵:@for(a(i,j):@bin(a(i,j));
实际上lingo自带的sample里面就有TSP问题MODEL:!TravelingSalesmanProblemforthecitiesofAtlanta,Chicago,Cincinnati,Ho
求volume(1,1)+volume(2,1)+...+volume(20,1)吗?加如下的语句在主程序中就可以了,用求和的语句:@for(supplyment(I):s=@sum(receiver
应该是取出第四行的第三个元素吧,直接用cost(4,3)即可
@sum(man(i)|i#GE#n#AND#i#LE#m:x(i,1));
#includevoidmain(){inti,j;inttemp,res1=0,res2=0;for(i=0;i
首先要做一个派生集sets:a/1..5/:;b/1..6/:;ab(a,b):x;endsets然后@sum(ab:x)就表示累加了比如@sum(ab:x)
lingo里边不能直接相乘要用到集的概念
什么叫指派矩阵怎么看一般指派问题都会设一个0-1变量的如果指派是1不指派是0这种问题都是最基本的你如果会做模型就会看指派矩阵