2016-02-08 81 views
0

我是新的CPLEX用戶。我有一個問題,我可以在CPLEX中使用if/else邏輯操作嗎? (不在約束內)。具有邏輯if/else操作的CPLEX

+0

我假設你在這裏談論數學編程。你在使用什麼API?例如,C++,.NET,Python等?或者,您是否指OPL建模語言?如果你不是在談論邏輯約束,那麼你想要做什麼?你能提供一個例子還是僞代碼? – rkersh

+2

你想要模擬和解決什麼問題(例如庫存,資源分配)?通常它是建模問題而不是編碼。例如,可以使用二進制變量來模擬if-else語句,例如,'a * x + b *(1-x)',如果'x = 1',那麼'a'else'b' –

回答

0

從您的問題不清楚您是使用CPLEX OPL還是使用C++,C#,Java,Matlab等編程語言的CPLEX接口。你可以告訴我們,接下來的回覆會更少通用

讓我們假設您正在測試一個變量x是否等於1。在正面情況下,您將使用不等式model_ineq_1,否則應使用model_ineq_2。以下表達式應適用於所有情況:

(x == 1) ? model_ineq_1 : model_ineq_2 

正如您可以看到它測試(condition_happens) ? do_this_if_true : do_this_if_false。它實際上被稱爲三元運算符,它提供了一個內聯if-then-else語句。