1
所以我在matlab上使用linprog來解決優化問題,其中一個約束條件是所有的數字都是0.5的倍數,或者換句話說,每個數字加起來就是一個整數。 由於所有約束必須在的形式(它們都必須在線性方程中),所以我很難找到一種方法來將此規則設置爲約束條件。如何在MatLab的'linprog()'函數中包含整數約束?
我該如何寫一個linprog的約束來確保返回數組中的所有數字都是0.5的倍數?
在此先感謝!
所以我在matlab上使用linprog來解決優化問題,其中一個約束條件是所有的數字都是0.5的倍數,或者換句話說,每個數字加起來就是一個整數。 由於所有約束必須在的形式(它們都必須在線性方程中),所以我很難找到一種方法來將此規則設置爲約束條件。如何在MatLab的'linprog()'函數中包含整數約束?
我該如何寫一個linprog的約束來確保返回數組中的所有數字都是0.5的倍數?
在此先感謝!
你可以使用intlinprog輕鬆做到這一點。 https://www.mathworks.com/help/optim/ug/intlinprog.html
爲此,您將不得不聲明一個整數變量x_int。
如果x爲初始連續變量,然後將下面的約束確保x是總是0.5
2X = x_int
倍數https://uk.mathworks.com/help/optim/ug /intlinprog.html?refresh=true? –