凸优化学习笔记 13:KKT条件 & 互补性条件 & 强对偶性

前面我们讲了凸优化问题、对偶原理、拉格朗日函数、KKT 条件,还从几何角度解释了强对偶性,那么这一节将从代数角度解释强对偶性

有需要的话可以参考前面两节内容
凸优化学习笔记 10:凸优化问题
凸优化学习笔记 11:对偶原理
凸优化学习笔记 12:KKT条件

1. LP / SOCP / SDP

在此之前我们先回顾一下比较重要的三类凸优化问题:LP、SOCP、SDP,为什么这么说呢?因为本质上这三类问题非常相似。我们先来回顾一下三类问题
L P : minimize c T x subject to A x = b x ⪰ 0 ( ★ ) S O C P : minimize c T x subject to A x = b ∥ x ˉ ∥ 2 ≤ x 0    ⟺    x = ( x 0 , x ˉ ) ⪰ Q 0 ( ★ ) S D P : minimize < C , X > ≜ t r ( C X ) X ∈ S n subject to A ( X ) = b X ⪰ 0 ( ★ ) \begin{aligned} LP:\quad \text{minimize} \quad& c^{T} x \\ \text{subject to} \quad& A x=b \\ & x \succeq 0 \qquad(\bigstar)\\ SOCP:\quad \text {minimize} \quad& c^{T} x \\ \text {subject to} \quad& Ax=b \\ & \left\|\bar{x}\right\|_{2} \leq x_0 \iff x=(x_0,\bar{x})\succeq_Q 0 \qquad(\bigstar)\\ SDP:\quad \text{minimize} \quad& \left\triangleq tr(CX) \quad X\in S^n \\ \text{subject to} \quad& A(X)=b \\ & X \succeq 0 \qquad(\bigstar)\\ \end{aligned} LP:minimizesubject toSOCP:minimizesubject toSDP:minimizesubject tocTxAx=bx0()cTxAx=bxˉ2x0x=(x0,xˉ)Q0()C,Xtr(CX)XSnA(X)=bX0()

注:上面 SDP 中定义了矩阵内积 < C , X > ≜ t r ( C X ) \left\triangleq tr(CX) C,Xtr(CX),这跟向量内积非常类似,而且可以交换 < C , X > = < X , C > \left=\left C,X=X,C;还定义了算子 A ( X ) = ( < A 1 , X > , ⋯   , < A n , X > ) A(X)=\left(\left,\cdots,\left\right) A(X)=(A1,X,,An,X)

上面三种凸优化问题中,不等式约束都用星号标记出来了,可以看出,他们的形式非常相似,其实都是在不同维度的正常锥里面。不过 LP 的可行域为多面体,最优解往往位于极值点,因此较为简单;但是 SOCP 的可行域则是一个多面体与一个锥的交集,同样的 SDP 和 SOCP 的可行域都是 Nonpolyhedral 的,这就使他们比 LP 要更难求解。

2. 强对偶性的代数解释

考虑 LP 问题及其对偶问题
( P ) : minimize c T x subject to A x = b x ⪰ 0 ( D ) : maximize b T y subject to A T y + s = c s ⪰ 0 \begin{aligned} (P):\quad \text{minimize} \quad& c^{T} x \\ \text{subject to} \quad& A x=b \\ & x \succeq 0 \\ (D):\quad \text {maximize} \quad& b^Ty\\ \text {subject to} \quad& A^Ty+s=c \\ & s\succeq0 \end{aligned} (P):minimizesubject to(D):maximizesubject tocTxAx=bx0bTyATy+s=cs0

那么原问题与对偶问题的 duality gap 就是
c T x − b T y = x T s c^Tx - b^Ty = x^Ts cTxbTy=xTs

我们很容易验证 x T s ≥ 0 x^Ts\ge0 xTs0,也就是弱对偶性。如果满足 强对偶性(Strong duality) 的话,应该有
x T s = 0    ⟺    x i s i = 0 , i = 1 , . . . , n x^Ts=0 \iff x_is_i=0,i=1,...,n xTs=0xisi=0,i=1,...,n

