I know that LASSO-regularization can be used to scale into an $L_1$ upper bound for a solution. But what if I want the norm to be within a specific range $[a,b]$? ie. I also want to set a lower bound?
In other words: I am looking for an efficient method to solve a QP problem with a constraint on the norm of the solution ($a\leq\|x\|\leq b$), not on the individual components of the solution ($AX\leq b$).
It cannot be done in a convex optimization or a standard quadratic programming framework. Lower bounds on the norm are non-convex. No efficient method exists that will reliably obtain the global solution to such a problem.
On the CVX Forum, a user asked a similar question here. Professor Stephen Boyd offered up an answer that is not specific to CVX, but can be used in any convex optimization setting. I will quote it here in full just in case the link goes dead some day.
There is one other solution I can think of. You have not specified which norm you are considering. But if you would consider the $\ell_\infty$ norm $\|x\|_\infty=\max_i|x_i|$, then you can handle this constraint in a mixed-integer quadratic programming (MIQP) system. To see why, consider the following constraint: $$2ay_i+(a-b)z_i-a\leq x_i \leq a+(b-a)y_i-2az_i, \quad y_i,z_i\in\{0,1\},~y_i+z_i\leq 1$$ This constraint works as follows:
If we repeat these constraints for all $i=1,2,\dots, n$, then we ensure that $\|x\|_\infty\leq b$. And if we require that at least one $y_i,z_i$ is nonzero, then we are ensuring that $\|x\|_\infty\geq a$. Thus this system of constraints will ensure $a\leq\|x\|_\infty\leq b$: \begin{array}{cc} 2ay+(a-b)z-a\leq x \leq a+(b-a)y-2az \\ y_i,z_i\in\{0,1\},~y_i+z_i\leq 1,~i=1,2,\dots, n \\ \sum_i y_i + z_i \geq 1 \end{array} This is $3n+1$ inequalities, $n$ original variables, and $2n$ new binary variables. There are no theoretical guarantees of tractability, but in practice you can probably handle a reasonably large $n$.