Cannot perform the operation: {log-affine} .* {real affine}


(Anthony ) #1

Hello, please how I can I formulate this properly in CVX GP environment?


alpha_m,n is a relaxed association variable, i.e., if m is associated to n, then its corresponding alpha_m,n = 1, otherwise alpha_m,n = 0 .
n = 1 for simplicity.

sigma = [3,3,3,3,3]';
G = [0.4,0.7,0.9,0.5,0.3]';
m = 5;
z = 2;
max = 10;
cvx_begin gp
variables P(m) A(m)
inverseSINR = ((sigma)./(G.*P)); 
minimize(sum(inv_pos(A).*(log(inverseSINR)/log(2))))
subject to
sum( p) <= Pmax;
A <= 1;
sum(A) <= z;
cvx_end

(Mark L. Stone) #2

I could be wrong, but I think you may need to change this to a Big M logic formulation instead of using A in variable product terms. That would require CVX Professional or Academic version, not the free version in order to declare binary variables. if you do that, you will need to install CVXQUAD 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 because CVX’s Successive Approximation method does not work correctly if there are any binary or integer varaibles.