那么我们再来回顾一下 KKT 条件的 4 个部分:

  1. Primal feasibility: A x = b , x ≥ 0 Ax=b,x\ge0 Ax=b,x0
  2. Dual feasibility: A T y + s = c , s ≥ 0 A^Ty+s=c,s\ge0 ATy+s=c,s0
  3. Complementarity: x i s i = 0 , i = 1 , . . . , n x_is_i=0,i=1,...,n xisi=0,i=1,...,n
  4. 梯度条件包含在对偶可行性里面了

因此实际上利用上面 3 个约束就可以求解最优解了。对于上面的互补性条件 x i s i = 0 x_is_i=0 xisi=0 我们可以定义一个算子
x ∘ s : = ( x 1 s 1 , . . . , x n s n ) T = diag ( x ) s : = L x s = L x L s 1 x\circ s := (x_1s_1,...,x_ns_n)^T = \text{diag}(x)s :=L_xs=L_xL_s\mathbf{1} xs:=(x1s1,...,xnsn)T=diag(x)s:=Lxs=LxLs1

它满足 x ∘ 1 = x x\circ \mathbf{1}=x x1=x。这里其实只是定义了一个新的符号,并没有引入新的东西,之所以这么做是为了与后面的 SOCP、SDP 统一起来用类似的符号表示,便于计算机进行优化计算。

现在我们再来看看 SOCP 问题
( P ) : minimize c T x subject to A x = b x ⪰ Q 0 ( D ) : maximize b T y subject to A T y + s = c s ⪰ Q 0 \begin{aligned} (P):\quad \text {minimize} \quad& c^{T} x \\ \text {subject to} \quad& Ax=b \\ & x\succeq_Q 0 \\ (D):\quad \text {maximize} \quad& b^{T} y \\ \text {subject to} \quad& A^Ty+s=c \\ & s\succeq_Q 0 \end{aligned} (P):minimizesubject to(D):maximizesubject tocTxAx=bxQ0bTyATy+s=csQ0

Remarks:注意 二阶锥(Second order cone) 的对偶锥还是其自身。

对偶锥是其自身怎么直观理解呢?大家想象三维中的这样一个锥,我们任取一个过锥的顶点 ( 0 , 0 , 0 ) (0,0,0) (0,0,0)的竖直平面,切出来的是应该一个直角吧。那么假如说我们考虑任意的锥呢?切出来的这个角如果不是直角,假如是钝角,那么他的对偶锥一定不是其自身,要比自身“小”,锐角也类似。这里提到这个直观理解在后面会用到。

凸优化学习笔记 13:KKT条件 & 互补性条件 & 强对偶性_第1张图片

同样的我们可以得到 dualligity gap 为
x T s = c T x − b T y ≥ 0 x^Ts=c^Tx-b^Ty\ge0 xTs=cTxbTy0

如果想得到强对偶性则需要
x T s = 0 , x ⪰ Q 0 , s ⪰ Q 0    ⟺    x 0 s i + x i s 0 = 0 , i = 1 , . . . , n    ⟺    x 0 s ˉ + s 0 x ˉ = 0 \begin{aligned} & x^Ts=0,x\succeq_Q 0,s\succeq_Q 0 \\ \iff& x_0s_i+x_is_0=0,i=1,...,n \\ \iff& x_0\bar{s}+s_0\bar{x}=0 \end{aligned} xTs=0,xQ0,sQ0x0si+xis0=0,i=1,...,nx0sˉ+s0xˉ=0

上面这个证明可以利用 Cauchy-Schwarz 不等式 x T s = x 0 s 0 + ∑ i x i s i ≥ 0 x^Ts=x_0s_0+\sum_ix_is_i\ge0 xTs=x0s0+ixisi0,取等条件即为上式。这从几何角度理解就如下图,其中 x , s x,s x,s 为正交的,而且他们向后 R n R^n Rn 维子空间的投影 x ˉ , s ˉ \bar{x},\bar{s} xˉ,sˉ 是反向平行的。

凸优化学习笔记 13:KKT条件 & 互补性条件 & 强对偶性_第2张图片

