0
balance(i)..        Sum(k,X(k,i)) - Sum(j,X(i,j)) =G= 0  

我在 GAMS 中有这个等式,我明白为什么这是一个域违规。然而我需要表达这一点。我想不出在 GAMS 中表达这种约束的任何其他方式。任何帮助都会很棒。

4

2 回答 2

2

我认为你的错误来自你有 X(k,i) 然后 X(i,j) 的事实。您不能有两个具有不同索引的同名变量“X”。

除非你用 alias(j,k): 给 j 和 k 加上了别名:但是我不明白你为什么要做这样的等式,所以我假设你打算在其中一个 X 中使用另一个变量而不是 X。

如果你在做 balance(i).. sum(k,X(k,i)) - sum(j,Y(j,i)) =G= 0,那很好。

于 2015-04-05T21:36:03.847 回答
0

我想说这是使用别名的完美案例:

sets i;
alias(i,j,k);
variables X(i,i);
equations balance(i);
balance(i).. sum(j,X(j,i)) - sum(k,(X(k,i)) =G= 0;

希望这能完成这项工作!准备好反馈,因为我也是 GAMS 新手。

干杯,尼古拉斯

于 2017-12-23T11:59:18.243 回答