# Status failed but still got results

(Jingwei Zz) #1

In my function
[eta_opt, eta_tcvx, q_opt]=traj_uplink_opt(B,gamma0,H,T,N,K,nodes,q_in,Ps,v_max,alpha), it containts a cvx problem.
But when I run this function, cvx shows:
Status: Failed
Optimal value (cvx_optval): NaN

But I still get results, i.e., values for q_opt.

Please help tell me why I can still get results even my cvx problem failed. I’m pretty sure that my function is a convex function
Thanks a lot!

My function is as the following:
function [eta_opt, eta_tcvx, q_opt]=traj_uplink_opt(B,gamma0,H,T,N,K,nodes,q_in,Ps,v_max,alpha)

delta_t=T/(N+1);
le=log2(exp(1));
alph=alpha;
ql=q_in;
%varu=zeros(K,N+2);

% for kk=1:K
% for n=1:N+2
% varu(kk,n)=Ps(kk)*gamma0/alph(kk,n);
% end
% end

a=zeros(K,N+2);
Rul=zeros(K,N+2);

for kk=1:K
for n=1:N+2
a(kk,n)=legamma0Ps(kk)/((H^2+(norm(ql(:,n)-nodes(:,kk)))^2)(H^2+(norm(ql(:,n)-nodes(:,kk)))^2+gamma0Ps(kk)/alph(kk,n) ));
Rul(kk,n)=-rel_entr(alph(kk,n),(alph(kk,n)(H^2+(norm(ql(:,n)-nodes(:,kk)))^2 ) +gamma0Ps(kk))/(H^2+(norm(ql(:,n) -nodes(:,kk) ))^2) )/log(2);
%alph(kk,n)*log2(1+varu(kk,n)/(H^2+(norm(ql(:,n)-nodes(:,kk)))^2));
end
end

cvx_begin
%cvx_quiet(true)
variable eta
variable q(2,N+2)
expression Ru_lb(K,N+2)

for kk=1:K
for n=1:N+2
Ru_lb(kk,n)=Rul(kk,n)-a(kk,n)*(pow_pos(norm(q(:,n)-nodes(:,kk)),2)-pow_pos(norm(ql(:,n)-nodes(:,kk)),2));
end
end

maximize (eta)
subject to
for kk=1:K
eta<=sum(Ru_lb(kk,:));
end

for n=1:N+1
norm(q(:,n+1)-q(:,n))<=v_max*delta_t;
end

q(:,1)==q(:,N+2);

cvx_end

(Mark L. Stone) #2

You haven’t provided a reproducible example, so if you want any help, at least show the complete solver/CVX output from running it.

q_opt is an output argument of your function, but I don’t see in the code where you ever set its value. So I don’t know how its value relates to the value of q after CVX execution has completed.

(Jingwei Zz) #3

Sorry for the inconvenience caused. The following is the whole code.
function [eta_opt, eta_tcvx, q_opt]=traj_uplink_opt(B,gamma0,H,T,N,K,nodes,q_in,Ps,v_max,alpha)

delta_t=T/(N+1);
le=log2(exp(1));
alph=alpha;
ql=q_in;
%varu=zeros(K,N+2);

% for kk=1:K
% for n=1:N+2
% varu(kk,n)=Ps(kk)*gamma0/alph(kk,n);
% end
% end

a=zeros(K,N+2);
Rul=zeros(K,N+2);

for kk=1:K
for n=1:N+2
a(kk,n)=legamma0Ps(kk)/((H^2+(norm(ql(:,n)-nodes(:,kk)))^2)(H^2+(norm(ql(:,n)-nodes(:,kk)))^2+gamma0Ps(kk)/alph(kk,n) ));
Rul(kk,n)=-rel_entr(alph(kk,n),(alph(kk,n)(H^2+(norm(ql(:,n)-nodes(:,kk)))^2 ) +gamma0Ps(kk))/(H^2+(norm(ql(:,n) -nodes(:,kk) ))^2) )/log(2);
%alph(kk,n)*log2(1+varu(kk,n)/(H^2+(norm(ql(:,n)-nodes(:,kk)))^2));
end
end

cvx_begin
%cvx_quiet(true)
variable eta
variable q(2,N+2)
expression Ru_lb(K,N+2)

