How cvx deals with following problem

(Mykola Servetnyk) #1

Hello, everyone, my cvx model is given below

n = 10; nn = n^2; c = rand(n,n)-0.5; CC = c*c'-0.5; AA = eye(n); b = 10; % just some random parameters
cvx_begin quiet
variable X_cvx(n,n) hermitian semidefinite % problem is complex SDP, it is important to me is
variable t
dual variable S_cvx;
maximize t
t <= trace(CC*X_cvx) - 0.5*sum(sum(abs(X_cvx)));
trace(AA*X_cvx) <= b;
S_cvx: X_cvx == hermitian_semidefinite(n);

Even though my question is more related to optimization algorithm, rather than cvx tool, I would still like to ask, because I implement my model in cvx.

My question is, what algorithm does cvx use to deal with -0.5*sum(sum(abs(X_cvx))); as for complex variables, subgradient of absolute operator is not defined(because magnitude operator is non-analytic). Cvx deals with it easily, therefore I was wondering if there is any algorithmic approach to do it?

I will appreciate all answers and references. Thanks!