二次约束二次规划(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