lingo定义矩阵
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/28 13:30:59
model:sets:n/1..20/;a/1..13/:demand;links(n,a):b,x;endsetsdata:demand,b=@ole('D:\123.xls');enddatami
求和的地方写的没问题但是你集定义有问题集名和下标不要用一样的名字
@bin(y);当然对集操作也一样@for(set:@bin(y));这种形式有问题再问我这个可能性不大除非你们做出是无可行解的情况
一般用集来定义你可以找相关教程看看一般的形式是sets:A/1..100/:s;endsets其中A是集名s是变量名
可以用多个for循环解决另外可以下载数据使用
不能这样定义数量必须定再问:好的,那可以使用其他优化软件这样定义吗?比如gurobi再答:那你可以自己学一下看看我觉得比较难再问:嗯嗯,好的,谢谢了
用集合啊,把它们放到一个集合里面,哪怕你搞3万个都可以.示例:sets:lock/1..100000/:N;endsets@for(lock:@bin(N));这样,所有的N都是0-1变量了.
你输入数据个数跟定义不符合应该怎么写没法知道你把你写的发上来
用lingo还更简单…model:sets:myset/1..2/;link(myset,myset):a,就可以了呀,这样要求这两个矩阵相同的行和列.对于MATLAB,应该将两
model:sets:center/1..3/:u;addr/1..7/:v;w(center,addr):x,y;endsetsdata:y=3624492181724530205624998855
lingo有集你把矩阵当成一个集里面的元素做就行了随便找个教程看看吧不是一句话就能说清楚的事
sets:e/1..11/;matrix1(e,e):a;endsets@for(matrix1:@bin(a));@for(e(i):@sum(e(j):a(i,j))>0);自己看好派生集怎么定义
只能在语法上改没有可行解自己看看你写的约束对不对吧model:sets:xx/v1..v14/:p,q;xi/w1..w7/:c;xn(xx,xi):x;endsetsmin=@sum(xx(k
你这句写的没问题啊就这样@for(roads(i,j):rd(i,j)=rd(j,i));
实际上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));
什么叫指派矩阵怎么看一般指派问题都会设一个0-1变量的如果指派是1不指派是0这种问题都是最基本的你如果会做模型就会看指派矩阵