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.
SDPT3 will be called several times to refine the solution.
Original size: 91 variables, 29 equality constraints
For improved efficiency, SDPT3 is solving the dual problem.
Approximation size: 300 variables, 159 equality constraints
-----------------------------------------------------------------
Target Conic Solver
Precision Error Status
---------------------------
1.221e-04 7.286e-01 Unbounded
1.221e-04 2.125e-02 Solved
1.221e-04 4.797e-05 Solved
1.221e-04 0.000e+00 Solved
1.490e-08 1.895e-08 Solved
1.490e-08 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