for kk=1:K
for n=1:N+2
Ru_lb(kk,n)=Rul(kk,n)-a(kk,n)*(pow_pos(norm(q(:,n)-nodes(:,kk)),2)-pow_pos(norm(ql(:,n)-nodes(:,kk)),2));
end
end

maximize (eta)
subject to
for kk=1:K
eta<=sum(Ru_lb(kk,:));
end

for n=1:N+1
norm(q(:,n+1)-q(:,n))<=v_max*delta_t;
end

q(:,1)==q(:,N+2);

cvx_end

eta_tcvx=cvx_optval/(N+2);

q_opt=q;

R_final=zeros(K,N+2);
for kk=1:K
for n=1:N+2
R_final(kk,n)=-rel_entr(alph(kk,n),(alph(kk,n)(H^2+(norm(q_opt(:,n)-nodes(:,kk)))^2 ) +gamma0Ps(kk))/(H^2+(norm(q_opt(:,n) -nodes(:,kk) ))^2) )/log(2);
% =-rel_entr(alph(kk,n),(alph(kk,n)*(H^2+(norm(q_opt(:,n)-nodes(:,kk)))^2) +Ps(kk)*gamma0)/(H^2+(norm(q_opt(:,n)- nodes(:,kk) ))^2) )
end
end

R_sum=zeros(K,1);
for kk=1:K
R_sum(kk,1)=sum(R_final(kk,:))/(N+2);
end
eta_opt=R_sum;

And after running in the cvx, it shows
Calling SDPT3 4.0: 13477 variables, 6645 equality constraints
------------------------------------------------------------

** num. of constraints = 6645**
** dim. of sdp var = 3264, num. of sdp blk = 1632**
** dim. of socp var = 5199, num. of socp blk = 1733**
** dim. of linear var = 3381**
** dim. of free var = 1 *** convert ublk to lblk**

** SDPT3: Infeasible path-following algorithms**

