The optimization process is unbounded and then solved when using SCA

(tammy) #1

image
Everytime I give the local point and using SCA to optimize. I got unbounded or failed first and then solved,and the final result is solved and all the constraints are satisfied.
Is this right? Is that means the point I give isn’t in the feasible set?
I am doing UAV optimization, and the local point is a two-dimensional array. I wonder if there is a good way to find a good local point?

(Mark L. Stone) #2

I have no idea what problem you are trying to solve, or what code you ran. However, as a first step, please follow the advice in CVXQUAD: How to use CVXQUAD's Pade Approximant instead of CVX's unreliable Successive Approximation for GP mode, log, exp, entr, rel_entr, kl_div, log_det, det_rootn, exponential cone. CVXQUAD's Quantum (Matrix) Entropy & Matrix Log related functions , then show us the results.

BTW, I have no idea what SCA is (Side Channel Authentication?), nor I suspect do many other forum readers.

You have provided so little information about your problem that I don’t think forum readers can provide much, if any, advice.

(Mark L. Stone) #4

E0 is not provided, so your problem is not reproducible.

Please install CVXQUAD and follow the directions provided in the link I provided above.

Numbers such as gammac=10^-24 are likely to cause difficulty, and may make solver results unreliable, even if using CVXQUAD.

It appears that you have two levels of successive approximation:

An outer level, Successive convex approximation (SCA), for which you are on your own, because there is no guarantee that it will converge to anything, let alone a global or even local minimum, even if all convex subproblems are solved exactly.

An inner level of using CVX’s Successive approximation method for each convex subproblem spawned in SCA. This can be avoided by using CVXQUAD as described in the previously mentioned link. However, if the numerics are not improved, for instance by better scaling, so that coefficients in the model have magnitudes either exactly zero or much closer to 1 than you have, the results may be unreliable; and that could mean incorrect feasibility determinations, among other things. If CVX reports Status: Solved, that means that iCVX believes that the CVX (sub) problem as has been provided has been solved, and you can ignore intermediate Successive approximation iterations showing Failed or Unbounded; however, due to the possibly poor numerics in your problem, CVS’s determination could be erroneous.

(tammy) #5

sorry,I missed E0.It can take a value of 0.
And I don’t quite understand why ’ there is no guarantee that it will converge to anything, let alone a global or even local minimum, even if all convex subproblems are solved exactly.’
And I have changed the log(cvx_expression) to -rel_entr(1,cvx_expresion).However, at present I‘m still uncertain whether the optimal or local optimal solution is obtained.

(Mark L. Stone) #6

Do you understand why there is such a guarantee? The answer is no, because there is not.

Anyhow, with CVXQYAD installed, your program as is invokes CVXQUAD’s Pade apprxoimant instead of CVX’s Successive approximation method.

My rresults are as follows:

CVXQUAD with SDPT3: SCA converges to cvx_optval = +53.6111 in 3 SCA iterations, i.e., 3 invocations of CVX.

CVXQUAD with SeDuMi: Every CVX problem fails due to running into numerical problems, no sensible solution/direction found…

CVXQUAD with Mosek 9: Mosek issues warnings for the first CVX (sub)poblem about near zero elements in input matrixes (I’m sure Mosek didn’t “like” the effects of gammac=10^-24), and reported the CVX (sub) problem infeasible. Given the warning message, perhaps that infeasibility determination is not reliable.

I recommend you re-scale the problem to improve the numerics.