前言

本文是博主对于 Zhi-quan Luo 老师的经典著作 《Semidefinite Relaxation of Quadratic Optimization Problems》 的读书笔记,希望可作为对全文以中文形式的核心梳理。

单刀直入

首先, Semidefinite Relaxation (SDR) 适用的问题可以写为如下形式:

min⁡x∈RnxTCxs.t. xTAix⊵ibi,i=1,…,m(1)\begin{aligned} \min _{x \in \mathbb{R}^{n}} & \;\;x^{T} C x \\ \text { s.t. } & x^{T} A_{i} x \unrhd_{i} b_{i}, \quad i=1, \ldots, m \end{aligned}\tag{1} x∈Rnmin​ s.t. ​xTCxxTAi​x⊵i​bi​,i=1,…,m​(1)

有几个注意点:

  • 暂时定义在实数域上, 但复数域有类似的结论。
  • ⊵i\unrhd_{i}⊵i​ 表示 ≥\ge≥, ≤\le≤, === 的 其中之一。也就是说, 只要限制条件是二次约束即可。
  • CCC, AiA_iAi​ 都是对称矩阵。 即, C,A1,…,Am∈SnC, A_{1}, \ldots, A_{m} \in \mathbb{S}^{n}C,A1​,…,Am​∈Sn。

显然, 目标函数和限制条件中都有两个xxx, 因此这类问题也被称为 二次约束二次规划 (quadratically
constrained quadratic programs, QCQP)
问题。 需要注意的是, 这并不是一个凸问题。 因为 xTAix>0x^{T} A_{i} x>0xTAi​x>0 和 xTAix=0x^{T} A_{i} x=0xTAi​x=0 都并非一个凸集。

而SDR方法的目的就是将问题转化为一个凸问题从而求解。

我们引入一个新的变量 X=xxTX = xx^TX=xxT, 并以此为优化变量, 那么问题(1)可以被写为:
min⁡X∈SnTr⁡(CX)s.t. Tr⁡(AiX)⊵ibi,i=1,…,m,X⪰0,rank⁡(X)=1(2)\begin{aligned} \min _{X \in \mathbb{S}^{n}} & \operatorname{Tr}(C X) \\ \text { s.t. } & \operatorname{Tr}\left(A_{i} X\right)\unrhd_{i} b_{i}, \quad i=1, \ldots, m, \\ & X \succeq 0, \operatorname{rank}(X)=1 \end{aligned}\tag{2} X∈Snmin​ s.t. ​Tr(CX)Tr(Ai​X)⊵i​bi​,i=1,…,m,X⪰0,rank(X)=1​(2)
详细解释一下这一步的转化:

  • 注意到 (1) 的 目标函数 xTCxx^TCxxTCx显然是一个标量。 而标量可以看成一个 1×11\times 11×1的矩阵, 且迹等于本身。 即 tr(xTCx)=xTCx\mathrm{tr}(x^TCx)=x^TCxtr(xTCx)=xTCx。 而根据迹的性质, 有 tr(AB)=tr(BA)\mathrm{tr}(AB) = \mathrm{tr}(BA)tr(AB)=tr(BA)。 也就是说, tr(xTCx)=tr(CxxT)=tr(CX)\mathrm{tr}(x^TCx)=\mathrm{tr}(Cxx^T)=\mathrm{tr}(CX)tr(xTCx)=tr(CxxT)=tr(CX)。 这也就变成了 (2)中的目标函数。 那么 (2) 中的限制条件,也就可以根据相同的变换轻易得到。
  • 相比于(1), (2)中多了两个限制条件, 这是由于 X=xxTX = xx^TX=xxT 引入的。 显然rank⁡(X)=1\operatorname{rank}(X)=1rank(X)=1, 因为XXX的所有列都线性相关。 也因此,只有一个特征值等于 xTxx^TxxTx,显然是大于0的,所以肯定是半正定矩阵。

这一步转化的意义在哪呢?

事实上, 除了 rank⁡(X)=1\operatorname{rank}(X)=1rank(X)=1 这个限制以外, 整个问题是一个凸问题。 由于迹函数是个仿射变换, 很容易证明其凸性。 而半正定约束也显然是个凸集, 因为两个半正定矩阵的和一定也是一个半正定矩阵。

因此, 工程上很自然的想法就是, **暂时得忽略 该约束rank⁡(X)=1\operatorname{rank}(X)=1rank(X)=1, 并通过凸优化方法 (事实上以CVX工具包为代表的内点法数值算法)来求解出一个解 XXX. 这一步大家百度下CVX的使用就可以了,没有任何障碍。

而问题的关键点在于,始终我们问题需要得到的是xxx,而非XXX。 如果通过凸优化求出的XXX刚好就是一个rank⁡(X)=1\operatorname{rank}(X)=1rank(X)=1的矩阵,那么xxx可以直接得到(对X做个SVD或EVD啥的都可以)。 但更多时候, XXX没有道理是一个 rank⁡(X)=1\operatorname{rank}(X)=1rank(X)=1的矩阵。 也就是说, 根本不存在一个xxx, 使得 X=xxTX=xx^TX=xxT。

工程实现

那么SDR要解决的另一个问题就是如何从XXX中恢复出一个满足原问题约束的xxx。
出于工程实现角度的思路其实非常清晰, 我们可以直接求解下面的问题以获得 xxx:
min⁡x∥X−xxT∥F2(3)\min_x \;\; \|X-xx^T\|_F^2\tag{3}xmin​∥X−xxT∥F2​(3)
即找一个最接近XXX的 xxTxx^TxxT。 这个问题很经典了,而他的闭式解就是, xxx是XXX的最大特征向量乘以最大特征值的平方根。 即, 将XXX的特征值分解表示为:
X⋆=∑i=1rλiqiqiTX^{\star}=\sum_{i=1}^{r} \lambda_{i} q_{i} q_{i}^{T} X⋆=i=1∑r​λi​qi​qiT​
其中λi\lambda_iλi​, qiq_iqi​,代表第iii大的特征值和对应的特征向量。 那么(3)的最优解 xxx就是 x~=λ1q1\tilde{x}=\sqrt{\lambda_{1} }q_1x~=λ1​​q1​。

但是,问题又出现了! 虽然XXX满足了(2)中的所有的约束, 但由于在这一步中,(3)中求得的xxx是一个近似的结果。 此时得到的xxx,不一定满足原问题(1)中的约束了! 也就是说, 经过一顿转化之后, 求得的xxx并不是原问题的可行解!此时怎么办呢? 解决方案也非常符合工程思维:直接从xxx出发找一个离xxx最近的可行解, 这就是SDR的最终结果。

最后提两点:

  • 直接从xxx出发找一个离xxx最近的可行解, 这本身就是一个独立的问题, 具体问题具体分析,后面会给一个具体的例子。
  • 毫无疑问,在SDR中有许许多多的近似,工程处理。 因此, SDR的解远非全局最优解。

具体实例

为节约篇幅, 本文只讲一个例子。 也不是论文中给出的, 而是HBF混合波束成形的经典论文 《Alternating Minimization Algorithms for Hybrid Precoding in Millimeter Wave MIMO Systems》中的 一个使用。 有兴趣的读者也可以去看 SDR论文的原文, 接触更多的例子。

以HBF为例, 作者将问题转化为了如下的形式, 熟悉HBF的读者应该很亲切了:

minimize⁡FBB∥Fopt−FRFFBB∥F2subject to ∥FBB∥F2=NRFtNsNt(4)\begin{array}{ll} \underset{\mathbf{F}_{\mathrm{BB}}}{\operatorname{minimize}} & \left\|\mathbf{F}_{\mathrm{opt}}-\mathbf{F}_{\mathrm{RF}} \mathbf{F}_{\mathrm{BB}}\right\|_{F}^{2} \\ \text { subject to } & \left\|\mathbf{F}_{\mathrm{BB}}\right\|_{F}^{2}=\frac{N_{\mathrm{RF}}^{t} N_{s}}{N_{t}} \end{array}\tag{4} FBB​minimize​ subject to ​∥Fopt​−FRF​FBB​∥F2​∥FBB​∥F2​=Nt​NRFt​Ns​​​(4)

作者使用了 SDR作为一种算法来求解该问题。 那么首先, 为什么会选用 SDR呢? 因为可以看到, 目标函数和限制条件都是二次形式, 这就是我们之前说到的SDR目标问题:QCQP问题。 接下来,通过这个例子展示如果实战使用SDR。

