balance(i).. Sum(k,X(k,i)) - Sum(j,X(i,j)) =G= 0
我在 GAMS 中有这个等式,我明白为什么这是一个域违规。然而我需要表达这一点。我想不出在 GAMS 中表达这种约束的任何其他方式。任何帮助都会很棒。
我认为你的错误来自你有 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,那很好。
我想说这是使用别名的完美案例:
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 新手。
干杯,尼古拉斯