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);
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: 98 variables, 36 equality constraints
26 exponentials add 208 variables, 130 equality constraints
-----------------------------------------------------------------
Cones | Errors |
Mov/Act | Centering Exp cone Poly cone | Status
--------+---------------------------------+---------
21/ 21 | 3.182e+00 3.069e-01 0.000e+00 | Unbounded
25/ 25 | 3.207e+00 6.778e-01 2.356e-07 | Solved
26/ 26 | 5.268e-01 1.997e-02 4.381e-08 | Solved
20/ 26 | 2.964e-02 6.215e-05 4.628e-08 | Solved
5/ 26 | 2.139e-03 3.770e-07 4.631e-08 | Solved
0/ 26 | 1.527e-04 4.709e-08 4.630e-08 | 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