I have a convex problem with the following properties:
-The energy is convex - I can use any norm. e.g. L1 norm.
-The constraints are convex cone inequalities.
I am able to solve this problem efficiently and accurately with CVX (I used MOSEK as the underlying solver).
My convex problem is always feasible.
However, now I want to solve a slightly different problem.
I would like to augment the previous convex problem with an additional set of nonlinear equality constraints.
As these equalities are not affine, they are not convex, hence the new problem is not convex.
I guess I can try to approach this problem with general nonconvex solvers. I tried Matlab’s fmincon with very limited success. I’m guessing that the constraints are not smooth and that poses some difficulties.
However, my nonconvex problem is special in the sense that the most important aspects of the problem are characterized in the convex part of the problem (i.e. the original problem without the nonlinear equalities).
So I would like to use the power of convex solvers to guarantee that the solution always satisfies the convex inequalities and I am willing to accept that the nonlinear equalities will not be fully satisfied.
Maybe, one can think of this as converting the nonlinear equality constraints into soft constraints somehow and then add it as an energy term. Since the domain (determined by the convex cone constraints) is convex and nonempty, the problem is feasible. The energy however is not convex (it is a sum of convex and nonconvex energies).
I was wondering what would be the best approach here.
I was thinking for example of approximating linearly the nonlinear equalities and adding a linear constraint to the convex problem (that I solve easily using CVX). Once the solution is obtained, I update the linear approximation and invoke CVX again. This is some sort of a Newton method (for solving a set of nonlinear equations, rather than minimizing a nonlinear function) combined with convex programming.
I wonder if this makes sense and whether there are alternatives or standard ways to solve nonconvex problems that has bias toward the importance of the convex constraints.
Again, I can just go for a full blown nonconvex solver but then it is not clear that the convex constraints will be satisfied and as I explained, these are more important in my problem.