1
$\begingroup$

I have an IP program where $\forall i \in I, j \in J$ my decision variables are $x_{i,j}$. I have two sets of inequalities (one inequality for every $i,j$ pair) that are of interest which are $$a_{i,j} x_{i,j} \geq 1 \ \ \ \ \forall i \in I, j\in J$$ and $$ \sum_{j \in J} b_{i,j}x_{i,j} \leq b_{i,j}- 1 \ \ \ \ \forall i \in I, j\in J$$

I now want to introduce a logical indicator variable $\delta_{i,j}$ which equals 1 if and only if both of the inequalities are true and 0 else. How could I implement this idea by introducing appropriate constraints for my Integer Progamming model? I was thinking about defining a variable $\delta^1_{i,j}$ and $\delta^2_{i,j}$ which equals 1 iff the first and second inequality are true respectively and then maybe combine these two auxiliry logical variables into a single variable $\delta_{i,j}$, but I couldn't figure out exactly how to make this work.

$\endgroup$
1
$\begingroup$

Your general approach is a good one. Use Boolean variable that captures whether an inequality holds to define $\delta_{i,j}^1$ and $\delta_{i,j}^2$. Then, use Express boolean logic operations in zero-one integer linear programming (ILP) to define $\delta_{i,j}$ in terms of $\delta_{i,j}^1$ and $\delta_{i,j}^2$ (via a logical-AND operation).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.