机器人中的数值优化(十七)—— 锥与对称锥

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例



二十八、锥与对称锥

1、尖 锥

锥是一种特殊的集合,当满足以下条件时,一组点称为pointed cone:

∙ Conic: a ∈ K , λ ≥ 0 ⇒ λ a ∈ K ∙ Pointed: a ∈ K a n d − a ∈ K ⇒ a = 0 \begin{aligned}\bullet\quad&\color{red}{\text{Conic: }}\quad a\in\mathcal{K},\lambda\geq0\Rightarrow\lambda a\in\mathcal{K}\\\bullet\quad&\color{red}{\text{Pointed: }}\quad a\in\mathcal{K}\mathrm{~and~}-a\in\mathcal{K}\Rightarrow a=0\end{aligned} ∙∙Conic: a∈K,λ≥0⇒λa∈KPointed: a∈K and −a∈K⇒a=0

第一个条件即向量 a \ a a在集合 K \mathcal{K} K中, λ ≥ 0 \color{black}{\lambda\geq0} λ≥0,则 λ a {\lambda a} λa也必然在集合 K \mathcal{K} K中,第二个条件是若向量 a \ a a在集合 K \mathcal{K} K中,则向量- a \ a a不在集合 K \mathcal{K} K中,除非向量 a \ a a=0 。

2、凸 锥

相比于尖锥,我们对凸锥更感兴趣,在尖锥的基础上,若进一步满足 a , a ′ ∈ K ⇒ a + a ′ ∈ K a,a^{\prime}\in\mathcal{K}\Rightarrow a+a^{\prime}\in\mathcal{K} a,a′∈K⇒a+a′∈K,即两个向量属于锥,则其叠加后的向量也必然属于锥,此时,为凸锥,它的界面可以是任意的形状,比如凸多面体、椭圆、超椭圆。

(1)多面体锥(polyhedral cone)

在多面体 A x ≤ b Ax\leq b Ax≤b的基础上,增加一个维度t,在t从0开始增大时,相当于对该多面体进行了缩放,从而可以形成一个多面体锥,如下图所示:

(2)椭球锥(Ellipsoidal cone)

对于椭圆 x ⊤ P x + q ⊤ x + r ≤ 0 x^\top Px+q^\top x+r\leq0 x⊤Px+q⊤x+r≤0,经过仿射变换可以写成, ∥ A x + b ∥ ≤ c \|Ax+b\|\leq c ∥Ax+b∥≤c,同样加上一个时间维度t,在t从0开始增大时,相当于对该椭圆进行了缩放,从而可以形成一个椭球锥,如下图所示:


3、常用的锥

以下三类锥,分别对应LP线性规划、SOCP二维锥规划,SDP半定规划

详细如下:


4、对称锥

一个锥是对称的当且仅当它可以表示成平方的形式

(1)positive orthant

R ≥ 0 n = { x ∈ R n ∣ x i ≥ 0 , i = 1 , ... , n } = { [ y ] 2 ∣ y ∈ R n } \mathbb{R}_{\geq0}^n=\{x\in\mathbb{R}^n\mid x_i\geq0,i=1,\ldots,n\}=\color{red}{\boxed{\{[y]^2\mid y\in\mathbb{R}^n\}}} R≥0n={x∈Rn∣xi≥0,i=1,...,n}={[y]2∣y∈Rn}

(2)second-order cone:

Q n = { ( x 0 , x 1 ) T ∈ R × R n − 1 ∣ x 0 ≥ ∥ x 1 ∥ 2 } = { 1 2 ( y 0 2 + y 1 T y 1 , 2 y 0 y 1 ) T ∣ ( y 0 , y 1 ) T ∈ R × R n − 1 } \mathcal{Q}^n=\left\{\left(x_0,x_1\right)^{\mathrm{T}}\in\mathbb{R}\times\mathbb{R}^{n-1}\mid x_0\geq\left\|x_1\right\|_2\right\}=\color{red}{\left\{\frac1{\sqrt{2}}\left(y_0^2+y_1^{\mathrm{T}}y_1,2y_0y_1\right)^{\mathrm{T}}\mid\left(y_0,y_1\right)^{\mathrm{T}}\in\mathbb{R}\times\mathbb{R}^{n-1}\right\}} Qn={(x0,x1)T∈R×Rn−1∣x0≥∥x1∥2}={2 1(y02+y1Ty1,2y0y1)T∣(y0,y1)T∈R×Rn−1}

