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

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

前言

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

单刀直入

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

min

x

R

n

x

T

C

x

s.t.

x

T

A

i

x

i

b

i

,

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

≤,

=

=

= 的 其中之一。也就是说, 只要限制条件是二次约束即可。

C

C

C,

A

i

A_i

Ai​ 都是对称矩阵。 即,

C

,

A

1

,

,

A

m

S

n

C, A_{1}, \ldots, A_{m} \in \mathbb{S}^{n}

C,A1​,…,Am​∈Sn。

显然, 目标函数和限制条件中都有两个

x

x

x, 因此这类问题也被称为 二次约束二次规划 (quadratically constrained quadratic programs, QCQP) 问题。 需要注意的是, 这并不是一个凸问题。 因为

x

T

A

i

x

>

0

x^{T} A_{i} x>0

xTAi​x>0 和

x

T

A

i

x

=

0

x^{T} A_{i} x=0

xTAi​x=0 都并非一个凸集。

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

我们引入一个新的变量

X

=

x

x

T

X = xx^T

X=xxT, 并以此为优化变量, 那么问题(1)可以被写为:

min

X

S

n

Tr

(

C

X

)

s.t.

Tr

(

A

i

X

)

i

b

i

,

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) 的 目标函数

x

T

C

x

x^TCx

xTCx显然是一个标量。 而标量可以看成一个

1

×

1

1\times 1

1×1的矩阵, 且迹等于本身。 即

t

r

(

x

T

C

x

)

=

x

T

C

x

\mathrm{tr}(x^TCx)=x^TCx

tr(xTCx)=xTCx。 而根据迹的性质, 有

t

r

(

A

B

)

=

t

r

(

B

A

)

\mathrm{tr}(AB) = \mathrm{tr}(BA)

tr(AB)=tr(BA)。 也就是说,

t

r

(

x

T

C

x

)

=

t

r

(

C

x

x

T

)

=

t

r

(

C

X

)

\mathrm{tr}(x^TCx)=\mathrm{tr}(Cxx^T)=\mathrm{tr}(CX)

tr(xTCx)=tr(CxxT)=tr(CX)。 这也就变成了 (2)中的目标函数。 那么 (2) 中的限制条件,也就可以根据相同的变换轻易得到。相比于(1), (2)中多了两个限制条件, 这是由于

X

=

x

x

T

X = xx^T

X=xxT 引入的。 显然

rank

(

X

)

=

1

\operatorname{rank}(X)=1

rank(X)=1, 因为

X

X

X的所有列都线性相关。 也因此,只有一个特征值等于

x

T

x

x^Tx

xTx,显然是大于0的,所以肯定是半正定矩阵。

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

事实上, 除了

rank

(

X

)

=

1

\operatorname{rank}(X)=1

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

因此, 工程上很自然的想法就是, **暂时得忽略 该约束

rank

(

X

)

=

1

\operatorname{rank}(X)=1

rank(X)=1, 并通过凸优化方法 (事实上以CVX工具包为代表的内点法数值算法)来求解出一个解

X

X

X. 这一步大家百度下CVX的使用就可以了,没有任何障碍。

而问题的关键点在于,始终我们问题需要得到的是

x

x

x,而非

X

X

X。 如果通过凸优化求出的

X

X

X刚好就是一个

rank

(

X

)

=

1

\operatorname{rank}(X)=1

rank(X)=1的矩阵,那么

x

x

x可以直接得到(对X做个SVD或EVD啥的都可以)。 但更多时候,

X

X

X没有道理是一个

rank

(

X

)

=

1

\operatorname{rank}(X)=1

rank(X)=1的矩阵。 也就是说, 根本不存在一个

x

x

x, 使得

X

=

x

x

T

X=xx^T

X=xxT。

工程实现

那么SDR要解决的另一个问题就是如何从

X

X

X中恢复出一个满足原问题约束的

x

x

x。 出于工程实现角度的思路其实非常清晰, 我们可以直接求解下面的问题以获得

x

x

x:

min

x

X

