SDR使用方法

本文介绍了SDR方法在处理非凸优化问题中的应用,特别是秩1约束的半正定矩阵问题。通过直接松弛秩1约束或将秩1条件转化为惩罚项,可以将问题转化为凸优化问题,进而使用工具如CVX求解。恢复秩1解的方法包括特征值分解和高斯随机化等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本文是在凸优化学习过程中针对半正定松弛(Semidefinite Relaxation ,SDR) 方法的介绍。包含三部分的内容:

1、SDR适用的形式

2、SDR如何解决的方法

3、SDR如何获得秩1解

SDR问题形式

SDR适用的问题形式如下:

\underset{​{\bf{x}} \in {\mathbb{C}^{N\times 1}}}{\rm{max}}\;\;{\bf{x}}^H{\bf{C}}{\bf{x}}

\rm{s.t.}\;\;{\bf{x}}^H{\bf{A_i}}{\bf{x}}\;\unrhd_i\;b_i

其中\unrhd_i代表\geq\leq, 或=。{\bf{C}} \in {\mathbb{C}^{N\times N}},{\bf{A_i}} \in {\mathbb{C}^{N\times N}}是一个厄尔米特矩阵。

由于\bf{C}\bf{A_i}可能是半正定矩阵,或者半负定矩阵,同时其中\unrhd_i还可能代表=。上述问题凸性未知。

所以此时可以使用SDR方法将问题转凸,从而求解。

SDR解决办法

法1:直接松弛掉秩1约束

根据矩阵迹的性质Tr(ABC)=Tr(BCA)=Tr(CAB),我们可以得到Tr({\bf{x}}^H{\bf{C}}{\bf{x}})=Tr({\bf{C}}{\bf{x}}{\bf{x}}^H),其中由于{\bf{x}}^H{\bf{C}}{\bf{x}}是一个1×1的矩阵,可得{\bf{x}}^H{\bf{C}}{\bf{x}}=Tr({\bf{x}}^H{\bf{C}}{\bf{x}}),所以通过引入新的变量{\bf{X}}={\bf{x}}{\bf{x}}^H,并添加新的约束rank({\bf{X}})=1{\bf{X}} \succeq {\rm{0}},则上述问题可转换为:

\underset{​{\bf{X}} \in {\mathbb{C}^{N\times N}}}{\rm{max}}\;\;Tr({\bf{C}}{\bf{X}})

\rm{s.t.}\;\;Tr({\bf{A_i}}{\bf{X}})\;\unrhd_i\;b_i

rank({\bf{X}})=1{\bf{X}} \succeq {\rm{0}}

由于秩1约束,上述问题其实也是一个非凸问题,但是可以通过将rank({\bf{X}})=1松弛,即舍弃掉秩1约束,上述问题即可转化为凸问题,并且可以通过CVX直接解决。

但是注意,cvx求解出来的为{\bf{X}} \in {\mathbb{C}^{N\times N}},我们还需要通过某些方法将其恢复秩1,获得{\bf{x}} \in {\mathbb{C}^{N\times 1}}

法2:采用惩罚的方法

根据矩阵的性质易得,若矩阵\bf{X}的秩为1,即rank({​{\bf{X}}})=1,则以下等价:

rank({\bf{X}})=1 \Leftrightarrow trace({\bf{X}})=\left \| {\bf{X}} \right \|_2

rank({​{\bf{X}}})=1意味着矩阵\bf{X}只有一个特征值,又由于\bf{X}是半正定矩阵,故可得:

\lambda_1 > 0, \lambda_2=\lambda_3=\cdots=\lambda_N= 0

而根据迹的性质,可得:

trace({\bf{X}})=\lambda_1+\lambda_2+\cdots +\lambda_N=\lambda_1

\left \| {\bf{X}} \right \|_2{\bf{X}}^T{\bf{X}}的最大特征值开平方根,则可得:

trace({\bf{X}})=\left \| {\bf{X}} \right \|_2=\lambda_1

故可将问题转换为:

\underset{​{\bf{X}} \in {\mathbb{C}^{N\times N}}}{\rm{max}}\;\;Tr({\bf{C}}{\bf{X}})-{\eta}(trace({\bf{X}})-\left \| {\bf{X}} \right \|_2)

\rm{s.t.}\;\;Tr({\bf{A_i}}{\bf{X}})\;\unrhd_i\;b_i

 {\bf{X}} \succeq {\rm{0}}

此时将秩1条件约束在目标函数中,注意此时的惩罚因子\eta>>0,尽可能保证秩1约束。

注意矩阵的二范数是凸函数!!!

max一个凸函数不是凸优化问题,此时可以使用MM算法获得\left \| {\bf{X}} \right \|_2的下界,根据一节泰勒不等式可得:

\left \| {\bf{X}} \right \|_2 \geq \left \| {\bf{X}}^{(r)} \right \|_2+tr({​{​{\bf{u}}_{max}( {\bf{X}}^{(r)} )}}{​{​{\bf{u}}_{max}({\bf{X}}^{(r)} )}}^H({\bf{X}}-{\bf{X}}^{(r)}))=(\left \| {\bf{X}} \right \|_2)_{lb}

所以上述问题可转换为:

\underset{​{\bf{X}} \in {\mathbb{C}^{N\times N}}}{\rm{max}}\;\;Tr({\bf{C}}{\bf{X}})-{\eta}(trace({\bf{X}})-(\left \| {\bf{X}} \right \|_2)_{lb})

\rm{s.t.}\;\;Tr({\bf{A_i}}{\bf{X}})\;\unrhd_i\;b_i

 {\bf{X}} \succeq {\rm{0}}

可用CVX直接解,求得\bf{X}

参考【1】。

SDR获得秩1解

从上述两种方法中获得的\bf{X}恢复到秩1的\bf{x}的方法。

1、特征值分解

{\bf{x}}={\sqrt{\lambda_1}}q_1,其中{\sqrt{\lambda_1}}\bf{X}的最大特征值,q_1是其对应的特征向量。但是获得的\bf{x}不一定满足不等式约束条件,所以此时还需要从\bf{x}出发,获得能满足约束条件的,同时离\bf{x}最近的解。

2、高斯随机化

高斯随机化应该是运用最普遍的获得秩1解的方法。

3、寻求一个秩一最优解

不同问题模型,有不同的方法。

[1] Beamforming Design and Power Allocation for Transmissive RMS-Based Transmitter Architectures

[2]  经典的SDR算法: 用半正定松弛法 ( Semidefinite Relaxation) 求解二次优化问题_B417科研笔记的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值