CVX Status: Inaccurate/Solved and CVX Warning: The successive approximation method

i faced two problem here

  1. CVX Warning: Models involving “log” or other functions in the log, exp, and entropy family are solved using an experimental successive approximation method. This method is slower and less reliable than the method CVX employs for other models. Please see the section of the user’s guide entitled The successive approximation method for more details about the approach, and for instructions on how to suppress this warning message in the future.

The CVX status is Inaccurate/Solved
CVX Status for the Z-update: Inaccurate/Solved

I am new for CVX. How to get ride of these problems, please?

Here is the code:
% Step 3: Solve Z via CVX (binary MILP)
E3 = zeros(M,K,B);
cvx_begin quiet
variable Z_new(M,K,B) % relaxed allocation
expression E3(M,K,B)

    for m = 1:M
        for k = 1:K
            for b = 1:B
                e_self = square_abs(U(m,k,b) * H(m,k,b) * Z_new(m,k,b) - 1);
                e_int = 0;
                for mp = 1:M
                    for kp = 1:K
                        if ~(mp==m && kp==k)
                            e_int = e_int + square_abs(U(m,k,b) * H(mp,k,b) * Z_new(mp,kp,b));
                        end
                    end
                end
                e_noise = sigma2 * square_abs(U(m,k,b));
                E3(m,k,b) = e_self + e_int + e_noise;
            end
        end
    end
    minimize (BW/ln2*(sum(sum(sum(W .* E3 - log(W)/ln2)))));

    subject to      
        % Constraint 1: At most 1 user per cell per band
        for m = 1:M
            for b = 1:B
                sum(Z_new(m,:,b)) <= 1;
            end
        end
        % (2) Box constraints on relaxed Z
        0 <= Z_new <= 1;
        % Constraint 2: Min rate constraint
        for m = 1:M
            for k = 1:K
                rate_expr = 0;
                for b = 1:B
                    rate_expr = rate_expr + BW*(log(W(m,k,b))/ln2 - W(m,k,b)*E3(m,k,b)/ln2 + 1/ln2);
                end
                rate_expr >= env.R_min;
            end
        end    
cvx_end
Z = Z_new;
disp(['CVX Status for the Z-update: ', cvx_status]);

