Quasi-convex form by Semi-Definite Relaxation

Nonconvex
Jul 31, 2013
B

My optimization problem is a Max-Min problem :

maximize min (w' * Gi * fj * fj' * Gi' * w)/(w' * Gi * K * Gi' * w + c)
s.t 
   some_power_constrain

where the denominator and numerator are +ve real numbers after the multiplication

I converted the problem to:

maximize min (w' * Ri * w)/ ( w' * Mi * w + c)
 s.t 
   some_power_constrain

where :

Ri = Gi * fj * fj'
Mi =  Gi * K * Gi'

And then i expressed it by the trace function as:

maximize min Tr{X*Ri}/(Tr{X*Mi}+c)
s.t.  
   Tr{XZ} <= Psum  %% power constraint
   X      >= 0
   rank(X) = 1

where X is a semi-Definite matrix

 X  = w *w' ; %

for every i ( where i =1,2 ) —> Ri, Mi are 3X3 matrices

z is a 3X3 matrix

I dropped the rank-1 constraint for SDP Relaxation
And used Bisection to solve the problem as follow:

ubound=exp(3); Lbound=0; % initial upper and lower bounds
bisection_tol=1e-4; % bisection tolerance
while ubound-Lbound >= bisection_tol
   gamma=(Lbound+ubound)/2;
   % solve the feasibility problem
   cvx_begin  
       variable X(3,3); %symmetric;
       q1 = trace(X*R1);   q2 = trace(X*R2);
       g1 = trace(X*M1)+1; g2 = trace(X*M2)+1;
       %% Combining
         qi  = [q1;q2];    gi  = [g1;g2];
       
        minimize 0
        subject to
             qi <= gamma*gi
             trace(X*Z)<= Psum
             % X == semidefinite(3);
             X == hermitian_semidefinite(3);
   cvx_end
  %% testing feasibility
   if strcmp(cvx_status,'Solved')
     ubound=gamma
     X_opt = X
     objval_opt=gamma
   else
        Lbound=gamma
   end
end

Now the problem worked and it provides me with X value when Z,Ri, Mi are real-valued

My Problems:

1- when i use complex values for Z,Ri, Mi ----> it give me the following error

Error using cvxprob/newcnstr (line 181)
Disciplined convex programming error:
Invalid constraint: {complex affine} <= {complex affine}

Error in cvx/le (line 21)
b = newcnstr( evalin( 'caller', 'cvx_problem', '[]' ), x, y, '<=' );

Error in Max_Min_optimize_Alphas_07_SDR (line 72)
             qi <= gamma*gi

How i modify the code to get me the result in case of complex values

2- my original optimization variable is (w) where X = w*w’

i could get it easily in case of real values from X

How to get it in case if complex values [if the problem is modified and worked :slight_smile: ]

Thanks

M

A complex inequality makes no sense. What does it mean, to say, “1 + j * 2i <= 3 - j * 4i”? If you can answer this question, then you will probably understand how to fix your model.

B

you are right about the complex inequality.
i modified the question and added my original problem, kindly check it again and suggest me what to do if possible

M

I’m not seeing how your modification helped. You’re still asking how to fix the complex inequality. You shouldn’t have a complex inequality, it makes no sense. You need to determine what you’re actually trying to accomplish here.