Solving nonconvex problem by iterating convex ones

209 Views Asked by At

I have a convex problem with the following properties:

-The energy to be minimized is convex - it is basically a norm.

-The domain is defined by a set of convex cone constraints inequalities.

I am able to solve this problem efficiently and accurately with a modeling package like CVX in Matlab (with MOSEK as the underlying SOCP solver).

This 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 a solution in which the nonlinear equalities will not be satisfied precisely (i.e. to convert the nonlinear equalities to soft constraints).

What would be the best strategy to solve such a nonlinear program?

2

There are 2 best solutions below

1
On

It looks like this is something that has been done enough to be given a name: sequential convex optimization or sequential convex programming. It's a natural extension of the more common practice of sequential quadratic programming.

The idea is to linearize just the non-convex constraints, and leave everything else intact. Presumably, the closer your relaxed model is to the original, the better this is going to work.

Google is your friend here, but there's even a YouTube video on the subject.

0
On

Hey you can also take a look at this paper.

The method for your problem is also know as sequential parametric convex approximation https://link.springer.com/article/10.1007/s10898-009-9456-5

Sometimes, it is known as inner approximation https://pubsonline.informs.org/doi/abs/10.1287/opre.26.4.681

Basically, instead of solving a single instance of difficult non convex problem. You try to solve a series of convex problem instead