Hi,
I’ve gone through the following post: 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
My question is do I have to replace the objective I mentioned in the post with
- sum_log()
or - add log() in a for loop
or - add -rel_entr(1,x) in a for loop
Also, the above post mentions, Pade Approximant is better than Successive Approximation method, and this is particularly the case when there are logs in the optimization problem.
Can you please suggest the best practice to model the objective functions mentioned in the question that I posted above, because sometime successive approximation fails to solve the problem.
For example: see the below log (sorry if this is not giving a lot of info)
Successive approximation method to be employed.
SDPT3 will be called several times to refine the solution.
Original size: 1093 variables, 36 equality constraints
1 exponentials add 8 variables, 5 equality constraints
Cones | Errors |
Mov/Act | Centering Exp cone Poly cone | Status
--------±--------------------------------±--------
1/ 1 | 8.000e+00 4.621e+01 0.000e+00 | Solved
1/ 1 | 8.000e+00s 8.848e+00 0.000e+00 | Solved
1/ 1 | 1.631e+00 1.606e-01 0.000e+00 | Solved
1/ 1 | 2.304e+00s 3.252e-01s 0.000e+00 | Failed
1/ 1 | 2.133e+00s 2.135e-01 0.000e+00 | Failed
1/ 1 | 4.592e+00s 1.416e+00s 0.000e+00 | Failed
1/ 1 | 5.523e+00s 1.682e+00s 0.000e+00 | Solved
1/ 1 | 8.196e-01 4.269e-02 0.000e+00 | Solved
1/ 1 | 3.752e+00s 9.306e-01s 0.000e+00 | Failed
Status: Failed
Optimal value (cvx_optval): NaN
I’ve used the epigraph technique to model the problem, and with the same data I see the following log:
Successive approximation method to be employed.
SDPT3 will be called several times to refine the solution.
Original size: 1094 variables, 36 equality constraints
1 exponentials add 8 variables, 5 equality constraints
Cones | Errors |
Mov/Act | Centering Exp cone Poly cone | Status
--------±--------------------------------±--------
1/ 1 | 8.000e+00 4.621e+01 0.000e+00 | Solved
1/ 1 | 8.000e+00s 4.673e+00 0.000e+00 | Failed
1/ 1 | 2.380e+00 3.564e-01 0.000e+00 | Failed
1/ 1 | 4.504e+00s 1.145e+00s 0.000e+00 | Solved
1/ 1 | 5.627e-01 2.002e-02 0.000e+00 | Solved
1/ 1 | 4.019e+00s 1.057e+00s 0.000e+00 | Failed
0/ 0 | 0.000e+00 0.000e+00 0.000e+00 | Failed
0/ 0 | 0.000e+00 0.000e+00 0.000e+00 | Failed
1/ 1 | 4.559e+00 1.172e+00 0.000e+00 | Solved
1/ 1 | 5.756e-01 2.095e-02 0.000e+00 | Solved
1/ 1 | 1.047e-02 6.856e-06 0.000e+00 | Solved
0/ 0 | 0.000e+00 0.000e+00 0.000e+00 | Solved
Status: Solved
Optimal value (cvx_optval): +17.5511
So, to summarize, I have different solver log for the same problem with the same data, but with different modeling.
Can you please suggest the best practice? or redirect me to some documentation which will help me understand better.
Thanks in advance!
Kali