** version predcorr gam expon scale_data**
** HKM 1 0.000 1 0 **
it pstep dstep pinfeas dinfeas gap prim-obj dual-obj cputime
-------------------------------------------------------------------
** 0|0.000|0.000|1.7e+02|1.4e+03|2.6e+10| 4.081630e-08 0.000000e+00| 0:0:00| spchol 1 1 **
** 1|0.113|0.185|1.5e+02|1.2e+03|3.2e+10| 1.772424e+04 3.871748e+07| 0:0:00| spchol 1 1 **
** 2|0.114|0.135|1.3e+02|1.0e+03|3.0e+10| 3.587738e+04 3.632560e+07| 0:0:00| spchol 1 1 **
** 3|0.721|0.065|3.7e+01|9.4e+02|1.2e+10| 1.305238e+05 3.753357e+07| 0:0:00| spchol 1 1 **
** 4|0.326|0.729|2.5e+01|2.5e+02|4.4e+09| 1.443765e+05 -7.080895e+06| 0:0:00| spchol 1 1 **
** 5|0.887|0.527|2.8e+00|1.2e+02|1.3e+09| 1.695684e+05 -2.865620e+06| 0:0:00| spchol 1 1 **
** 6|0.747|0.859|7.1e-01|1.7e+01|2.4e+08| 1.710342e+05 1.775558e+07| 0:0:01| spchol 1 1 **
** 7|0.661|0.648|2.4e-01|6.0e+00|8.6e+07| 1.590333e+05 2.975769e+07| 0:0:01| spchol 1 1 **
** 8|0.569|0.375|1.0e-01|3.7e+00|5.6e+07| 1.361988e+05 3.216563e+07| 0:0:01| spchol 1 1 **
** 9|0.569|0.317|4.5e-02|2.5e+00|4.2e+07| 1.073565e+05 3.090551e+07| 0:0:01| spchol 1 1 **
**10|0.631|0.239|1.6e-02|1.9e+00|3.6e+07| 7.568250e+04 2.696952e+07| 0:0:01| spchol 1 1 **
**11|0.491|0.493|8.4e-03|9.8e-01|2.1e+07| 5.564783e+04 1.498466e+07| 0:0:01| spchol 1 1 **
**12|1.000|0.595|3.9e-09|4.0e-01|1.2e+07| 2.087686e+04 4.751042e+06| 0:0:01| spchol 1 1 **
**13|0.826|0.961|2.2e-09|1.6e-02|4.9e+05| 6.958490e+03 1.792375e+05| 0:0:01| spchol 1 1 **
**14|0.631|0.186|9.6e-10|1.3e-02|4.3e+05| 5.574644e+03 1.395967e+05| 0:0:01| spchol 1 1 **
**15|0.971|0.380|7.6e-10|7.9e-03|3.1e+05| 4.419782e+03 7.373608e+04| 0:0:01| spchol 1 1 **
**16|1.000|0.293|5.4e-10|5.6e-03|2.6e+05| 3.721600e+03 4.515595e+04| 0:0:01| spchol 1 1 **
**17|1.000|0.324|4.0e-10|3.8e-03|2.0e+05| 3.160038e+03 2.420602e+04| 0:0:01| spchol 1 1 **
**18|1.000|0.330|1.2e-10|2.5e-03|1.5e+05| 2.635487e+03 1.196083e+04| 0:0:01| spchol 1 1 **
**19|1.000|0.292|3.2e-10|1.8e-03|1.2e+05| 2.266186e+03 5.149631e+03| 0:0:02| spchol 1 1 **
**20|1.000|0.312|3.1e-10|1.2e-03|9.5e+04| 1.891072e+03 9.081785e+02| 0:0:02| spchol 1 1 **
**21|1.000|0.291|8.2e-10|8.7e-04|7.7e+04| 1.567114e+03 -1.478347e+03| 0:0:02| spchol 1 1 **
**22|1.000|0.297|9.8e-10|6.1e-04|6.2e+04| 1.253093e+03 -2.782976e+03| 0:0:02| spchol 1 2 **
**23|1.000|0.294|1.8e-10|4.3e-04|5.0e+04| 9.828205e+02 -3.433954e+03| 0:0:02| spchol 2 2 **
**24|1.000|0.298|2.2e-10|3.0e-04|4.0e+04| 7.353685e+02 -3.625107e+03| 0:0:02| spchol 2 2 **
**25|1.000|0.298|5.0e-10|2.1e-04|3.3e+04| 5.363754e+02 -3.557738e+03| 0:0:02| spchol 2 2 **
**26|1.000|0.305|2.0e-10|1.5e-04|2.6e+04| 3.739646e+02 -3.302486e+03| 0:0:02| spchol 2 2 **
**27|1.000|0.308|5.0e-10|1.0e-04|2.0e+04| 2.537248e+02 -2.949169e+03| 0:0:02| spchol 2 2 **
**28|1.000|0.315|5.3e-10|7.0e-05|1.6e+04| 1.670895e+02 -2.540968e+03| 0:0:02| spchol 2 2 **
**29|1.000|0.321|1.6e-09|4.8e-05|1.2e+04| 1.066574e+02 -2.120916e+03| 0:0:02| spchol 2 2 **
**30|1.000|0.318|4.4e-09|3.3e-05|9.0e+03| 6.463155e+01 -1.738935e+03| 0:0:02| spchol 2 2 **
**31|1.000|0.325|4.9e-09|2.2e-05|6.7e+03| 3.358837e+01 -1.392521e+03| 0:0:02| spchol 2 2 **
**32|1.000|0.326|3.7e-09|1.5e-05|4.9e+03| 1.067472e+01 -1.099463e+03| 0:0:03| spchol 2 3 **
**33|1.000|0.323|8.8e-09|1.0e-05|3.6e+03|-5.839042e+00 -8.639965e+02| 0:0:03| spchol 2 3 **
**34|1.000|0.300|1.8e-08|7.0e-06|2.7e+03|-1.596699e+01 -6.970162e+02| 0:0:03| spchol 3 3 **
**35|1.000|0.319|2.2e-08|4.8e-06|2.0e+03|-2.534352e+01 -5.528137e+02| 0:0:03| spchol 3 3 **
**36|1.000|0.366|1.4e-08|3.0e-06|1.3e+03|-3.635054e+01 -4.135729e+02| 0:0:03| spchol 3 3 **
**37|1.000|0.318|3.7e-08|2.1e-06|9.6e+02|-4.372234e+01 -3.276042e+02| 0:0:03| spchol 3 4 **
**38|1.000|0.353|5.6e-08|1.3e-06|6.5e+02|-5.053225e+01 -2.532294e+02| 0:0:03| spchol 3 4 **
**39|1.000|0.338|4.7e-08|8.9e-07|4.5e+02|-5.584460e+01 -2.020735e+02| 0:0:03| spchol 4 4 **
**40|1.000|0.250|2.7e-07|6.8e-07|3.6e+02|-5.776198e+01 -1.774131e+02| 0:0:03| spchol 4 4 **
**41|1.000|0.356|1.4e-07|4.4e-07|2.6e+02|-6.100049e+01 -1.476058e+02| 0:0:03| spchol 4 5 **
**42|1.000|0.339|8.6e-08|3.1e-07|1.9e+02|-6.348153e+01 -1.276891e+02| 0:0:03| spchol 4 5 **
**43|1.000|0.400|2.8e-07|1.9e-07|1.3e+02|-6.603526e+01 -1.100743e+02| 0:0:03| spchol 5 6 **
**44|1.000|0.382|3.0e-07|1.2e-07|9.1e+01|-6.814731e+01 -9.875679e+01| 0:0:03| spchol 5 6 **
**45|1.000|0.206|7.3e-08|1.0e-07|8.5e+01|-6.755195e+01 -9.573191e+01| 0:0:04| spchol 5 6 **
**46|1.000|0.475|4.5e-07|5.8e-08|5.2e+01|-6.968607e+01 -8.788571e+01| 0:0:04| spchol 7 8 **
**47|1.000|0.240|7.1e-07|4.8e-08|4.6e+01|-6.963290e+01 -8.607387e+01| 0:0:04| spchol 9 10 **
**48|1.000|0.433|9.4e-07|2.9e-08|3.1e+01|-7.109770e+01 -8.250902e+01| 0:0:04| spchol 10 11 **
**49|1.000|0.305|1.1e-06|2.2e-08|2.5e+01|-7.151620e+01 -8.098902e+01| 0:0:04| spchol 12 14 **
**50|1.000|0.363|1.4e-06|1.6e-08|1.8e+01|-7.216906e+01 -7.946629e+01| 0:0:04| spchol 13 13 **
**51|1.000|0.366|1.2e-06|1.1e-08|1.3e+01|-7.272953e+01 -7.825701e+01| 0:0:04| spchol 15 16 **
**52|1.000|0.371|3.2e-06|7.9e-09|9.6e+00|-7.322921e+01 -7.730514e+01| 0:0:04| spchol 21 25 **
**53|1.000|0.371|5.5e-06|5.7e-09|6.9e+00|-7.344824e+01 -7.658852e+01| 0:0:04| spchol 25 26 **
**54|1.000|0.368|6.9e-07|4.2e-09|4.9e+00|-7.380839e+01 -7.606266e+01| 0:0:04| spchol **
** warning: symqmr failed: 0.3 **
** switch to LU factor. splu 23 7 **
**55|1.000|0.379|5.6e-06|3.0e-09|3.5e+00|-7.393687e+01 -7.565651e+01| 0:0:05| splu 25 ^ 2 **
**56|1.000|0.239|1.9e-06|2.7e-09|3.3e+00|-7.391560e+01 -7.552509e+01| 0:0:05| splu 25 15 **
**57|0.925|0.358|1.2e-05|2.1e-09|2.6e+00|-7.381186e+01 -7.534775e+01| 0:0:05| splu 30 10 **
**58|0.819|0.399|4.8e-06|1.5e-09|1.9e+00|-7.421295e+01 -7.516090e+01| 0:0:05| splu 30 30 **
59|0.557|0.250|3.8e-04|1.4e-09|1.7e+00|-8.028812e+01 -7.506155e+01| 0:0:05| splu 20 30 **
60|0.676|0.218|1.2e-04|1.4e-09|1.6e+00|-7.612973e+01 -7.502841e+01| 0:0:05| splu 24 ^ 9 **
61|1.000|0.234|4.8e-06|1.3e-09|1.6e+00|-7.409898e+01 -7.499200e+01| 0:0:06| splu 30 30 **
62|0.058|0.045|5.9e-06|1.5e-09|1.7e+00|-7.412050e+01 -7.498537e+01| 0:0:06| splu 18 4 **
63|0.831|0.263|4.4e-06|1.3e-09|1.3e+00|-7.422101e+01 -7.493560e+01| 0:0:06| splu 30 ^16 **
64|0.022|0.021|5.4e-06|1.5e-09|1.5e+00|-7.424598e+01 -7.493714e+01| 0:0:06| splu 21 4 **
65|0.629|0.098|2.5e-06|1.7e-09|1.5e+00|-7.424680e+01 -7.492644e+01| 0:0:06| splu 24 ^15 **
66|0.097|0.119|3.8e-06|1.7e-09|1.6e+00|-7.430308e+01 -7.492552e+01| 0:0:06| splu 25 4 **
67|0.809|0.265|7.4e-07|1.5e-09|1.4e+00|-7.429567e+01 -7.489488e+01| 0:0:06| splu 17 30 **
68|0.030|0.027|2.3e-05|1.7e-09|1.5e+00|-7.464496e+01 -7.489676e+01| 0:0:07| splu 13 3 **
69|0.479|0.138|1.2e-05|1.7e-09|1.5e+00|-7.450166e+01 -7.488050e+01| 0:0:07| splu 30 8 **
70|1.000|0.210|5.7e-06|1.6e-09|1.3e+00|-7.445975e+01 -7.485465e+01| 0:0:07| splu 30 30 **
71|0.854|0.225|8.4e-06|1.5e-09|1.3e+00|-7.440827e+01 -7.484762e+01| 0:0:07| splu 30 20 **
72|0.220|0.236|5.3e-06|1.4e-09|1.3e+00|-7.433286e+01 -7.485923e+01| 0:0:07| splu 30 8 **
73|0.693|0.163|2.3e-06|1.4e-09|1.3e+00|-7.423073e+01 -7.485581e+01| 0:0:07| splu 30 ^23 **
74|0.323|0.281|1.5e-05|1.2e-09|1.2e+00|-7.451688e+01 -7.484220e+01| 0:0:08|
** stop: progress is too slow