(3)Positive semi-definite cone:

S ≥ 0 n = { x ∈ R n ( n + 1 ) / 2 ∣ z T max ⁡ ( x ) z ≥ 0 , ∀ z ∈ R n } = { vec ⁡ ( mat ⁡ ( y ) mat ⁡ ( y ) ) ∣ y ∈ R n ( n + 1 ) / 2 } \mathcal{S}_{\geq0}^n=\left\{x\in\mathbb{R}^{n(n+1)/2}\mid z^\text{T }{ \max ( x ) }z\geq0,\forall z\in\mathbb{R}^n\right\}=\color{red}{\boxed{\left\{\operatorname{vec}(\operatorname{mat}(y)\operatorname{mat}(y))\mid y\in\mathbb{R}^{n(n+1)/2}\right\}}} S≥0n={x∈Rn(n+1)/2∣zT max(x)z≥0,∀z∈Rn}={vec(mat(y)mat(y))∣y∈Rn(n+1)/2}


5、平方操作

圆锥是对称的,当且仅当它是平方的,即如下式所示:

{ x 2 : = x ∘ x ∣ x ∈ R n } \left\{x^2:=x\circ x\mid x\in\mathbb{R}^n\right\} {x2:=x∘x∣x∈Rn}

满足下面四个条件,就可以称为平方

x ∘ y is 线性的 x\circ y\text{ is 线性的 } x∘y is 线性的 ,即 k x ∘ y = k ( x ∘ y ) k x\circ y=k(x\circ y) kx∘y=k(x∘y)

x ∘ y = y ∘ x x 2 ∘ ( y ∘ x ) = ( x 2 ∘ y ) ∘ x ⟨ x , y ∘ z ⟩ = ⟨ x ∘ y , z ⟩ \begin{aligned} &x\circ y=y\circ x \\ &x^2\circ(y\circ x)=(x^2\circ y)\circ x \\ &\langle x,y\circ z\rangle=\langle x\circ y,z\rangle \end{aligned} x∘y=y∘xx2∘(y∘x)=(x2∘y)∘x⟨x,y∘z⟩=⟨x∘y,z⟩

上面介绍的三类对称锥的圈乘定义分别如下所示:

6、谱分解

对于任意一个向量x,我们都可以把他变成特征值 λ i \lambda_{i} λi与特征向量 q i q_{i} qi乘积加和的形式,即 x = ∑ i = 1 θ λ i q i x=\sum_{i=1}^\theta\lambda_iq_i x=∑i=1θλiqi

分解后的每一个特征向量,他的平方都是他自己,即满足 q i 2 = q i q_i^2=q_i qi2=qi ,不相同的特征向量之间的圈乘为0,即满足 q i ∘ q j ( ≠ i ) = 0 q_i\circ q_{j(\neq i)}=0 qi∘qj(=i)=0

因此,可以得到特征向量是正交的,即

⟨ q i , q j ( ≠ i ) ⟩ = ⟨ q i ∘ q i , q j ( ≠ i ) ⟩ = ⟨ q i , q i ∘ q j ( ≠ i ) ⟩ = 0 \langle q_i,q_{j(\neq i)}\rangle=\langle q_i\circ q_i,q_{j(\neq i)}\rangle=\langle q_i,q_i\circ q_{j(\neq i)}\rangle=0 ⟨qi,qj(=i)⟩=⟨qi∘qi,qj(=i)⟩=⟨qi,qi∘qj(=i)⟩=0

当且仅当一个向量的特征值为非负时,它是对称锥上的向量,当且仅当一个向量的特征值都为正时,它就处于对称锥的内部

下图中给出了两个谱分解的示例,(q1与q2是垂直的)

所以对于positive orthant情况,它的谱分解的第i个特征值就是他的第i个坐标,第i个特征向量就是第i个自然标准正交基,即 λ i = x i , q i = e i \lambda_i=x_i,\quad q_i=e_i λi=xi,qi=ei

