How to linearize this objective funtion?

120 Views Asked by At

The objective function I am dealing is $$\underset{{\bf w}_k,x_k }{\max}\sum_{k=1}^K x_k\alpha_k \log_2(1+\gamma_k)$$

subject to $\sum x_k ||{\bf w}_k||_2^2\le P$ and

$\sum_{k=1}^Kx_k=L.$

with $\gamma_k=\frac{|{\bf h}_k{\bf w}_k|^2}{\sigma^2+\sum_{i=1,i\neq k}^K |{\bf h}_i{\bf w}_i|^2}$.

The first constraint $\sum x_k ||{\bf w}_k||_2^2\le P$ was creating issues so I wrote it with IF-THEN form.

Here, $x_k, k=1,2,\cdots,K$ are binary variables

$\alpha_k, k=1,2,\cdots,K$ are know positive ($>0$) numbers.

The vectors ${\bf h_k}\in\mathbb{C}^{1\times N}, k=1,2,\cdots, K$ are known.

How can I linearize them?

$\textbf{Some Tricks}$

Let's introduce $z_k,, k=1,2,\cdots,K$ as $z_k=x_k\alpha_k$

Now we have

$$\underset{{\bf w}_k }{\max}\sum_{k=1}^K z_k \log_2(1+\gamma_k)$$ $$=\underset{{\bf w}_k }{\max}\sum_{k=1}^K \log_2(1+\gamma_k)^{z_k}$$ $$=\underset{{\bf w}_k }{\max}\prod_{k=1}^K(1+\gamma_k)^{z_k}$$

1

There are 1 best solutions below

6
On BEST ANSWER

If you mean you want to represent it such that the integer relaxation is convex, one way is to note that $x\log(1+\gamma) = \log(1+x\gamma)$. Hence, all you have to do is to linearize binary times continuous, which is standard big-M representable

Here is a test using YALMIP (a MATLAB Toolbox) for a trivial example where one easily sees that the optimal solution is to set the two $x$ variables corresponding to the largest $\alpha$ to 1. The big-M modelling is done in implies, and $z$ thus corresponds to the bilinear product

gamma = sdpvar(5,1);
alpha = rand(5,1);
x = binvar(5,1);
z = sdpvar(5,1);
Model = [sum(x)==2, 
         implies(x,z == gamma),
         implies(1-x,z == 0),
         0 <= [z gamma] <= 1];
optimize(Model,-sum(alpha.*log2(1 + z)))
[value(x) value(alpha)]

The resulting model is convex in the continuous variables, and is solved in YALMIP using Mosek 9 if you have that installed, or the internal mixed-integer conic solver if you don't have Mosek 9.