二次约束二次规划(QCQP)问题的SOCP形式转化
1. 问题描述
1.1. QCQP的一般形式:
min 1 2 x ⊤ Q 0 x + c ⊤ x s . t . x ⊤ Q i x + a i ⊤ x ≤ b i , i = 1 , … , m \begin{aligned} \min \quad &\frac{1}{2}\mathbf{x}^{\top}\mathbf{Q}_0\mathbf{x} + \mathbf{c}^{\top}\mathbf{x} \\ \mathrm{s.t.} \quad &\mathbf{x}^{\top}\mathbf{Q}_i\mathbf{x} + \mathbf{a}_i^{\top}\mathbf{x} \leq b_i, \; i = 1, \dots, m \end{aligned} mins.t.21x⊤Q0x+c⊤xx⊤Qix+ai⊤x≤bi,i=1,…,m
其中, Q 0 ∈ S + + n \mathbf{Q}_0 \in \mathbb{S}^{n}_{++} Q0∈S++n(表示正定对称矩阵), c ∈ R n \mathbf{c} \in \mathbb{R}^n c∈Rn。 Q i ∈ S + + n \mathbf{Q}_i \in \mathbb{S}^{n}_{++} Qi∈S++n, a i ∈ R n \mathbf{a}_i \in \mathbb{R}^n ai∈Rn, b i ∈ R ( i = 1 , … , m ) b_i \in \mathbb{R} (i = 1, \dots, m) bi∈R(i=1,…,m)。
1.2. SOCP的一般形式:
min c ⊤ x s . t . ∥ A i x + b i ∥ 2 ≤ c i ⊤ x + d i , i = 1 , … , m \begin{aligned} \min \quad &\mathbf{c}^{\top} \mathbf{x} \\ \mathrm{s.t.} \quad & \left\|\mathbf{A}_i \mathbf{x} + \mathbf{b}_i\right\|_2 \leq \mathbf{c}_i^{\top} \mathbf{x} + d_i, i = 1, \dots, m \end{aligned} mins.t.c⊤x∥Aix+bi∥2≤ci⊤x+di,i=1,…,m
2. 目标函数的配方
QCQP的目标函数
1
2
x
⊤
Q
x
+
c
⊤
x
\frac{1}{2}\mathbf{x}^{\top}\mathbf{Qx} + \mathbf{c}^{\top}\mathbf{x}
21x⊤Qx+c⊤x是二次的,我们可以对其进行配方。
首先由Cholesky分解将矩阵
Q
\mathbf{Q}
Q分解为
Q
=
(
Q
1
2
)
⊤
Q
1
2
\mathbf{Q}=\left( \mathbf{Q}^{\frac{1}{2}} \right) ^{\top}\mathbf{Q}^{\frac{1}{2}}
Q=(Q21)⊤Q21:
1 2 x ⊤ Q 1 2 Q 1 2 x + c ⊤ x \frac{1}{2}\mathbf{x}^{\top}\mathbf{Q}^{\frac{1}{2}}\mathbf{Q}^{\frac{1}{2}}\mathbf{x} + \mathbf{c}^{\top}\mathbf{x} 21x⊤Q21Q21x+c⊤x
接下来的步骤类似一元函数的配方:
1
2
x
⊤
Q
1
2
Q
1
2
x
+
c
⊤
x
=
1
2
(
x
⊤
Q
1
2
Q
1
2
x
+
2
c
⊤
x
)
=
1
2
∥
Q
1
2
x
+
Q
−
1
2
c
∥
2
2
−
1
2
∥
Q
−
1
2
c
∥
2
\begin{aligned} &\frac{1}{2}\mathbf{x}^{\top}\mathbf{Q}^{\frac{1}{2}}\mathbf{Q}^{\frac{1}{2}}\mathbf{x}+\mathbf{c}^{\top}\mathbf{x} \\ =&\frac{1}{2}\left( \mathbf{x}^{\top}\mathbf{Q}^{\frac{1}{2}}\mathbf{Q}^{\frac{1}{2}}\mathbf{x}+2\mathbf{c}^{\top}\mathbf{x} \right) \\ =&\frac{1}{2}\left\| \mathbf{Q}^{\frac{1}{2}}\mathbf{x}+\mathbf{Q}^{-\frac{1}{2}}\mathbf{c} \right\| _{2}^{2}-\frac{1}{2}\left\| \mathbf{Q}^{-\frac{1}{2}}\mathbf{c} \right\| ^2 \end{aligned}
==21x⊤Q21Q21x+c⊤x21(x⊤Q21Q21x+2c⊤x)21
Q21x+Q−21c
22−21
Q−21c
2
由于
∥
Q
−
1
2
c
∥
2
\left\| \mathbf{Q}^{-\frac{1}{2}}\mathbf{c} \right\| ^2
Q−21c
2是常数,因此最小化原目标函数等价于最小化下述二范数(注意此处没有平方):
∥
Q
1
2
x
+
Q
−
1
2
c
∥
2
\left\| \mathbf{Q}^{\frac{1}{2}}\mathbf{x} + \mathbf{Q}^{-\frac{1}{2}}\mathbf{c} \right\|_2
Q21x+Q−21c
2
3. 约束条件的配方
类似地,我们对约束条件也进行配方处理。原始的约束条件为:
x
⊤
Q
i
x
+
a
i
⊤
x
≤
b
i
\mathbf{x}^{\top}\mathbf{Q}_i\mathbf{x} + \mathbf{a}_i^{\top}\mathbf{x} \leq b_i
x⊤Qix+ai⊤x≤bi
仿照上述对目标函数的配方方法,我们将其进行配方与整理,可以得到以下约束:
∥
Q
i
1
2
x
+
Q
i
−
1
2
a
i
∥
2
2
≤
a
i
⊤
Q
i
−
1
a
i
+
b
i
\left\| \mathbf{Q}_i^{\frac{1}{2}}\mathbf{x} + \mathbf{Q}_i^{-\frac{1}{2}}\mathbf{a}_i \right\|_2^2 \leq \mathbf{a}_i^{\top}\mathbf{Q}_i^{-1}\mathbf{a}_i + b_i
Qi21x+Qi−21ai
22≤ai⊤Qi−1ai+bi
假设不等号右边大于等于0,那么该约束等价于
∥
Q
i
1
2
x
+
Q
i
−
1
2
a
i
∥
2
≤
a
i
⊤
Q
i
−
1
a
i
+
b
i
\left\| \mathbf{Q}_{i}^{\frac{1}{2}}\mathbf{x}+\mathbf{Q}_{i}^{-\frac{1}{2}}\mathbf{a}_i \right\| _2\le \sqrt{\mathbf{a}_{i}^{\top}\mathbf{Q}_{i}^{-1}\mathbf{a}_i+b_i}
Qi21x+Qi−21ai
2≤ai⊤Qi−1ai+bi
4. 问题形式的转换
通过上述处理,我们可以将原始的QCQP问题转换为如下形式:
min
∥
Q
1
2
x
+
Q
−
1
2
c
∥
2
s
.
t
.
∥
Q
i
1
2
x
+
Q
i
−
1
2
a
i
∥
2
≤
a
i
⊤
Q
i
−
1
a
i
+
b
i
,
i
=
1
,
…
,
m
\begin{aligned} \min &\left\| \mathbf{Q}^{\frac{1}{2}}\mathbf{x} + \mathbf{Q}^{-\frac{1}{2}}\mathbf{c} \right\|_2 \\ \mathrm{s.t.} \quad &\left\| \mathbf{Q}_i^{\frac{1}{2}}\mathbf{x} + \mathbf{Q}_i^{-\frac{1}{2}}\mathbf{a}_i \right\|_2 \leq \sqrt{\mathbf{a}_{i}^{\top}\mathbf{Q}_{i}^{-1}\mathbf{a}_i+b_i}, \; i = 1, \dots, m \end{aligned}
mins.t.
Q21x+Q−21c
2
Qi21x+Qi−21ai
2≤ai⊤Qi−1ai+bi,i=1,…,m
为了进一步简化问题,我们引入辅助变量
t
∈
R
t \in \mathbb{R}
t∈R,那么上述优化问题可以进一步转化为
min
t
s
.
t
.
∥
Q
1
2
x
+
Q
−
1
2
c
∥
2
≤
t
∥
Q
i
1
2
x
+
Q
i
−
1
2
a
i
∥
2
≤
a
i
⊤
Q
i
−
1
a
i
+
b
i
,
i
=
1
,
…
,
m
\begin{aligned} \min \quad &t \\ \mathrm{s.t.} \quad &\left\| \mathbf{Q}^{\frac{1}{2}}\mathbf{x} + \mathbf{Q}^{-\frac{1}{2}}\mathbf{c} \right\|_2 \leq t \\ &\left\| \mathbf{Q}_i^{\frac{1}{2}}\mathbf{x} + \mathbf{Q}_i^{-\frac{1}{2}}\mathbf{a}_i \right\|_2 \leq \sqrt{\mathbf{a}_{i}^{\top}\mathbf{Q}_{i}^{-1}\mathbf{a}_i+b_i}, \; i = 1, \dots, m \end{aligned}
mins.t.t
Q21x+Q−21c
2≤t
Qi21x+Qi−21ai
2≤ai⊤Qi−1ai+bi,i=1,…,m
通过引入上述辅助变量和配方处理,我们成功地将QCQP问题转换为SOCP问题:
min
c
s
o
c
p
⊤
x
s
o
c
p
s
.
t
.
∥
A
i
x
+
b
i
∥
2
≤
c
i
⊤
x
+
d
i
,
i
=
1
,
…
,
m
\begin{aligned} \min \quad &\mathbf{c}_{socp}^{\top} \mathbf{x}_{socp} \\ \mathrm{s.t.} \quad & \left\|\mathbf{A}_i \mathbf{x} + \mathbf{b}_i\right\|_2 \leq \mathbf{c}_i^{\top} \mathbf{x} + d_i, i = 1, \dots, m \end{aligned}
mins.t.csocp⊤xsocp∥Aix+bi∥2≤ci⊤x+di,i=1,…,m
其中:
c
s
o
c
p
=
[
0
⋯
0
1
]
⊤
,
x
s
o
c
p
=
[
x
t
]
,
A
1
=
[
Q
1
2
0
0
1
]
,
b
1
=
Q
−
1
2
c
,
c
1
=
[
0
⋯
0
1
]
⊤
,
d
1
=
0
,
A
i
+
1
=
[
Q
i
1
2
0
0
1
]
,
b
i
+
1
=
Q
i
−
1
2
a
i
,
c
i
+
1
=
0
,
d
i
+
1
=
a
i
⊤
Q
i
−
1
a
i
+
b
i
.
\begin{aligned} &\mathbf{c}_{socp}=\left[ \begin{matrix} 0& \cdots& 0& 1\\ \end{matrix} \right] ^{\top}, \\ &\mathbf{x}_{socp} = \left[ \begin{array}{c} \mathbf{x} \\ t \end{array} \right] , \\ &\mathbf{A}_1=\left[ \begin{matrix} \mathbf{Q}^{\frac{1}{2}}& \mathbf{0}\\ \mathbf{0}& 1\\ \end{matrix} \right] , \mathbf{b}_1=\mathbf{Q}^{-\frac{1}{2}}\mathbf{c}, \mathbf{c}_1=\left[ \begin{matrix} 0& \cdots& 0& 1\\ \end{matrix} \right] ^{\top}, d_1=0, \\ &\mathbf{A}_{i+1}=\left[ \begin{matrix} \mathbf{Q}_{i}^{\frac{1}{2}}& \mathbf{0}\\ \mathbf{0}& 1\\ \end{matrix} \right] , \mathbf{b}_{i+1}=\mathbf{Q}_{i}^{-\frac{1}{2}}\mathbf{a}_i, \mathbf{c}_{i+1}=\mathbf{0}, d_{i+1}=\sqrt{\mathbf{a}_{i}^{\top}\mathbf{Q}_{i}^{-1}\mathbf{a}_i+b_i}. \end{aligned}
csocp=[0⋯01]⊤,xsocp=[xt],A1=[Q21001],b1=Q−21c,c1=[0⋯01]⊤,d1=0,Ai+1=[Qi21001],bi+1=Qi−21ai,ci+1=0,di+1=ai⊤Qi−1ai+bi.
更多的问题转换可见论文:https://web.stanford.edu/~boyd/papers/pdf/socp.pdf