x

x

T

F

2

(3)

\min_x \;\; \|X-xx^T\|_F^2\tag{3}

xmin​∥X−xxT∥F2​(3) 即找一个最接近

X

X

X的

x

x

T

xx^T

xxT。 这个问题很经典了,而他的闭式解就是,

x

x

x是

X

X

X的最大特征向量乘以最大特征值的平方根。 即, 将

X

X

X的特征值分解表示为:

X

=

i

=

1

r

λ

i

q

i

q

i

T

X^{\star}=\sum_{i=1}^{r} \lambda_{i} q_{i} q_{i}^{T}

X⋆=i=1∑r​λi​qi​qiT​ 其中

λ

i

\lambda_i

λi​,

q

i

q_i

qi​,代表第

i

i

i大的特征值和对应的特征向量。 那么(3)的最优解

x

x

x就是

x

~

=

λ

1

q

1

\tilde{x}=\sqrt{\lambda_{1} }q_1

x~=λ1​

​q1​。

但是,问题又出现了! 虽然

X

X

X满足了(2)中的所有的约束, 但由于在这一步中,(3)中求得的

x

x

x是一个近似的结果。 此时得到的

x

x

x,不一定满足原问题(1)中的约束了! 也就是说, 经过一顿转化之后, 求得的

x

x

x并不是原问题的可行解!此时怎么办呢? 解决方案也非常符合工程思维:直接从

x

x

x出发找一个离

x

x

x最近的可行解, 这就是SDR的最终结果。

最后提两点:

直接从

x

x

x出发找一个离

x

x

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

具体实例

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

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

minimize

F

B

B

F

o

p

t

F

R

F

F

B

B

F

2

subject to

F

B

B

F

2

=

N

R

F

t

N

s

N

t

(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时都是向量形式的变量

x

x

x, 而(4)中都是矩阵,不利于处理, 因此第一步先进行列化:

F

o

p

t

F

R

F

F

B

B

F

2

=

vec

(

F

o

p

t

F

R

F

F

B

B

)

2

2

=

vec

(

F

o

p

t

)

vec

(

F

R

F

F

B

B

)

2

2

=

vec

(

F

o

p

t

)

(

I

N

s

F

R

F

)

vec

(

F

B

B

)

2

2

.

\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

(

F

o

p

t

)

\mathbf{f}=\operatorname{vec}\left(\mathbf{F}_{\mathrm{opt}}\right)

f=vec(Fopt​),

b

=

vec

(

F

B

B

)

\mathbf{b}=\operatorname{vec}\left(\mathbf{F}_{\mathrm{BB}}\right)

b=vec(FBB​) and

E

=

I

N

s

F

R

F

.

\mathbf{E}=\mathbf{I}_{N_{s}} \otimes \mathbf{F}_{\mathrm{RF}} .

E=INs​​⊗FRF​.,原问题可写为:

minimize

b

t

f

E

b

2

2

subject to

{

b

2

2

=

N

R

F

t

N

s

N

t

t

2

=

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)

**这里必须强调的一点是, 作者引入了

t

t

t这样一个辅助变量。这是SDR的常见技巧之一!**接下来阐释这个

t

t

t的作用。

首先, 对于原问题的影响上:以(5)求解之后, 如果得到

t

=

1

t=1

t=1, 那么

f

\mathbf{f}

f就是(4)的最优解。 而如果

t

=

1

t=-1

t=−1, 那么

f

\mathbf{f}

f就是(4)的最优解的相反数, 仍等效于得到了最优解。其次, 加入这个

t

t

t辅助变量后, 可以更好地将(5)写成SDR的标准形式。 继续看:

目标函数可以写为:

t

f

E

b

2

2

=

[

b

H

t

]

[

E

H

E

E

H

f

f

H

E

f

H

f

]

[

b

t

]

\|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

=

[

b

t

]

\mathbf{y}=\left[\begin{array}{l}\mathbf{b} \\ t\end{array}\right]

y=[bt​],

C

=

[

E

H

E

E

H

f

f

H

E

f

H

f

]

\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​], 上式就等于

