Feasible solution?

51 views
Skip to first unread message

Yoke Peng Leong

unread,
Oct 28, 2014, 6:19:31 PM10/28/14
to yal...@googlegroups.com
If I get this error when running solvesdp to solve a constrained optimization:

Lack of progress

Is the solution at least feasible? 

What does it mean exactly? I cannot find any documentation that says anything about it. Please let me know if there is a reference somewhere about the details of the error code.

Johan Löfberg

unread,
Oct 29, 2014, 2:33:09 AM10/29/14
to yal...@googlegroups.com
There is no way to know without explicitly inspecting the solution, either manually or by running check(constraints)

It means that the solver (fmincon?) had problems in finding an optimal and/or feasible solution. It gave up without meeting its desired tolerances

Yoke Peng Leong

unread,
Oct 30, 2014, 2:32:21 PM10/30/14
to yal...@googlegroups.com
The solver is sdpt3. 

The check function helps. Now, I know all my solution is at least feasible.

Is there a way to have the algorithm keep computing even when it says "progress is bad"?

I notice that the objective is decreasing up to some iteration and it starts increasing slowly. Then, I get error such as "progress is bad". Would it be possible to get the solution with the smallest objective value from another iteration when the terminating solution has a higher objective value?

Johan Löfberg

unread,
Oct 30, 2014, 3:01:15 PM10/30/14
to yal...@googlegroups.com
There are a lot of options to tweak in the solver that you can try, but the lack of progress is typically simply a sign that you have a bad model to begin with (ill-posed, bad numbers etc). You should also try another solver.

Mark L. Stone

unread,
Oct 30, 2014, 3:14:28 PM10/30/14
to yal...@googlegroups.com
Johan's suggestion to consider various options and other solvers may be a good one.  However, if you see an iteration "you like" (best objective value) prior to termination, and the optimization runs deterministically (or can be exactly duplicated), then you could re-run the optimization, but change the maxiter value to be equal to the iteration number you like. This brute force approach may not be the most efficient method, but it might get the job done.
Reply all
Reply to author
Forward
0 new messages