0
我有一組節點i並創建了一個別名(i,j)。現在我有一個參數c(i,j),其中我想將元素明確地映射到j。例如, set i /a,b,c/ ; alias (i,j) ; c(i,j) /#i.#j/ ;
在GAMS中設置條件
點算子映射所有元素,如a.a,b.b,c.c,我不想包含它們。我如何編寫一個條件,只考慮a.b,a.c,b.c?
感謝
我有一組節點i並創建了一個別名(i,j)。現在我有一個參數c(i,j),其中我想將元素明確地映射到j。例如, set i /a,b,c/ ; alias (i,j) ; c(i,j) /#i.#j/ ;
在GAMS中設置條件
點算子映射所有元素,如a.a,b.b,c.c,我不想包含它們。我如何編寫一個條件,只考慮a.b,a.c,b.c?
感謝
我不十分清楚,你想做的事,但在下面的代碼兩個任務之一應該做你需要的東西:
set i /a,b,c/ ;
alias (i,j) ;
set c(i,j);
c(i,j) = not sameas(i,j);
display c;
$ontext
Results in:
---- 6 SET c
a b c
a YES YES
b YES YES
c YES YES
$offtext
c(i,j) = ord(i) < ord(j);
display c;
$ontext
Results in:
---- 27 SET c
b c
a YES YES
b YES
$offtext
最佳, 盧茨
謝謝你的解答。另外,我在其中一個變量中有一個類似的賦值問題,當我嘗試輸入相同的賦值時,會彈出一個錯誤提示_a缺少後綴_。無論如何要解決這個問題? –
與集合和參數相比,變量(和方程)具有可分配的不同屬性,因此需要使用後綴指定要解決的字段(請參見https://www.gams.com/latest/文檔/ userguides/userguide/_u_g__variables.html#UG_Variables_VariableAttributes)。 所以我們可以說你想設置依賴於i和j的變量x的上界。那麼你可以這樣做:x.up(i,j)= 50; – Lutz
我的程序有_i/a,b,c,d,e/_以及__,u,v_的3個別名集合,其中_x(i,j)_和_z(u,v,i,j)_爲二進制變量。我試圖以這樣的方式解決,即在任何給定的點上,對變量的賦值總是唯一的,例如在_z(u,v,i,j)_的情況下,我希望它是_(a, d,b,c)_或_(b,d,a,b)_。我想在約束中不等於j_和_u不等於v_。 –