1 常见优化问题形式
1.1 以最大化多用户 的 和 速率的形式
此情况下,无论是该和速率是作为目标函数,还是作为约束,都不是凸函数的形式,原因是涉及到 log(.)+log(.) 的形式,是非凸的。常见解决方法,是采用 迭代 的方法,即采用 凸差 / 连续凸近似 / MM算法 (这三种算法的思想都是类似的),在每次迭代的过程中,用目标函数的下界(此时是凸的) 去替换原来的目标函数,那么,对每次迭代时,新的目标函数都是凸的,且每次的解出的结果都是原函数的下界。且迭代过程期间所得到解是递增的,多次迭代之后可得到原问题的一个local solution
1.2 以最大化最小公平性问题的形式
(1) 最大化最小的公平性问题,言外之意就是,我们需要去提升 系统中 表现最差的那一个用户,相当于是不断拔高木桶原理中最短的那根木板,使得系统总的性能更好。这类优化问题相对于和速率的问题而言,好解一些。
(2) 在cvx里面,可以采用一个辅助变量,如下,相当于我要求的是 所有的R_i的最小值 t,然后使得这个t 最大
1.3 以最小化总发射功率的形式
这种情况下的优化问题,目标函数是线性函数,是凸的。此时如果约束条件不那么复杂的话,一般可以采用通分,化简消除log函数,可以直接使得问题转换为凸问题来求解;
如果约束比较复杂的话,可以考虑对约束采用近似的方法,类似于前面提过的 凸差/连续凸近似/MM 算法去迭代求解
Tips
(1) 针对以上三种形式的优化问题,其中可能会涉及到 波束成形向量的内积问题,是一个二次型优化问题。我们可以采用半正定松弛的方法,把其变为一次优化问题, 这个方法特别经典,在无线通信理论研究中常用。具体可参考 Luo zhiquan 老师的半正定松弛论文;
(2) 对于多变量的优化问题,目前主流的方法是采用 AO交替优化算法 ,即先固定某一个变量,对另一个变量而言就是凸的了。这样子进行交替求解,最后得到原问题的驻点。思想类似于块坐标下降法。特别地,目前,有些论文采用 强化学习 的方法,去解这种多变量互相耦合的优化问题或者是场景十分复杂的单变量优化问题,也取得了较好的效果;
(3) 对于通信理论优化的研究中,常见的方法感觉都是基于梯度的,不要局限于不同的算法名字。此外,常用的方法还有 mmse优化,拉格朗日乘子法 等等。这些算法对于函数的一阶导数甚至于二阶导数都需要一定的计算。