Hi,
I’m trying to solve the following problem with CVX. It says the problem is unbounded and gives +inf as the answer. However, the r_1 and r_2 (and lambda_1 and lambda_2) are both upper-bounded. Could someone explain to me why this is happening please?
cvx_solver mosek %sdpt3 % mosek %%sedumi
cvx_begin %sdp quiet
variable W_1( dim, dim, no_chan ) complex hermitian; % matrix has complex elements and is hermitian
variable W_2( dim, dim, no_chan ) complex hermitian; % matrix has complex elements and is hermitian
variables lambda_1 lambda_2 ;
variables r_1( no_chan ) r_2( no_chan );
variables gamma_1( no_chan ) gamma_2( no_chan );
variables P_1 P_2;
variables sum_rate_1 sum_rate_2;
power_1 = 0;
power_2 = 0;
rate_1 = 0;
rate_2 = 0;
maximize( lambda_1 + lambda_2 )
subject to
for c = 1:no_chan
W_1( :, :, c ) == hermitian_semidefinite( dim ); % matrix is psd
W_2( :, :, c ) == hermitian_semidefinite( dim ); % matrix is psd
r_1( c ) <= se * ( 1.0 * gamma_1( c )^0.36 + 0.3 );
r_2( c ) <= se * ( 1.0 * gamma_2( c )^0.36 + 0.3 );
r_1( c ) <= se * 6.88; %snr_cap;
r_2( c ) <= se * 6.88; %snr_cap;
r_1( c ) >= 0;
r_2( c ) >= 0;
gamma_1( c ) == trace( real( H_1' * U_r_1 * H_1 * W_1( :, :, c ) ) ) / noise_power ;
gamma_2( c ) == trace( real( H_2' * U_r_2 * H_2 * W_2( :, :, c ) ) ) / noise_power ;
gamma_1( c ) >= 0;
gamma_2( c ) >= 0;
for o = 1:no_interfered_BS
( trace( real( h_1( :, o ) * h_1( :, o )' * W_1( :, :, c ) ) ) + trace( real( h_2( :, o ) * h_2( :, o )' * W_2( :, :, c ) ) ) ) / int_thresh <= 1;
end
power_1 = power_1 + trace( real( W_1( :, :, c ) ) );
power_2 = power_2 + trace( real( W_2( :, :, c ) ) );
rate_1 = rate_1 + r_1( c );
rate_2 = rate_2 + r_2( c );
end
P_1 == power_1;
P_2 == power_2;
P_1 <= P_plane ;
P_2 <= P_plane ;
sum_rate_1 == rate_1;
sum_rate_2 == rate_2;
lambda_1 == sum_rate_1;
lambda_2 == sum_rate_2;
lambda_1 >= 0;
lambda_2 >= 0;
cvx_end
I don’t know. You haven’t provided a reproducible problem with input data.
It looks like the upper bounds on lambda_1 and lambda_2 flow through sum_rate_1, sun_rate_2, to rate_1, rate_2, to r_1 and r_2, which appear to be upper bounded. Is se
finite? What is its value?
What version of CVX are you using? Do not use CVX 3.0beta, which is riddled with bugs, and does not always handle constraints correctly.
How do I upload the inputs .mat file here?
Yes. se = 168000.
I’m using version 2.
That is a very large numerical value (upper bound on r_1, r_2 is > 1e6) and may cause difficulties in the solver. Try improving the scaling of the model, for instance by changing units, so that input data is within a few orders of magnitude of 1.
1 Like
Thank you. I’ll try that.
I have another question .The value of int_thresh in the code is 10^-13. Could that cause issues as well?
Yes, that is a terrible number no matter what you do with it. You are dividing by it, so you are multiplying by 1e13.
You haven’t shown us the Mosek output. I suspect it issued warnings about input numbers. You should pay attention to those warnings.
I divided se by 10^6 and it’s working now. Here’s the output:
Calling Mosek 9.1.9: 155460 variables, 14116 equality constraints
MOSEK Version 9.1.9 (Build date: 2019-11-21 11:32:15)
Copyright © MOSEK ApS, Denmark. WWW: mosek.com
Platform: MACOSX/64-X86
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 14116
Cones : 1120
Scalar variables : 15460
Matrix variables : 224
Integer variables : 0
Optimizer started.
Presolve started.
Linear dependency checker started.
Linear dependency checker terminated.
Eliminator started.
Freed constraints in eliminator : 0
Eliminator terminated.
Eliminator - tries : 1 time : 0.00
Lin. dep. - tries : 1 time : 0.10
Lin. dep. - number : 0
Presolve terminated. Time: 0.86
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 14116
Cones : 1120
Scalar variables : 15460
Matrix variables : 224
Integer variables : 0
Optimizer - threads : 2
Optimizer - solved problem : the primal
Optimizer - Constraints : 13442
Optimizer - Cones : 1120
Optimizer - Scalar variables : 15010 conic : 3360
Optimizer - Semi-definite variables: 224 scalarized : 285600
Factor - setup time : 5.46 dense det. time : 0.00
Factor - ML order time : 0.09 GP order time : 0.00
Factor - nonzeros before factor : 6.19e+05 after factor : 6.24e+05
Factor - dense dim. : 0 flops : 1.13e+10
ITE PFEAS DFEAS GFEAS PRSTATUS POBJ DOBJ MU TIME
0 5.6e+03 1.0e+00 1.1e+02 0.00e+00 2.589081600e+02 1.469081600e+02 1.0e+00 28.38
1 1.2e+03 2.2e-01 9.9e+00 1.36e+00 1.983560100e+02 1.778548695e+02 2.2e-01 43.72
2 3.7e+02 6.6e-02 8.7e-01 2.35e+00 2.156636941e+02 2.128949343e+02 6.6e-02 58.77
3 1.3e+02 2.3e-02 2.8e-01 8.45e-01 1.959355254e+02 1.944666680e+02 2.3e-02 73.25
4 5.2e+01 9.4e-03 1.1e-01 1.75e-01 1.744008353e+02 1.734272392e+02 9.4e-03 86.40
5 1.7e+01 3.1e-03 3.4e-02 2.31e-01 1.486647099e+02 1.481445325e+02 3.1e-03 116.56
6 5.9e+00 1.1e-03 1.3e-02 3.21e-02 1.083853847e+02 1.080250532e+02 1.1e-03 168.31
7 1.5e+00 2.6e-04 3.1e-03 1.02e-01 5.818023782e+01 5.801307399e+01 2.6e-04 209.93
8 5.2e-01 9.3e-05 1.1e-03 -1.74e-01 5.414886877e+00 5.312722072e+00 9.3e-05 236.46
9 3.6e-01 6.4e-05 4.1e-04 5.85e-01 1.840814514e+01 1.834980551e+01 6.4e-05 264.95
10 6.6e-02 1.2e-05 2.5e-05 7.77e-01 1.678889868e+00 1.667783742e+00 1.2e-05 292.78
11 1.1e-02 2.0e-06 1.1e-06 1.64e+00 1.179022296e-01 1.166777613e-01 2.0e-06 310.61
12 1.1e-03 2.0e-07 2.4e-08 1.44e+00 6.654284875e-03 6.555760200e-03 2.0e-07 336.80
13 1.7e-05 3.1e-09 3.3e-11 1.21e+00 6.105150180e-05 5.974233602e-05 3.1e-09 357.26
14 1.4e-09 7.7e-12 1.9e-18 1.03e+00 2.768274499e-11 1.472244548e-11 2.9e-14 381.16
Optimizer terminated. Time: 382.92
Interior-point solution summary
Problem status : PRIMAL_AND_DUAL_FEASIBLE
Solution status : OPTIMAL
Primal. obj: 2.7132074365e-11 nrm: 2e+02 Viol. con: 4e-06 var: 0e+00 barvar: 0e+00 cones: 0e+00
Dual. obj: 1.3458875098e-11 nrm: 1e+00 Viol. con: 0e+00 var: 3e-11 barvar: 1e-13 cones: 0e+00
Optimizer summary
Optimizer - time: 382.92
Interior-point - iterations : 14 time: 382.26
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: 0 time: 0.00
Status: Solved
Optimal value (cvx_optval): +258.908