The CVX Warning must be due to log, exp, or some other exponential cone inducing function of a CVX variable or expression. In your code, the only appearance of such functions is log(W) and log(W(m,k,b). But W is never set or declared anywhere in your code, and given that W is multiplied by E3, W does appear to be input data. So there seems to be nothing in this version of the code which would generate that Warning message. Are you sure that Warning message was output when you ran this version of the code?

Remove the quiet option, which will result in all solver and CVX output being shown when you run the code.

Use mosek as solver if that is available to you.

Run the code and show all solver and CVX output. And make sure you show the complete code which generates that output. I have various follow-on recommendations I could make, but please start with the steps I listed. Then I can follow up as needed.

BTW,
E3 = zeros(M,K,B);
does nothing, because it is overridden by
expression E3(M,K,B)
which also initializes all elements of the expression to zero.

Thank you for your response. Actually W is one of the optimization variable that is defined above the Z update part. Let me give you the complete code.

There is one more problem as well: CVX Status for the Z-update: Inaccurate/Solved

% Iterations
max_iter = 200;
U = ones(M,K,B);

for iter= 1: max_iter
fprintf(‘— Iteration %d —\n’, iter);
% Step 1: Solve W via CVX
E = zeros(M,K,B);
cvx_clear
cvx_begin quiet
variable W_var(M,K,B) nonnegative
expression E(M,K,B)
for m = 1:M
for k = 1:K
for b = 1:B
e_self = square_abs(U(m,k,b) * H(m,k,b) * Z(m,k,b) - 1);
e_int = 0;
for mp = 1:M
for kp = 1:K
if ~(mp==m && kp==k)
e_int = e_int + square_abs(U(m,k,b) * H(mp,k,b) * Z(mp,kp,b));
end
end
end
e_noise = sigma2 * square_abs(U(m,k,b));
E(m,k,b) = e_self + e_int + e_noise;
end
end
end
minimize (BW/ln2*(sum(sum(sum(W_var .* E - log(W_var)/ln2)))));

cvx_end
W = W_var;
disp(['CVX Status for the W-update: ', cvx_status])

% Step 2: Solve U via CVX
E1 = zeros(M,K,B);
cvx_begin
    variable U_var(M,K,B)
    expression E1(M,K,B)
    for m = 1:M
        for k = 1:K
            for b = 1:B
                e_self = square_abs(U_var(m,k,b) * H(m,k,b) * Z(m,k,b) - 1);
                e_int = 0;
                for mp = 1:M
                    for kp = 1:K
                        if ~(mp==m && kp==k)
                            e_int = e_int + square_abs(U_var(m,k,b) * H(mp,k,b) * Z(mp,kp,b));
                        end
                    end
                end
                e_noise = sigma2 * square_abs(U_var(m,k,b) );
                E1(m,k,b) = e_self + e_int + e_noise;
            end
        end
    end
    minimize (BW/ln2*(sum(sum(sum(W .* E1 - log(W)/ln2)))));

cvx_end
U = U_var;
disp(['CVX Status for the U-update: ', cvx_status])

% Step 3: Solve Z via CVX (binary MILP)
cvx_begin quiet
    variable Z_new(M,K,B)  % relaxed allocation
    expression E3(M,K,B)

    for m = 1:M
        for k = 1:K
            for b = 1:B
                e_self = square_abs(U(m,k,b) * H(m,k,b) * Z_new(m,k,b) - 1);
                e_int = 0;
                for mp = 1:M
                    for kp = 1:K
                        if ~(mp==m && kp==k)
                            e_int = e_int + square_abs(U(m,k,b) * H(mp,k,b) * Z_new(mp,kp,b));
                        end
                    end
                end
                e_noise = sigma2 * square_abs(U(m,k,b));
                E3(m,k,b) = e_self + e_int + e_noise;
            end
        end
    end
    minimize (BW/ln2*(sum(sum(sum(W .* E3 - log(W)/ln2)))));

    subject to      
        % Constraint 1: At most 1 user per cell per band
        for m = 1:M
            for b = 1:B
                sum(Z_new(m,:,b)) <= 1;
            end
        end
        % (2) Box constraints on relaxed Z
        0 <= Z_new <= 1;
        % Constraint 2: Min rate constraint
        for m = 1:M
            for k = 1:K
                rate_expr = 0;
                for b = 1:B
                    rate_expr = rate_expr + BW*(log(W(m,k,b))/ln2 - W(m,k,b)*E3(m,k,b)/ln2 + 1/ln2);
                end
                rate_expr >= env.R_min;
            end
        end    
cvx_end
Z = Z_new;
disp(['CVX Status for the Z-update: ', cvx_status]);

end

You haven’t shown the output. Please make clear which output goes with which CVX invocation.

Oh here it is:
Initial sum rate: 28.385509 Mbps
— Iteration 1 —
CVX Warning:
Models involving “log” or other functions in the log, exp, and entropy
family are solved using an experimental successive approximation method.
This method is slower and less reliable than the method CVX employs for
other models. Please see the section of the user’s guide entitled
The successive approximation method
for more details about the approach, and for instructions on how to
suppress this warning message in the future.

Successive approximation method to be employed.
For improved efficiency, SDPT3 is solving the dual problem.
SDPT3 will be called several times to refine the solution.
Original size: 96 variables, 48 equality constraints
24 exponentials add 192 variables, 120 equality constraints

Cones | Errors |
Mov/Act | Centering Exp cone Poly cone | Status
--------±--------------------------------±--------
24/ 24 | 6.464e-01 2.576e-02 0.000e+00 | Solved
24/ 24 | 1.287e-02 1.036e-05 0.000e+00 | Solved
0/ 0 | 3.771e-06 0.000e+00 0.000e+00 | Solved

Status: Solved
Optimal value (cvx_optval): +3.16385e+07

CVX Status for the W-update: Solved

Calling SDPT3 4.0: 360 variables, 144 equality constraints
For improved efficiency, SDPT3 is solving the dual problem.

num. of constraints = 144
dim. of sdp var = 240, num. of sdp blk = 120


SDPT3: Infeasible path-following algorithms


version predcorr gam expon scale_data
HKM 1 0.000 1 0
it pstep dstep pinfeas dinfeas gap prim-obj dual-obj cputime

0|0.000|0.000|1.4e+00|1.1e+01|1.0e+10| 4.998490e+08 0.000000e+00| 0:0:00| chol 1 1
1|0.989|1.000|1.5e-02|5.0e-01|1.0e+09| 3.433641e+08 -4.245536e+08| 0:0:00| chol 1 1
2|0.986|0.968|2.1e-04|2.6e-01|3.2e+07|-3.090106e+07 -8.244282e+06| 0:0:00| chol 1 1
3|0.910|1.000|1.9e-05|1.2e-01|7.0e+06|-4.604434e+07 -2.516823e+07| 0:0:00| chol 1 1
4|0.629|1.000|7.2e-06|6.2e-02|3.0e+06|-4.780743e+07 -3.681913e+07| 0:0:00| chol 1 1
5|0.567|0.244|3.1e-06|5.5e-02|2.3e+06|-4.840576e+07 -3.843804e+07| 0:0:00| chol 1 1
6|0.326|0.193|2.1e-06|4.7e-02|2.1e+06|-4.857824e+07 -4.001011e+07| 0:0:01| chol 1 1
7|0.278|0.092|1.5e-06|4.4e-02|2.0e+06|-4.860096e+07 -4.069782e+07| 0:0:01| chol 1 1
8|0.324|0.422|1.0e-06|2.7e-02|1.7e+06|-4.871153e+07 -4.415890e+07| 0:0:01| chol 1 1
9|0.307|0.117|7.1e-07|2.4e-02|1.7e+06|-4.864991e+07 -4.466290e+07| 0:0:01| chol 1 1
10|0.117|0.120|6.2e-07|2.1e-02|1.6e+06|-4.858275e+07 -4.499492e+07| 0:0:01| chol 1 1
11|0.315|0.359|4.3e-07|1.4e-02|1.4e+06|-4.852187e+07 -4.631348e+07| 0:0:01| chol 1 1
12|0.147|0.109|3.6e-07|1.2e-02|1.5e+06|-4.839784e+07 -4.637467e+07| 0:0:01| chol 1 1
13|0.316|0.285|2.5e-07|8.8e-03|1.3e+06|-4.820275e+07 -4.673947e+07| 0:0:01| chol 1 1
14|0.246|0.239|1.9e-07|6.7e-03|1.3e+06|-4.793317e+07 -4.662307e+07| 0:0:01| chol 1 1
15|0.242|0.178|1.4e-07|5.5e-03|1.4e+06|-4.761200e+07 -4.654347e+07| 0:0:01| chol 1 1
16|0.315|0.227|9.7e-08|4.3e-03|1.4e+06|-4.712263e+07 -4.626926e+07| 0:0:01| chol 1 1
17|0.262|0.193|7.2e-08|3.5e-03|1.5e+06|-4.663970e+07 -4.581099e+07| 0:0:01| chol 1 1
18|0.118|0.324|6.3e-08|2.3e-03|1.6e+06|-4.642426e+07 -4.556435e+07| 0:0:01| chol 1 1
19|0.294|0.383|4.5e-08|1.4e-03|1.7e+06|-4.575119e+07 -4.508492e+07| 0:0:01| chol 1 1
20|0.119|0.133|3.9e-08|1.3e-03|1.8e+06|-4.545201e+07 -4.466913e+07| 0:0:01| chol 1 1
21|0.387|0.527|2.4e-08|5.9e-04|1.7e+06|-4.458977e+07 -4.400588e+07| 0:0:01| chol 1 1
22|0.255|0.145|1.8e-08|5.1e-04|1.8e+06|-4.393104e+07 -4.365694e+07| 0:0:01| chol 1 1
23|0.248|0.287|1.4e-08|3.6e-04|1.7e+06|-4.344743e+07 -4.297084e+07| 0:0:01| chol 1 1
24|0.410|0.325|8.0e-09|2.4e-04|1.7e+06|-4.245621e+07 -4.213402e+07| 0:0:01| chol 1 1
25|0.075|0.272|7.4e-09|1.8e-04|1.8e+06|-4.226749e+07 -4.130423e+07| 0:0:01| chol 1 1
26|0.212|0.382|5.8e-09|1.1e-04|2.2e+06|-4.159218e+07 -4.072427e+07| 0:0:01| chol 1 1
27|0.470|0.463|3.1e-09|5.9e-05|2.0e+06|-4.024832e+07 -4.007681e+07| 0:0:01| chol 1 1
28|0.240|0.275|2.3e-09|4.3e-05|2.0e+06|-3.973565e+07 -3.949415e+07| 0:0:01| chol 1 1
29|0.347|0.443|1.5e-09|2.4e-05|2.0e+06|-3.893858e+07 -3.873445e+07| 0:0:01| chol 1 1
30|0.424|0.401|8.8e-10|1.4e-05|1.9e+06|-3.810221e+07 -3.836858e+07| 0:0:01| chol 1 1
31|0.167|0.223|7.3e-10|1.1e-05|1.9e+06|-3.780873e+07 -3.802343e+07| 0:0:01| chol 1 1
32|0.275|0.514|5.3e-10|5.4e-06|1.9e+06|-3.739418e+07 -3.765180e+07| 0:0:01| chol 1 1
33|0.589|0.705|2.2e-10|1.6e-06|1.5e+06|-3.669550e+07 -3.733169e+07| 0:0:01| chol 1 1
34|0.350|0.832|1.4e-10|2.7e-07|1.3e+06|-3.652285e+07 -3.706441e+07| 0:0:01| chol 1 1
35|0.604|1.000|5.6e-11|2.7e-11|9.8e+05|-3.633833e+07 -3.695884e+07| 0:0:01| chol 1 1
36|0.969|1.000|1.7e-12|1.1e-11|3.4e+05|-3.643763e+07 -3.676396e+07| 0:0:01| chol 1 1
37|0.975|0.981|4.2e-14|1.2e-12|7.8e+03|-3.660949e+07 -3.661709e+07| 0:0:01| chol 1 1
38|0.949|0.982|1.7e-15|1.1e-12|3.7e+02|-3.661357e+07 -3.661392e+07| 0:0:01| chol 1 1
39|0.993|1.000|4.7e-14|1.0e-12|3.3e+01|-3.661381e+07 -3.661384e+07| 0:0:01| chol 1 1
40|0.954|0.978|3.3e-13|9.9e-13|1.2e+00|-3.661382e+07 -3.661383e+07| 0:0:01| chol 2 2
41|0.989|1.000|1.6e-13|9.5e-13|8.5e-02|-3.661383e+07 -3.661383e+07| 0:0:02|
stop: max(relative gap, infeasibilities) < 1.49e-08

number of iterations = 41
primal objective value = -3.66138251e+07
dual objective value = -3.66138251e+07
gap := trace(XZ) = 8.52e-02
relative gap = 1.16e-09
actual relative gap = 1.16e-09
rel. primal infeas (scaled problem) = 1.63e-13
rel. dual " " " = 9.50e-13
rel. primal infeas (unscaled problem) = 0.00e+00
rel. dual " " " = 0.00e+00
norm(X), norm(y), norm(Z) = 2.5e+07, 9.2e+08, 9.2e+08
norm(A), norm(b), norm(C) = 1.4e+01, 2.0e+07, 1.4e+01
Total CPU time (secs) = 1.51
CPU time per iteration = 0.04
termination code = 0
DIMACS: 1.6e-12 0.0e+00 6.6e-12 0.0e+00 1.2e-09 1.2e-09


Status: Solved
Optimal value (cvx_optval): +1.82995e+07

CVX Status for the U-update: Solved

Calling SDPT3 4.0: 352 variables, 120 equality constraints
For improved efficiency, SDPT3 is solving the dual problem.

num. of constraints = 120
dim. of sdp var = 192, num. of sdp blk = 96
dim. of linear var = 64


SDPT3: Infeasible path-following algorithms


version predcorr gam expon scale_data
HKM 1 0.000 1 0
it pstep dstep pinfeas dinfeas gap prim-obj dual-obj cputime

0|0.000|0.000|7.9e+01|1.4e+01|3.7e+04| 1.546907e+03 0.000000e+00| 0:0:00| chol 1 1
1|0.884|0.930|9.2e+00|1.0e+00|3.9e+03| 1.285004e+03 1.298877e+02| 0:0:00| chol 1 1
2|0.199|0.739|7.4e+00|2.8e-01|2.0e+03| 1.205701e+03 2.300221e+03| 0:0:00| chol 1 1
3|0.021|0.555|7.2e+00|1.2e-01|7.4e+03| 1.197888e+03 2.667662e+06| 0:0:00| chol 1 1
4|0.000|0.000|7.2e+00|1.2e-01|1.1e+05| 1.806767e+03 2.374830e+07| 0:0:00| chol 1 2
5|0.000|0.000|7.2e+00|1.2e-01|1.3e+05| 2.937266e+03 2.719476e+07| 0:0:00| chol 1 1
6|0.000|0.000|7.2e+00|1.2e-01|1.4e+05| 7.812434e+03 2.763129e+07| 0:0:00| chol 1 1
7|0.000|0.000|7.2e+00|1.2e-01|1.6e+05| 1.686808e+04 2.471334e+07| 0:0:01| chol 1 1
8|0.000|0.000|7.2e+00|1.2e-01|2.9e+05| 6.196062e+04 2.396024e+07| 0:0:01|
*** Too many tiny steps: restarting with the following iterate.
*** [X,y,Z] = infeaspt(blk,At,C,b,2,1e5); chol 1 1
9|0.965|0.889|2.8e+04|9.6e+03|3.1e+11| 1.615468e+07 4.002255e+05| 0:0:01| chol 1 1
10|0.986|0.987|3.8e+02|1.3e+02|4.2e+09| 1.613290e+07 4.444447e+05| 0:0:01| chol 1 1
11|0.967|0.985|1.2e+01|2.0e+00|8.2e+07| 1.589167e+07 4.630946e+05| 0:0:01| chol 1 1
12|0.362|0.884|7.8e+00|2.8e-01|2.3e+07| 1.424739e+07 3.354616e+06| 0:0:01| chol 1 1
13|0.282|0.037|5.6e+00|2.8e-01|3.4e+07| 1.884655e+07 6.983674e+07| 0:0:01| chol 1 1
14|0.410|0.689|3.3e+00|9.5e-02|3.5e+07| 1.786054e+07 5.845530e+06| 0:0:01| chol 1 1
15|1.000|0.649|5.0e-07|3.8e-02|1.5e+07| 1.866303e+07 1.548493e+07| 0:0:01| chol 1 1
16|0.924|0.974|3.3e-07|4.3e-03|1.3e+06| 1.137456e+07 1.130999e+07| 0:0:01| chol 1 1
17|0.986|1.000|3.4e-07|1.7e-03|3.8e+05| 1.075902e+07 1.084419e+07| 0:0:01| chol 1 1
18|0.945|0.930|1.1e-07|9.0e-04|3.9e+04| 1.055043e+07 1.076183e+07| 0:0:01| chol 1 1
19|1.000|1.000|3.1e-07|4.2e-04|4.5e+03| 1.053127e+07 1.064373e+07| 0:0:01| chol 1 1
20|0.974|0.972|2.6e-06|5.3e-05|1.3e+02| 1.052872e+07 1.054323e+07| 0:0:01| chol 1 1
21|0.986|0.985|6.2e-06|8.1e-07|2.1e+00| 1.052865e+07 1.052888e+07| 0:0:01|
stop: relative gap < infeasibility

number of iterations = 21
primal objective value = 1.05286527e+07
dual objective value = 1.05288767e+07
gap := trace(XZ) = 2.15e+00
relative gap = 1.02e-07
actual relative gap = -1.06e-05
rel. primal infeas (scaled problem) = 6.19e-06
rel. dual " " " = 8.13e-07
rel. primal infeas (unscaled problem) = 0.00e+00
rel. dual " " " = 0.00e+00
norm(X), norm(y), norm(Z) = 2.5e+07, 5.9e+06, 5.9e+06
norm(A), norm(b), norm(C) = 4.8e+01, 3.0e+00, 1.9e+01
Total CPU time (secs) = 0.98
CPU time per iteration = 0.05
termination code = -1
DIMACS: 9.3e-06 0.0e+00 2.3e-06 0.0e+00 -1.1e-05 1.0e-07


Status: Inaccurate/Solved
Optimal value (cvx_optval): +1.8436e+07

CVX Status for the Z-update: Inaccurate/Solved
Sum rate: 26.698147 Mbps
— Iteration 2 —

Successive approximation method to be employed.
For improved efficiency, SDPT3 is solving the dual problem.
SDPT3 will be called several times to refine the solution.
Original size: 96 variables, 48 equality constraints
24 exponentials add 192 variables, 120 equality constraints

Cones | Errors |
Mov/Act | Centering Exp cone Poly cone | Status
--------±--------------------------------±--------
24/ 24 | 2.043e+00 2.716e-01 0.000e+00 | Solved
23/ 24 | 1.352e-01 1.146e-03 7.905e-11 | Solved
1/ 6 | 5.730e-04 2.045e-08 1.073e-10 | Solved
0/ 7 | 1.977e-06 6.350e-11 6.350e-11 | Solved

Status: Solved
Optimal value (cvx_optval): +7.62597e+06

Perhaps your existing code will result in successfully solving your original problem, but I don’t know.

Here are steps to take to improve your prospects

  1. Use Mosek as solver if available.
  2. Improve the numerical scaling of your problem, at least for the first iteration. Optimal objective value around 1e7 is huge, and may present numerical challenges, including resulting in naccurate solved. I don’t know what the magnitudes of the optimal variable values are, but very large magnitude is not good. Ideally you should try to choose units in the problem so that all non-zero input data is within a small number of orders of magnitude of 1, and so that the magnitude of the optimal objective value is not larger than 1 e3 or 1e4.
  3. If you don’t have Mosek as solver, it might help to follow the advice in CVXQUAD: How to use CVXQUAD's Pade Approximant instead of CVX's unreliable Successive Approximation for GP mode, log, exp, entr, rel_entr, kl_div, log_det, det_rootn, exponential cone. CVXQUAD's Quantum (Matrix) Entropy & Matrix Log related functions . But even if you do, it might not necessarily improve things in your case.
    4.Unsafeguarded SCA is unreliable, and it may be that successive iterates get wilder and wilder, although that is not necessarily evident in the initial iterations you showed. But it may be that even if numerical scaling is good in the first iteration, it could get bad in later iterations.

Thank you for the feedback. I will try your suggestions, especially on scaling and solver settings. I appreciate the explanation about the successive approximation method.

Hello,

The above problem are still there even I did some normalizations but the solution converged and it turns out almost optimal solution as expected.

Now I want to ask one question originally the problem was binary with respect to Z update which is non convex but when I relaxed Z between 0 and 1 [0, 1], the problem become convex as implemented above. My question, is that is there any way to solve this problem if we consider Z binary?

Not with SDPT3.

However, Mosek as solver will handle exponential cone (log) problems in which some or all variables are binary (or integer). No idea how fast it will run. Whether it will be successfully solved if it is in the context of SCA is another matter.If it turns out that SCA is not needed if you explicitly use binary variables (I don’t know whether that’s the case, because I don’t understand the problem you are actually trying to solve), that may perhaps be for the better; although if there are more than a handful of binary variables, there is the possibility of the runtime becoming very long.

Thanks for your feedback. Actually I used cvx_mosek as a solver and it returns “Solved” but Z and sum-rate never change as shown below.

Here is the only change what i made from the above:
% Step 3: Solve Z via CVX (binary MILP)
cvx_begin quiet
cvx_solver mosek
variable Z_new(M,K,B) binary
expression E3(M,K,B)
— Iteration 1 —

Calling Mosek 9.1.9: 112 variables, 64 equality constraints

MOSEK Version 9.1.9 (Build date: 2019-11-21 11:34:40)
Copyright (c) MOSEK ApS, Denmark. WWW: mosek.com
Platform: Windows/64-X86

MOSEK warning 57: A large value of 1.2e+08 has been specified in c for variable ‘’ (60).
MOSEK warning 57: A large value of 1.2e+08 has been specified in c for variable ‘’ (63).
MOSEK warning 57: A large value of 1.2e+08 has been specified in c for variable ‘’ (66).
MOSEK warning 57: A large value of 1.2e+08 has been specified in c for variable ‘’ (69).
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 64
Cones : 24
Scalar variables : 112
Matrix variables : 0
Integer variables : 24

Optimizer started.
Mixed integer optimizer started.
Threads used: 6
Presolve started.
Presolve terminated. Time = 0.00
Presolved problem: 48 variables, 17 constraints, 40 non-zeros
Presolved problem: 0 general integer, 6 binary, 42 continuous
Clique table size: 3
BRANCHES RELAXS ACT_NDS DEPTH BEST_INT_OBJ BEST_RELAX_OBJ REL_GAP(%) TIME
0 1 1 0 7.0110222396e+05 7.0110222396e+05 0.00e+00 0.0
An optimal solution satisfying the relative gap tolerance of 1.00e-02(%) has been located.
The relative gap is 0.00e+00(%).
An optimal solution satisfying the absolute gap tolerance of 0.00e+00 has been located.
The absolute gap is 0.00e+00.

Objective of best integer solution : 7.011022239583e+05
Best objective bound : 7.011022239583e+05
Construct solution objective : Not employed
User objective cut value : Not employed
Number of cuts generated : 0
Number of branches : 0
Number of relaxations solved : 1
Number of interior point iterations: 14
Number of simplex iterations : 0
Time spend presolving the root : 0.00
Time spend optimizing the root : 0.00
Mixed integer optimizer terminated. Time: 0.00

Optimizer terminated. Time: 0.06

Integer solution solution summary
Problem status : PRIMAL_FEASIBLE
Solution status : INTEGER_OPTIMAL
Primal. obj: 7.0110222396e+05 nrm: 6e+00 Viol. con: 0e+00 var: 0e+00 cones: 8e-17 itg: 1e-17
Optimizer summary
Optimizer - time: 0.06
Interior-point - iterations : 0 time: 0.00
Basis identification - time: 0.00
Primal - iterations : 0 time: 0.00
Dual - iterations : 0 time: 0.00
Clean primal - iterations : 0 time: 0.00
Clean dual - iterations : 0 time: 0.00
Simplex - time: 0.00
Primal simplex - iterations : 0 time: 0.00
Dual simplex - iterations : 0 time: 0.00
Mixed integer - relaxations: 1 time: 0.00


Status: Solved
Optimal value (cvx_optval): +9.41313e+06

CVX Status for the Z-update: Solved
Sum rate: 25.211546 Mbps
— Iteration 2 —

Calling Mosek 9.1.9: 184 variables, 112 equality constraints

MOSEK Version 9.1.9 (Build date: 2019-11-21 11:34:40)
Copyright (c) MOSEK ApS, Denmark. WWW: mosek.com
Platform: Windows/64-X86

MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (0) of matrix ‘A’.
MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (1) of matrix ‘A’.
MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (2) of matrix ‘A’.
MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (3) of matrix ‘A’.
MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (4) of matrix ‘A’.
MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (5) of matrix ‘A’.
MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (6) of matrix ‘A’.
MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (7) of matrix ‘A’.
MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (20) of matrix ‘A’.
MOSEK warning 710: #2 (nearly) zero elements are specified in sparse col ‘’ (21) of matrix ‘A’.
Warning number 710 is disabled.
MOSEK warning 57: A large value of 1.2e+08 has been specified in c for variable ‘’ (120).
MOSEK warning 57: A large value of 1.2e+08 has been specified in c for variable ‘’ (123).
MOSEK warning 57: A large value of 1.2e+08 has been specified in c for variable ‘’ (126).
MOSEK warning 57: A large value of 1.2e+08 has been specified in c for variable ‘’ (129).
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 112
Cones : 48
Scalar variables : 184
Matrix variables : 0
Integer variables : 24

Optimizer started.
Mixed integer optimizer started.
Threads used: 6
Presolve started.
Presolve terminated. Time = 0.00
Presolved problem: 66 variables, 19 constraints, 48 non-zeros
Presolved problem: 6 general integer, 6 binary, 54 continuous
Clique table size: 3
BRANCHES RELAXS ACT_NDS DEPTH BEST_INT_OBJ BEST_RELAX_OBJ REL_GAP(%) TIME
0 1 1 0 9.3572724693e+06 9.3572724693e+06 0.00e+00 0.0
An optimal solution satisfying the relative gap tolerance of 1.00e-02(%) has been located.
The relative gap is 0.00e+00(%).
An optimal solution satisfying the absolute gap tolerance of 0.00e+00 has been located.
The absolute gap is 0.00e+00.

Objective of best integer solution : 9.357272469292e+06
Best objective bound : 9.357272469292e+06
Construct solution objective : Not employed
User objective cut value : Not employed
Number of cuts generated : 0
Number of branches : 0
Number of relaxations solved : 1
Number of interior point iterations: 14
Number of simplex iterations : 0
Time spend presolving the root : 0.00
Time spend optimizing the root : 0.00
Mixed integer optimizer terminated. Time: 0.02

Optimizer terminated. Time: 0.08

Integer solution solution summary
Problem status : PRIMAL_FEASIBLE
Solution status : INTEGER_OPTIMAL
Primal. obj: 9.3572724693e+06 nrm: 8e+00 Viol. con: 0e+00 var: 0e+00 cones: 8e-17 itg: 1e-17
Optimizer summary
Optimizer - time: 0.08
Interior-point - iterations : 0 time: 0.00
Basis identification - time: 0.00
Primal - iterations : 0 time: 0.00
Dual - iterations : 0 time: 0.00
Clean primal - iterations : 0 time: 0.00
Clean dual - iterations : 0 time: 0.00
Simplex - time: 0.00
Primal simplex - iterations : 0 time: 0.00
Dual simplex - iterations : 0 time: 0.00
Mixed integer - relaxations: 1 time: 0.02


Status: Solved
Optimal value (cvx_optval): +9.41313e+06

CVX Status for the Z-update: Solved
Sum rate: 25.211546 Mbps
— Iteration 3 —

Items 2 and 4 of my reply two replies back still apply. Also, Mosek provides warnings about very large magnitude and near zero numbers. You need to improve numerical scaling. But even if you do on the first iteration, the SCA solutions may get more and more extreme, eventually causing very large or small magnitude input data.