最优化方法(学习笔记)-第十一章等式约束优化问题

等式约束的基本定义

  • 等式约束问题
    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=bARp×n,rank(A)=p

    f是凸函数,二次可微,假设 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(Axb),设最优点 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=bf(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)}\} {xAx=b}={Fz+x^zR(np)}

      于 是 得 到 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^)=bAFz=0Ap×nFn×(np)=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=bminzF^(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)1Af(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)1Af(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 FTf(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(Axb)

    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ν)Txf(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+21vT2f(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=vw
    当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)=(xntT2f(x)xnt)21,衡量 x 到 x ∗ x到x^* xx的距离,可以作为二阶逼近下的停止条件。

      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)Tx+21xT2f(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} {Hx+ATw=gAx=0

      第一个式子左右两边左乘 △ x T \triangle x^T xT,得到 △ x T H △ x = − △ x T g \triangle x^TH\triangle x=-\triangle x^Tg xTHx=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)21xT2f(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=bminzf~(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)=FTf(Fz+x^)2f~(z)=FT2f(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)1f~(z)=(FT2f(Fz+x^)F)1FTf(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=Fznt

      一阶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=H1(g+ATw),w=(AH1AT)1(hAH1g)

      时间复杂度 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=bf(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)1Af(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)=(xntT2f(x)xnt)21
      可以衡量 x 到 x ∗ x到x^* xx的距离,可以作为二阶逼近下的停止条件
      • 误差 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=bminzf~(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=H1(g+ATw),w=(AH1AT)1(hAH1g)

      时间复杂度 O ( n 3 + p 3 ) ∼ O ( n 3 ) O(n^3+p^3)\sim O(n^3) O(n3+p3)O(n3)

  • 三种求解牛顿法的实例

    • 等式约束牛顿法
    • 对偶问题+无约束牛顿法
    • infeasible初值的牛顿法
参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

oliveQ

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值