Flex
April 16, 2014, 7:38am
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!
mcg
(Michael C. Grant)
April 16, 2014, 1:13pm
2
Yes, you can, but you will need to use the SCD solver.
Flex
April 24, 2014, 1:27am
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);