1
在AMPL中,我有一組變量x [e],對於某些計算,我需要一個二進制變量w [e],當x [e]> 0時等於1,如果x [ e] = 0。我嘗試了很多東西來制定這個約束,但是我沒有提出一些東西。這可能嗎?從AMPL中的另一個變量創建的變量
在AMPL中,我有一組變量x [e],對於某些計算,我需要一個二進制變量w [e],當x [e]> 0時等於1,如果x [ e] = 0。我嘗試了很多東西來制定這個約束,但是我沒有提出一些東西。這可能嗎?從AMPL中的另一個變量創建的變量
我已經解決你的問題的方式如下:
var u binary;
這是我們的二元變量,這將是0或1。 那麼我們就把下面的約束:
subject to U_constraint :
x <= 999999 * u;
現在,X =當0,那麼AMPL將使u = 0,當x!= 0時顯然u = 1。
幹得好@bond_t! – Mithrand1r 2013-05-10 06:44:58
當x = 0時,什麼阻止你成爲1? – 2017-10-09 00:31:24
真相被告知自2013年以來我一直沒有使用AMPL,所以我沒有真正記得這個方法,我在大學項目中使用過這個方法,並且它工作正常。如果您發現任何錯誤,請分享,我會爲其他人更正此答案。 – 2017-10-11 09:07:59