LINGO里面的关于变量与下标重名的问题model: !求解围堵13条要道的方案;sets:s/1..20/;c/1..13/;links(s,c): dis, x;Endsets !数据的定义部分;data:dis = @FILE(C:\Program Files\MATLAB71\work\cumcm2011B\data.txt);enddata!目标函
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 17:30:33
![LINGO里面的关于变量与下标重名的问题model: !求解围堵13条要道的方案;sets:s/1..20/;c/1..13/;links(s,c): dis, x;Endsets !数据的定义部分;data:dis = @FILE(C:\Program Files\MATLAB71\work\cumcm2011B\data.txt);enddata!目标函](/uploads/image/z/15232698-18-8.jpg?t=LINGO%E9%87%8C%E9%9D%A2%E7%9A%84%E5%85%B3%E4%BA%8E%E5%8F%98%E9%87%8F%E4%B8%8E%E4%B8%8B%E6%A0%87%E9%87%8D%E5%90%8D%E7%9A%84%E9%97%AE%E9%A2%98model%3A+%21%E6%B1%82%E8%A7%A3%E5%9B%B4%E5%A0%B513%E6%9D%A1%E8%A6%81%E9%81%93%E7%9A%84%E6%96%B9%E6%A1%88%3Bsets%3As%2F1..20%2F%3Bc%2F1..13%2F%3Blinks%28s%2Cc%29%3A+dis%2C+x%3BEndsets+%21%E6%95%B0%E6%8D%AE%E7%9A%84%E5%AE%9A%E4%B9%89%E9%83%A8%E5%88%86%3Bdata%3Adis+%3D+%40FILE%28C%3A%5CProgram+Files%5CMATLAB71%5Cwork%5Ccumcm2011B%5Cdata.txt%29%3Benddata%21%E7%9B%AE%E6%A0%87%E5%87%BD)
LINGO里面的关于变量与下标重名的问题model: !求解围堵13条要道的方案;sets:s/1..20/;c/1..13/;links(s,c): dis, x;Endsets !数据的定义部分;data:dis = @FILE(C:\Program Files\MATLAB71\work\cumcm2011B\data.txt);enddata!目标函
LINGO里面的关于变量与下标重名的问题
model:
!求解围堵13条要道的方案;
sets:
s/1..20/;
c/1..13/;
links(s,c): dis, x;
Endsets
!数据的定义部分;
data:
dis = @FILE(C:\Program Files\MATLAB71\work\cumcm2011B\data.txt);
enddata
!目标函数;
min=@max(links(s,c):x(i,j)*dis(i,j));
运行到目标函数这里指出我的links(s,c)的s是变量与下标重名,但是links(s,c)不是定义好了么,求指导!
LINGO里面的关于变量与下标重名的问题model: !求解围堵13条要道的方案;sets:s/1..20/;c/1..13/;links(s,c): dis, x;Endsets !数据的定义部分;data:dis = @FILE(C:\Program Files\MATLAB71\work\cumcm2011B\data.txt);enddata!目标函
把links(s,c)改成links(i,j)试试
这里@max(links(i,j):x(i,j)*dis(i,j))是集合操作函数
表示对衍生集合links中的每个i,j(i=1,2,...,20;j=1,2,...,13)求表达式x(i,j)*dis(i,j)的值,然后找出最大值
i,j称为索引变量(index variables),可以看作矩阵的行标与列标,也可以看作循环参数
而之前定义的s与c为集合名,lingo不允许集合名作为索引变量名,否则会出语法错误
min=@max(links(i,j):x(i,j)*dis(i,j));也可简写为min=@max(links:x*dis);