半正定规划(SDP)及半正定松弛(SDR)

本文介绍了如何通过半正定松弛(SDR)技术,将非凸的Boolean二次规划(BQP)转换为半正定规划(SDP)的凸近似问题,以及在最优解的秩为1时直接获取原问题解,或在秩不为1时采用随机化方法求得近似解的过程。
摘要由CSDN通过智能技术生成

半正定规划(SDP)及半正定松弛(SDR)

  通常求解一个优化问题的方法不是唯一的,常见的优化问题LP,QP,QCQP,SOCP可以转化为半正定规划SDP问题。
半正定松弛(SDR)方法通过放宽非凸约束,将问题变为SDP,然后在从变形后的凸问题的最优解中找到原问题的近似解。

SDP

  半正定规划的不等式形式为:
min ⁡ c T x s.t. F ( x ) ⪯ 0 \begin{equation} \begin{align*} \min\quad &\mathbf{c^Tx} \\ \text{s.t.}\quad &\mathbf{F}(\mathbf{x})\preceq\mathbf{0}\\ \end{align*} \end{equation} mins.t.cTxF(x)0
其中 c ∈ R n , x ∈ R n , F ( x ) = F 0 + x 1 F 1 + . . . + x n F n , F i ∈ S n \mathbf{c}\in\mathbb{R}^{n},\mathbf{x}\in\mathbb{R}^n,\mathbf{F}(\mathbf{x})=\mathbf{F}_0+x_1\mathbf{F}_1+...+x_n\mathbf{F}_n,\mathbf{F}_i\in\mathbb{S}^n cRn,xRn,F(x)=F0+x1F1+...+xnFn,FiSn S n \mathbb{S}^{n} Sn表示n阶实对称矩阵。
  半正定规划的标准形式为:
min ⁡ Tr( C X ) s.t. X ⪰ 0 Tr( A i X )= b i , i = 1 , . . . , m \begin{equation} \begin{align*} \min\quad &\text{Tr(}\mathbf{CX}\text{)} \\ \text{s.t.}\quad&\mathbf{X}\succeq \mathbf{0} \\ &\text{Tr(}{{\mathbf{A}}_{i}}\mathbf{X}\text{)=}{{\text{b}}_{i}},i=1,...,m \\ \end{align*} \end{equation} mins.t.Tr(CX)X0Tr(AiX)=bi,i=1,...,m
其中 A i , C , X ∈ S n , b i ∈ R n {{\mathbf{A}}_{i}},\mathbf{C},\mathbf{X}\in {{\mathbb{S}}^{n}},{{b}_{i}}\in \mathbb{R}^{n} Ai,C,XSn,biRn

结合SDR构造SDP并求解

Boolean 二次规划

  考虑如下的Boolean二次规划(Boolean Quadratic Program,BQP):
max ⁡ x T C x s.t. x i ∈ { − 1 , + 1 } , i = 1 , . . . , n \begin{equation} \begin{align*} \max\quad &\mathbf{x}^T\mathbf{Cx} \\ \text{s.t.}\quad&x_i\in\{-1,+1\},i=1,...,n \\ \end{align*} \end{equation} maxs.t.xTCxxi{1,+1},i=1,...,n
其中 C ∈ S n \mathbf{C}\in\mathbb{S}^n CSn
  当且仅当 C ⪰ 0 \mathbf{C}\succeq\mathbf{0} C0时,二次目标函数为凸。但是可行集等价于由非仿射等式约束 x i 2 = 1 , i = 1 , . . , n x_i^2=1,i=1,..,n xi2=1,i=1,..,n形成的集合,因此即使 C \mathbf{C} C是半正定矩阵,BQP仍然不是凸问题。用穷举法求解BQP问题的复杂度是 2 n 2^n 2n
  下面介绍如何通过BQP的变形和松弛来获得一个多项式时间可解的凸问题,并且可以有效地得到高精度的近似解。

基于SDR的BQP近似

  由于 x T C x = T r ( C x x T ) \mathbf{x}^T\mathbf{C}\mathbf{x}=Tr(\mathbf{Cxx}^T) xTCx=Tr(CxxT),故定义辅助变量 X = x x T \mathbf{X}=\mathbf{xx}^T X=xxT
  则式(3)可以变换为
