優先順位の制約
次のバイナリ変数のセットがあるとします。
$X_i$: $I$ 範囲は{1、..、4}です。3つの変数の中で最も優先度が高い $X$ 、 $Y$ そして $Z$
$Y_j$: $J$ 範囲は{1、..、3}
$Z_k$: $K$ 3つの変数の中で最も低い優先度{1,2}の範囲 $X$ 、 $Y$ そして $Z$
次の式を作成するにはどうすればよいですか。
(1)変数がある場合 $Z_k = 1$ それぞれについて $k\in K$、それから一人一人 $Y_j$ 変数 $y_1$、 $y_2$、 $y_3$ 最初にする必要があります $=1$
すなわち。 $y_1 = 1$、 $y_2 = 1$、 $y_3 = 1$
言い換えれば、前に $Z_k$ それぞれについて $k\in K$ $=$ 1、すべて $Y_j$ 変数はFIRST = 1でなければなりません
(2)同じことが間の関係にも当てはまります $X$ そして $Y$ 変数
変数がある場合 $Yj = 1$ それぞれについて $j\in J$ 次に、すべてのXi変数 $X1$、 $X2$、 $X3$、 $X4$ 最初にする必要があります $=1$
$x1 = 1$、 $x2 = 1$、 $x3 = 1$ 、 $x4 = 1$
言い換えれば、前に $Y_j$ それぞれについて $j\in J$ 変数= 1、すべて $Yj$ 変数は最初に= 1でなければなりません
明確にするために例を書きます。
前 $y_2$ 選択され、= 1、すべて $x_i$ それぞれについて $i\in I$ 1に等しくなければなりません。つまり、X変数はy変数よりも優先度が高く、最初に選択する必要があります。
回答
私があなたの問題を正しく理解したとき、あなたはすべてを強制したい $X_i$ いつでもアクティブになります $Y_j$ がアクティブになり、 $Y_j$ いつでもアクティブになります $Z_k$ がアクティブになります。
これは、制約を追加することで実現できます。 $$ \begin{align} X_i &\geq Y_j &\forall i\in I, j\in J\\ Y_j &\geq Z_k &\forall j\in J, k\in K\\ \end{align} $$ ここで最初のセットはすべてを強制します $X_i=1$ いつでも $Y_j=1$ そして2番目のすべて $Y_j=1$ いつでも $Z_k=1$。