智能反射面——恒模约束及代码实现

解决恒模约束

恒模约束常出现在、智能反射面、混合波束形成等问题,是一种比较常见的非凸约束,对于这种约束的优化问题, 有很多种近似求解算法,比如SDR(半定松弛算法)
m a x x   x H A x s . t   ∣ x i ∣ = 1 , ? i max_x ~x^HAx\ s.t ~ |x_i|=1, forall i maxx? xHAxs.t ∣xi?∣=1,?i
其中A是半正定矩阵,目标函数是凸函数,约束时非凸的,定义矩阵 X = x x H ( X ? 0 , r a n k ( X ) = 1 ) mathbf{X}=mathbf{x}mathbf{x}^H(mathbf{X}succeqmathbf{0},rank(mathbf{X})=1) X=xxH(X?0,rank(X)=1),优化问题(1)可以变为:
m a x X  Tr ( A X ) s . t   X ( i , i ) = 1 , ? i X ≥ 0 r a n k ( X ) = 1 max_X ~ ext{Tr}(AX)\ s.t ~ X(i,i)=1, forall i\ X geq 0\ rank(X) = 1 maxX? Tr(AX)s.t X(i,i)=1,?iX≥0rank(X)=1
针对优化问题(2),常常采用SDR算法松弛秩一约束,将其转换为SDP问题
m a x X  Tr ( A X ) s . t   X ( i , i ) = 1 , ? i X ≥ 0 max_X ~ ext{Tr}(AX)\ s.t ~ X(i,i)=1, forall i\ X geq 0\ maxX? Tr(AX)s.t X(i,i)=1,?iX≥0
该问题可以通过CVX进行求解。但是求得的解 $mathbf{X}^* $未必是秩一的,通常采用高斯随机化的方法来获得一个高质量的秩一次优解。**高斯随机化得到的次优解未必满足其他约束,**这是SDR算法的缺点,后续有很多改进的SDR算法来克服这一缺点。

现在可以尝试使用下述方法进行求解。秩一约束可以被转换为下述凸约束:
λ m a x ( X ) ≥ w ( i ) Tr ( X ) lambda_{max}(mathbf{X}) geq w_{(i)} ext{Tr}(mathbf{X}) λmax?(X)≥w(i)?Tr(X)
其中$lambda_{max}(mathbf{X}) 表示 表示 表示mathbf{X} 最大特征值,并且 最大特征值,并且 最大特征值,并且w_{(i)}in[0,1]$是松弛参数。

当 w ( i ) = 0 w_{(i)} = 0 w(i)?=0 , 公式(4)意味着 λ m a x ( X ) ≥ 0 lambda_{max}(mathbf{X})geq 0 λmax?(X)≥0,等价于采用SDR算法松弛了秩一约束。

当 w ( i ) = 1 w_{(i)} = 1 w(i)?=1,公式(4)意味着 $lambda_{max}(mathbf{X}) geq ext{Tr}(mathbf{X}) $,即满足了秩一约束。

因此问题(2)可以重写为:
m a x