-------------------------------------------------------------------
** number of iterations = 74

** primal objective value = -7.45168788e+01

** dual objective value = -7.48421968e+01

** gap := trace(XZ) = 1.18e+00

** relative gap = 7.84e-03

** actual relative gap = 2.16e-03

** rel. primal infeas (scaled problem) = 1.55e-05

** rel. dual " " " = 1.20e-09

** rel. primal infeas (unscaled problem) = 0.00e+00

** rel. dual " " " = 0.00e+00

** norm(X), norm(y), norm(Z) = 1.0e+09, 5.4e-01, 5.4e-01

** norm(A), norm(b), norm© = 1.2e+02, 6.4e+04, 2.4e+00

** Total CPU time (secs) = 7.52 **
** CPU time per iteration = 0.10 **
** termination code = -5

** DIMACS: 4.4e-04 0.0e+00 1.4e-09 0.0e+00 2.2e-03 7.8e-03

-------------------------------------------------------------------

------------------------------------------------------------
Status: Failed
Optimal value (cvx_optval): NaN

But I can still get values for q.

Thanks a lot.

(Jingwei Zz) #4

I think that I have solved the problem. The reason is that some values in my function are too small sometimes, making it extremely hard for cvx to perform.

Thanks for the help.

(seven) #5

Hello! I have the same question with you.How do you solved it?

(Erling D.Andersen) #6

In the original post I see

norm(X), norm(y), norm(Z) = 1.0e+09, 5.4e-01, 5.4e-0

so that means the primal solution is very large i.e. norm(X)=1e9. That is an indication of a bad model. How to fix that is model dependent i.e. you should use your knowledge of the model to understand what is wrong with it.

(ly) #7

Hello，I have the same problem, how do you solve it?

(ly) #8

hello ,did you solve it now

(Erling D.Andersen) #9

The issue is most likely a badly formulated problem. So either he/she reformulated the problem or did something else.

You can try using another optimizer like Mosek.

(Jingwei Zz) #10

The reason is that sometimes CVX will break due to the convergence requirement. I think you can try to multiply a constant in your objective to control the convergence of the CVX.

(ly) #11

Thanks for your replay,I’ll try it ! Thank you very much!

(ly) #12

hello,this method does not work for my code. The left and right sides of my equation constraint are always a little different. Are you also studying drones, can I discuss some problem with you?