对于second-order cone情况,它的谱分解只有两个特征值和特征向量,分别为 λ i = x 0 ± ∥ x 1 ∥ 2 2 , q i = 1 2 [ 1 ± x 1 / ∥ x 1 ∥ 2 ] \lambda_i=\frac{x_0\pm\left\|x_1\right\|_2}{\sqrt{2}},\quad q_i=\frac1{\sqrt{2}}\begin{bmatrix}1\\\pm x_1/\|x_1\|_2\end{bmatrix} λi=2 x0±∥x1∥2,qi=2 1[1±x1/∥x1∥2],其中i=1、2;

对于Positive semi-definite cone情况,矩阵的特征值就是对应的半定锥的特征值,它的谱分解为 λ i = λ i , q i = v e c ( v i v i T ) , \lambda_i=\lambda_i,\quad q_i=\mathrm{vec}(v_iv_i^\mathrm{T}), λi=λi,qi=vec(viviT),


7、对称锥的自对偶性

我们记锥 K \mathcal{K} K的对偶锥为 K ∗ \mathcal{K}^* K∗,即与 K \mathcal{K} K中任意元素y的内积大于0的x的集合,如下所示

K ∗ = { x ∣ ⟨ x , y ⟩ ≥ 0 , ∀ y ∈ K } \mathcal{K}^*=\{x\mid\langle x,y\rangle\geq0,\forall y\in\mathcal{K}\} K∗={x∣⟨x,y⟩≥0,∀y∈K}

当锥 K \mathcal{K} K对称锥时,其对偶锥即他本身,此时 K ∗ = K . \color{red}{\mathcal{K}^*=\mathcal{K}}. K∗=K.

--

8、带约束优化的表示形式转化

在前面的介绍中,我们把约束优化分为以下几个部分,如下图所示


(1)将LP写成QP的形式

LP线性规划可以看成是QP二次规划的特例,所以LP线性规划,可以写成QP二次规划的形式,如下所示

(2)将QP写成SOCP的形式

对于凸的QP,Q矩阵就可以写成平方根分解的形式, 即 Q = 2 H T H , p = 2 H T c Q=2H^\mathrm{T}H,\mathrm{~}p=2H^\mathrm{T}c Q=2HTH, p=2HTc,这样QP就可以等价的表示成SOCP的形式

(3)将SOCP写成SDP的形式


就表达能力而言,LP<QP<SOCP<SDP,因此,有的问题可以用SOCP表示,而不能用LP表示,如下面的例子所示

SDP是最强大的对称锥形式之一,许多困难的问题可以通过Lasserre hierarchy方法在SDP中轻松解决


参考资料:

1、数值最优化方法(高立 编著)

2、机器人中的数值优化


相关推荐
Robot2518 小时前
Figure 02迎重大升级!!人形机器人独角兽[Figure AI]商业化加速
人工智能·机器人·微信公众平台
FreeIPCC11 小时前
谈一下开源生态对 AI人工智能大模型的促进作用
大数据·人工智能·机器人·开源
施努卡机器视觉14 小时前
电解车间铜业机器人剥片技术是现代铜冶炼过程中自动化和智能化的重要体现
运维·机器人·自动化
zhd15306915625ff19 小时前
库卡机器人日常维护
网络·机器人·自动化·机器人备件
古月居GYH20 小时前
ROS一键安装脚本
人工智能·机器人·ros
清流君1 天前
【运动规划】移动机器人运动规划与轨迹优化全解析 | 经典算法总结
人工智能·笔记·算法·机器人·自动驾驶·运动规划
Matlab程序猿小助手1 天前
【MATLAB源码-第218期】基于matlab的北方苍鹰优化算法(NGO)无人机三维路径规划,输出做短路径图和适应度曲线.
开发语言·嵌入式硬件·算法·matlab·机器人·无人机
xx小寂1 天前
ubuntu16.04在ros使用USB摄像头-解决could not open /dev/video0问题
ubuntu·机器人
啵啵鱼爱吃小猫咪2 天前
迭代学习公式
学习·机器人
宋138102797202 天前
人形机器人开发、XR仿真训练、影视动画制作,一副手套支持多种应用
机器人·汽车·vr·动作捕捉