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); cvx_end
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!