Remarks x , s x,s x,s 均为锥 Q Q Q 当中的向量,二者内积为 0,则表明他们相互正交。假如我们固定了 x x x x x x 作为法向量定义了一个超平面 A A A,超平面内的任意一个向量都应垂直于 x x x,所里直观理解的话 x x x 应该有无穷多个单位正交向量。但是根据上面的结果, s = ( s 0 , s 0 x ˉ / x 0 ) s=(s_0,s_0\bar{x}/x_0) s=(s0,s0xˉ/x0) 只有一个方向,这说明锥 Q Q Q 内部只有一个方向上的向量与 x x x 正交!也就是说超平面 A A A 与锥 Q Q Q 的交集是一条线,实际上就是说 A A A Q Q Q 相切

再回想一下我们前面提到这个锥 Q Q Q 的顶角应该是一个直角,假如 x x x 位于 Q Q Q 的内部(不在边界上),那么 A ∩ Q = { ( 0 , 0 , 0 ) } A\cap Q=\{(0,0,0)\} AQ={(0,0,0)},只有一个点, s s s 也就不存在。所以如果想要 x T s = 0 x^Ts=0 xTs=0 有非零解,就一定要求 x x x Q Q Q 的边界上,这个时候实际上就有 x 0 = ∥ x ˉ ∥ , s 0 = ∥ s ˉ ∥ x_0=\Vert\bar{x}\Vert,s_0=\Vert\bar{s}\Vert x0=xˉ,s0=sˉ 。这一点很容易从我们上面的式子 x 0 s i + x i s 0 = 0 x_0s_i+x_is_0=0 x0si+xis0=0 得到验证。

同样得回顾一下 KKT 条件

  1. A x = b , x ⪰ Q 0 Ax=b,x\succeq_Q0 Ax=b,xQ0
  2. A T y + s = c , s ⪰ Q 0 A^Ty+s=c,s\succeq_Q0 ATy+s=c,sQ0
  3. x T s = 0 , x 0 s i + x i s 0 = 0 x^Ts=0,\quad x_0s_i+x_is_0=0 xTs=0,x0si+xis0=0

这里再定义一个算子
x ∘ s = ( x 0 x 1 ⋮ x n ) ∘ ( s 0 s 1 ⋮ s n ) = ( x ⊤ s x 0 s 1 + s 0 x 1 ⋮ x 0 s n + s 0 x n ) x\circ s = \left(\begin{array}{c} x_{0} \\ x_{1} \\ \vdots \\ x_{n} \end{array}\right) \circ\left(\begin{array}{c} s_{0} \\ s_{1} \\ \vdots \\ s_{n} \end{array}\right)=\left(\begin{array}{c} x^{\top} s \\ x_{0} s_{1}+s_{0} x_{1} \\ \vdots \\ x_{0} s_{n}+s_{0} x_{n} \end{array}\right) \\ xs=x0x1xns0s1sn=xsx0s1+s0x1x0sn+s0xn

为了简化表示可以写成下面的形式,这样跟 LP 就统一了。
L x = Arw ⁡ ( x ) = ( x 0 x ˉ ⊤ x ˉ x 0 I ) x ∘ s = Arw ⁡ ( x ) s = Arw ⁡ ( x ) Arw ⁡ ( s ) e L_{x}=\operatorname{Arw}(x)=\left(\begin{array}{ll} x_{0} & \bar{x}^{\top} \\ \bar{x} & x_{0} I \end{array}\right)\\ x \circ s=\operatorname{Arw}(x) s=\operatorname{Arw}(x) \operatorname{Arw}(s) e Lx=Arw(x)=(x0xˉxˉx0I)xs=Arw(x)s=Arw(x)Arw(s)e

算子满足性质

  1. x ∘ s = s ∘ x x\circ s = s\circ x xs=sx
  2. x ∘ ( x ∘ x ) = ( x ∘ x ) ∘ x x\circ(x\circ x)=(x\circ x)\circ x x(xx)=(xx)x
  3. x ∘ ( x 2 ∘ y ) = x 2 ∘ ( x ∘ y ) x \circ\left(x^{2} \circ y\right)=x^{2} \circ(x \circ y) x(x2y)=x2(xy)
  4. e = ( 1 , 0 , . . . , 0 ) T , x ∘ e = x e=(1,0,...,0)^T,x\circ e=x e=(1,0,...,0)T,xe=x

