3
ゼロ1整数線形計画法(ILP)でブール論理演算を表現する
ブール値を表すための変数を備えた整数線形プログラム(ILP)があります。さんは整数であると保持するために制限されている0または1()。xixix_ixixix_i0≤xi≤10≤xi≤10 \le x_i \le 1 線形制約を使用して、これらの0/1値の変数に対するブール演算を表現したいと思います。これどうやってするの? 具体的には、(ブールAND)、(ブールOR)、および(ブールNOT)に設定します。ブール値として0/1の明白な解釈を使用しています:0 = false、1 = true。が必要に応じて関連付けられるようにILP制約を記述する方法を教えてください。y1=x1∧x2y1=x1∧x2y_1 = x_1 \land x_2y2=x1∨x2y2=x1∨x2y_2 = x_1 \lor x_2y3=¬x1y3=¬x1y_3 = \neg x_1yiyiy_ixixix_i (これは、CircuitSATからILPへの削減を要求する、またはSATをILPとして表現する方法を要求するものと見なすことができますが、ここでは、上記の論理演算をエンコードする明示的な方法を確認します。)