Partial conditional constraint in mixed integer linear program

113 Views Asked by At

I have an integer parameter $\rho$, and 2 variables, $g$, which is a matrix of binary variables of shape $(m, t)$, and $x$, which is a list of binary variables of shape $t$.

I want to formulate a constraint that allows me to get the following if condition:

$ if \sum_{m}g_{m,t} \ge \rho \implies x_{t} = 1 \qquad\forall t $

However, if that condition isn't met, $x_t$ can have a value of 0 or 1.

I suppose that this could be solved with some type of Big-M constraint, but I can't figure out how to formulate it.

Thanks you very much in advance!

EDIT:

To clarify:

$ if \sum_{m}g_{m,t} < \rho \implies x_{t} \le 1 \qquad\forall t $

1

There are 1 best solutions below

3
On BEST ANSWER

Equivalently, you want to enforce the contrapositive $$x_t = 0 \implies \sum_m g_{m,t} \le \rho - 1$$ You can do so via linear big-M constraint $$\sum_m g_{m,t} - \rho + 1 \le M_t x_t $$