Invalid constraint: {concave} >= {concave}


(Wasim) #1

I am posting the sample code here. I cannot understand how to make this constraint compatible with the CVX DCP, I have tried many variations of the code yet I am unable to remove this error.

interference = [1 4 4 1;
            3 1 1 3;
            2 1 1 2;
            1 1 1 1];

cvx_begin 
variable z(4,1)
minimize sum(z) 
subject to

for a = 1:4
    for b = 1:4
    x = interference(a,b);
    log(z(x) + z(a))./log(2) >= log(z(x))./log(2);
    end
end
cvx_end

(Mark L. Stone) #2

The constraints are non-convex.

For example, The Hessian of log(x + y) - log(x) with respect to x and y, evaluated at x = y = 1, has one positive and one negative eigenvalue, and therefore is indefinite (neither convex nor concave). Therefore it is not allowed in CVX, and can not be transformed into something which will be allowed.


(Shahrukh Khan Kasi) #3

Ok. Thank you very much for your instant reponse.