I am trying to solve/optimize $Ax=b$ in the least squares sense subject to
- box constraints;
- a few (less than 5) equality/inequality constraints; and
- an absolute function penalty (or some other piecewise linear convex function).
That is, min $f(\mathbf{x})=|A\mathbf{x}-b|^2+\mathbf{c}\cdot|\mathbf{x}|$ where $\mathbf{c}\cdot|\mathbf{x}|=c_1|x_1|+...+c_n|x_n|$
In particular, $A\mathbf{x}=b$ is massively underdetermined (i.e. $A$ has several thousand columns but hundreds of rows) and any valid solution will do if many exist. This code is performance critical. I've exhausted everything I can think of. Is there any obvious way to solve this efficiently (either a clever formulation or appropriate choice of algorithm)?
Language agnostic solutions would be appreciated.
tl;dr - Skip the rest. Here's what I have tried so far
Approach 1 - Keep it simple
Use Bounded BFGS and evaluate $f(\mathbf{x})$ directly. I am trying to improve on this as it is too slow.
Approach 2 - QP:
$f(\mathbf{x})=\mathbf{x^T}A^TA\mathbf{x}-2\mathbf{x^T}A^Tb+\mathbf{c}\cdot|\mathbf{x}|=\frac{1}{2}\mathbf{x^T}Q\mathbf{x}+\mathbf{d}\cdot\mathbf{x}+\mathbf{c}\cdot|\mathbf{x}|$
So this is basically standard quadratic form but $Q$ is now enormous and positive semi-definite making it difficult to work with. Slightly slower.
Approach 2 - Use QR decomposition:
The idea is to reduce the size of the quadratic matrix using QR decomposition and a co-ordinate transformation.
$A^T=QR$ and $\mathbf{x^T}Q=\mathbf{y^T}$
$f(\mathbf{x})=\mathbf{x^T}A^TA\mathbf{x}-2\mathbf{x^T}A^Tb+\mathbf{c}\cdot|\mathbf{x}|=\mathbf{y^T}RR^T\mathbf{y}+\mathbf{d}\cdot Q\mathbf{y}+\mathbf{c}\cdot|Q\mathbf{y}|$
This makes $A^TA$ very small and fast to execute. However, the transformation forces the thousands of (quick) box constraints to become linear inequality constraints and this hammers the performance. A lot slower.
Any other ideas? Thanks.