How can I linearize this constraint

$$d_{u,c}\sigma \le \|{\bf f}_{u,c}\|^2\le Td_{u,c}$$ $\sigma$ is a very small number based on scale of $f$

$T>0$, ${\bf f}_{u,c}$ is optimization variable, a complex vector. $d_{u,c}$ is also an optimization variable which in binary.

  • 1
    $\begingroup$ Which vector norm is $||\cdot||$ in your notation? The euclidean norm? $\endgroup$
    – joni
    Commented Jan 15, 2023 at 19:39
  • $\begingroup$ yes it is. or l2 norm $\endgroup$
    – KGM
    Commented Jan 15, 2023 at 20:17

2 Answers 2


$d_{u,c}\sigma \le \|{\bf f}_{u,c}\|^2$ is inherently non-convex, because affine <= convex is non-convex, unless the LHS is zero, in which case this constraint can be eliminated as vacuous. Therefore, it can't be linearized into DCP compliance. I am interpreting the norm as being the two-norm. The one-norm or infinity-norm could be linearized into DCP compliance, as shown in Section 9,1 of Mosek Modeling Cookbook, suitably adjusted to handle complex variables, and for infinity norm as opposed to one-norm.

If you really need this constraint, I recommend you abandon thoughts of using (MI)DCP for this problem. Rather, use a high quality off-the-shelf non-convex optimization solver. You could try some sort of Successive Convex Approximation or other dubious scheme, but I don't recommend it. Instead, let the non-convex solver handle any such things in the context of a high quality implementation, not a crude, unsafeguarded hack job, as seems to be de rigeur on some DCP forums.


I guess by the constraint $\|\mathbf f_{u, c}\|^2 \geq \sigma d_{u,c}$ with a very small $\sigma$, what you want is $d_{u,c} = 1 \Rightarrow \|\mathbf f_{u,c}\|^2_2 > 0$. In this case, since $\|\mathbf f_{u,c}\|_2 > 0 \Leftrightarrow \|\mathbf f_{u,c}\|_1>0$, you can replace the l2 norm with l1 norm, and l1 norm could be transformed to DCP, as mentioned. So the result is $$ d_{u, c} \tilde{\sigma} \leq \|\mathbf f_{u,c}\|_1\\ \|\mathbf f_{u,c}\|_2^2 \leq Td_{u,c} $$ where $\tilde{\sigma}$ is another small number.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.