Simple power control in communication systems via GP.
n = 5;
sigma = 0.5*ones(n,1);
Pmin = 0.1*ones(n,1);
Pmax = 5*ones(n,1);
SINR_min = 2;
G = [1.0 0.1 0.2 0.1 0.0
0.1 1.0 0.1 0.1 0.0
0.2 0.1 2.0 0.2 0.2
0.1 0.1 0.2 1.0 0.1
0.0 0.0 0.2 0.1 1.0];
cvx_begin gp
variable P(n)
minimize( sum(P) )
subject to
Gdiag = diag(G);
Gtilde = G - diag(Gdiag);
inverseSINR = (sigma + Gtilde*P)./(Gdiag.*P);
P >= Pmin;
P <= Pmax;
inverseSINR <= (1/SINR_min);
cvx_end
fprintf(1,'\nThe minimum total transmitter power is %3.2f.\n',cvx_optval);
disp('Optimal power levels are: '), P
Successive approximation method to be employed.
For improved efficiency, sedumi is solving the dual problem.
sedumi will be called several times to refine the solution.
Original size: 88 variables, 26 equality constraints
26 exponentials add 208 variables, 130 equality constraints
-----------------------------------------------------------------
Errors
Act Centering Conic Status
-----------------------------------
21 0.000e+00 3.222e-01 Unbounded
26 2.697e+00 6.778e-01 Solved
26 3.000e-01 7.561e-03 Solved
26 3.136e-03 8.413e-07 Solved
26 3.598e-07 7.256e-08 Solved
26 0.000e+00 7.256e-08S Solved
26 6.667e-08S 1.567e-08 Solved
26 1.413e-08 3.524e-09 Solved
26 0.000e+00 3.524e-09S Solved
26 1.187e-07S 0.000e+00 Solved
-----------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): +17.0014
The minimum total transmitter power is 17.00.
Optimal power levels are:
P =
3.6601
3.1623
2.9867
4.1647
3.0276