I have formulated a linearly-constrained integer optimization problem. For now, I have been solving it by using an exhaustive search approach over the integer variables. However, I would now like to increase the number of variables, and of course, the size of the search space increases very quickly. Thus, I would like to formulate my problem as a mixed-integer program.

I would like to express many constraints of the following form: $$ i \leq j \implies a x + b \leq 0$$ Where the variables are $(i, j) \in \mathbb{N}^2$ and $x \in \mathbb{R}$. $(a,b) \in \mathbb{R}^2$ are constant parameters.

I notably do not want: $$a x + b \leq 0 \implies i \leq j $$

Thus any constraint that enforces equivalence between the left and right side of the implication is off the table.

So far I have looked into the Gurobi general constraints but they only support having a binary variable activating a constraint i.e. something like: $$ k = 1 \implies { i \leq j \wedge a x + b \leq 0 }$$ With $k \in \{0, 1\}$.

In my admittedly limited testing, this did not yield the same results as the original brute-force approach.

Is there a better way to express dependency between constraints ?


My bad, the procedure for "If-Then" constraints is outlined on this page: yzuda.org/Useful_Links/optimization/if-then-else-02.html


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.