A OR B を実装するための制約を表現した ILP 問題があります。ここで、A と B は論理 AND の結果です (A = A1 AND A2、B = B1 AND B2 AND B3 としましょう)。私の問題のこの時点で、A と B の間の 1 は 1 に等しいと言われます。A と B は両方ともバイナリ変数です。
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-Conditionの書き方を知っています
/* if (x == true) then y = true */
y >= x;
しかし、「複雑な」ifを表現するために一連の制約を記述する方法がわかりません。
LPSolveでこれを解決する方法を知っている人はいますか?