等式约束优化

本文探讨了等式约束优化问题,特别是凸二次规划。介绍了如何通过消除等式约束转化为无约束问题以及使用对偶方法求解。还详细讲解了等式约束的Newton方法,包括Newton方向的定义和计算,以及处理不可行初始点的情况。文章强调了直接处理等式约束有时优于转化后的无约束问题,因为它能保持问题的结构。

介绍等式约束优化的求解。

等式约束优化问题

minf(x) min f ( x )

s.t.Ax=b s . t . A x = b

其中 f f 为二次可微凸函数,假设等式约束少于变量数,并且等式约束互相独立。假定存在一个最优解x,并用 p p ⋆ 表示其最优值,即:

p=inf{f(x)|Ax=b}=f(x) p ⋆ = inf { f ( x ) | A x = b } = f ( x ⋆ )

由KKT条件,其最优解的重要条件是满足:

Ax=bf(x)+ATv=0 A x ⋆ = b ▽ f ( x ⋆ ) + A T v ⋆ = 0

对于求解等式约束问题有两种方法:

  1. 任何等式约束优化问题都可以通过消除等式约束转化为等价的无约束问题。
  2. 使用对偶方法解决。

很多时候,直接处理等式约束比转化为无约束问题要好,这是因为转化之后可能会破坏问题的结构。

等式约束凸二次规划

minf(x)=(1/2)xTPx+qTx+r min f ( x ) = ( 1 / 2 ) x T P x + q T x + r

s.t.Ax=b s . t . A x = b

此问题的最优性条件为:

Ax=bPx+q+ATv=0 A x ⋆ = b P x ⋆ + q + A T v ⋆ = 0

可以将其写成矩阵形式:

[PAAT0][xv]=[qb] [ P A T A 0 ] [ x ⋆ v ⋆ ] = [ − q b ]

这个矩阵称为KKT矩阵,接下来会经常用到。

消除等式约束

我们以参数化可行集的形式表示等式约束:

{x|Ax=b}={Fz+x^} { x | A x = b } = { F z + x ^ }

其中 x^ x ^ 为任意特解, F F A的零空间的任意矩阵,可以消除等式约束为:

minf^(z)=f(Fz+x^) min f ^ ( z ) = f ( F z + x ^ )

这里的变量 z z 没有约束,利用它的解z可以确定等式约束问题的解 x=Fz+x^ x ⋆ = F z ⋆ + x ^

对偶方法求解等式约束

可得约束问题的对偶函数为:

g(v)=bTv+infx(f(x)+vTAx)=bTxsupx((ATv)Txf(x))=bTvf(ATv)(21)(22)(23) (21) g ( v ) = − b T v + inf x ( f ( x ) + v T A x ) (22) = − b T x − sup x ( ( − A T v ) T x − f ( x ) ) (23) = − b T v − f ⋆ ( − A T v )

因此,对偶问题为:

maxbTvf(ATv) max − b T v − f ⋆ ( − A T v )

Slater条件成立,则强对偶性成立,即 g(v)=p g ( v ⋆ ) = p ⋆

等式约束的Newton方法

讨论扩展的Newton方法,与之前无约束类似,但初始点必须可行(即满足 Ax=b A x = b ),并且需要保证Newton方向是可行的方向,即 AΔxnt=0 A Δ x n t = 0

Newton方向

基于二阶近似的定义

将目标函数换成在其 x x 附近的二阶Taylor近似:

minf^(x+v)=f(x)+f(x)Tv+(1/2)vT2f(x)v

s.t.A(x+v)=b s . t . A ( x + v ) = b

根据之前对等式约束二次问题的分析,得到KKT矩阵

[2f(x)AAT0][Δxntw]=[f(x)0] [ ▽ 2 f ( x ) A T A 0 ] [ Δ x n t w ] = [ − ▽ f ( x ) 0 ]

线性化最优性条件的解

可以将Newton方向 Δxnt Δ x n t 解释为最优性条件:

Ax=bf(x)+ATv=0 A x ⋆ = b ▽ f ( x ⋆ ) + A T v ⋆ = 0

我们用 x+Δxnt x + Δ x n t 替代 x x ⋆ ,用 w w 替代v,将梯度换为二阶近似,得到:

A(x+Δxnt)=b,f(x+Δxnt)+ATwf(x)+2f(x)Δxnt+ATw=0 A ( x + Δ x n t ) = b , ▽ f ( x + Δ x n t ) + A T w ≈ ▽ f ( x ) + ▽ 2 f ( x ) Δ x n t + A T w = 0

利用 Ax=b A x = b ,上式变为:

AΔxnt=02f(x)Δxnt+ATw=f(x) A Δ x n t = 0 ▽ 2 f ( x ) Δ x n t + A T w = − ▽ f ( x )

这和上面的KKT矩阵完全一样。

Newton减量

λ(x)=(ΔxTnt2f(x)Δxnt)1/2 λ ( x ) = ( Δ x n t T ▽ 2 f ( x ) Δ x n t ) 1 / 2

这和无约束问题的Newton减量完全一样。因此也可以进行同样的解释。可参考这里

等式约束的Newton方法

  1. 给定初始点 xdomf x ∈ d o m f ,误差阈值 ϵ>0 ϵ > 0
  2. 计算Newton步径和减量
  3. 停止准则:如果 λ2/2ϵ λ 2 / 2 ≤ ϵ ,退出
  4. 直线搜索,根据回溯直线搜索确定步长 t t
  5. 改进:x:=x+tΔxnt

不可行初始点的Newton方法

不可行点的Newton方向

和Newton方法一样,我们从等式约束优化的最优性条件开始:

Ax=bf(x)+ATv=0 A x ⋆ = b ▽ f ( x ⋆ ) + A T v ⋆ = 0

x x 表示当前点,不假设它是可行的,因此我们的目的是找到一个方向Δx使得 x+Δx x + Δ x 满足最优性条件,即 x+Δxx x + Δ x ≈ x ⋆ 。因此我们用 x+Δx x + Δ x 代替 x x ⋆ ,并利用梯度的一阶近似:

A(x+Δx)=bxf(x)+2f(x)Δx+ATw=0 A ( x + Δ x ) = b x ▽ f ( x ) + ▽ 2 f ( x ) Δ x + A T w = 0

写成矩阵形式为:

[2f(x)AAT0][Δxw]=[f(x)Axb] [ ▽ 2 f ( x ) A T A 0 ] [ Δ x w ] = − [ ▽ f ( x ) A x − b ]

与之前的KKT矩阵的差别在于 Axb A x − b ,表示为残差向量。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值