Invalid constraint: {positive convex} >= {0}


(Chand) #1

I have tried to find the solution of the convex optimization function using CVX tool box in matlab but the error shows that Invalid constraint: {positive convex} >= {0} for the contrain line. Can anyone point out the mistake I am doing.
The code which I wrote is

cvx_begin

    variable lambda1(N,1) nonnegative;
    x=[lambda1;t] ;
         y=x*t;
    
    for i=1:N            
        u(1:N+1,i)=A(i,:);           
        U(i)=0;
    end
    
    u(1:N+1,N+1)=-b.';
    U(N+1)=1;
    
    for i=N+2:2*N+1
        u(1:N+1,i)=1;
        U(i)=0;
    end
    
    for i=2*N+2:3*N+1
        u(1:N+1,i)=1*10^5;
        U(i)=1;
    end
    for c=1:N
        equ=(beta*I/psi(c))*y(c);
    end
    minimize (equ);
    subject to
  
         for h=1:3*N+1
           for k=1:h
           
             (U(k)-u(:,k).'*x)*(U(h)-u(:,h).'*x)>=0;
           end
         end
cvx_end


(Mark L. Stone) #2

The point of that extract is that (U_k - u^T_k x)(U_h - u^T_h x) \ge 0 is a non-convex quadratic constraint. Therefore a change of variables is introduced, y_{ij} = x_ix_j. That constraint needs to be entered into CVX using the y_{ij}, not quadratic x terms, which makes that a linear constraint in the variables y_{ij} and x. The paper does not seem to be artfully written on that point, as evidenced by your confusion. I suppose the paper tells you what to do after the CVX solution is obtained.


(Chand) #3

Thank you for replying . The other steps are clear but I am confused how to write the constraint in the convex form.


(Mark L. Stone) #4

Study Reformulation Linearization Technique (RLT), then re-read the paper carefully. It’s not a good idea to blindly implement things from papers without understanding at all what they’re doing.

I believe you just need to expand out the quadratic term, (u_k^Tx)(u_h^Tx ) and enter it in terms of the y_{ij}. That is a matter of algebra, not of CVX. .


(Chand) #5

Thank you so much. Yeah sure I will study that.