但是注意不满足结合律 x ∘ ( y ∘ z ) ≠ ( x ∘ y ) ∘ z x \circ(y \circ z) \neq(x \circ y) \circ z x(yz)=(xy)z

最后我们再来看看 SDP 问题及其对偶问题
( P ) : minimize < C , X > subject to < A i , X > = b i , i = 1 , . . . , m X ⪰ 0 ( D ) : minimize b T y subject to ∑ i y i A i + S = C S ⪰ 0 \begin{aligned} (P):\quad \text{minimize} \quad& \left \\ \text{subject to} \quad& \left=b_i,i=1,...,m \\ & X \succeq 0\\ (D):\quad \text{minimize} \quad& b^Ty \\ \text{subject to} \quad& \sum_i y_iA_i+S=C \\ & S\succeq 0 \end{aligned} (P):minimizesubject to(D):minimizesubject toC,XAi,X=bi,i=1,...,mX0bTyiyiAi+S=CS0

同样的 duality gap 为
< X , S > = < C , X > − b T y = < X , S 1 / 2 S 1 / 2 > = < S 1 / 2 X , S 1 / 2 > ≥ 0 \begin{aligned} \left &= \left - b^Ty \\ &= \left = \left \ge0 \end{aligned} X,S=C,XbTy=X,S1/2S1/2=S1/2X,S1/20

强对偶性则要求
X ⪰ 0 , S ⪰ 0 , < X , S > = 0    ⟺    X S = 0    ⟺    X S + S X 2 = 0 X\succeq0,S\succeq0,\left=0 \iff XS=0 \iff \frac{XS+SX}{2}=0 X0,S0,X,S=0XS=02XS+SX=0

证明: < X , S > = < S 1 / 2 X 1 / 2 , X 1 / 2 S 1 / 2 > = 0    ⟺    X 1 / 2 S 1 / 2 = 0 \left=\left=0 \iff X^{1/2}S^{1/2}=0 X,S=S1/2X1/2,X1/2S1/2=0X1/2S1/2=0

为了简化表达,我们再定义一个算子 X ∘ S = X S + S X 2 X\circ S=\frac{XS+SX}{2} XS=2XS+SX,它满足以下性质

  1. X ∘ S = S ∘ X X\circ S = S\circ X XS=SX
  2. X ∘ ( X ∘ X ) = ( X ∘ X ) ∘ X X\circ(X\circ X)=(X\circ X)\circ X X(XX)=(XX)X
  3. X ∘ ( X 2 ∘ Y ) = X 2 ∘ ( X ∘ Y ) X \circ\left(X^{2} \circ Y\right)=X^{2} \circ(X \circ Y) X(X2Y)=X2(XY)
  4. X ∘ I = X X\circ I = X XI=X

注意不满足结合律 X ∘ ( Y ∘ Z ) ≠ ( X ∘ Y ) ∘ Z X \circ(Y \circ Z) \neq(X \circ Y) \circ Z X(YZ)=(XY)Z

再来复习一下 KKT 条件

  1. < A i , X > = b i \left=b_i Ai,X=bi
  2. ∑ i y i A i + S = C \sum_i y_iA_i+S=C iyiAi+S=C
  3. X ∘ S = 0 X\circ S=0 XS=0

最后我们总结一下

凸优化学习笔记 13:KKT条件 & 互补性条件 & 强对偶性_第3张图片

最后给我的博客打个广告,欢迎光临
https://glooow1024.github.io/
https://glooow.gitee.io/

前面的一些博客链接如下
凸优化专栏
凸优化学习笔记 1:Convex Sets
凸优化学习笔记 2:超平面分离定理
凸优化学习笔记 3:广义不等式
凸优化学习笔记 4:Convex Function
凸优化学习笔记 5:保凸变换
凸优化学习笔记 6:共轭函数
凸优化学习笔记 7:拟凸函数 Quasiconvex Function
凸优化学习笔记 8:对数凸函数
凸优化学习笔记 9:广义凸函数
凸优化学习笔记 10:凸优化问题
凸优化学习笔记 11:对偶原理
凸优化学习笔记 12:KKT条件

你可能感兴趣的:(凸优化)