I try to solve it by CVX. The code has no error it seems, but the results of CVX is not right. I’ve tried lots of methods but they didn’t work.
I don’t know what I did wrong, so I wonder if I need to transform my objective function “log2(1+rm)” into another form, since I’ve notice that when I run the code, there is a CVX Warning “Models involving “log” or other functions in the log, exp, and entropy
family are solved using an experimental successive approximation method.”
Thank you for your reading! Thanks a lot.
If you show us the solver and CVX output, we can say more. You may get that warning message whether or not the successive approximation method was used. But we can tell whether it actually was used by seeing the output.
The infeasibility certificate from Mosek is rather poor. Have you fiddled with some parameter settings? Changes to cvx_precision, or something like that?
The data likes “Wmn0,rm0,t_k0,s_kn0,a_kn0” is my initial point, and the other inputs are constants.
Then “Wmn0” is generated randomly under constraints,
Other inputs like “rm0,t_k0,s_kn0,a_kn0” are generated by satisfying the constraints from (35a) to (36b)
One obvious question is whether you were solving the same problem instance by SeDuMi (successive approximation method) and Mosek. Did you draw new random numbers when using Mosek vs. what was used with SeDuMi?
Anyhow, we still don’t know the numerical values of your input data.
NEVER set “cvx_precision best” with Mosek. Just leave it. It was discussed here many times. This setting produces parameter values not suitable for Mosek.
Oh yeap, every time I solved the problem by SeDuMi and Mosek, the inputs are different because it is generated randomly. But, if the input is a feasible point, whatever solver I used(maybe SeDuMi or Mosek) it will converge into a similar value. Isn’t it?
Try drawing a set of random numbers. Then run the exact same problem instance with both solvers. Then try a new set of random numbers, and run that exact same problem instance with both solvers.
For the output, since it is different from the paper I’m simulating, so I think the results is not right.
You shouldn’t expect to get the same answer (optimal objective value) unless all the input data is the same. Given that you are drawing random numbers, that would appear not to be the case.
OK, I’ll try the way. Thank you so so so much Mark.
Emmm, by the way, I still have a question that, sometimes when CVX is running, the Status is failed and the Optimal value(cvx_optval) is NAN, but the output in my code also has a determined value. I don’t quite understand it.
Emm, Michal, one more question. I wonder that if I can specify the solving method in CVX, like solve the problem using a solver via interior-point method.
Emmm, I mean can I specify Mosek solver uses interior_point method to solve my problem? Or Mosek will find a most appropriate method by itself to calculate it.
OK, I got it. Thank you Mark!!!
One more quetion, can I specify Mosek solver uses interior_point method to solve my problem(like: by using some specific statement)? Or Mosek will find a most appropriate method by itself to calculate it.