2016-07-05 82 views
1

我在想如何重寫AMPL中的約束。在一個非常簡單的例子:重寫AMPL中的約束

var x >= 0 ; 
var y >= 0; 

minimize cost : x^2 + y^4; 

subject to constraint1 : x+2*y >= 100; 

subject to constraint1 x+2*y <= 10; 

--------------------------------- 

"constraint1 is already defined" 

AMPL使用第一個「constraint1」爲約束,而忽略第二個,有沒有AMPL使用最後一個「constraint1」什麼辦法?

+0

對第二個約束使用不同的名稱 – kindoflost

+0

我不想使用2個約束,我只是想用新的約束覆蓋前面的約束。 – Mahraz

+0

如果您有數據並運行文件,那麼您可以在數據文件中編寫x + 2 * y> = low_lim和x + 2 * y <= up_lim,使low_lim = 100和up_lim = 999999的約束,運行文件使low_lim = 0和up_lim = 10 – kindoflost

回答

0

用相同的變量名稱覆蓋約束是不可能的。

可以在通過條件邏輯分配給同一名稱的約束之間切換(如果語句浮現在腦海中),但它們不能被覆蓋。