max ⁡ x , X Tr( C X ) s.t. X = x x T [ X ] i i = 1 , i = 1 , . . . , n \begin{equation} \begin{align*} \max_{\mathbf{x,X}}\quad &\text{Tr(}\mathbf{CX}\text{)} \\ \text{s.t.}\quad&\mathbf{X}= \mathbf{xx}^T \\ &[\mathbf{X}]_{ii}=1,i=1,...,n\\ \end{align*} \end{equation} x,Xmaxs.t.Tr(CX)X=xxT[X]ii=1,i=1,...,n
  对于任意的 C \mathbf{C} C,目标函数是关于 X \mathbf{X} X的线性函数(因此是凸的),原始问题中关于 x x x的非凸约束转化为关于 X \mathbf{X} X的凸约束(即对角线上所有元素为1),但是等式约束 X = x x T \mathbf{X}=\mathbf{xx}^T X=xxT(即 X \mathbf{X} X一定是秩为1的PSD矩阵)是非凸的。
  由于 X = x x T ⇔ X ⪰ 0 , r a n k ( X ) = 1 \mathbf{X}=\mathbf{xx}^T\Leftrightarrow \mathbf{X}\succeq\mathbf{0},rank(\mathbf{X})=1 X=xxTX0rank(X)=1,因此将(4)中的非凸约束 X = x x T \mathbf{X}=\mathbf{xx}^T X=xxT放松为 X ⪰ 0 \mathbf{X}\succeq\mathbf{0} X0(即去掉秩为1的约束),可以将原问题转化为如下SDP问题:
max ⁡ x , X Tr( C X ) s.t. X ⪰ 0 [ X ] i i = 1 , i = 1 , . . . , n \begin{equation} \begin{align*} \max_{\mathbf{x,X}}\quad &\text{Tr(}\mathbf{CX}\text{)} \\ \text{s.t.}\quad& \mathbf{X}\succeq\mathbf{0}\\ &[\mathbf{X}]_{ii}=1,i=1,...,n\\ \end{align*} \end{equation} x,Xmaxs.t.Tr(CX)X0[X]ii=1,i=1,...,n
  这种松弛方法被称作半正定松弛(SemiDefinite Relaxation, SDR)
  一旦问题(5)得到解决,其最优解可以用于寻找原问题(3)的近似解。

1 r a n k ( X ∗ ) = 1 rank(\mathbf{X}^*)=1 rank(X)=1
  由于转化过程中抛弃了秩为1的约束,因此如果问题(5)的最优解 X ∗ \mathbf{X^*} X的秩为1,那么可以通过特征值分解 X ∗ = x ∗ x ∗ T \mathbf{X^*}=\mathbf{x}^*{\mathbf{x}^*}^T X=xxT,从而直接得到(3)的最优解 x ∗ \mathbf{x^*} x
2 r a n k ( X ∗ ) ≠ 1 rank(\mathbf{X}^*)\ne1 rank(X)=1
(1)秩-1近似
  通过简单地选取 X ∗ \mathbf{X^*} X的主特征值向量 x ~ \mathbf{\tilde{x}} x~,对于任意 i i i,再利用 x ~ i = s g n ( x ~ i ) \tilde{x}_i=sgn(\tilde{x}_i) x~i=sgn(x~i),将其量化为 x ~ ∈ { ± 1 } n \mathbf{\tilde{x}}\in\{\pm1\}^n x~{±1}n,所得解即为(3)的近似解。
(2)高斯随机化
  产生 L L L个服从均值为 0 \mathbf{0} 0、协方差矩阵为 X ∗ \mathbf{X}^* X的高斯随机向量 { ξ l , l = 1 , . . . , L } \{\mathbf{\xi}^{l},l=1,...,L\} {ξl,l=1,...,L},再将 ξ l \mathbf{\xi}^{l} ξl量化为集合 { ± 1 } n \{\pm1\}^n {±1}n中的一个向量,记作 x ^ ( l ) \hat{\mathbf{x}}^{(l)} x^(l),量化的方法如下: [ x ^ ( l ) ] i = s g n ( [ ξ ^ ( l ) ] i ) , ∀ i [\hat{\mathbf{x}}^{(l)}]_i=sgn([\hat{\mathbf{\xi}}^{(l)}]_i),\forall{i} [x^(l)]i=sgn([ξ^(l)]i)i
最终得到 x ^ = x ^ ( l ∗ ) \hat{\mathbf{x}}^=\hat{\mathbf{x}}^{(l^*)} x^=x^(l),即为(3)的近似解,其中
l ∗ = arg ⁡ max ⁡ l = 1 , . . . , L x ^ ( l ) T C x ^ ( l ) l^*=\arg \max_{l=1,...,L}{\hat{\mathbf{x}}^{(l)}}^T\mathbf{C}\hat{\mathbf{x}}^{(l)} l=argl=1,...,Lmaxx^(l)TCx^(l)

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值