Non-convexity while using Charens and Cooper transformation in the problem

I am trying to maximize the below non-convex objective function through convex relaxation using SCA, epi-graph, and Charens and Cooper transformation. My original problem is
\!\max_{w,\gamma, \beta, r} \frac{\alpha\sum\limits_{k=1}^{K} \log_2(1 + \text{SINR}_k)}{P_{total}}; Where SINR_k = \frac{|h_{ik}^*w_{ik}|^2}{N_0+|h_{ij}^*w_{ij}|^2};\\ P_{total} = \sum_{k \in \mathcal{K}}||w_k||_2^2 + P_{RD}\delta( {r_b})+P_{CP}

After relaxation the problem is defined as

\max_{ \bar{r},\phi, \bar{\gamma},\bar{\beta}} \sum_{i \in \mathcal{B}} \bar{r}_b \\ \text{s.t} \\ \bar{\gamma}_k - \Psi_k^{(n)}\left(\bar{\mathbf{w}}_k, \bar{\boldsymbol{\beta}}_k\right) \leq 0, \quad \forall k \in \mathcal{K}\\ \bar{r}_b - \alpha \sum_{k \in \mathcal{K}_b} \phi \log\left(1 + \frac{\bar{\gamma}_k}{\phi} \right) \leq 0, \quad \forall i \in \mathcal{B}\\ \phi N_0 + \sum_{j \in \mathcal{K} \setminus \{k\}} \frac{|\mathbf{h}_{b_j,k}^H \bar{\mathbf{w}}_j|^2}{\phi} - \bar{\beta}_k \leq 0, \quad \forall k \in \mathcal{K} \\ \frac{1}{\eta} \sum_{k \in \mathcal{K}} \frac{\|\bar{\mathbf{w}}_k\|_2^2}{\phi} + \sum_{b \in \mathcal{B}} \left(P_{\mathrm{RD}} \phi \delta\left( \frac{\bar{r}_b}{\phi} \right) + \phi P_{\mathrm{CP},b} \right) \leq 1

I have used the below code run this code in CVX

cvx_begin quiet
        variable r_b_bar(N_BS) % transformed rate constraint
        variable w_tot_bar(sum(N_i), sum(K_i)) complex % BF vector
        variable beta_k_bar(N_BS, N_UE) % vairable used in epi-grah reformulation
        variable gamma_bar(sum(K_i))     % SINR constraint
        variable phi        % charnes and cooper variable
        expressions psi_k     %releve
    
    
    maximize(sum(r_b_bar))
    subject to
        phi >= 0; 
    % total power constraint 
   
    beamforming_power = (1/eta)*sum_square_abs(w_tot_bar(:))/phi; % power consumed by transmission
    P_rx = sum(z_ant_bar,"all")*p_rx;  % power consumption of the antennas
    comp_term = 0;
    P_fix =0;
    for i = 1:N_BS
        P_cp = phi*P_cp_c*q; %power consumed by the algorithm
        comp_term = phi*delta * (2 * N_i(i) * K_i(i)) / L_BS; % computational power
        P_fix =  phi*z_bs_bar(i)*(P_FIX+P_SYC+(K_i(i)*P_UE)+comp_term); % fixed power consumption of the ith BS
    end
    total_power = beamforming_power+ P_cp + P_fix+ P_rx; % total power consumption
    total_power<= 1; % constraint for Charnes and Cooper method to work    
    
    for k=1:K_(i)
        rate_b_bar(i) - delta*sum(phi*log(1+gamma_bar(i,k)/phi)/log(2))<= 0 ; % rate constraint
        gamma_bar(i,k)>= phi*gamma_min(i,k); %SINR constraint
        w_k_bar = w_tot_bar(BS_antenna_index_range(i), gk);
            w_k_prev = w_prev(BS_antenna_index_range(i), gk);
            beta_prev_n = beta_prev(i,k);
            % Lower bound approximation of SINR (as in Eq. 15)
            num = real((w_k_bar'/phi) * (h_ik) * h_ik' * w_k_prev)/(beta_prev_n/phi);
            den = abs((h_ik'*w_k_bar/phi)/(beta_k_bar(i,k)/phi))^2 ;
            psi_k = 2 * num - den * beta_prev_n;
            for j =1:K_i(i)
                 if j~=k
                     gj= sum(K_i(1:i-1)) + j;
                     h_ij = H(:,:,i,j);
                     interf = interf+ square_abs(h_ij*w_tot_bar(BS_antenna_index_range(i),gj));% the channel matrix is not transposed since the size is (1,8)
                 end
            end
            gamma_bar(i,k)- psi_k<=0; % SINR constraint approximation
            phi*sigma2+interf/phi - beta_bar(k) <= 0; % interference + noise constraint
        end

But I am getting the below error from CVX in the line

beamforming_power = (1/eta)*sum_square_abs(w_tot_bar(:))/phi; % power consumed by transmission
Error using  .* 
Disciplined convex programming error:
    Cannot perform the operation: {convex} ./ {real affine}

I am assuming that I am getting this error because I am trying to divide two variables in my optimization problem. I would like to know what I am doing wrong in this formulation. I am trying a similar approach to equation (17) this paper

It looks like you may be looking for quad_over_lin.

1 Like

Thank you I was able to solve the issue using quad_over_lin . I have similar issue while trying to multiply the sum of an optimization variable with another optimization variable in the line
comp_term = delta *phi* (2 * sum(sum(z_ant_bar)) * sum(K_i)) / L_BS;
Here z_ant_bar and phi are the optimization variables, comp_term should be convex sine sum(sum(z_ant_bar)) is a scalar. But I am getting the error
Error using .* Disciplined convex programming error: Invalid quadratic form(s): not a square.

Product of 2 (different) variables is not convex, whether or not the variables are scalar.