Section 11.8.4: Network rate optimization
rand('state',1)
L = 20;
n = 10;
k = 7;
A = double(rand(L,n) <= k/L);
c = 0.9*rand(L,1)+0.1;
cvx_begin
variable x(n);
maximize(sum(log(x)))
subject to
A*x <= c
cvx_end
primal_obj = cvx_optval;
cvx_begin
variable lambda(L);
minimize(c'*lambda-sum(log(A'*lambda))-n)
subject to
lambda >= 0
cvx_end
dual_obj = cvx_optval;
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: 50 variables, 20 equality constraints
10 exponentials add 80 variables, 50 equality constraints
-----------------------------------------------------------------
Errors
Act Centering Conic Status
-----------------------------------
10 4.945e+00 2.563e+00 Solved
10 1.011e+00 9.250e-02 Solved
10 4.714e-02 1.838e-04 Solved
10 1.949e-03 2.140e-07 Solved
10 2.514e-04 0.000e+00 Solved
-----------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): -31.5685
Successive approximation method to be employed.
sedumi will be called several times to refine the solution.
Original size: 50 variables, 20 equality constraints
10 exponentials add 80 variables, 50 equality constraints
-----------------------------------------------------------------
Errors
Act Centering Conic Status
-----------------------------------
10 3.945e+00 1.547e+00 Solved
10 6.209e-01 3.349e-02 Solved
10 1.887e-02 2.970e-05 Solved
10 1.050e-03 6.003e-08 Solved
-----------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): -31.5685