For improved efficiency, SDPT3 is solving the dual problem

SDPT3 solves the dual problem of primal problem,however,what I want is precisely the outcome of the primal problem ,not the result of dual problem .How do you make the solver solve the primal problem?


CVX provides the optimal variable values and objective value for the (primal) problem you provided. CVX does many transformations under the hood before providing the problem to the solver, and then reverses thoaw transformations after the solver finishes. Transformation to the dual problem is one such possible transformation, which if done, CVX transforms back to the original problem before providing the results. However, solver output log does reflect the problem the solver was provided by CVX, which in your case, is the dual of the original problem; so for instance, if the solver reports the problem is dual infeasible, CVX then reports the (primal) problem is infeasible.

1 Like

Sorry, but I’d like to ask if there’s any way to make CVX solve only the original problem, because that’s what I need.

Your request makes no sense since you will get a solution to the original problem in any case.
It is just some information about the internal workings of the solver that is irrelevant except for the advanced user.

All right,thank you for your reply,but please let me ask another question, does the fact that the duality problem is computed for computational efficiency mean that the problem is strongly dual, resulting in the same solution to the original problem as the duality problem?

The software promise to compute an optimal solution.

So you should get an optimal solution independent of it solves the primal or the dual problem.

Unless your problem has a unique optimal solution, then you may get any of the optimal solutions.
Therefore, you may not get the same solution but the solutions are equally optimal.

1 Like

OK,I get it.Thank you for your helpful assistance.