我有一個ILP問題,其中我表達了一些約束來實現A或B,其中A和B是邏輯AND的結果(假設A = A1和A2,B = B1和B2和B3)。在我的問題的這一點上,A和B之間的一個被認爲等於1.A和B都是二進制變量。在整數線性規劃(ILP)中有多個賦值的If-Then-Else
我想表達的,與IF-THEN-ELSE,這種說法:
if (A == true)
/* Choose one between C and D */
C_OR_D >= C;
C_OR_D >= D;
C_OR_D <= C + D;
C_OR_D = 1;
else /* or if (B == true), that's the same */
/* Choose one between E and F */
E_OR_F >= E;
E_OR_F >= F;
E_OR_F <= E + F;
E_OR_F = 1;
我知道如何編寫簡單的IF-條件,如
/* if (x == true) then y = true */
y >= x;
,但我不知道如何寫一組約束來表達一個「複雜」的if。
你們有人知道如何在LPSolve中解決這個問題嗎?