文档维护:Arvin
网页部署:Arvin
▶
写在前面:本文内容是作者在深蓝学院机器人中的数值优化学习时的笔记,作者按照自己的理解进行了记录,如果有错误的地方还请执政。如涉侵权,请联系删除。
锥规划(笔记)
锥和对称锥
尖锥
如果一组点κ⊆Rn满足以下条件,则称为尖锥:
Conic:a∈K,λ≥0⇒λa∈KPointed:a∈K and −a∈K⇒a=0
第一个条件即向量a在集合K中,λ≥0,则λa也必然在集合K中;第二个条件是若向量a在集合K中,则向量−a不在集合K中,除非向量a=0。
凸锥
在尖锥的基础上,若进一步满足a,a′∈K⇒a+a′∈K,则为凸锥。截面可以是任意形状,比如凸多面体、椭圆、超椭圆。
-
多面体锥
- 由Ax≤b构成的多面体,其中x∈Rn。
- 增加一个维度此时空间(t,x)∈Rn+1,构成一个多面体锥{t≥0,Ax≤bt}。
- t=1时的切片截面是原始多面体。
-
椭圆锥
- 椭圆x⊤Px+q⊤x+r≤0,其中P≻0且x∈Rn。
- 进行仿射变换⟺∥Ax+b∥≤c。
- {t≥0,∥Ax+bt∥≤ct}是(t,x)∈Rn+1空间中的一个椭圆锥。
- t=1时的切片是原始椭圆。
以下三类锥,分别对应LP线性规划、SOCP二次锥规划、SDP半定规划。
常见的锥及其性质
-
非负象限
R≥0n={x∈Rn∣xi≥0,i=1,…,n}
-
二阶锥
Qn={(x0,x1)T∈R×Rn−1∣x0≥∥x1∥2}
-
半正定锥
S≥0n={x∈Rn(n+1)/2∣zTmax(x)z≥0,∀z∈Rn}
经过仿射变换或旋转,锥可以拓展至如下形式:
对称锥
R≥0n,Qn,S≥0n这些锥都是对称的,我们可以将其表示成平方锥(cones of squares)。
-
正象限锥positive orthant
R≥0n={x∈Rn∣xi≥0,i=1,…,n}={[y]2∣y∈Rn}
-
二阶锥second-order cone
Qn={(x0,x1)T∈R×Rn−1∣x0≥∥x1∥2}={21(y02+y1Ty1,2y0y1)T∣(y0,y1)T∈R×Rn−1}
-
半正定锥Positive semi-definite cone
S≥0n={x∈Rn(n+1)/2∣zT max(x)z≥0,∀z∈Rn}={vec(mat(y)mat(y))∣y∈Rn(n+1)/2}
平方操作
锥是对称的当且仅当他是平方时
{x2:=x∘x∣x∈Rn}
必须满足下面特性:
- x∘y是线性的,即kx∘y=k(x∘y)
- x∘y=y∘x
- x2∘(y∘x)=(x2∘y)∘x
- $\langle x,y\circ z\rangle=\langle x\circ y,z\rangle $
(Rn,∘)被称为欧几里得乔丹代数Euclidean Jordan algebra。通过代数,可以用统一的方式研究对称锥形成的约束。
圈乘的定义:
-
正象限锥
R≥0n={y∘y∣y∈Rn}
其定义为:
x∘y:=diag(x)y
-
二阶锥
Qn={y∘y∣y=(y0,y1)T∈R×Rn−1}
其定义为:
x∘y:=21[xTyx0y1+y0x1]
-
半正定锥
S≥0n={y∘y∣y∈Rn(n+1)/2}
其定义为:
x∘y:=21vec(mat(x)mat(y)+mat(y)mat(x))
谱分解
每个欧几里得代数都有其谱分解:
x=i=1∑θλiqi
其中λi是特征值,qi是特征向量。
分解后的每个特征向量,都满足:
qi2=qi,qi∘qj(=i)=0
易知:
- 特征向量是正交的⟨qi,qj(=i)⟩=⟨qi∘qi,qj(=i)⟩=⟨qi,qi∘qj(=i)⟩=0
- 当且仅当一个向量的所有特征值都非负时,该向量在对称锥中。
- 当且仅当一个向量的所有特征值都为正时,该向量在对称锥的内部。
常见锥体的谱分解:
-
正象限锥(positive orthant)
λi=xi,qi=ei
-
二阶锥(second-order cone)
λi=2x0±∥x1∥2,qi=21[1±x1/∥x1∥2]
-
半正定锥(second-order cone)
λi=λi,qi=vec(viviT)
其中λi和vi是mat(x)的特征值和特征向量。
对称锥的自对偶性
锥K的对偶锥记为K∗,即与中K任意元素y的内积大于0的x的集合,如下所示:
K∗={x∣⟨x,y⟩≥0,∀y∈K}
因此对称锥的对偶锥是他本身,即K∗=K。
对称锥的应用
回顾一下之前约束优化问题的分类:
上面的包含关系是怎么来的呢?
-
LP写成QP形式
-
QP写成SOCP的形式
-
SOCP写成SDP形式
二阶锥规划问题是一类对称锥规划问题,另外有一部分半定规划问题也是对称锥规划问题,也就是说这两类规划问题的不等式约束条件都可以表示为解处于一个对称锥内的形式。SDP是最广泛的对称凸锥优化问题!许多优化问题可以通过 Lasserre hierarchy 结构简化为SDP。
锥增广拉格朗日函数
数值优化笔记(三):锥规划问题
推导
对称锥规划问题可以表示成:
x∈RnmincTxs.t.Aix+bi∈Ki,i=1,…,mGx=h
由前面我们可以根据对称锥的概念,所有对称锥内部的向量,可以表示为一个Rn向量关于圈乘
x,smincTxs.t.Aix+bi=si∘si, i=1,…,mGx=h
因此我们可以构建对于等式约束的拉格朗日函数如下:
Lρ(x,s,λ,ν):=cTx+2ρGx−h+ρλ2+2ρi=1∑mAix+bi−si∘si+ρνi2
⎩⎨⎧xk+1=argminx,sL(xk,sk,λk,μk,ρk)λk+1=λk+ρk(Gxk+1−h)μik+1=μik+ρk(Aixk+1+bi−si∘si)ρk+1=min(ρk+γρk,β)
其中,k代表迭代轮数,λ和μi是拉格朗日乘子,ρ是惩罚系数。当时上述式子中多出来一个变量s。下面是将其消去的推导过程:
对于minx,sL问题,由于s只和最后一项有关,因此对于任何一个x,都可以很容易地求解出对应的最优的s∗的取值。只需要求解下面的优化问题即可,这里可以将x看作常量:
smin21ρi=1∑m∣∣Aix+bi−si∘si+ρμi∣∣2
上述式子中Aix+bi+ρμi与s无关,并且si之间也无关联。因此上述式子可以写成:
smin∣∣v−si∘si∣∣2
其中v=Aix+bi+ρμi。
即
smin∥v−si∘si∥2=x∈Kmin∥v−x∥2
我们从几何角度去理解这个问题,事实上这个问题的最优解就是找到向量v在对称锥K上的投影向量,此时v−x与锥垂直,即距离最近。如下图所示:
我们用Pκ(v)表示向量v在K上的投影,则可以得到下式:
smin∥v−si∘si∥2=∥PK(−v)∥2
且根据对称锥的另一个特性Moreau decomposition(此处不具体推导,看下图即可):
由上可得:
v−PK(v)=−PK(−v)
最终我们可以得到:
smin∥v−si∘si∥2=∥PK(−v)∥2
所以原拉格朗日函数:
sminLρ(x,s,λ,ν)=cTx+2ρGx−h+ρλ2+2ρi=1∑mPKi(−Aix−bi−ρνi)2
我们用μ=−v,因此对称锥的增广拉格朗日量:
Lρ(x,λ,μ):=cTx+2ρ{Gx−h+ρλ2+i=1∑mPKi(ρμi−Aix−bi)2}−2ρ1{∥λ∥2+∥μ∥2}
其原函数下降和对偶函数上升过程与PHR-ALM相同。
特别的,对偶变量的更新如下:(−μi)←(−μi)+ρ(Aix+b−si∘si),其中si∘si=PK(Aix+bi+ρ−μi)。
再运用一次莫罗分解,可以得到:
μi←PKi(μi−ρ(Aix+bi))
总结如下
原问题为:
x∈RnmincTxs.t.Aix+bi∈Ki,i=1,…,mGx=h
其增广拉格朗日函数为:
Lρ(x,λ,μ):=cTx+2ρ{Gx−h+ρλ2+i=1∑mPKi(ρμi−Aix−bi)2}−2ρ1{∥λ∥2+∥μ∥2}
其中ρ>0,μi∈Ki,然后进行迭代
⎩⎨⎧x←argminxLρ(x,λ,μ)λ←λ+ρ(Gx−h)μi←PKi(μi−ρ(Aix+bi))ρ←min[(1+γ)ρ, β]
- 初始化ρini=1,λini=μini=0,γ=1,β=103
- 迭代终止条件max[∥Gx−h∥∞,maxiρμ−PKi(ρμ−Aix−bi)∞]<ϵcons,∥∇xLρ(x,λ,μ)∥∞<ϵprec
锥投影的计算
根据谱分解的概念,任意一个向量都可以分解为:
x=i=1∑θλiqi
对于不同的锥qi也是不同的,投影操作可以被描述为:
PK(x)=i=1∑θmax(λi,0)qi
上述式子的含义是,把向量x按照qi进行分解,并将所有小于0的特征值设置为0,然后再进行线性组合。即把分解后所有特征值为负数的部分舍弃。
半光滑牛顿方法
锥增广拉格朗日算法的迭代过程中需要求解一个无约束优化问题:
xminLρ(x,λ,μ)=cTx+2ρ{Gx−h+ρλ2+i=1∑mPχi(ρμi−Aix−bi)2}
这个问题中,目标函数是一个一阶连续可微的凸函数,但无法保证二阶连续可微,因此其Hessian未必是连续的。因此,上述问题可以用梯度下降法和拟牛顿法进行求解,但无法用一般的牛顿方法进行求解。
使用拟牛顿法求解时,
该子问题就是增广拉格朗日函数对x求最小值,即
Lρ(x,λ,μ)w.r.t.x
其梯度和Hessian矩阵是
g=∇xLρ(x,λ,μ),H=∇x2Lρ(x,λ,μ)
圆锥增广拉格朗日函数的凸性保证了
H⪰0
所以我们是否可以使用拟牛顿法进行下列更新?
(H+ϵI)d=−g, ϵ=min(1,∥g∥∞)
在二阶连续可微的地方当然可以,但是当最优解在边界上(锥的边缘),很有可能在Hessian不存在的区域,可以采用如下介绍的半光滑的牛顿方法。
半光滑的定义:
定义一个向量函数:F(x):Rn→Rn,那么当F(x)在x处方向可导,且
d∈Rn,d→0lim∣∣d∣∣∣∣F(x+d)−F(x)−J(d)d∣∣=0,∀J(d)=∂F(x+d)
则称F(x)在x处是半光滑的。
如果再进一步,若满足下列条件,它是强半光滑的
d∈Rn, d→0lim∥d∥2∥F(x+d)−F(x)−J(d)d∥<∞, ∀J(d)∈∂F(x+d)
B次微分的定义:
∂BF(x)={limk→∞F′(xk)∣xk∈DF,xk→x},其中DF代表的是xk的可行域。B次微分和一般次微分的关系是:∂F(x)=conv(∂BF(x)),其中conv代表取凸包的操作。
半光滑牛顿方法:
如果F(x):Rn↦Rn是半光滑的,则J(x)∈∂BF(x)是非奇异的
xk+1=xk−J(xk)−1F(xk)
也就是说,用B次微分代替Hessian矩阵参与牛顿迭代,这就是所谓的半光滑牛顿法。
上述迭代可以达到局部超线性收敛
F(x)=0
如果F(x):Rn↦Rn是强光滑的,迭代可以到达局部二次收敛
g(x):=∇xLρ(x,λ,μ)
锥增广拉格朗日函数的梯度是强半光滑的,因为它是分段C2。
因此,我们可以如下计算半平滑牛顿步来进行无约束优化
(H+ϵI)d=−gg=∇xLρ(x,λ,ρ)H∈∂B∇xLρ(x,λ,ρ)ϵ=min(1,∥g∥∞)/10
如何计算梯度和B次微分呢?
梯度可以直接进行计算:
∇xLρ(x,λ,μ)=c+GT(λ+ρ(Gx−h))−i=1∑mAiTPKi(μ−ρ(Aix+bi))
所谓的广义Hessian,即梯度的B次微分如下式:
∂B∇xLρ(x,λ,μ)=ρ(GTG+i=1∑mAiT∂BPKi(μ−ρ(Aix+bi))Ai)
特别的,对于SOCP,B次微分可以选择为:
∂BPKi(x)∋⎩⎨⎧In0212∥x2∥x22∥x2∥x2T2∥x2∥x1+∥x2∥In−1−2∥x2∥3x1x2x2T∥x2∥≤x1,∥x2∥≤−x1,∥x2∥>∣x1∣.
应用:时间最优路径规划(TOPP)
路径q由弧长变量s参数化,TOPP是在给定的平滑路径上生成时间剖面,路径的持续时间应该尽可能地短。
使用弧长参数s来对路径进行参数化,s的值表示的是距离路径起点所走过的距离。与速度加速度的概念类似:
a(s)=dt2d2s,b(s)=(dtds)2
根据运动学基础公式
vs2−v02=2as
距离参数化速度的平方与二阶导数成线性关系
b′(s)=2a(s)
所以,目标函数(时间最优)
T=∫0T1dt=∫s(0)s(T)ds/dt1ds=∫0Lds/dt1ds=∫0Lb(s)1ds
真实速度
dtdq=q′(s)dtds=q′(s)b(s)
真实加速度
dt2d2q=q′′(s)(dtds)2+q′(s)dt2d2s=q′′(s)b(s)+q′(s)a(s)
更重要的是,我们仅考虑向前移动的情况,因此b(s)≥0应该严格成立,并仅在某个或某几个瞬间为0。
因此我们将这个简单的TOPP问题描述为:
a(s),b(s)mins.t.∫0<!−−swig0−−>b(s)1dsb(s)≥0,∀s∈[0,L],b′(s)=2a(s),∀s∈[0,L],q′(s)b(s)∞≤vmax,∀s∈[0,L],∥q′′(s)b(s)+q′(s)a(s)∥∞≤amax,∀s∈[0,L],b(0)=b0,b(L)=bL.
将上述问题变为SOCP
其中是引入一些变量进行一些缩放,将表达形式便形成SOCP的形式。
增加隐变量ck,dk,满足:
ck≤bk,ck+1+ck1≤dk
则通过缩放可以得到bk+1+bk1≤dk,以上每步等号都可以取到,则minbk+1+bk1⟺mindk,同时bk,ck,dk需要满足上面两个约束,即:
2ck+1+ck−dk22ckbk−12≤ck+1+ck+dk,0≤k≤K−1,≤bk+1,0≤k≤K.
综上所述TOPP转化SOCP为:
目标函数:
ak,bk,ck,dkmink=0∑K−12(sk+1−sk)dk
锥约束:
2ck+1+ck−dk22ckbk−12≤ck+1+ck+dk,0≤k≤K−1,≤bk+1,0≤k≤K.
等式约束:
2(sk+1−sk)ak+bk−bk+1=0,(0≤k≤K−1)q′(s0)22b0=vstart2q′(sk)22bK=vend2
不等式约束:
−bk≤0,(0≤k≤K)((qy′(sk))2+(qx′(sk))2)bk−vmax2≤0,(0≤k≤K)qx′′(sk)bk+qx′(sk)ak−amax≤0,(0≤k≤K−1)qy′′(sk)bk+qy′(sk)ak−amax≤0,(0≤k≤K−1)−qx′′(sk)bk−qx′(sk)ak−amax≤0,(0≤k≤K−1)−qy′′(sk)bk−qy′(sk)ak−amax≤0,(0≤k≤K−1)
作业
作业一:证增广拉格朗日函数是关于x的凸函数
原问题是一个凸优化问题:
mins.t.f(x)g(x)≤0h(x)=0
则我们可得
- f(x)和g(x)都是凸函数,h(x)是仿射函数(既凸又凹)。
且
- 凸函数充要条件
f(αx+(1−α)y)≤αf(x)+(1−α)f(y),∀x,y∈domf,α∈(0,1)
-
凸函数加凸函数还是凸函数。f1…fn为凸函数,wi≥0则f=∑inwifi为凸函数。
-
若f为I上的凸函数,g在J(f(I)⊂J)上递增,且凸性相同,g◦f在I上有相同的凸性。
上述为证明所用到的定理,其中3和4均可由2推导得到。
证:
增广拉格朗日函数为
Lρ(x,λ,μ):=f(x)+2ρ{h(x)+ρλ2+max[g(x)+ρμ,0]2}−2ρ1{∥λ∥2+∥μ∥2}
其中ρ>0,μ⪰0
-
f(x)为凸函数,2ρ1{∥λ∥2+∥μ∥2}与x无关。
-
当h(x)+ρλ≥0时,∣∣⋅∣∣2在[0,+∞]上单调递增且为凸函数。由定理4我们可得,h(x)+ρλ2为凸函数。
-
与上同理,易得max[g(x)+ρμ,0]为凸函数且max[g(x)+ρμ,0]≥0,∣∣⋅∣∣2在[0,+∞]上单调递增且为凸函数。由定理4我们可得,max[g(x)+ρμ,0]2为凸函数。
综上所述,增广拉格朗日函数Lρ(x,λ,μ)是关于x的凸函数。
作业二:低维半正定的二次规划问题
原问题:
x∈Rnmin21xTMQx+cQTx,s.t.AQx≤bQwhere,MQ⪰0.
这是一个半正定的二次规划问题。
原求解器只能求解严格正定的二次规划问题,所以我们将其构建成一个严格正定的二次规划问题。
给原目标函数加上一个正则项,变为
x∈Rnmin21xTMQx+cQTx+2ρ1∥x−xˉ∥2
展开得
x∈Rnmin21xTMQx+cQTx+2ρ1(xTx+xˉTxˉ−2xˉTx)
即
x∈Rnmin21xT(MQ+ρ1)x+(cQ−ρ1xˉ)Tx+2ρ1xˉTxˉ
这样上述问题就会变成严格正定的二次规划问题
-
初始化xˉ,给定δ
-
求出下列二次规划问题的解xi∗
x∈Rnmin21xT(MQ+ρ1)x+(cQ−ρ1)Tx
- 判断$\left|x-\bar{x}\right|^2 \le \delta $,若满足条件迭代结束;若不满足继续迭代。
- xˉ←xi∗,转到步骤2。
代码见文件task2所示。
运行
- cd chapter04/task2
- 编译
- 运行可执行文件./sdqp_example
结果如下:
作业三:SOCP求解
原问题:
x∈RnminfTxs.t.∥Ax+b∥2≤cTx+d
其中
A=7654321,b=135791113,c=1000000,f=1234567,d=1
我们构建一个二阶锥
K={(y0,y1)T∈R×Rn−1∣y0≥∥y1∥2}
其中y0=cTx+d,y1=Ax+b。
所以原问题变为:
xminfTx,s.t.Aix+bi∈K
其中
Ai=[cTA],bi=[db]
根据前文锥的增广拉个朗日函数可得:
Lρ(x,μ)=fTx+2ρ(PK(ρμ−Aix−bi)2)
迭代
⎩⎨⎧x←argminxLρ(x,λ,μ)μi←PKi(μi−ρ(Aix+bi))ρ←min[(1+γ)ρ, β]
其中x←argminxLρ(x,λ,μ)可使用前文的半光滑牛顿方法求得。
具体代码见task3
运行:
- cd chapter04/task3
- 编译
- 运行可执行文件./socp_example
结果如下: