等式约束的基本定义
-
等式约束问题
min f ( x ) , s . t . A x = b , A ∈ R p × n , r a n k ( A ) = p \min{f(x)},s.t. Ax=b,A\isin R^{p\times n},rank(A)=p minf(x),s.t.Ax=b,A∈Rp×n,rank(A)=pf是凸函数,二次可微,假设 p ∗ p^* p∗是存在且确定的, p < n p<n p<n,即约束条件小于变量维数,可以存在多解,否则可能会无解
-
等式约束的对偶问题
拉格朗日函数: L ( x , ν ) = f ( x ) + ν T ( A x − b ) L(x,\nu)=f(x)+\nu^T(Ax-b) L(x,ν)=f(x)+νT(Ax−b),设最优点 x ∗ x^* x∗由此得到KKT条件方程组 { A x ∗ = b ∇ f ( x ∗ ) + A T ν ∗ = 0 \begin{cases}Ax^*=b \\ \nabla f(x^*)+A^T\nu^*=0 \end{cases} {Ax∗=b∇f(x∗)+ATν∗=0
x ∗ 是 最 优 点 , ν ∗ 是 对 偶 最 优 点 , p ∗ = inf x { f ( x ) ∣ A x = b } = f ( x ∗ ) x^*是最优点,\nu^*是对偶最优点,p^*=\inf_x\{f(x) | Ax=b\}=f(x^*) x∗是最优点,ν∗是对偶最优点,p∗=infx{f(x)∣Ax=b}=f(x∗)
-
例子:二次规划问题
{ min 1 2 x T P x + q T x + r A x = b ⟹ { A x = b P x + q + A T ν ∗ = 0 \begin{cases}\min{\frac12x^TPx+q^Tx+r} \\ Ax=b \end{cases}\implies\begin{cases}Ax=b \\ Px+q+A^T\nu^*=0 \end{cases} {min21xTPx+qTx+rAx=b⟹{Ax=bPx+q+ATν∗=0
前一个左边的矩阵 ( n + p ) × ( n + p ) (n+p)\times(n+p) (n+p)×(n+p),复杂度是 O ( ( n + p ) 3 ) O((n+p)^3) O((n+p)3)
二次规划问题仅求导一次就可以实现KKT条件,所以- 牛顿法(迭代步需要求二阶导):利用二次函数(存在海森矩阵)去逼近普通函数(下文的目标)
- 梯度下降法:利用一次函数(存在导数)去逼近普通函数
消除等式约束
-
通过变量替换实现等式消除
-
变量替换 x ∗ = F z ∗ + x ^ x^*=Fz^*+\hat{x} x∗=Fz∗+x^
若 x ^ \hat{x} x^是任意的一个特解,那么可以实现变换 { x ∣ A x = b } = { F z + x ^ ∣ z ∈ R ( n − p ) } \{x|Ax=b\}=\{Fz+\hat{x}|z\isin R^{(n-p)}\} {x∣Ax=b}={Fz+x^∣z∈R(n−p)}
于 是 得 到 A ( F z + x ^ ) = b ⟹ A F z = 0 ⟹ A p × n F n × ( n − p ) = 0 于是得到A(Fz+\hat{x})=b\implies AFz=0\implies A_{p\times n}F_{n\times(n-p)}=0 于是得到A(Fz+x^)=b⟹AFz=0⟹Ap×nFn×(n−p)=0
于是A的行组成空间与F的列组成空间正交,即A的零空间就是F的值空间。
min f ( x ) , s . t . A x = b ⟺ min z F ^ ( z ) = f ( F z + x ^ ) \min{f(x)},s.t. Ax=b \iff \min_z \hat{F}(z)=f(Fz+\hat{x}) minf(x),s.t.Ax=b⟺minzF^(z)=f(Fz+x^)【把等式约束加到目标函数里,变成无约束问题】
-
求解对偶最优解 ν ∗ \nu^* ν∗
原问题的KKT系统: ∇ f ( x ∗ ) + A T ν ∗ = 0 \nabla f(x^*)+A^T\nu^*=0 ∇f(x∗)+ATν∗=0,同时左乘矩阵A(实现满秩运算)
得到 ν ∗ = − ( A A T ) − 1 A ∇ f ( x ∗ ) \nu^*=-(AA^T)^{-1}A\nabla f(x^*) ν∗=−(AAT)−1A∇f(x∗)
验证目标: ∇ f ( x ∗ ) − A T ( A A T ) − 1 A ∇ f ( x ∗ ) = 0 \nabla f(x^*)-A^T(AA^T)^{-1}A\nabla f(x^*)=0 ∇f(x∗)−AT(AAT)−1A∇f(x∗)=0
左乘一个满秩矩阵
基于KKT系统,存在u使得 ∇ f ( x ∗ ) + A T u = 0 \nabla f(x^*)+A^T u=0 ∇f(x∗)+ATu=0,同时左乘 F T F^T FT,再因为 A F = 0 AF=0 AF=0
于是推导得 F T ∇ f ( x ∗ ) = 0 F^T\nabla f(x^*)=0 FT∇f(x∗)=0;左乘矩阵A可以发现等式恒成立,综上,得证。 -
原问题转变成
-
-
通过对偶问题实现等式消除
L ( x , ν ) = f ( x ) + ν T ( A x − b ) L(x,\nu)=f(x)+\nu^T(Ax-b) L(x,ν)=f(x)+νT(Ax−b)
g ( ν ) = inf x L ( x , ν ) = − b T ν + inf x ( f ( x ) + ν T A x ) g(\nu)=\inf_xL(x,\nu)=-b^T\nu+\inf_x(f(x)+\nu^TAx) g(ν)=infxL(x,ν)=−bTν+infx(f(x)+νTAx)
= − b T ν − sup x ( − ( A T ν ) T x − f ( x ) ) = − b T ν − f ∗ ( − A T ν ) =-b^T\nu-\sup_x(-(A^T\nu)^Tx-f(x))=-b^T\nu-f^*(-A^T\nu) =−bTν−supx(−(ATν)Tx−f(x))=−bTν−f∗(−ATν)【共轭函数-第三章凸函数】
对偶问题: max ( − b T ν − f ∗ ( − A T ν ) ) , g ( ν ∗ ) = p ∗ \max{(-b^T\nu-f^*(-A^T\nu))},g(\nu^*)=p^* max(−bTν−f∗(−ATν)),g(ν∗)=p∗
-
例子
- 变量替换
重点是找到特解 x ^ \hat x x^
- 对偶问题
- 变量替换
基于feasible初值的牛顿法
-
牛顿法:利用二次导数逼近【设 △ x n t = v \triangle x_{nt}=v △xnt=v】
问题变成: min v f ^ ( x + v ) = f ( x ) + ∇ f ( x ) v + 1 2 v T ∇ 2 f ( x ) v , s . t . A ( x + v ) = b \min_v\hat f(x+v)=f(x)+\nabla f(x)v+\frac12v^T\nabla^2f(x)v, \quad s.t. A(x+v)=b minvf^(x+v)=f(x)+∇f(x)v+21vT∇2f(x)v,s.t.A(x+v)=b
设x是一个可行解( A x = b , A v = 0 Ax=b,Av=0 Ax=b,Av=0),基于KKT系统,存在w使得 ∇ v f ^ ( x + v ) + A T w = 0 \nabla_v \hat f(x+v)+A^Tw=0 ∇vf^(x+v)+ATw=0
将 ∇ f ^ ( x + v ) = 0 \nabla \hat f(x+v)=0 ∇f^(x+v)=0带入KKT条件得: { ∇ f ( x ) + ∇ 2 f ( x ) v + A T w = 0 A v = 0 \begin{cases}\nabla f(x)+\nabla^2f(x)v+A^Tw=0 \\ Av=0 \end{cases} {∇f(x)+∇2f(x)v+ATw=0Av=0
(演变成求解该矩阵方程,求 △ x n t = v , 对 偶 w \triangle x_{nt}=v,对偶w △xnt=v,对偶w)
当A=0时,该等式问题就退化到无约束问题 -
Newton decrement
-
性质
-
部分证明
λ ( x ) = ( △ x n t T ∇ 2 f ( x ) △ x n t ) 1 2 \lambda(x)=(\triangle x_{nt}^T\nabla^2f(x)\triangle x_{nt})^{\frac12} λ(x)=(△xntT∇2f(x)△xnt)21,衡量 x 到 x ∗ x到x^* x到x∗的距离,可以作为二阶逼近下的停止条件。
f ^ ( x + △ x ) = f ( x ) + ∇ f ( x ) T △ x + 1 2 △ x T ∇ 2 f ( x ) △ x \hat f(x+\triangle x)=f(x)+\nabla f(x)^T\triangle x+\frac12\triangle x^T\nabla^2f(x)\triangle x f^(x+△x)=f(x)+∇f(x)T△x+21△xT∇2f(x)△x
设 H = ∇ 2 f ( x ) , g = ∇ f ( x ) , △ x = △ x n t = v H=\nabla^2f(x),g=\nabla f(x),\triangle x=\triangle x_{nt}=v H=∇2f(x),g=∇f(x),△x=△xnt=v, KKT系统: { H △ x + A T w = − g A △ x = 0 \begin{cases}H\triangle x+A^Tw=-g \\ A\triangle x=0 \end{cases} {H△x+ATw=−gA△x=0
第一个式子左右两边左乘 △ x T \triangle x^T △xT,得到 △ x T H △ x = − △ x T g \triangle x^TH\triangle x=-\triangle x^Tg △xTH△x=−△xTg,
带回得 f ^ ( x + △ x ) = f ( x ) − 1 2 △ x T ∇ 2 f ( x ) △ x \hat f(x+\triangle x)=f(x)-\frac12\triangle x^T\nabla^2f(x)\triangle x f^(x+△x)=f(x)−21△xT∇2f(x)△x
f ( x ) − inf v { f ^ ( x + v ) ∣ A ( x + v ) = b } = f ( x ) − f ^ ( x + △ x ) = 1 2 λ 2 ( x ) f(x)-\inf_v\{\hat f(x+v)|A(x+v)=b\}=f(x)-\hat f(x+\triangle x)=\frac12\lambda^2(x) f(x)−infv{f^(x+v)∣A(x+v)=b}=f(x)−f^(x+△x)=21λ2(x)
-
结论
- 误差 f ( x ) − p ∗ f(x)-p^* f(x)−p∗不断变小
- 方向导数恒小于0
-
-
算法步骤
-
牛顿法=消除等式+牛顿法
【把等式约束加入(x可行域内)一起做牛顿下降法】,等价于【把变量消除掉,再去做牛顿法】结论: min x f ( x ) , s . t . A x = b ⟺ min z f ~ ( z ) = f ( F z + x ^ ) , s . t . A x ^ = b \min_x{f(x)},s.t. Ax=b\iff \min_z\tilde f(z)=f(Fz+\hat x),s.t. A\hat x=b minxf(x),s.t.Ax=b⟺minzf~(z)=f(Fz+x^),s.t.Ax^=b
-
两种问题对比
-
证明
∇ f ~ ( z ) = F T ∇ f ( F z + x ^ ) , ∇ 2 f ~ ( z ) = F T ∇ 2 f ( F z + x ^ ) F \nabla \tilde f(z)=F^T\nabla f(Fz+\hat x),\nabla^2\tilde f(z)=F^T\nabla^2 f(Fz+\hat x)F ∇f~(z)=FT∇f(Fz+x^),∇2f~(z)=FT∇2f(Fz+x^)F【加入等式约束】
牛顿迭代步: △ z n t = − ∇ 2 f ~ ( z ) − 1 ∇ f ~ ( z ) = − ( F T ∇ 2 f ( F z + x ^ ) F ) − 1 F T ∇ f ( F z + x ^ ) \triangle z_{nt}=-\nabla^2 \tilde f(z)^{-1}\nabla \tilde f(z)=-(F^T\nabla^2 f(Fz+\hat x)F)^{-1}F^T\nabla f(Fz+\hat x) △znt=−∇2f~(z)−1∇f~(z)=−(FT∇2f(Fz+x^)F)−1FT∇f(Fz+x^)
X = F z + x ^ ⟹ △ x n t = F △ z n t X=Fz+\hat x\implies\triangle x_{nt}=F\triangle z_{nt} X=Fz+x^⟹△xnt=F△znt
一阶KKT条件: ∇ f ( x + △ x n t ) + A T w = 0 \nabla f(x+\triangle x_{nt})+A^Tw=0 ∇f(x+△xnt)+ATw=0 ,得到 w = − ( A A T ) − 1 A ( ∇ f ( x ) + ∇ 2 f ( x ) △ x n t ) w=-(AA^T)^{-1}A(\nabla f(x)+\nabla^2f(x)\triangle x_{nt}) w=−(AAT)−1A(∇f(x)+∇2f(x)△xnt)
二阶KKT条件: ∇ 2 f ( x ) △ x n t + A T w + ∇ f ( x ) = 0 \nabla^2 f(x)\triangle x_{nt}+A^Tw+\nabla f(x)=0 ∇2f(x)△xnt+ATw+∇f(x)=0 ,得到 [ F T A ] [ ∇ 2 f ( x ) △ x n t + A T w + ∇ f ( x ) ] = 0 \begin{bmatrix}F^T\\A\end{bmatrix}\begin{bmatrix} \nabla^2 f(x)\triangle x_{nt}+A^Tw+\nabla f(x) \end{bmatrix}=0 [FTA][∇2f(x)△xnt+ATw+∇f(x)]=0
根据 F T A T w = 0 F^TA^Tw=0 FTATw=0,发现矩阵方程成立,于是得到 λ ~ 2 ( z ) = λ 2 ( x ) \tilde \lambda^2(z)=\lambda^2(x) λ~2(z)=λ2(x),即迭代逼近的效果相同
-
基于infeasible初值的牛顿法
初始点infeasible,但是希望 x + △ x n t x+\triangle x_{nt} x+△xnt满足二阶KKT条件 { ∇ 2 f ( x ) △ x n t + A T w + ∇ f ( x ) = 0 A ( x + △ x n t ) = b \begin{cases}\nabla^2 f(x)\triangle x_{nt}+A^Tw+\nabla f(x)=0\\A(x+\triangle x_{nt})=b\end{cases} {∇2f(x)△xnt+ATw+∇f(x)=0A(x+△xnt)=b
通过解原对偶问题解释原理
- 设置迭代步
r
(
x
,
v
)
r(x,v)
r(x,v)满足KKT条件,希望迭代步
r
(
x
,
v
)
r(x,v)
r(x,v)不断逼近0
注:雅可比矩阵
- 算法步骤
- 下降性质
infeasible初值的不一定一直保持下降,虽然函数不一定下降,但是残差一定下降
求解KKT系统
- KKT系统
- 求解方法
-
L D L T LDL^T LDLT分解
B = P L D L T P T B=PLDL^TP^T B=PLDLTPT,P是置换矩阵,L是下三角矩阵,D是块矩阵
复杂度: O ( 1 3 ( n + p ) 3 ) O(\frac13(n+p)^3) O(31(n+p)3) -
消元法
结果: v = − H − 1 ( g + A T w ) , w = ( A H − 1 A T ) − 1 ( h − A H − 1 g ) v=-H^{-1}(g+A^Tw),w=(AH^{-1}A^T)^{-1}(h-AH^{-1}g) v=−H−1(g+ATw),w=(AH−1AT)−1(h−AH−1g)
时间复杂度 O ( n 3 + p 3 ) O(n^3+p^3) O(n3+p3)
-
实例
-
例子&如何降低计算
-
等式约束牛顿法
-
对偶问题+无约束牛顿法
-
infeasible初值的牛顿法
结论:无论哪种方法,(设D是正对角阵)总要计算 A D A T w = h ADA^Tw=h ADATw=h
-
-
Network flow optimization
-
Analytic center of linear matrix inequality
总结
-
基本定义: min f ( x ) , s . t . A x = b \min{f(x)},s.t. Ax=b minf(x),s.t.Ax=b
-
直接解KKT条件(例子-二次规划函数)
{ A x ∗ = b ∇ f ( x ∗ ) + A T ν ∗ = 0 \begin{cases}Ax^*=b \\ \nabla f(x^*)+A^T\nu^*=0 \end{cases} {Ax∗=b∇f(x∗)+ATν∗=0 -
消除等式约束
- 通过变量替换
- x = F z + x ^ x=Fz+\hat x x=Fz+x^【通解+特解】
- 求解对偶变量 ν ∗ = − ( A A T ) − 1 A ∇ f ( x ∗ ) \nu^*=-(AA^T)^{-1}A\nabla f(x^*) ν∗=−(AAT)−1A∇f(x∗)【LSE逼近】
- 通过对偶问题
max ( − b T ν − f ∗ ( − A T ν ) ) , g ( ν ∗ ) = p ∗ \max{(-b^T\nu-f^*(-A^T\nu))},g(\nu^*)=p^* max(−bTν−f∗(−ATν)),g(ν∗)=p∗
- 通过变量替换
-
基于feasible初值的牛顿法
- 二阶展开,先做二阶展开,带入KKT求导得到极值,再套上迭代量含义。(一阶展开,将迭代量带入KKT条件,再做一阶展开)
- Newton decrement:
λ
(
x
)
=
(
△
x
n
t
T
∇
2
f
(
x
)
△
x
n
t
)
1
2
\lambda(x)=(\triangle x_{nt}^T\nabla^2f(x)\triangle x_{nt})^{\frac12}
λ(x)=(△xntT∇2f(x)△xnt)21
可以衡量 x 到 x ∗ x到x^* x到x∗的距离,可以作为二阶逼近下的停止条件- 误差 f ( x ) − p ∗ f(x)-p^* f(x)−p∗不断变小
- 方向导数恒小于0
- 牛顿法=消除等式+牛顿法
min x f ( x ) , s . t . A x = b ⟺ min z f ~ ( z ) = f ( F z + x ^ ) , s . t . A x ^ = b \min_x{f(x)},s.t. Ax=b\iff \min_z\tilde f(z)=f(Fz+\hat x),s.t. A\hat x=b minxf(x),s.t.Ax=b⟺minzf~(z)=f(Fz+x^),s.t.Ax^=b
-
基于infeasible初值的牛顿法
-
基本定义:
初始点infeasible,但是希望 x + △ x n t x+\triangle x_{nt} x+△xnt满足二阶KKT条件 { ∇ 2 f ( x ) △ x n t + A T w + ∇ f ( x ) = 0 A ( x + △ x n t ) = b \begin{cases}\nabla^2 f(x)\triangle x_{nt}+A^Tw+\nabla f(x)=0\\A(x+\triangle x_{nt})=b\end{cases} {∇2f(x)△xnt+ATw+∇f(x)=0A(x+△xnt)=b
-
通过解原对偶问题解释原理
- 设置迭代步 r ( x , v ) r(x,v) r(x,v)满足KKT条件
- 希望迭代步 r ( x , v ) r(x,v) r(x,v)不断逼近0
-
下降性质
infeasible初值的不一定一直保持下降,虽然函数不一定下降,但是残差一定下降 -
具体的算法流程
-
-
KKT系统方程的求解
-
L D L T LDL^T LDLT分解
普通矩阵 B = P L D L T P T B=PLDL^TP^T B=PLDLTPT,P是置换矩阵,L是下三角矩阵,D是块矩阵
复杂度: O ( 1 3 ( n + p ) 3 ) O(\frac13(n+p)^3) O(31(n+p)3)
-
消元法
v = − H − 1 ( g + A T w ) , w = ( A H − 1 A T ) − 1 ( h − A H − 1 g ) v=-H^{-1}(g+A^Tw),w=(AH^{-1}A^T)^{-1}(h-AH^{-1}g) v=−H−1(g+ATw),w=(AH−1AT)−1(h−AH−1g)
时间复杂度 O ( n 3 + p 3 ) ∼ O ( n 3 ) O(n^3+p^3)\sim O(n^3) O(n3+p3)∼O(n3)
-
-
三种求解牛顿法的实例
- 等式约束牛顿法
- 对偶问题+无约束牛顿法
- infeasible初值的牛顿法