首先, 刚刚介绍SDR时都是向量形式的变量xxx, 而(4)中都是矩阵,不利于处理, 因此第一步先进行列化:
∥Fopt−FRFFBB∥F2=∥vec⁡(Fopt−FRFFBB)∥22=∥vec⁡(Fopt)−vec⁡(FRFFBB)∥22=∥vec⁡(Fopt)−(INs⊗FRF)vec⁡(FBB)∥22.\begin{aligned} \left\|\mathbf{F}_{\mathrm{opt}}-\mathbf{F}_{\mathrm{RF}} \mathbf{F}_{\mathrm{BB}}\right\|_{F}^{2} &=\left\|\operatorname{vec}\left(\mathbf{F}_{\mathrm{opt}}-\mathbf{F}_{\mathrm{RF}} \mathbf{F}_{\mathrm{BB}}\right)\right\|_{2}^{2} \\ &=\left\|\operatorname{vec}\left(\mathbf{F}_{\mathrm{opt}}\right)-\operatorname{vec}\left(\mathbf{F}_{\mathrm{RF}} \mathbf{F}_{\mathrm{BB}}\right)\right\|_{2}^{2} \\ &=\left\|\operatorname{vec}\left(\mathbf{F}_{\mathrm{opt}}\right)-\left(\mathbf{I}_{N_{s}} \otimes \mathbf{F}_{\mathrm{RF}}\right) \operatorname{vec}\left(\mathbf{F}_{\mathrm{BB}}\right)\right\|_{2}^{2} . \end{aligned} ∥Fopt​−FRF​FBB​∥F2​​=∥vec(Fopt​−FRF​FBB​)∥22​=∥vec(Fopt​)−vec(FRF​FBB​)∥22​=∥vec(Fopt​)−(INs​​⊗FRF​)vec(FBB​)∥22​.​
进行变量代换后 (f=vec⁡(Fopt)\mathbf{f}=\operatorname{vec}\left(\mathbf{F}_{\mathrm{opt}}\right)f=vec(Fopt​),b=vec⁡(FBB)\mathbf{b}=\operatorname{vec}\left(\mathbf{F}_{\mathrm{BB}}\right)b=vec(FBB​) and E=INs⊗FRF.\mathbf{E}=\mathbf{I}_{N_{s}} \otimes \mathbf{F}_{\mathrm{RF}} .E=INs​​⊗FRF​.,原问题可写为:

minimize⁡b∥tf−Eb∥22subject to {∥b∥22=NRFtNsNtt2=1(5)\begin{aligned} &\underset{\mathbf{b}}{\operatorname{minimize}} \quad\|t \mathbf{f}-\mathbf{E b}\|_{2}^{2} \\ &\text { subject to } & \left\{\begin{array}{l} \|\mathbf{b}\|_{2}^{2}=\frac{N_{\mathrm{RF}}^{t} N_{s}}{N_{t}} \\ t^{2}=1 \end{array}\right. \end{aligned}\tag{5} ​bminimize​∥tf−Eb∥22​ subject to ​{∥b∥22​=Nt​NRFt​Ns​​t2=1​​(5)

**这里必须强调的一点是, 作者引入了 ttt这样一个辅助变量。这是SDR的常见技巧之一!**接下来阐释这个ttt的作用。

  • 首先, 对于原问题的影响上:以(5)求解之后, 如果得到t=1t=1t=1, 那么f\mathbf{f}f就是(4)的最优解。 而如果t=−1t=-1t=−1, 那么f\mathbf{f}f就是(4)的最优解的相反数, 仍等效于得到了最优解。
  • 其次, 加入这个ttt辅助变量后, 可以更好地将(5)写成SDR的标准形式。 继续看:

目标函数可以写为:

∥tf−Eb∥22=[bHt][EHE−EHf−fHEfHf][bt]\|t \mathbf{f}-\mathbf{E b}\|_{2}^{2}=\left[\begin{array}{ll} \mathbf{b}^{H} & t \end{array}\right]\left[\begin{array}{cc} \mathbf{E}^{H} \mathbf{E} & -\mathbf{E}^{H} \mathbf{f} \\ -\mathbf{f}^{H} \mathbf{E} & \mathbf{f}^{H} \mathbf{f} \end{array}\right]\left[\begin{array}{l} \mathbf{b} \\ t \end{array}\right] ∥tf−Eb∥22​=[bH​t​][EHE−fHE​−EHffHf​][bt​]
注意到: 此时令 y=[bt]\mathbf{y}=\left[\begin{array}{l}\mathbf{b} \\ t\end{array}\right]y=[bt​], C=[EHE−EHf−fHEfHf]\mathbf{C}=\left[\begin{array}{cc}\mathbf{E}^{H} \mathbf{E} & -\mathbf{E}^{H} \mathbf{f} \\ -\mathbf{f}^{H} \mathbf{E} & \mathbf{f}^{H} \mathbf{f}\end{array}\right]C=[EHE−fHE​−EHffHf​], 上式就等于 yHCy\mathbf{y}^H\mathbf{C}\mathbf{y}yHCy,而C\mathbf{C}C是个显然的半正定矩阵:C=[E,−f]H[E,−f]\mathbf{C}=[\mathbf{E}, -\mathbf{f}]^H[\mathbf{E}, -\mathbf{f}]C=[E,−f]H[E,−f],一个矩阵的共轭转置乘以本身肯定是半正定矩阵(可从特征值角度得证)。

那么(5)中的另外两个约束又可以转换为:
∥b∥22=[bHt][INRFtNs000][bt]=NRFtNsNtt2=[bHt][0NRFtNs001][bt]=1\begin{aligned}\|\mathbf{b}\|_{2}^{2} &=\left[\begin{array}{ll}\mathbf{b}^{H} & t\end{array}\right]\left[\begin{array}{cc}\mathbf{I}_{N_{\mathrm{RF}}^{t}} N_{s} & 0 \\ \mathbf{0} & 0\end{array}\right]\left[\begin{array}{c}\mathbf{b} \\ t\end{array}\right]=\frac{N_{\mathrm{RF}}^{t} N_{s}}{N_{t}} \\ t^{2} &=\left[\begin{array}{ll}\mathbf{b}^{H} & t\end{array}\right]\left[\begin{array}{cc}0_{N_{\mathrm{RF}}^{t}} N_{s} & 0 \\ 0 & 1\end{array}\right]\left[\begin{array}{l}\mathbf{b} \\ t\end{array}\right]=1 \end{aligned}∥b∥22​t2​=[bH​t​][INRFt​​Ns​0​00​][bt​]=Nt​NRFt​Ns​​=[bH​t​][0NRFt​​Ns​0​01​][bt​]=1​

大家可以细致体会下, 为什么SDR可以应用广泛的原因, 因为大部分二次约束都可以通过稍加构造就写成QCQP的形式。

那么,最后经过一步变量代换:
y=[bt],Y=yyH,C=[EHE−EHf−fHEfHf]A1=[INRFtNs000],A2=[0NRFtNs001]\begin{aligned} &\mathbf{y}=\left[\begin{array}{c} \mathbf{b} \\ t \end{array}\right], \mathbf{Y}=\mathbf{y} \mathbf{y}^{H}, \mathbf{C}=\left[\begin{array}{cc} \mathbf{E}^{H} \mathbf{E} & -\mathbf{E}^{H} \mathbf{f} \\ -\mathbf{f}^{H} \mathbf{E} & \mathbf{f}^{H} \mathbf{f} \end{array}\right] \\ &\mathbf{A}_{1}=\left[\begin{array}{cc} \mathbf{I}_{N_{\mathrm{RF}}^{t} N_{s}} & 0 \\ \mathbf{0} & 0 \end{array}\right], \mathbf{A}_{2}=\left[\begin{array}{cc} \mathbf{0}_{N_{\mathrm{RF}}^{t}} N_{s} & 0 \\ \mathbf{0} & 1 \end{array}\right] \end{aligned} ​y=[bt​],Y=yyH,C=[EHE−fHE​−EHffHf​]A1​=[INRFt​Ns​​0​00​],A2​=[0NRFt​​Ns​0​01​]​

(5)终于可写为SDR的标准形式:
minimize⁡Y∈Hn(Tr⁡CY)subject to {Tr⁡(A1Y)=NRFtNsNtTr⁡(A2Y)=1Y⪰0,rank⁡(Y)=1\begin{aligned} &\underset{\mathbf{Y} \in \mathbb{H}^{n}}{\operatorname{minimize}} \underset{\operatorname{Tr}}(\mathbf{C Y}) \\ &\text { subject to }\left\{\begin{array}{l} \operatorname{Tr}\left(\mathbf{A}_{1} \mathbf{Y}\right)=\frac{N_{\mathrm{RF}}^{t} N_{s}}{N_{t}} \\ \operatorname{Tr}\left(\mathbf{A}_{2} \mathbf{Y}\right)=1 \\ \mathbf{Y} \succeq 0, \operatorname{rank}(\mathbf{Y})=1 \end{array}\right. \end{aligned} ​Y∈Hnminimize​Tr(​CY) subject to ⎩⎨⎧​Tr(A1​Y)=Nt​NRFt​Ns​​Tr(A2​Y)=1Y⪰0,rank(Y)=1​​
通过松弛掉最后一个约束, 问题就可以通过凸优化直接求解。
最后必须强调, 如何从Y\mathbf{Y}Y中恢复出b\mathbf{b}b(即原问题真正的目标)。 首先,用特征值分解得到y\mathbf{y}y。 此时 y\mathbf{y}y的最后一个元素大概率不是1,而按照定义案例ttt应该必须是1或−11或-11或−1。此时处理方式很简单, 直接对最后一个元素取正负号, 强行归成111或−1-1−1即可。 而b\mathbf{b}b( y\mathbf{y}y的前面的元素)也不符合∥b∥22=NRFtNsNt\|\mathbf{b}\|_{2}^{2}=\frac{N_{\mathrm{RF}}^{t} N_{s}}{N_{t}}∥b∥22​=Nt​NRFt​Ns​​的约束,此时的做法就是将b\mathbf{b}b强行归一化成∥b∥22=NRFtNsNt\|\mathbf{b}\|_{2}^{2}=\frac{N_{\mathrm{RF}}^{t} N_{s}}{N_{t}}∥b∥22​=Nt​NRFt​Ns​​即可。 操作非常简单, 那么其对应的思路就是我们在上文中提到的:当得到了xxx后, 以离xxx最近的可行解作为原问题的解。

实例2

再举个近期的实例好了。 是来自于 智能反射面相关paper 《Intelligent Reflecting Surface Enhanced Wireless
Network: Joint Active and Passive Beamforming Design》中, 对于passive beamforming 的设计, 同样使用了 SDR 算法。

原问题可以转化为这样的形式:
max⁡vvHΦΦHv+vHΦhd+hdHΦHvs.t. ∣vn∣=1,∀n=1,⋯,N\begin{array}{cl} \max _{\boldsymbol{v}} & \boldsymbol{v}^{H} {\Phi} \Phi^{H} \boldsymbol{v}+\boldsymbol{v}^{H}{\Phi} \boldsymbol{h}_{d}+\boldsymbol{h}_{d}^{H}{\Phi}^{H} \boldsymbol{v} \\ \text { s.t. } & \left|v_{n}\right|=1, \forall n=1, \cdots, N \end{array} maxv​ s.t. ​vHΦΦHv+vHΦhd​+hdH​ΦHv∣vn​∣=1,∀n=1,⋯,N​
简单而言, 就是其余参数都已给定, 要求优化向量v\mathbf{v}v, 其中v\mathbf{v}v的每个元素需要满足恒模约束。
那么同样的, 可以通过引入辅助变量 ttt, 把问题转换为 齐次的 QCQP 问题:

max⁡v‾v‾HRv‾s.t. ∣vˉn∣=1,∀n=1,⋯,N+1\begin{array}{cl} \max _{\overline{\boldsymbol{v}}} & \overline{\boldsymbol{v}}^{H} \boldsymbol{R} \overline{\boldsymbol{v}} \\ \text { s.t. } & \left|\bar{v}_{n}\right|=1, \forall n=1, \cdots, N+1 \end{array} maxv​ s.t. ​vHRv∣vˉn​∣=1,∀n=1,⋯,N+1​

其中,
R=[ΦΦHΦhdhdHΦH0],v‾=[vt]\boldsymbol{R}=\left[\begin{array}{cc} \boldsymbol{\Phi} \Phi^{H} & \mathbf{\Phi} \boldsymbol{h}_{d} \\ \boldsymbol{h}_{d}^{H} \boldsymbol{\Phi}^{H} & 0 \end{array}\right], \quad \overline{\boldsymbol{v}}=\left[\begin{array}{l} v \\ t \end{array}\right] R=[ΦΦHhdH​ΦH​Φhd​0​],v=[vt​]

那么根据SDR的方法, 令 V=vˉvˉH\mathbf{V}=\bar{\mathbf{v}}\bar{\mathbf{v}}^HV=vˉvˉH, 就可以将问题转化为:

max⁡Vtr⁡(RV)s.t. Vn,n=1,∀n=1,⋯,N+1,V⪰0\begin{array}{ll} \max _{\boldsymbol{V}} & \operatorname{tr}(\boldsymbol{R} \boldsymbol{V}) \\ \text { s.t. } & \boldsymbol{V}_{n, n}=1, \forall n=1, \cdots, N+1, \\ & \boldsymbol{V} \succeq 0 \end{array} maxV​ s.t. ​tr(RV)Vn,n​=1,∀n=1,⋯,N+1,V⪰0​

当然这里同样的放松掉了rank⁡(V)=1\operatorname{rank}(\boldsymbol{V})=1rank(V)=1这一约束。 可以看到, 上述问题已经是凸问题了, 因为非凸的恒模约束经过转化后变成了 Vn,n=1,∀n=1,⋯,N+1\boldsymbol{V}_{n, n}=1, \forall n=1, \cdots, N+1Vn,n​=1,∀n=1,⋯,N+1, 这无疑是一个凸约束 (可以用凸集的定义轻松得证)。

因此, SDR也是处理恒模约束的一种思路。

注意, 这个例子的后续处理,也是从SDR解V\mathbf{V}V获得原问题可行解的一种经典思路:SDR + Gaussian randomization. 这种处理相比于上面提到的直接寻找欧氏距离最近的v\mathbf{v}v,会有通过复杂度提升换来的一定性能增益。

首先, 对V\mathbf{V}V进行 EVD分解, 得到V=UΣUH\boldsymbol{V}=\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{U}^{H}V=UΣUH, 此时, 我们令 v‾=UΣ1/2r\overline{\boldsymbol{v}}=\boldsymbol{U} \boldsymbol{\Sigma}^{\mathbf{1} / \mathbf{2}} \boldsymbol{r}v=UΣ1/2r, 其中r∈CN(0,IN+1)\boldsymbol{r} \in \mathcal{C} \mathcal{N}\left(\mathbf{0}, \boldsymbol{I}_{N+1}\right)r∈CN(0,IN+1​)。 注意, 如果是上面提到的普通SDR方法, r=[1,0,⋯,0]\mathbf{r}=[1, 0, \cdots, 0]r=[1,0,⋯,0], 即vˉ\bar{\mathbf{v}}vˉ等于最大特征向量。 而这里,引入了一个随机变量, 使得我们尝试更多种的vˉ\bar{\mathbf{v}}vˉ, 再选出使得目标函数值最大的vˉ\bar{\mathbf{v}}vˉ作为最优解。 可以看到, 这种方法其实就是通过遍历更多解来获得更好的性能。 最后, 还是把得到的vˉ\bar{\mathbf{v}}vˉ转换为可行解: v=ejarg⁡([vˉvˉN+1](1:N))\boldsymbol{v}=e^{j \arg \left(\left[\frac{\bar{v}}{\bar{v}_{N+1}}\right]_{(1: N)}\right)}v=ejarg([vˉN+1​vˉ​](1:N)​)。

代码

关于SDR 更细节一些的实现和相关代码, 在下一篇博文 经典的SDR算法(下):SDR的具体使用细节与相关代码 进行了更详细的介绍。

经典的SDR算法: 用半正定松弛法 ( Semidefinite Relaxation) 求解二次优化问题相关推荐

  1. 半正定松弛法(SDR)2021-11-06

    @[TOC](半正定松弛法 ( Semidefinite Relaxation) 求解二次优化问题(QCQP)) SDR适用问题的表现形式 min⁡x∈RnxTCxs.t.xTAix⊵ibi,i=1, ...

  2. SDP半正定规划的低复杂度求解:基于块坐标下降(Block Coordinate Descent)

    前言 之前的几篇博客 经典的SDR算法: 用半正定松弛法 ( Semidefinite Relaxation) 求解二次优化问题 和 经典的SDR算法(下):SDR的具体使用细节与相关代码 中介绍了一 ...

  3. UA MATH567 高维统计II 随机向量6 亚高斯随机向量的应用: 半正定规划

    UA MATH567 高维统计II 随机向量6 亚高斯随机向量的应用: 半正定规划 半正定规划(semidefinite programming, SDP)是凸优化的一个分支: max⁡X⟨A,X⟩s ...

  4. 优化问题-半正定规划(Semi-Definite Program, SDP)

    文章目录 背景 SDP的两种形式 QCQP和SOCP转化为SDP SDP在组合优化中的应用 SDR的一些例子 下行发送功率最小化 背景 半正定规划(Semi-Definite Program, SDP ...

  5. UA MATH567 高维统计IV Lipschitz组合9 矩阵函数、半正定序与迹不等式

    UA MATH567 高维统计IV Lipschitz组合9 矩阵函数.半正定序与迹不等式 矩阵函数 半正定序(positive semi-definite order, PSD order) 迹不等 ...

  6. 【数理知识】标量函数、二次型函数、矩阵、正定负定半正定半负定

    正定 负定 半正定 半负定 正定 负定 半正定 半负定 1. 标量函数 1.1 正定 1.2 半正定 1.3 负定 1.4 半负定 1.5 不定 2. 二次型函数 3. 矩阵 3.1 负定矩阵 3.2 ...

  7. 【机器学习入门】图解超经典的KNN算法

    出品:Python数据之道(ID:PyDataLab) 作者:Peter,来自读者投稿 编辑:Lemon 图解超经典的KNN算法 本文中介绍的机器学习算法中的一种监督学习的算法:KNN 算法,全称是 ...

  8. python用tsne降维_哈工大硕士实现了 11 种经典数据降维算法,源代码库已开放

    网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码.这里有个 GitHub 项目整理了使用 Python 实现了 11 种经典的数据抽取(数据降维)算法,包括:PCA.LDA.MDS.LLE. ...

  9. ncut算法matlab实现,ncut_multiscale_1_6 经典的图像分割算法 的Matlab代码。 238万源代码下载- www.pudn.com...

    文件名称: ncut_multiscale_1_6下载 收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 587 KB 上传时间: 2015-04-17 下载次数: ...

最新文章

  1. 诺基亚7plus更新android10,诺基亚发布第五次Android 10更新 诺基亚7+可升级
  2. 【Python】编程笔记1
  3. 3·15,你“信”了吗
  4. 最高法院明确反向工程合法 腾讯诉PICA恐生变
  5. 深度学习精度提升 3 个小妙招:模型集成、知识蒸馏、自蒸馏
  6. 2018 EC Final(西安)小结
  7. USACO 2006 Open, Problem. The Country Fair 动态规划
  8. python绘制四边螺旋线代_Python绘制3d螺旋曲线图实例代码
  9. webAppbuilder微件使用教程1 快速入门
  10. tidyverse —— readxl包
  11. Brettle.Web.NeatUpload.dll大文件上传控件使用详解
  12. Android中View的绘制过程 onMeasure方法简述 附有自定义View例子
  13. CLRvia3读书笔记
  14. 任正非表示华为可以向美国企业转让5G技术;谷歌同意支付5亿欧元买断与法国纠纷;京东公布iPhone11系列预售战报……...
  15. matlab设置固定的窗宽窗位,如何设定窗宽窗位,附正常人体组织CT值
  16. NEFU 大一寒假2.15考试 2020.02.15
  17. 巧用友盟UShare、ULink玩转裂变营销
  18. DIY钢铁侠电动开合
  19. 一张表格搞懂那些特殊的IP地址
  20. eve计算机配置要求,玩EVE的电脑应该怎么配置?

热门文章

  1. 一元三次方程求根公式
  2. 2020ndroid开发爆款书籍推荐:从小白—Android高级工程师系列学习路线书籍介绍
  3. csp试题2:消除类游戏
  4. PhotoShop 之路径和选区的转换
  5. 用流程图、NS图、伪代码分别描述解决如下实际问题的算法。有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换
  6. Ubuntu下安装RealtekRTL8125网卡驱动
  7. 关于私有云、专有云、公有云、SaaS、独立部署、多租户
  8. python画图添加数据标签_Matplotlib:plt.text()给图形添加数据标签
  9. origin图上显示数据标签_半分钟教程:Origin 中如何设置非等距 X 轴刻度
  10. python线上编程-线上的编程课哪家好