前言
本文是在凸优化学习过程中针对半正定松弛(Semidefinite Relaxation ,SDR) 方法的介绍。包含三部分的内容:
1、SDR适用的形式
2、SDR如何解决的方法
3、SDR如何获得秩1解
SDR问题形式
SDR适用的问题形式如下:
其中代表
,
, 或=。
,
是一个厄尔米特矩阵。
由于和
可能是半正定矩阵,或者半负定矩阵,同时其中
还可能代表=。上述问题凸性未知。
所以此时可以使用SDR方法将问题转凸,从而求解。
SDR解决办法
法1:直接松弛掉秩1约束
根据矩阵迹的性质,我们可以得到
,其中由于
是一个1×1的矩阵,可得
,所以通过引入新的变量
,并添加新的约束
和
,则上述问题可转换为:
,
由于秩1约束,上述问题其实也是一个非凸问题,但是可以通过将松弛,即舍弃掉秩1约束,上述问题即可转化为凸问题,并且可以通过CVX直接解决。
但是注意,cvx求解出来的为,我们还需要通过某些方法将其恢复秩1,获得
。
法2:采用惩罚的方法
根据矩阵的性质易得,若矩阵的秩为1,即
,则以下等价:
。
意味着矩阵
只有一个特征值,又由于
是半正定矩阵,故可得:
。
而根据迹的性质,可得:
。
是
的最大特征值开平方根,则可得:
。
故可将问题转换为:
此时将秩1条件约束在目标函数中,注意此时的惩罚因子,尽可能保证秩1约束。
注意矩阵的二范数是凸函数!!!
max一个凸函数不是凸优化问题,此时可以使用MM算法获得的下界,根据一节泰勒不等式可得:
。
所以上述问题可转换为:
可用CVX直接解,求得。
参考【1】。
SDR获得秩1解
从上述两种方法中获得的恢复到秩1的
的方法。
1、特征值分解
,其中
是
的最大特征值,
是其对应的特征向量。但是获得的
不一定满足不等式约束条件,所以此时还需要从
出发,获得能满足约束条件的,同时离
最近的解。
2、高斯随机化
高斯随机化应该是运用最普遍的获得秩1解的方法。
3、寻求一个秩一最优解
不同问题模型,有不同的方法。
[2] 经典的SDR算法: 用半正定松弛法 ( Semidefinite Relaxation) 求解二次优化问题_B417科研笔记的博客-CSDN博客