y

H

C

y

\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

2

2

=

[

b

H

t

]

[

I

N

R

F

t

N

s

0

0

0

]

[

b

t

]

=

N

R

F

t

N

s

N

t

t

2

=

[

b

H

t

]

[

0

N

R

F

t

N

s

0

0

1

]

[

b

t

]

=

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

=

[

b

t

]

,

Y

=

y

y

H

,

C

=

[

E

H

E

E

H

f

f

H

E

f

H

f

]

A

1

=

[

I

N

R

F

t

N

s

0

0

0

]

,

A

2

=

[

0

N

R

F

t

N

s

0

0

1

]

\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

H

n

(

Tr

C

Y

)

subject to

{

Tr

(

A

1

Y

)

=

N

R

F

t

N

s

N

t

Tr

(

A

2

Y

)

=

1

Y

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,而按照定义案例

t

t

t应该必须是

1

1

1或-1

1或−1。此时处理方式很简单, 直接对最后一个元素取正负号, 强行归成

1

1

1或

1

-1

−1即可。 而

b

\mathbf{b}

b(

y

\mathbf{y}

y的前面的元素)也不符合

b

2

2

=

N

R

F

t

N

s

N

t

\|\mathbf{b}\|_{2}^{2}=\frac{N_{\mathrm{RF}}^{t} N_{s}}{N_{t}}

∥b∥22​=Nt​NRFt​Ns​​的约束,此时的做法就是将

b

\mathbf{b}

b强行归一化成

b

2

2

=

N

R

F

t

N

s

N

t

\|\mathbf{b}\|_{2}^{2}=\frac{N_{\mathrm{RF}}^{t} N_{s}}{N_{t}}

∥b∥22​=Nt​NRFt​Ns​​即可。 操作非常简单, 那么其对应的思路就是我们在上文中提到的:当得到了

x

x

x后, 以离

x

x

x最近的可行解作为原问题的解。

实例2

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

原问题可以转化为这样的形式:

max

v

v

H

Φ

Φ

H

v

+

v

H

Φ

h

d

+

h

d

H

Φ

H

v

s.t.

v

n

=

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的每个元素需要满足恒模约束。 那么同样的, 可以通过引入辅助变量

t

t

t, 把问题转换为 齐次的 QCQP 问题:

max

v

v

H

R

v

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

Φ

h

d

h

d

H

Φ

H

0

]

,

v

=

[

v

t

]

\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}}^H

V=vˉvˉH, 就可以将问题转化为:

max

V

tr

(

R

V

)

s.t.

V

n

,

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})=1

rank(V)=1这一约束。 可以看到, 上述问题已经是凸问题了, 因为非凸的恒模约束经过转化后变成了

V

n

,

n

=

1

,

n

=

1

,

,

N

+

1

\boldsymbol{V}_{n, n}=1, \forall n=1, \cdots, N+1

Vn,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

Σ

U

H

\boldsymbol{V}=\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{U}^{H}

V=UΣUH, 此时, 我们令

v

=

U

Σ

1

/

2

r

\overline{\boldsymbol{v}}=\boldsymbol{U} \boldsymbol{\Sigma}^{\mathbf{1} / \mathbf{2}} \boldsymbol{r}

v=UΣ1/2r, 其中

r

C

N

(

0

,

I

N

+

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

=

e

j

arg

(

[

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的具体使用细节与相关代码 进行了更详细的介绍。

相关推荐

“舶”字怎么写好看,舶的书法字
123656的网站怎么打开

“舶”字怎么写好看,舶的书法字

⌛ 07-03 👁️ 2123
潇水作品集
365在线娱乐平台官网

潇水作品集

⌛ 06-30 👁️ 8482
冰雪传奇哪里爆戒指好__冰雪传奇哪里爆戒指好攻略与分析
123656的网站怎么打开

冰雪传奇哪里爆戒指好__冰雪传奇哪里爆戒指好攻略与分析

⌛ 07-06 👁️ 3238