全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1029 3
2024-07-10
model:
sets:
E/1..28/;
F/1..20/;
H/1..20/;
link1(F,H):a,x,b,c;
link2(F,E):d;
endsets
min=@sum(link1(i,j):x(i,j)*c(i,j));
@for(link1(i,j):a*x=b);
@for(link1(i,j):@sum(H(j):@sum(F(i):b(i,j)))=-9);
@for(H(j):@sum(F(i):b(i,j))=d(i,1));
@for(link1(i,j):@gin(x);
i  报错       错误情况:  INDEX VARIABLES MAY NOT SHARE NAMES WITH OTHER VARIABLES
@for(link2(i,j):@free(d));
@for(link1(i,j):@free(a));
@for(link1(i,j):@free(b));
@for(link1(i,j)|i#eq#j:x(i,j)=0);
@for(link1(i,j)|i#eq#j:a(i,j)=0);
data:
c=数据太大,没粘贴
d=数据太大,没粘贴
enddata
end


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2024-7-10 10:17:35
错误地方是
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2024-7-10 10:29:37
Killua609 发表于 2024-7-10 10:17
错误地方是
@for(link1(i,j):@gin(x);    这一行,中间标出来了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2024-7-14 12:20:44
在Lingo中遇到的“INDEX VARIABLES MAY NOT SHARE NAMES WITH OTHER VARIABLES”错误通常意味着你在一个集(set)中的变量名和索引名重合了。从你的模型代码来看,问题出现在使用`i`和`j`作为循环内的变量命名,而这些名称同时用作链接(link1, link2)的索引。

在Lingo中定义约束或目标函数时,如果使用集合中的元素作为变量的一部分,这些变量名不能与集的索引相同。例如,在你的代码段:

```lingo
@for(link1(i,j):a*x=b);
```

这里`i`和`j`是`link1`集的索引,而你又定义了`a`、`b`等变量,并且试图使用这些索引来引用它们。这在Lingo中是不允许的。

### 解决方案:

你应该避免使用索引名(如`i`, `j`)作为变量名的一部分。正确的做法是在约束或目标函数内部为变量明确指定索引,例如:

```lingo
@for(link1(i,j):a(i,j)*x(i,j)=b(i,j));
```

这确保了即使在`link1`集的循环中,你也能正确引用每个元素上的`a`, `x`, 和 `b`。

对于你的整个模型代码,请确保:

- 在使用`@for`语句时,所有变量都明确指定了其对应的索引。
- 不要重复使用集合中的索引名作为变量名的一部分。

按照这些修改后重新运行你的Lingo程序,应该可以避免“INDEX VARIABLES MAY NOT SHARE NAMES WITH OTHER VARIABLES”的错误。如果还有其他语法或逻辑问题,请检查数据定义和模型结构是否一致且无误。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群