2

Consider the following binary variable $x \in \{0,1\}$ and two continuous real variables $y,p \in \mathbb{R}$.

I am trying to model the following conditional equations as constraints:

\begin{cases} -y \le p \le y ,& \text{if } y \ge 0 \\ y \le p \le -y ,& \text{if } y \le 0 \\ p = 0 ,& \text{if } x = 0 \\ \end{cases}

Whats the best way to do so while maintaining a MILP formulation?


The above is a restatement of the problem I attempted to explain below:

If the following two binary variables $x,z \in \{0,1\}$ and continuous real variable $y \in \mathbb{R}$. Whats the best way to linearize the product of the three (i.e. $xyz$) if I am using them in a constraint?

$ xyz \le p \le xyz$

Where $p \in \mathbb{R} $ is another continuous variable. The actual constraint in mind is supposed to maintain the variable $p$ within the same range when the continuous variable $y$ switches signs. For more details, here is the actual expression:

$x((1-z)y + 2yz)) \le p \le x(2(1-z)y + yz)$

$(1-z)y \le zy$

So the idea is that $z$ is 0 when $y$ is positive, and $z$ is 1 when $y$ is negative. $x$ is a switching binary that is turned to $0$ to limit the value of $p$ to 0. Is there a way to linearize this expression?

Ahmed
  • 113
  • 4
  • 1
    Welcome to ORSE. Your question needs some clarification. Your first inequality $xyz \le p \le xyz$ is the same as $p = xyz$, and that matches your title, but then you write different nonlinear constraints later. Also, your "$z$ is $1$ when $y$ is positive, and $z$ is $0$ when $y$ is positive" looks like a copy-and-paste error. Finally, the usual linearization requires lower and upper bounds on $y$. – RobPratt Mar 21 '23 at 15:00
  • If $x=1$ and $z=1,$ your inequality on $p$ becomes $2y \le p \le y.$ Since $z=1 \implies y\ge 0,$ that will force $y=0=p.$ If $x=1$ and $z=0,$ the inequality becomes $y \le p \le 2y.$ Since $z=0 \implies y\le 0,$ that will again force $y=0=p.$ I'm guessing that is not what you want. – prubin Mar 21 '23 at 15:41
  • @RobPratt Thank you. You are correct regarding the copy-and-paste error it was a typo, and I fixed it. In the latter expressions, I have $xyz$ multiplication occurring a couple of times on each side, and I assumed the linearization of such an expression would be similar. and I started with $xyz \le p \le xyz$ for brevity. – Ahmed Mar 21 '23 at 21:41
  • It looks like your correction is backwards. Please see the comment from @prubin. It might help to just write the logical conditions you want and leave the algebraic expressions for the community to provide. – RobPratt Mar 21 '23 at 22:23
  • Your rewritten question looks better. I see three logical implications that you want to enforce, but I don’t think you want $f(x)=$. – RobPratt Mar 21 '23 at 23:19
  • @RobPratt I have re-written the question. Sorry about the lack of clarity and thanks your engagement – Ahmed Mar 21 '23 at 23:21
  • @prubin you are correct, sorry for the lack of clarity, I re-wrote the question – Ahmed Mar 21 '23 at 23:22

3 Answers3

5

More compactly, you want to enforce $$-x|y| \le p \le x|y|$$ Assume $L \le y \le U$ for some constants $L\le 0$ and $U\ge 0$, and let $M=\max(-L,U)$. Introduce continuous decision variable $w$ (to represent $|y|$) and binary decision variable $z$, and impose linear constraints \begin{align} -Mx \le p &\le Mx \tag1\label1 \\ -w \le p &\le w \tag2\label2 \\ -w \le y &\le w \tag3\label3 \\ w - y &\le (M-L) z \tag4\label4 \\ w + y &\le (M+U)(1-z) \tag5\label5 \end{align} Constraint \eqref{1} enforces $x=0 \implies p=0$. Constraint \eqref{4} enforces $z=0 \implies w\le y$ (hence $w=y$). Constraint \eqref{5} enforces $z=1 \implies w\le -y$ (hence $w=-y$).

RobPratt
  • 32,006
  • 1
  • 44
  • 84
1

By updating the question, the mentioned conditional inequalities can be linearized by introducing new indicator variables, $z_i$, for each part and coupling those to make linearization. For example the first part, $\{-y \leq p \leq y , \ \text{if } y \ge 0\}$, would be:

$$ z_1 = 1 \iff (y \geq 0) $$ $$ z_2 = 1 \iff (- y - p \leq 0)$$ $$ z_3 = 1 \iff (p - y \leq 0)$$ $$ z_4 = 1 \iff (z_2 + z_3 = 2)$$ $$ z_1 = 1 \implies z_4 = 1$$

and the same should be held for the rest inequalities.

A.Omidi
  • 8,832
  • 2
  • 13
  • 49
0

Basically you are trying the following: $ p \le xp_{max}$: ensures $p=0$ if $x=0$, else $p$ is free,
$ p_{max}$ is upper bound of $p$
And
$ y(2z-1) \le p \le y(1-2z) $

For $ y, z$ switching I think you already have
$ y \le y_{max}(1-z)$
$-y \le y_{max}z$

To linearize $ yz$ you can try with a new continuous variable $w$ in same domain as $y$ with following standard constraints (link)
$ w \le M(1-z)$
$ -w \le M(1-z)$
$ y-Mz \le w$
$ w \le y + Mz$

The above 4 constraints forces $w=y$ if $z=0$ or $0 \le y$, else 0

So $ 2w-y \le p \le y-2w$

Sutanu Majumdar
  • 3,461
  • 1
  • 2
  • 11
  • If $z=0,$ the first two constraints on $w$ give you $-M \le w \le 0$ and the next two constraints give you $\vert y - w \vert \le M,$ which does not tell you much about $w.$ In particular, for $z=0$ you have neither $w = 0$ nor $w=y.$ – prubin Mar 21 '23 at 15:34
  • Thanks, I have corrected it. $ w=0$ if $ z=0$ – Sutanu Majumdar Mar 21 '23 at 15:55