TFOCS for l1, l2, l_inf-norm cone program


#1

I was trying to solve a large-scale SOCP problem with first-order method. I was wondering in the current version of TFOCS, can we solve an SOCP problem? And can we use all 3 norms like the following example?

variables x(n, 1), t1, t2, t3

minimize(t1 + t2 + t3)

subject to

norm(A*x - b, 2) <= t1

norm(C*x - d, inf) <= t2

norm(E*x - f, 1) <= t3

Thank you!


(Michael C. Grant) #2

Yes, you can, but you will need to use the SCD solver.


#3

Thank you for the pointer to SCD solver! For example, I have:

lambda = 1;
mu = 1e-5;
cvx_begin quiet
cvx_precision best
    variable xcvx(N,1)
    minimize (norm(A*xcvx - b,2) + lambda*norm(xcvx,1) + mu/2*sum_square(xcvx))
cvx_end

I was following the user guide but my code below gives different results:

affineF = {A, -b; eye(N), zeros(N, 1)};
dualproxF = {proj_l2, proj_linf(lambda)};
opts = [];
opts.restart    = 500;
opts.maxIts     = 1000;
[xtfocs, out, optsOut] = tfocs_SCD([], affineF, dualproxF, mu, [], [], opts);