Hi all,
I’ve been using TFOCS for a while now for Lasso and weighted Lasso with no issues, however I’ve been having trouble lately using the SCD solver for general affine inequality constraints. Specifically, I’m trying to solve problems of the form
min_x ||A_1x + y||_2^2 + c^Tx s.t. A_2*x >= b, x >= 0 , sum(x) = d
I looked at past posts relating to this, and I can’t seem use those responses to get this optimization program working well, even for the simple linear case of
min_x c^Tx s.t. A_2x >= b, x >= 0, sum(x) = d
The call to tfocs I’ve been using (for the linear case) is
x = tfocs_SCD(smooth_linear©, {1,zeros(N,1); A_2, -b; ones(N, 1), -d}, …
{proj_Rplus; proj_Rplus; proj_Rn}, mu, [], [], tfocs_opts, cont_opts);
For really small problems (N ~ 10), this program matches the output given by MATLAB’s linprog, and satisfies all the constraints. The moment I boost the problem size, however, the solution given by tfocs starts taking much longer than MATLAB’s built-in, and also starts producing results that are nowhere near abiding by the constraints. Am I calling tfocs wrong? I double checked all my linear operators and the fact that MATLAB’s linprog (and quadprog for the quadratic case) results in a reasonable solution given the same operators etc. leads me to think that I’m simply calling tfocs in some sub-optimal manner.
My first question is: Has anyone else encountered similar issues with simple linear programs and affine constraints and solved them satisfactorily?
My second question is: Returning back to the quadratic program, is it possible to provide affine forms for both the smooth_quad function and the proj_Rplus function simultaneously?
Thanks in advance for any help!