Contrainte de priorité

Dec 01 2020

Supposons que j'ai l'ensemble suivant de variables binaires:

$X_i$: $I$ va de {1, .., 4} Priorité la plus élevée parmi les trois variables $X$ , $Y$ et $Z$

$Y_j$: $J$ va de {1, .., 3}

$Z_k$: $K$ varie de {1,2} priorité la plus basse parmi les trois variables $X$ , $Y$ et $Z$

Comment puis-je formuler ce qui suit:

(1) Si une variable $Z_k = 1$ pour chaque $k\in K$, Puis chaque $Y_j$ variables $y_1$, $y_2$, $y_3$ doit en premier $=1$

c'est à dire $y_1 = 1$, $y_2 = 1$, $y_3 = 1$

En d'autres termes, avant tout $Z_k$ pour chaque $k\in K$ $=$ 1, tous $Y_j$ les variables doivent FIRST = 1

(2) LA MÊME S'APPLIQUE POUR LA RELATION ENTRE $X$ ET $Y$ variables

Si une variable $Yj = 1$ pour chaque $j\in J$ Ensuite, chaque variable Xi $X1$, $X2$, $X3$, $X4$ doit en premier $=1$

$x1 = 1$, $x2 = 1$, $x3 = 1$ , $x4 = 1$

En d'autres termes, avant tout $Y_j$ pour chaque $j\in J$ variables = 1, toutes $Yj$ les variables doivent d'abord être = 1

Je vais écrire un exemple juste pour m'assurer que j'étais clair:

Avant que $y_2$ est choisi et est = 1, tout $x_i$ pour chaque $i\in I$ doit être égal à 1. Cela signifie que les variables X ont une priorité plus élevée que les variables y et doivent être sélectionnées en premier.

Réponses

4 SimonT Dec 01 2020 at 15:29

Lorsque j'obtiens votre problème correctement, vous voulez appliquer chaque $X_i$ à activer lorsque $Y_j$ est activé et chaque $Y_j$ à activer lorsque $Z_k$ est activé.

Ceci peut être réalisé en ajoutant des contraintes: $$ \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} $$ Ici, le premier ensemble impose tout $X_i=1$ quand tout $Y_j=1$ et le second tout $Y_j=1$ quand tout $Z_k=1$.