2014-12-18 55 views
0
balance(i)..  Sum(k,X(k,i)) - Sum(j,X(i,j)) =G= 0 

我在GAMS中擁有此方程式,我明白爲什麼這是域名違規行爲。但我需要表達這一點。我想不出在GAMS中表達這種約束的其他方式。任何幫助都會很棒。GAMS,侵犯域名集合

回答

2

我認爲你的錯誤來自事實,你有X(K,I),然後X(I,J)。你不能有兩個具有不同索引的同名變量「X」。

除非你用別名(j,k)別名j和k:但是我不明白你爲什麼要做這樣的等式,所以我假設你打算在另一箇中使用另一個變量而不是X XS。如果你在做balance(i).. sum(k,X(k,i)) - sum(j,Y(j,i))= G = 0,那很好。

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的新手。

乾杯,尼克斯

+0

@Yunnosch做到了,謝謝! – Niclas