# Tag Info

## Hot answers tagged constraint

10

Let $x_{p,\ell}$ be the continuous variables in your table. Introduce integer variables $y_{p,\ell}$ and binary variables $z_{p,\ell}$, and impose linear constraints \begin{align} -z_{p,\ell} \le x_{p,\ell} - y_{p,\ell} &\le z_{p,\ell} &&\text{for all $p$ and $\ell$} \tag1 \\ \sum_\ell z_{p,\ell} &\le 1 &&\text{for all $p$} \tag2 \...

9

Introduce binary variable $Z$ and linear constraints \begin{align} X - \epsilon &\le (\bar{X} - \epsilon) Z \tag1 \\ Y - X &\le (\bar{Y} - 0) (1-Z) \tag2 \\ \end{align} Constraint $(1)$ enforces $X > \epsilon \implies Z = 1$. Constraint $(2)$ enforces $Z = 1 \implies X \ge Y$.

6

A variable that can assume values of zero or between some lower and upper bound is called a semi-continuous variable. Most high-end solvers have direct support for this type of variable. If not supported, you can model this with an additional binary variable: \begin{align} & \color{darkblue}L\cdot \color{darkred}\delta \le \color{darkred}x \le \color{... 4 With CPLEX you can use logical constraints. In OPL for instance you can write float epsilon=0.01; dvar float X; dvar float Y; subject to { (X>=epsilon) => (X>=Y); } And if you wonder , logical constraints are available in OPL but also in all APIs. float epsilon=0.01; dvar float X; dvar float Y; subject to { (X>=epsilon) => (X>=Y); } ... 4 You could try and get rid of variables Y_{p,t,j,c}: remove constraints (6)-(7); constraints (6) simply link x and Y variables, so removing them should not have any impact on the feasibility of the solution (assuming you remove Y variables) ; constraints (7) are not mandatory if my understanding is correct replace constraints (5) by \sum_{...

Only top voted, non community-wiki answers of a minimum length are eligible