引言
本文主要介绍Shen Kaiming老师的论文《Fractional programming for communication systems—Part I: Power control and beamforming》所介绍的无线通信中遇到的多项分式规划求解方法。
在多用户(multi user)无线通信的系统优化设计中,经过遇到以下两类优化问题:
1. 最大化系统和速率(Sum Rate)问题
是
用户的SINR。目标函数对多个对数函数求和,优化变量是SINR的自变量。
2. 最大化系统能量效率(Energy Efficiency)问题
问题1可以通过[1]中所提出的拉格朗日对偶变换(Lagrangian dual transform)转化为一个多项分式规划问题;问题2是一个分式规划问题。类似于以上多项对数和或者目标函数含有多项分式和的问题,都可以可以通过[2]中所提出的二次变换(Quadratic transform)来解决。该方法是无线通信优化论文中较常见的将非凸优化问题转化为凸优化问题的方法,在RIS的优化中也有见到,因此在本文中介绍该转化方法的核心思想和功率控制部分的matlab代码(波束成形和能效能量效率问题的部分后续补上),供大家参考,如果有不清楚或者文中理解不准确的地方,希望大家留言或私信交流。
传统分式规划方法
传统的分式规划问题多集中于单项分式规划问题,即目标函数中只含有一个分式,而多项分式规划问题是多个分式求和的形式,下面简要介绍传统的分式规划问题求解方法。单项分式规划问题可表示为以下的通用形式
其中是值域为非负的函数,
是值域为正的函数。
Charnes-Cooper变换
引入两个辅助变量:
因此通用形式的单项分式规划问题可以写成以下形式
很明显带入辅助变量,目标函数不变, 和
的定义域根据
的定义域计算,因此该方法较为麻烦,
和
二者相互迭代优化,且很难推广到求解多项分式规划问题。
Dinkelbach's变换
该方法思路简单,主要是将分式规划问题变换为差的形式,如下所示:
其中,两个变量相互迭代更新,而且不用重新计算辅助变量的定义域,但是目标函数的值和原目标函数的值不同,因此无法应用到多项分式规划中。
二次变换
以上单项分式规划都难以推广到多项分式规划中,主要是变化后的目标函数值和原目标函数值发生了变化,当多项分式规划时,对单项分式的值影响不同,导致最优解与原问题不同。因此转化后的目标函数需要满足以下四点条件:
- 解耦性:新的目标函数的形式需要满足
,比较容易理解,需要将分子和分母解耦为差的形式 ;
- 解的等价性:
和所设计的函数
的最优解
在
等于某一个值时相等;
- 目标值的的等价性:
和所设计的函数
的目标值在
等于某一个值时,相等;
- 凹性:所设计的函数
当
固定时,关于
是凹函数,即
。
因此可设计如下的变换函数,即二次变换(Quadratic transform):
利用二次变换可以解决(但不限于)以下三类分项分式规划问题:
1) 对于以下的多项分式规划问题:
通过二次变换,可以等价地变换为如下形式:
2) 给定一系列的非减函数和比值
,那么多项比例函数的和(sum-of-functions-ratio)问题:
通过二次变换,可以等价地变换为如下形式:
3) 对于最大最小分式(max-min-ratio)问题:
等价于
以上的变换都比较容易理解,具体证明可以仔细阅读文献[2]的相关内容。为解决无线通信中的相关问题,二次变换也可以拓展到向量和复数域。
Concave-Convex分式规划
以上的变换对于分式的分子只有非负而分母为正的限制条件,但如果需要进一步使得经过二次变换后的问题容易求解,或者说当固定时候是凸的,则需要满足
- 分式的分子是凹函数
- 分母是凸函数
- 约束集合
是凸集
以上条件较为容易理解,当固定时,二次变换后的函数
中
前是正号,对于最大化问题,
需要满足是凹函数的条件,而
前是负号,因此需要
满足是凸函数的条件,此时
整体是凹函数,可以利用CVX直接求解。
因此这种比较容易求解的分式规划问题称为Concave-Convex分式规划问题,在无线通信中也比较容易满足以上三个条件。
Concave-Convex分式规划的迭代式求解方法
1)当固定时,
对
求偏导,并令偏导数等于0:
,可以得到最优
的闭式解为:
2) 当固定时,
关于
是凹函数,可以通过凸优化工具箱求解。
步骤1)2)相互迭代,直至收敛。
实例:无线通信中的功率控制问题
功率控制问题
多用户多小区蜂窝无线通信系统中,功率控制问题是最为常见的一类问题,一般是在最大功率的约束下,通过控制不同基站的发射功率而达到系统的和速率最大化,尽量减小小区间干扰的影响,各用户的速率可以表示为:
其中表示基站
到用户
的信道,
表示第
各基站的发射功率,假设每个小区中只存在一个单天线的用户。加权速率和最大化函数为:
功率控制问题:
由于中的SINR是分式形式,所以功率控制问题是一个典型的多项比例函数的和问题,
是一个非减函数,SINR的分子和分母都既是凸函数又是凹函数,可以利用Concave-Convex分式规划的方法求解。
1)直接式求解方法
对进行二次变换,可以得到:
优化问题可以变换为
固定时,最优
的闭式解为
固定时,变换后的问题是一个凸优化问题,可以根据以下的伪代码迭代求解

2)闭式解方法
该方法利用[1]中给出的拉格朗日对偶变换(Lagrangian dual transform)(这个变换在以后有时间再详细介绍,在此不再赘述,不清楚的可以阅读文献[1]),通过引入辅助变量的方法解决掉分式外层的对数函数,拉格朗日对偶变换后会出现新的不含有对数函数的分式,可以通过上文提到的二次变换处理。首先对进行拉格朗日对偶变换:
论文[2]中对关于
求偏导,
,得到最优解
但是根据这里对求导的得到的最优解进行迭代,我自己根据论文所给的伪代码仿真始终无法收敛,会产生振荡,甚至系统和速率会逐渐减小,所以在拉格朗日对偶变换就直接对
求偏导表示存疑,而且这样迭代更新的
和后面进行二次变换后的辅助变量
无法产生关系,我自己理解应该是在拉格朗日对偶变换和二次变换后再对
求偏导。
对的分式部分进行二次变换可以得到
对关于
求偏导,
,得到最优解
同理,可以得到最优解和
论文中给出的闭式方法求解的伪代码如下:

但是根据该伪代码和公式(42)的迭代方法,大多数情况下收敛曲线振荡无法收敛,对照公式调试很久也无法得到论文中呈现的效果,不清楚我自己理解是否有问题,如果理解有错误,欢迎评论和私信交流。因此我在二次变换后,再对求偏导,然后根据以下的方式进行迭代更新,才得到较好的效果:
仿真
仿真环境
论文中设置的是7个相邻的正六边形蜂窝小区,每个蜂窝小区中有且仅有一个用户,在7个小区中随机撒点得到以下用户位置

仿真结果
复现得到的结果:


复现代码在文章标题下方下载!!
参考文献
[1] Shen K, Yu W. Fractional programming for communication systems—Part II: Uplink scheduling via matching[J]. IEEE Transactions on Signal Processing, 2018, 66(10): 2631-2644.
[2] Shen K, Yu W. Fractional programming for communication systems—Part I: Power control and beamforming[J]. IEEE Transactions on Signal Processing, 2018, 66(10): 2616-2630.
总结
二次变换和拉格朗日对偶变换在处理多项分式规划问题,高效且容易理解,但是仿真复现时,感觉收敛速度没有论文给出的快,特别是闭式解方法,若复现代码有问题,欢迎大家指出。