The following code outputs an infeasible solution, but the problem is indeed feasible! May someone help me to figure it out and thanks!
For example, the optimized a and b are
a =
1.0e-08 *
0.5729
0.5629
b =
1.0e-08 *
0.5602 0.5713
0.5782 0.5653
The objective is 0.1284.
The result is obviously not correct since a and b violate the constraints. However, the problem is indeed feasible, for example when a = [0.5;0.5] and b=[0 1; 1 0], the problem is feasible.
MATLAB CODE (this code can run without errors)
clear all
rng(0)
%%
T=2;
L = 2;
alph = 1;
bta = 1;
D = ones(T, 1);
P = 10; % Watt`
N0 = 1e-3*10^(-174/10); % Watt/Hz, -174 dbm/Hz
W = 100e6; % W MHz
N = 10;
ksi = 0.5; % A/Watt
h = exprnd(1e-6, N, T); % channel gain, simplified
R = 1e7; % 10Mbps
tau = 1; % tau seconds video
miu = 1e6*[50, 150]'; % bitrate
%%
Delta = (exp(1)/(2*pi)*P^2/N0*(ksi*sum(h, 1)).^2)';
V = repmat((miu*tau)', T, 1);
%% BnB
cvx_solver mosek
cvx_precision high
cvx_begin
variable b(T, L)
variable a(T, 1)
obj = 1/T*sum(rel_entr(1, alph./D.*sum(b.*V, 2)));
minimize(obj)
subject to
0 <= b <= 1;
sum(b,2) == 1;
0 <= a <= 1;
sum(a) == 1
-tau*rel_entr(a.*W, a.*W+Delta) >= sum(b.*V, 2);
cvx_end
b = full(b);
qoe = -1/T*sum(rel_entr(1, alph./D.*sum(b.*V, 2)))
Output
CVX Warning:
Models involving “rel_entr” 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.
Calling Mosek 9.1.9: 27 variables, 9 equality constraints
For improved efficiency, Mosek is solving the dual problem.
MOSEK Version 9.1.9 (Build date: 2019-11-21 11:34:40)
Copyright © MOSEK ApS, Denmark. WWW: mosek.com
Platform: Windows/64-X86
MOSEK warning 57: A large value of 5.2e+10 has been specified in c for variable ‘’ (23).
MOSEK warning 57: A large value of 3.7e+10 has been specified in c for variable ‘’ (26).
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 9
Cones : 3
Scalar variables : 27
Matrix variables : 0
Integer variables : 0
Optimizer started.
Presolve started.
Linear dependency checker started.
Linear dependency checker terminated.
Eliminator started.
Freed constraints in eliminator : 2
Eliminator terminated.
Eliminator started.
Freed constraints in eliminator : 0
Eliminator terminated.
Eliminator - tries : 2 time : 0.00
Lin. dep. - tries : 1 time : 0.00
Lin. dep. - number : 0
Presolve terminated. Time: 0.03
Problem
Name :
Objective sense : min
Type : CONIC (conic optimization problem)
Constraints : 9
Cones : 3
Scalar variables : 27
Matrix variables : 0
Integer variables : 0
Optimizer - threads : 10
Optimizer - solved problem : the primal
Optimizer - Constraints : 6
Optimizer - Cones : 4
Optimizer - Scalar variables : 26 conic : 14
Optimizer - Semi-definite variables: 0 scalarized : 0
Factor - setup time : 0.00 dense det. time : 0.00
Factor - ML order time : 0.00 GP order time : 0.00
Factor - nonzeros before factor : 21 after factor : 21
Factor - dense dim. : 0 flops : 2.79e+02
ITE PFEAS DFEAS GFEAS PRSTATUS POBJ DOBJ MU TIME
0 1.0e+00 5.2e+10 1.1e+11 0.00e+00 1.141272097e+11 -4.025510008e-01 1.0e+00 0.03
1 1.2e-01 6.2e+09 4.0e+10 -1.00e+00 1.141244680e+11 -6.189938641e+00 1.2e-01 0.08
2 1.9e-02 1.0e+09 1.6e+10 -1.00e+00 1.141242944e+11 -3.586542216e+01 1.9e-02 0.08
3 6.8e-03 3.5e+08 9.4e+09 -1.00e+00 1.141242815e+11 -9.518210206e+01 6.8e-03 0.08
4 1.9e-03 9.7e+07 4.9e+09 -1.00e+00 1.141242762e+11 -3.554443936e+02 1.9e-03 0.09
5 5.3e-05 2.8e+06 8.3e+08 -1.00e+00 1.141238554e+11 -1.235443378e+04 5.3e-05 0.09
6 6.4e-07 3.3e+04 9.1e+07 -1.00e+00 1.140890586e+11 -1.094891031e+06 6.4e-07 0.09
7 7.8e-09 4.0e+02 9.9e+06 -9.99e-01 1.112885239e+11 -8.997440240e+07 7.8e-09 0.09
8 6.1e-09 1.4e+01 1.4e+06 -9.54e-01 6.426330097e+10 -1.561326813e+09 2.7e-10 0.09
9 3.1e-09 6.3e+00 5.9e+05 -1.59e-01 4.126593215e+10 -1.512412990e+09 1.2e-10 0.11
10 3.0e-09 5.9e+00 5.4e+05 3.00e-01 3.932531344e+10 -1.444784481e+09 1.1e-10 0.11
11 2.0e-09 1.5e+00 6.7e+04 3.17e-01 1.211608038e+10 -5.291480873e+08 3.0e-11 0.11
12 5.8e-10 1.7e-01 2.9e+03 7.50e-01 1.501952555e+09 -8.676488459e+07 3.6e-12 0.11
13 5.8e-10 1.7e-01 2.9e+03 9.73e-01 1.501952555e+09 -8.676488459e+07 3.6e-12 0.13
14 5.8e-10 1.7e-01 2.9e+03 9.73e-01 1.501952555e+09 -8.676488459e+07 3.6e-12 0.13
Optimizer terminated. Time: 0.16
Interior-point solution summary
Problem status : UNKNOWN
Solution status : UNKNOWN
Primal. obj: 1.5019525550e+09 nrm: 6e+08 Viol. con: 7e+08 var: 0e+00 cones: 0e+00
Dual. obj: -8.6764884591e+07 nrm: 5e+10 Viol. con: 0e+00 var: 8e+08 cones: 0e+00
Optimizer summary
Optimizer - time: 0.16
Interior-point - iterations : 15 time: 0.13
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: Inaccurate/Unbounded
Optimal value (cvx_optval): -Inf
qoe =
0.1284