锥,凸锥,二阶锥,二阶锥规划

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/robert_chen1988/article/details/78828727

优化理论稍微深入些,就会涉及到锥这个概念,甚至还有专门的锥优化这个研究领域。我一直很奇怪锥到底是什么,准备查阅相关资料,将自己的理解写到博客里面。

1. 锥(cone)

  • 对于一个向量空间 V V 与它的一个子集 C C ,如果子集 C C 中的任意一点 x x 与 任意正数 a a , 其乘积 a x ax 仍然属于子集 C C , 则称 C C 为一个锥。

若向量空间为3维,满足定义的图像确实像一个锥,我猜这应该是它叫锥的原因。
一个三维锥

根据定义,一个锥总是无界的。

2. 凸锥(convex cone)

  • 若一个锥 C C 中任意两点 x x y y ,以及任意两个正数 a a b b , 都有 a x + b y ax+by 属于 C C , 则该锥为凸锥。

显然上图也是一个凸锥。根据定义,凸锥的范围比凸集更大,因为它没有要求 a + b = 1 a+b=1 凸锥首先是一个凸集
是否存在一个不是凸锥的锥?典型的例子:
y = x y=|x|
一个点 (-2, 2), 另一个点 (1,1), 它们的和 (-1, 3)不在图形里。它的图形:
不是凸锥的锥
但是 y x y\geq |x| 就是一个凸锥

3. 标准锥(norm cone)

一个 n 维标准锥是满足下列条件的集合:
C = { ( x , t ) x t , x R n 1 , t R } C=\left\{(x, t)\mid \|x\|\leq t, x\in\mathbb{R^{n-1}}, t\in\mathbb{R}\right\}
标准锥是一个凸锥。(标准锥里面的变量不仅包括 x x ,还包括 t t .)

4. 二阶锥(second order cone)

二阶锥规划是一种非常特殊的非线性优化,有非常高效的求解算法,非常有必要了解一下什么是二阶锥。所谓二阶是指锥里面用到的是二范数,下面的表达式表示一个二阶锥。
A x + b 2 c T x + d \|Ax+b\|_2\leq c^Tx+d

二阶锥相当于对标准锥 C = { ( x , t ) x 2 t , t 0 } C=\{(x,t)\mid \|x\|_2\leq t, t\geq 0\} 做了一个仿射变换:
A x + b 2 c T x + d ( A x + b , c T x + d ) C \|Ax+b\|_2\leq c^Tx+d\Longleftrightarrow\Big(Ax+b, c^Tx+d\Big)\in C
根据仿射变换的性质,变换后凹凸性不变,因此二阶锥仍然是一个凸锥。
注:对向量 x x 仿射变换(相当于将一个图形平移,或变大变小,或旋转,或倒影): y = A x + b y=Ax+b ,其中 A x Ax 表示对 x x 变大或变小或旋转倒影,而 + b +b 表示平移。

5. 二阶锥规划(second order cone programming,SOCP)

很多问题都可以转化为二阶锥规划来求解,而二阶锥规划能够使用内点法很快求解。

5.1 二次凸规划

二次规划可以转化为二阶锥规划。一个二次凸规划表达式,:
X T A X + q T x + c 0 X^TAX+q^Tx+c\leq 0
转化成下面的二阶锥:
A 1 / 2 x + 1 2 A 1 / 2 q 2 1 4 q T A q c \left\|A^{1/2}x+\frac{1}{2}A^{-1/2}q\right\|^2\leq -\frac{1}{4}q^{T}A^-q-c
就能使用二阶锥规划求解了。

猜你喜欢

转载自blog.csdn.net/robert_chen1988/article/details/78828727
今日推荐