Hello, everyone ! I meet some strange thing in this maximize problem. The code list is below:
cvx_begin
maximize (eta_trj)
subject to
(1/N)*(sum(Rlb_BU1)-N*log(sig2)/log(2)-sum(RT_U1(n))) >= eta_trj;
for n = 2:N
sum(RS_U1(2:n)) <= sum(Rlb_U1A(1:n-1));
end
for n = 1:N
S_U1(n) <= square_pos(norm(qr_1(n,:)-w)) + 2*(qr_1(n,:)-w)*((q_1cvx(n,1:2)-qr_1(n,:)).')+H^2;
T_U1(n) <= square_pos(norm(qr_1(n,:)-r_1)) + 2*(qr_1(n,:)-r_1)*((q_1cvx(n,1:2)-qr_1(n,:)).')+H^2; % 16:28
T_U1(n) >= H^2;
S_U1(n) >= H^2;
end
for n = 1:(N-1)
norm(q_1cvx(n+1,1:2)-q_1cvx(n,1:2)) <= S_max; % 16:28
end
norm(q_1cvx(N,1:2)-F_1) <= S_max;
norm(q_1cvx(1,1:2)-i_1) <= S_max;
The optimum value will decrease in every iteration and produce infeasible as result.
However, the value will increase in every iteration and converge at last.
Are there someone know the reason? Thanks!
OK, thanks for your reply, I will show them. I want to mention that I modify my codes as below:
I use Mosek 9.3.5
variables eta_trj q_1cvx(N,2) q_2cvx(N,2) T_U1(N) T_U2(N) S_U1(n) S_U2(n)
cvx_begin
maximize (eta_trj)
subject to
(1/(N-1))*(sum(Rlb_BU1(2:N))-(N-1)*log(sig2)/log(2)-sum(RT_U1(2:N))) >= eta_trj;
for n = 2:N
sum(RS_U1(2:n)) <= sum(Rlb_U1A(1:n-1));
end
for n = 1:(N-1)
norm(q_1cvx(n+1,1:2)-q_1cvx(n,1:2)) <= S_max;
end
cvx_end
If I run this codes and put optimum value into next iteration for initial point, the value will increase and converge to a constant such as:
1-th iteration
Status: Solved
Optimal value (cvx_optval): +16.8579
2-th iteration
Status: Solved
Optimal value (cvx_optval): +22.0206
for n = 2:N
T_U1(n) <= square_pos(norm(qr_1(n,:)-r_1)) + 2*(qr_1(n,:)-r_1)*((q_1cvx(n,1:2)-qr_1(n,:)).')+H^2;
T_U1(n) >= H^2;
end
and solve the problem with CVX and put the optimum value into next iteration as its initial point, the maximum value will decrease and even produce infeasible status.
code list:
variables eta_trj q_1cvx(N,2) q_2cvx(N,2) T_U1(N) T_U2(N) S_U1(n) S_U2(n)
cvx_begin
maximize (eta_trj)
subject to
(1/(N-1))(sum(Rlb_BU1(2:N))-(N-1)log(sig2)/log(2)-sum(RT_U1(2:N))) >= eta_trj;
for n = 2:N
sum(RS_U1(2:n)) <= sum(Rlb_U1A(1:n-1));
end
for n = 2:N
T_U1(n) <= square_pos(norm(qr_1(n,:)-r_1)) + 2(qr_1(n,:)-r_1)((q_1cvx(n,1:2)-qr_1(n,:)).')+H^2;
T_U1(n) >= H^2;
end
for n = 1:(N-1)
norm(q_1cvx(n+1,1:2)-q_1cvx(n,1:2)) <= S_max;
end
cvx_end
result:
1-th iteration
Status: Infeasible
Optimal value (cvx_optval): -Inf
The constraint is important in my codes and I write this code according to a published paper, so the result puzzle me.
I want to ask for some reasons or some ideas to solve this problem. Thanks!
You are using an in iterative scheme to solve a succession of CVX problems. Perhaps your algorithm is lousy. Successive Convex Approximation (SCA) or whatever you are doing is essentially out of scope of this forum in the sense that you are on your own if the SCA scheme doesn’t work well. You are probably better off using a high quality local or global non-convex optimization solver.
Did you solve the exact same problem instance (input data) as the paper? Did you use the same starting point? Are all the details of your program identical to those in the paper? Even if yes to all, differences in solver or solver version or math library could result in a different argmax, which could cause a different overall algorithm solution path.
OK,Thanks for your advices. There are some constricts in my scheme which are different from the paper in form but same in essence, I will try the form later. And could you tell me some high-quality global non-convex or local solver? Thanks!
Hi Microption,
If you could extend a(1) copy of your published paper for the benefit of the audience and
appreciating of your problem, it will go along way in resolving your issue