I am trying to reformulate an optimisation problem with unknown $x$ into a mixed-integer program. In this respect, I would like your help to rewrite the following constraint $$ p(x)=0 \Rightarrow q(x)=0 $$ where $p:\mathbb{R}^k\rightarrow \mathbb{R}$ and $q:\mathbb{R}^k\rightarrow [-1,1]^m$, $p$ and $q$ linear in $x$.
using the big-M modelling approach (as here for example).
Any suggestion?
I'm trying to understand the answer below. My understanding of the answer is that $$ p(x)=0 \Rightarrow q(x)=0 $$ is equivalent to $$ \begin{cases} q(x)\geq -M(1-\delta_2)\\ q(x)\leq M(1-\delta_2)\\ -----------\\ p(x)\leq M(1-\delta_1)-\epsilon\\ -----------\\ p(x)\leq M(1-\delta_2)+\epsilon\\ p(x)\geq -M(1-\delta_2)-\epsilon\\ -----------\\ p(x)\geq -M(1-\delta_3)+\epsilon\\ -----------\\ \delta_1+\delta_2+\delta_3=1 \end{cases} $$
If this is the correct understanding of the answer, I have doubts:
(1) $q(x)\geq -M(1-\delta_2), q(x)\leq M(1-\delta_2)$ forces $q(x)=0$ when $\delta_2=1$
(2) $p(x)\leq M(1-\delta_1)-\epsilon$ sets $\delta_1=1$ when $p(x)+\epsilon>0$ (so that $\delta_2=\delta_3=1$ and hence $q(x)$ is not activated) and leaves $\delta_1$ free otherwise
(3) $p(x)\geq -M(1-\delta_3)+\epsilon$ sets $\delta_3=0$ when $p(x)-\epsilon<0$ (so that $\delta_2=1$ or $\delta_1=1$ and hence $q(x)$ may be activated) and leaves $\delta_3$ free otherwise
(4) $p(x)\leq M(1-\delta_2)+\epsilon$ sets $\delta_2=0$ when $p(x)-\epsilon>0$ (so that $\delta_1=1$ or $\delta_3=1$ and hence $q(x)$ is not activated) and leaves $\delta_2$ free otherwise
(5) $p(x)\geq -M(1-\delta_2)-\epsilon$ sets $\delta_2=0$ when $p(x)+\epsilon<0$ (so that $\delta_1=1$ or $\delta_3=1$ and hence $q(x)$ is not activated) and leaves $\delta_2$ free otherwise.
What is the correct way of reading all this? I can't see the closure of the logic.
One simple way is by subdividing everything into disjoint cases. Introduce three binaries $\delta_i$ and you have
$\delta_1=1 \Rightarrow p\leq -\epsilon$
$\delta_2=1 \Rightarrow -\epsilon \leq p\leq \epsilon, q = 0$
$\delta_3=1 \Rightarrow p\geq \epsilon$
$\delta_1+\delta_2 + \delta_3 = 1$
The big-M model of an implication between a binary $\delta$ and an inequality $g(x)\geq 0$ is $g(x)\geq -M(1-\delta)$ where $M$ is the infamous big-M constant (which should be called as-small-as-possible-but-sufficiently-large, i.e. it should be so large that $g(x)\geq -M$ is redundant)