# A strange phenomenon with this maximize problem

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;
``````

cvx_end

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;
S_U1(n) >= H^2;

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!

I have no idea what you’re trying to say. Perhaps if you show the solver and CVX output, forum readers could assess the situation.

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

I still have no idea what you’ve done. You are apparently iteratively solving different CVX instantiations, but don’t show the code.

However, when I add this code line,

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!

This are remainder description, thanks for your waiting!

1 Like

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!

Here is a list of solvers available under YALMIP under MATLAB https://yalmip.github.io/allsolvers/ .