I am trying to model the following in a MIP:
a < b AND c < d => bool == true
(where the => means "implies"). a,b,c, and d are all ints, and bool is a boolean.
I am unsure how to do this. I tried using Big-M (I used it before for removing multiplications) but I fail to see how to use it in this case.
Thanks!
I don't know if the following is the most parsimonious approach, but as long as the four integer variables are all bounded, it works. Let $x$ be your boolean variable, and introduce two additional boolean variables $y_1$ and $y_2$. Add the following constraints (where $M_1,\dots,M_4$ are suitably chosen constants):
\begin{align*} a & \ge b-M_{1}y_{1}\\ a & \le b - 1 + M_{2}(1-y_{1})\\ c & \ge d-M_{3}y_{2}\\ c & \le d - 1 + M_{4}(1-y_{2})\\ x & \ge y_{1} + y_{2} - 1 \end{align*}
The first two constraints translate to $a\lt b \iff y_1 =1$, and similarly the next two translate to $c\lt d \iff y_2 =1$. The last constraint says that if both conditions are true ($y_1 = 1 = y_2$), the boolean must be true ($x=1$).
If you want equivalence rather than implication, add two more constraints:
\begin{align*} x & \le y_{1}\\ x & \le y_{2}. \end{align*}