凸优化的中复杂度分析方法(针对二阶锥和线性矩阵不等式)
本文介绍了多目标优化(凸优化)中的复杂度分析方法,针对是Linear Matrix Inequality(LMI)和Second Order Cone (SOC)的型约束条件。主要参考了文献Outage Constrained Robust Transmit Optimization for Multiuser MISO Downlinks: Tractable Approximations by Conic Optimization。
先补充一下,这是二阶锥形式:
复杂度计算主要包含三个大步骤
一. 确定迭代次数
β
\sqrt{\beta }
β表示达到最优解所需迭代次数。其中
β
=
∑
j
=
1
p
k
j
⏟
L
M
I
+
2
m
⏟
SOC
\beta \text{=}\underbrace{\sum\limits_{j=1}^{p}{{{k}_{j}}}}_{LMI}+\underbrace{2m}_{\text{SOC}}
β=LMI
j=1∑pkj+SOC
2m,
p
p
p 是指的LMI约束的个数,
k
j
{{k}_{j}}
kj表示第
j
j
j个约束对应的维度,
m
m
m指的是SOC约束的个数。因此迭代次数表示为:
∑
j
=
1
p
k
j
⏟
L
M
I
+
2
m
⏟
SOC
\sqrt{\underbrace{\sum\limits_{j=1}^{p}{{{k}_{j}}}}_{LMI}+\underbrace{2m}_{\text{SOC}}}
LMI
j=1∑pkj+SOC
2m。
二. 确定每次迭代的复杂度
使用
C
f
o
r
m
+
C
f
a
c
t
{{\text{C}}_{form}}+{{C}_{fact}}
Cform+Cfact表示每次迭代所需的复杂度。
C
f
o
r
m
=
n
∑
j
=
1
p
k
j
3
+
n
2
∑
j
=
1
p
k
j
2
⏟
L
M
I
+
n
∑
j
=
1
m
k
j
2
⏟
SOC
{{\text{C}}_{form}}\text{=}\underbrace{n\sum\limits_{j=1}^{p}{k_{j}^{3}}+{{n}^{2}}\sum\limits_{j=1}^{p}{k_{j}^{2}}}_{LMI}+\underbrace{n\sum\limits_{j=1}^{m}{k_{j}^{2}}}_{\text{SOC}}
Cform=LMI
nj=1∑pkj3+n2j=1∑pkj2+SOC
nj=1∑mkj2
, 其中
n
n
n表示需要优化的总变量数目。
p
p
p是指的LMI约束的个数
m
m
m指的是SOC约束的个数,
k
j
{{k}_{j}}
kj表示第 个约束条件对应的维度。
C
f
a
c
t
=
n
3
{{C}_{fact}}={{n}^{3}}
Cfact=n3。
最终
C
f
o
r
m
+
C
f
a
c
t
=
n
∑
j
=
1
p
k
j
3
+
n
2
∑
j
=
1
p
k
j
2
⏟
L
M
I
+
n
∑
j
=
1
m
k
j
2
⏟
SOC
+
n
3
{{\text{C}}_{form}}+{{C}_{fact}}=\underbrace{n\sum\limits_{j=1}^{p}{k_{j}^{3}}+{{n}^{2}}\sum\limits_{j=1}^{p}{k_{j}^{2}}}_{LMI}+\underbrace{n\sum\limits_{j=1}^{m}{k_{j}^{2}}}_{\text{SOC}}+{{n}^{3}}
Cform+Cfact=LMI
nj=1∑pkj3+n2j=1∑pkj2+SOC
nj=1∑mkj2+n3
三. 总计算复杂度表示
∑
j
=
1
p
k
j
⏟
L
M
I
+
2
m
⏟
SOC
⋅
[
n
∑
j
=
1
p
k
j
3
+
n
2
∑
j
=
1
p
k
j
2
⏟
L
M
I
+
n
∑
j
=
1
m
k
j
2
⏟
SOC
+
n
3
]
\quad\sqrt{\underbrace{\sum\limits_{j=1}^{p}{{{k}_{j}}}}_{LMI}+\underbrace{2m}_{\text{SOC}}}\centerdot [\underbrace{n\sum\limits_{j=1}^{p}{k_{j}^{3}}+{{n}^{2}}\sum\limits_{j=1}^{p}{k_{j}^{2}}}_{LMI}+\underbrace{n\sum\limits_{j=1}^{m}{k_{j}^{2}}}_{\text{SOC}}+{{n}^{3}}]
LMI
j=1∑pkj+SOC
2m⋅[LMI
nj=1∑pkj3+n2j=1∑pkj2+SOC
nj=1∑mkj2+n3]
=
n
⋅
∑
j
=
1
p
k
j
⏟
L
M
I
+
2
m
⏟
SOC
⋅
[
∑
j
=
1
p
k
j
3
+
n
∑
j
=
1
p
k
j
2
⏟
L
M
I
+
∑
j
=
1
m
k
j
2
⏟
SOC
+
n
2
]
=n\centerdot \sqrt{\underbrace{\sum\limits_{j=1}^{p}{{{k}_{j}}}}_{LMI}+\underbrace{2m}_{\text{SOC}}}\centerdot [\underbrace{\sum\limits_{j=1}^{p}{k_{j}^{3}}+n\sum\limits_{j=1}^{p}{k_{j}^{2}}}_{LMI}+\underbrace{\sum\limits_{j=1}^{m}{k_{j}^{2}}}_{\text{SOC}}+{{n}^{2}}]
=n⋅LMI
j=1∑pkj+SOC
2m⋅[LMI
j=1∑pkj3+nj=1∑pkj2+SOC
j=1∑mkj2+n2]
举例1:
已知其中,
Q
i
{{\mathbf{Q}}_{i}}
Qi和
S
i
{{\mathbf{S}}_{i}}
Si都是
N
t
×
N
t
{{N}_{t}}\times {{N}_{t}}
Nt×Nt的矩阵,
r
i
{{\mathbf{r}}_{i}}
ri是
N
t
×
1
{{N}_{t}}\times 1
Nt×1的向量,
t
i
{{t}_{i}}
ti是标量。
按照步骤写:
1)计算迭代次数
图中约束条件(1)中包含 K K K个 N t + 1 {{N}_{t}}\text{+}1 Nt+1维LMI,(2)中包含 K K K个 N t {{N}_{t}} Nt维LMI, (3)中包含 K K K个 维LMI。所以得 β = ∑ j = 1 p k j ⏟ L M I + 2 m ⏟ SOC = ∑ j = 1 K ( N t + 1 ) + ∑ j = 1 K N t + ∑ j = 1 K 1 ⏟ L M I + 0 ⏟ SOC = K ( N t + 1 ) + K N t + K = 2 K ( N t + 1 ) \beta \text{=}\underbrace{\sum\limits_{j=1}^{p}{{{k}_{j}}}}_{LMI}+\underbrace{2m}_{\text{SOC}}\text{=}\underbrace{\sum\limits_{j=1}^{\text{K}}{({{N}_{t}}+1)}+\sum\limits_{j=1}^{\text{K}}{{{N}_{t}}}+\sum\limits_{j=1}^{\text{K}}{1}}_{LMI}+\underbrace{0}_{\text{SOC}}=K({{N}_{t}}+1)+K{{N}_{t}}+K=2K({{N}_{t}}+1) β=LMI j=1∑pkj+SOC 2m=LMI j=1∑K(Nt+1)+j=1∑KNt+j=1∑K1+SOC 0=K(Nt+1)+KNt+K=2K(Nt+1)所以得到迭代次数 β = 2 K ( N t + 1 ) \sqrt{\beta }\text{=}\sqrt{2K({{N}_{t}}+1)} β=2K(Nt+1)。
2)每次迭代的复杂度
需要优化的变量
S
i
{{\mathbf{S}}_{i}}
Si,
t
i
{{t}_{i}}
ti,
i
=
1
,
.
.
.
,
K
i=1,...,K
i=1,...,K,所以需要优化的元素
K
N
t
2
+
K
KN_{t}^{2}+K
KNt2+K,所以
n
=
K
N
t
2
+
K
=
O
(
K
N
t
2
)
n\text{=}KN_{t}^{2}+K\text{=}\mathcal{O}(KN_{t}^{2})
n=KNt2+K=O(KNt2)。
C
f
o
r
m
=
n
(
∑
j
=
1
K
(
N
t
+
1
)
3
+
∑
j
=
1
K
N
t
3
+
∑
j
=
1
K
1
3
⏟
L
M
I
+
n
2
(
∑
j
=
1
K
(
N
t
+
1
)
2
+
∑
j
=
1
K
N
t
2
+
∑
j
=
1
K
1
2
⏟
L
M
I
+
0
⏟
SOC
{{\text{C}}_{form}}\text{=}\underbrace{n(\sum\limits_{j=1}^{\text{K}}{{{({{N}_{t}}+1)}^{3}}}+\sum\limits_{j=1}^{\text{K}}{N_{t}^{3}}+\sum\limits_{j=1}^{\text{K}}{{{1}^{3}}}}_{LMI}+\underbrace{{{n}^{2}}(\sum\limits_{j=1}^{\text{K}}{{{({{N}_{t}}+1)}^{2}}}+\sum\limits_{j=1}^{\text{K}}{N_{t}^{2}}+\sum\limits_{j=1}^{\text{K}}{{{1}^{2}}}}_{LMI}+\underbrace{0}_{\text{SOC}}
Cform=LMI
n(j=1∑K(Nt+1)3+j=1∑KNt3+j=1∑K13+LMI
n2(j=1∑K(Nt+1)2+j=1∑KNt2+j=1∑K12+SOC
0
C
f
a
c
t
=
n
3
{{C}_{fact}}={{n}^{3}}
Cfact=n3
C
f
o
r
m
+
C
f
a
c
t
=
n
⋅
[
K
(
(
N
t
+
1
)
3
+
N
t
3
+
1
)
+
K
n
(
(
N
t
+
1
)
2
+
N
t
2
+
1
)
+
n
2
]
{{\text{C}}_{form}}+{{C}_{fact}}=n\centerdot [K({{({{N}_{t}}+1)}^{3}}+N_{t}^{3}+1)+Kn({{({{N}_{t}}+1)}^{2}}+N_{t}^{2}+1)+{{n}^{2}}]
Cform+Cfact=n⋅[K((Nt+1)3+Nt3+1)+Kn((Nt+1)2+Nt2+1)+n2]
3)总计算复杂度表示
2
K
(
N
t
+
1
)
n
⋅
[
K
(
(
N
t
+
1
)
3
+
N
t
3
+
1
)
+
K
n
(
(
N
t
+
1
)
2
+
N
t
2
+
1
)
+
n
2
]
\sqrt{2K({{N}_{t}}+1)}n\centerdot [K({{({{N}_{t}}+1)}^{3}}+N_{t}^{3}+1)+Kn({{({{N}_{t}}+1)}^{2}}+N_{t}^{2}+1)+{{n}^{2}}]
2K(Nt+1)n⋅[K((Nt+1)3+Nt3+1)+Kn((Nt+1)2+Nt2+1)+n2]
Where
n
=
K
N
t
2
+
K
=
O
(
K
N
t
2
)
n\text{=}KN_{t}^{2}+K\text{=}\mathcal{O}(KN_{t}^{2})
n=KNt2+K=O(KNt2).
举例2:
举例2:
已知其中,
Q
i
{{\mathbf{Q}}_{i}}
Qi和
S
i
{{\mathbf{S}}_{i}}
Si都是
N
t
×
N
t
{{N}_{t}}\times {{N}_{t}}
Nt×Nt的矩阵,
r
i
{{\mathbf{r}}_{i}}
ri是
N
t
×
1
{{N}_{t}}\times 1
Nt×1的向量,
t
i
{{t}_{i}}
ti是标量。
按照步骤写:
1)计算迭代次数
图中约束条件(1)中包含
K
K
K个1维LMI,(2)中包含
K
K
K个
N
t
+
1
{{N}_{t}}+1
Nt+1维SOC( 为什么是
N
t
+
1
{{N}_{t}}\text{+}1
Nt+1,看前文的SOC补充), (3)中包含
K
K
K个
N
t
2
+
1
N_{t}^{2}+1
Nt2+1维SOC,(4)中包含
K
K
K个
N
t
{{N}_{t}}
Nt维LMI。所以得
β
=
∑
j
=
1
p
k
j
⏟
L
M
I
+
2
m
⏟
SOC
=
∑
j
=
1
K
1
+
∑
j
=
1
K
N
t
⏟
L
M
I
+
2
×
2
K
⏟
SOC
=
K
(
N
t
+
5
)
\beta \text{=}\underbrace{\sum\limits_{j=1}^{p}{{{k}_{j}}}}_{LMI}+\underbrace{2m}_{\text{SOC}}\text{=}\underbrace{\sum\limits_{j=1}^{\text{K}}{1}+\sum\limits_{j=1}^{\text{K}}{{{N}_{t}}}}_{LMI}+\underbrace{2\times 2K}_{\text{SOC}}=K({{N}_{t}}+5)
β=LMI
j=1∑pkj+SOC
2m=LMI
j=1∑K1+j=1∑KNt+SOC
2×2K=K(Nt+5),
所以得到迭代次数
β
=
K
(
N
t
+
5
)
\sqrt{\beta }\text{=}\sqrt{K({{N}_{t}}+5)}
β=K(Nt+5) 。
2)每次迭代的复杂度
需要优化的变量
S
i
{{\mathbf{S}}_{i}}
Si,
x
i
{{x}_{i}}
xi,
y
i
{{y}_{i}}
yi,
i
=
1
,
.
.
.
,
K
i=1,...,K
i=1,...,K,所以需要优化的元素总个数
K
N
t
2
+
K
+
K
KN_{t}^{2}+K\text{+}K
KNt2+K+K,所以
n
=
K
N
t
2
+
K
+
K
=
O
(
K
N
t
2
)
n\text{=}KN_{t}^{2}+K\text{+}K\text{=}\mathcal{O}(KN_{t}^{2})
n=KNt2+K+K=O(KNt2)。
C
f
o
r
m
=
n
(
∑
j
=
1
K
1
3
+
∑
j
=
1
K
N
t
3
)
⏟
L
M
I
+
n
2
(
∑
j
=
1
K
1
2
+
∑
j
=
1
K
N
t
2
⏟
L
M
I
+
n
(
∑
j
=
1
K
(
N
t
+
1
)
2
+
∑
j
=
1
K
(
N
t
2
+
1
)
2
)
⏟
SOC
{{\text{C}}_{form}}\text{=}\underbrace{n(\sum\limits_{j=1}^{\text{K}}{{{1}^{3}}}+\sum\limits_{j=1}^{\text{K}}{N_{t}^{3})}}_{LMI}+\underbrace{{{n}^{2}}(\sum\limits_{j=1}^{\text{K}}{{{1}^{2}}}+\sum\limits_{j=1}^{\text{K}}{N_{t}^{2}}}_{LMI}+\underbrace{n(\sum\limits_{j=1}^{\text{K}}{{{({{N}_{t}}+1)}^{2}}}+\sum\limits_{j=1}^{\text{K}}{{{(N_{t}^{2}+1)}^{2}})}}_{\text{SOC}}
Cform=LMI
n(j=1∑K13+j=1∑KNt3)+LMI
n2(j=1∑K12+j=1∑KNt2+SOC
n(j=1∑K(Nt+1)2+j=1∑K(Nt2+1)2)
=
n
K
(
1
+
N
t
3
)
+
n
2
K
(
1
+
N
t
2
)
+
n
K
(
(
N
t
+
1
)
2
+
(
N
t
2
+
1
)
2
)
\text{=}nK(1+N_{t}^{3})+{{n}^{2}}K(1+N_{t}^{2})+nK({{({{N}_{t}}+1)}^{2}}+{{(N_{t}^{2}+1)}^{2}})
=nK(1+Nt3)+n2K(1+Nt2)+nK((Nt+1)2+(Nt2+1)2)
=
n
⋅
[
K
(
1
+
N
t
3
)
+
n
K
(
1
+
N
t
2
)
+
K
(
(
N
t
+
1
)
2
+
(
N
t
2
+
1
)
2
)
]
=n\centerdot [K(1+N_{t}^{3})+nK(1+N_{t}^{2})+K({{({{N}_{t}}+1)}^{2}}+{{(N_{t}^{2}+1)}^{2}})]
=n⋅[K(1+Nt3)+nK(1+Nt2)+K((Nt+1)2+(Nt2+1)2)]
C
f
a
c
t
=
n
3
{{C}_{fact}}={{n}^{3}}
Cfact=n3
C
f
o
r
m
+
C
f
a
c
t
=
n
⋅
[
K
(
1
+
N
t
3
)
+
n
K
(
1
+
N
t
2
)
+
K
(
(
N
t
+
1
)
2
+
(
N
t
2
+
1
)
2
)
+
n
2
]
{{\text{C}}_{form}}+{{C}_{fact}}=n\centerdot [K(1+N_{t}^{3})+nK(1+N_{t}^{2})+K({{({{N}_{t}}+1)}^{2}}+{{(N_{t}^{2}+1)}^{2}})+{{n}^{2}}]
Cform+Cfact=n⋅[K(1+Nt3)+nK(1+Nt2)+K((Nt+1)2+(Nt2+1)2)+n2]
3)总计算复杂度表示
K
(
N
t
+
5
)
⋅
n
⋅
[
K
(
1
+
N
t
3
)
+
n
K
(
1
+
N
t
2
)
+
K
(
(
N
t
+
1
)
2
+
(
N
t
2
+
1
)
2
)
+
n
2
]
\sqrt{K({{N}_{t}}+5)}\centerdot n\centerdot [K(1+N_{t}^{3})+nK(1+N_{t}^{2})+K({{({{N}_{t}}+1)}^{2}}+{{(N_{t}^{2}+1)}^{2}})+{{n}^{2}}]
K(Nt+5)⋅n⋅[K(1+Nt3)+nK(1+Nt2)+K((Nt+1)2+(Nt2+1)2)+n2]
Where
n
=
K
N
t
2
+
K
+
K
=
O
(
K
N
t
2
)
n\text{=}KN_{t}^{2}+K\text{+}K\text{=}\mathcal{O}(KN_{t}^{2})
n=KNt2+K+K=O(KNt2).