Convex <= Convex, Is there any way to solve this problem?


(zy) #1

Hi, when I design my optimization problem, I find a troublesome constraints. To put it simply, the troublesome constraint is non-convex, it has the following form:

X^2 + Y^2 + Z^2 <= M^2 + N^2 + K^2,

both X,Y,Z,M,N,K are variables and both the RHS and LHS are convex, so if I write this form in CVX, it will be wrong.

I try to convert this form to X^2 + Y^2 + Z^2 <= V^2 and V^2 <= M^2 + N^2 + K^2, but the second constraint isn’t convex. So Is there any way to solve this problem?


(Erling D.Andersen) #2

No. You cannot use cvx for nonconvex problems.


(Mark L. Stone) #3

You can not globally solve it in CVX, as @Erling wrote.

However, you might be able to try sequential convex programming, convex-concave procedure, or similar as DC (difference of convex)… See, for example, How to handle nonlinear equality constraints? And you can look at some of Steven Boyd’s materials in these areas, including the attachments in my answer at Can CVX solve the difference of convex functions (D.C.) problems? , as well as searching on this forum for difference of convex… But these are heuristic procedures, which are not even guaranteed to find a local optimum,. let alone the global optimum. They would involve calling CVX to solve a convex program inside some iterative loop. which iteratively generates the CVX problems.


(zy) #4

Thanks you so much for your help.