等式约束优化问题
minf(x)
s.t.Ax=b
其中f为二次可微凸函数,假设等式约束少于变量数,并且等式约束互相独立。假定存在一个最优解x⋆,并用p⋆表示其最优值,即:
p⋆=inf{f(x)∣Ax=b}=f(x⋆)
由KKT条件,其最优解的重要条件是满足:
Ax⋆=b▽f(x⋆)+ATv⋆=0
对于求解等式约束问题有两种方法:
- 任何等式约束优化问题都可以通过消除等式约束转化为等价的无约束问题。
- 使用对偶方法解决。
很多时候,直接处理等式约束比转化为无约束问题要好,这是因为转化之后可能会破坏问题的结构。
等式约束凸二次规划
minf(x)=(1/2)xTPx+qTx+r
s.t.Ax=b
此问题的最优性条件为:
Ax⋆=bPx⋆+q+ATv⋆=0
可以将其写成矩阵形式:
[PAAT0][x⋆v⋆]=[−qb]
这个矩阵称为`KKT矩阵`,接下来会经常用到。
## 消除等式约束
我们以参数化可行集的形式表示等式约束:
{x∣Ax=b}={Fz+x^}
其中x^为任意特解,F为A的零空间的任意矩阵,可以消除等式约束为:
minf^(z)=f(Fz+x^)
这里的变量z没有约束,利用它的解z⋆可以确定等式约束问题的解x⋆=Fz⋆+x^
## 对偶方法求解等式约束
可得约束问题的对偶函数为:
g(v)=−bTv+xinf(f(x)+vTAx)=−bTx−xsup((−ATv)Tx−f(x))=−bTv−f⋆(−ATv)
因此,对偶问题为:
max−bTv−f⋆(−ATv)
若Slater
条件成立,则强对偶性成立,即g(v⋆)=p⋆
等式约束的Newton方法
讨论扩展的Newton方法,与之前无约束类似,但初始点必须可行(即满足Ax=b),并且需要保证Newton方向是可行的方向,即AΔxnt=0
Newton方向
基于二阶近似的定义
将目标函数换成在其x附近的二阶Taylor近似:
minf^(x+v)=f(x)+▽f(x)Tv+(1/2)vT▽2f(x)v
s.t.A(x+v)=b
根据之前对等式约束二次问题的分析,得到KKT矩阵
:
[▽2f(x)AAT0][Δxntw]=[−▽f(x)0]
线性化最优性条件的解
可以将Newton方向Δxnt解释为最优性条件:
Ax⋆=b▽f(x⋆)+ATv⋆=0
我们用x+Δxnt替代x⋆,用w替代v⋆,将梯度换为二阶近似,得到:
A(x+Δxnt)=b,▽f(x+Δxnt)+ATw≈▽f(x)+▽2f(x)Δxnt+ATw=0
利用Ax=b,上式变为:
AΔxnt=0▽2f(x)Δxnt+ATw=−▽f(x)
这和上面的KKT矩阵
完全一样。
Newton减量
λ(x)=(ΔxntT▽2f(x)Δxnt)1/2
这和无约束问题的Newton减量完全一样。因此也可以进行同样的解释。可参考这里。
等式约束的Newton方法
- 给定初始点x∈domf,误差阈值ϵ>0
- 计算Newton步径和减量
- 停止准则:如果λ2/2≤ϵ,退出
- 直线搜索,根据回溯直线搜索确定步长t
- 改进:x:=x+tΔxnt
不可行初始点的Newton方法
不可行点的Newton方向
和Newton方法一样,我们从等式约束优化的最优性条件开始:
Ax⋆=b▽f(x⋆)+ATv⋆=0
用x表示当前点,不假设它是可行的,因此我们的目的是找到一个方向Δx使得x+Δx满足最优性条件,即x+Δx≈x⋆。因此我们用x+Δx代替x⋆,并利用梯度的一阶近似:
A(x+Δx)=bx▽f(x)+▽2f(x)Δx+ATw=0
写成矩阵形式为:
[▽2f(x)AAT0][Δxw]=−[▽f(x)Ax−b]
与之前的KKT矩阵的差别
在于Ax−b,表示为残差向量。