等式约束优化问题

  • 等式约束的基本定义
  • 消除等式约束
  • 基于feasible初值的牛顿法
  • 基于infeasible初值的牛顿法
    • 通过解原对偶问题解释原理
    • 求解KKT系统
  • 实例
  • 总结

等式约束的基本定义

  • 等式约束问题
    min⁡f(x),s.t.Ax=b,A∈Rp×n,rank(A)=p\min{f(x)},s.t. Ax=b,A\isin R^{p\times n},rank(A)=pminf(x),s.t.Ax=b,A∈Rp×n,rank(A)=p

    f是凸函数,二次可微,假设p∗p^*p∗是存在且确定的,p<np<np<n,即约束条件小于变量维数,可以存在多解,否则可能会无解

  • 等式约束的对偶问题
    拉格朗日函数:L(x,ν)=f(x)+νT(Ax−b)L(x,\nu)=f(x)+\nu^T(Ax-b)L(x,ν)=f(x)+νT(Ax−b),设最优点x∗x^*x∗

    由此得到KKT条件方程组{Ax∗=b∇f(x∗)+ATν∗=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)∣Ax=b}=f(x∗)x^*是最优点,\nu^*是对偶最优点,p^*=\inf_x\{f(x) | Ax=b\}=f(x^*)x∗是最优点,ν∗是对偶最优点,p∗=infx​{f(x)∣Ax=b}=f(x∗)

  • 例子:二次规划问题

    {min⁡12xTPx+qTx+rAx=b⟹{Ax=bPx+q+ATν∗=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}{min21​xTPx+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∗=Fz∗+x^x^*=Fz^*+\hat{x}x∗=Fz∗+x^

      若x^\hat{x}x^是任意的一个特解,那么可以实现变换{x∣Ax=b}={Fz+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(Fz+x^)=b⟹AFz=0⟹Ap×nFn×(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×n​Fn×(n−p)​=0

      于是A的行组成空间与F的列组成空间正交,即A的零空间就是F的值空间。

      min⁡f(x),s.t.Ax=b⟺min⁡zF^(z)=f(Fz+x^)\min{f(x)},s.t. Ax=b \iff \min_z \hat{F}(z)=f(Fz+\hat{x})minf(x),s.t.Ax=b⟺minz​F^(z)=f(Fz+x^)【把等式约束加到目标函数里,变成无约束问题】

    • 求解对偶最优解 ν∗\nu^*ν∗

      原问题的KKT系统:∇f(x∗)+ATν∗=0\nabla f(x^*)+A^T\nu^*=0∇f(x∗)+ATν∗=0,同时左乘矩阵A(实现满秩运算)

      得到ν∗=−(AAT)−1A∇f(x∗)\nu^*=-(AA^T)^{-1}A\nabla f(x^*)ν∗=−(AAT)−1A∇f(x∗)

      验证目标:∇f(x∗)−AT(AAT)−1A∇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∗)+ATu=0\nabla f(x^*)+A^T u=0∇f(x∗)+ATu=0,同时左乘FTF^TFT,再因为AF=0AF=0AF=0
      于是推导得FT∇f(x∗)=0F^T\nabla f(x^*)=0FT∇f(x∗)=0;左乘矩阵A可以发现等式恒成立,综上,得证。

    • 原问题转变成

  • 通过对偶问题实现等式消除

    L(x,ν)=f(x)+νT(Ax−b)L(x,\nu)=f(x)+\nu^T(Ax-b)L(x,ν)=f(x)+νT(Ax−b)

    g(ν)=inf⁡xL(x,ν)=−bTν+inf⁡x(f(x)+νTAx)g(\nu)=\inf_xL(x,\nu)=-b^T\nu+\inf_x(f(x)+\nu^TAx)g(ν)=infx​L(x,ν)=−bTν+infx​(f(x)+νTAx)

    =−bTν−sup⁡x(−(ATν)Tx−f(x))=−bTν−f∗(−ATν)=-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⁡(−bTν−f∗(−ATν)),g(ν∗)=p∗\max{(-b^T\nu-f^*(-A^T\nu))},g(\nu^*)=p^*max(−bTν−f∗(−ATν)),g(ν∗)=p∗

  • 例子

    • 变量替换

      重点是找到特解x^\hat xx^
    • 对偶问题

基于feasible初值的牛顿法

  • 牛顿法:利用二次导数逼近【设△xnt=v\triangle x_{nt}=v△xnt​=v】

    问题变成:min⁡vf^(x+v)=f(x)+∇f(x)v+12vT∇2f(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)=bminv​f^​(x+v)=f(x)+∇f(x)v+21​vT∇2f(x)v,s.t.A(x+v)=b

    设x是一个可行解(Ax=b,Av=0Ax=b,Av=0Ax=b,Av=0),基于KKT系统,存在w使得∇vf^(x+v)+ATw=0\nabla_v \hat f(x+v)+A^Tw=0∇v​f^​(x+v)+ATw=0

    将∇f^(x+v)=0\nabla \hat f(x+v)=0∇f^​(x+v)=0带入KKT条件得:{∇f(x)+∇2f(x)v+ATw=0Av=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​

    (演变成求解该矩阵方程,求△xnt=v,对偶w\triangle x_{nt}=v,对偶w△xnt​=v,对偶w)
    当A=0时,该等式问题就退化到无约束问题

  • Newton decrement

    • 性质

    • 部分证明

      λ(x)=(△xntT∇2f(x)△xnt)12\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+12△xT∇2f(x)△x\hat f(x+\triangle x)=f(x)+\nabla f(x)^T\triangle x+\frac12\triangle x^T\nabla^2f(x)\triangle xf^​(x+△x)=f(x)+∇f(x)T△x+21​△xT∇2f(x)△x

      设H=∇2f(x),g=∇f(x),△x=△xnt=vH=\nabla^2f(x),g=\nabla f(x),\triangle x=\triangle x_{nt}=vH=∇2f(x),g=∇f(x),△x=△xnt​=v, KKT系统:{H△x+ATw=−gA△x=0\begin{cases}H\triangle x+A^Tw=-g \\ A\triangle x=0 \end{cases}{H△x+ATw=−gA△x=0​

      第一个式子左右两边左乘△xT\triangle x^T△xT,得到△xTH△x=−△xTg\triangle x^TH\triangle x=-\triangle x^Tg△xTH△x=−△xTg,

      带回得f^(x+△x)=f(x)−12△xT∇2f(x)△x\hat f(x+\triangle x)=f(x)-\frac12\triangle x^T\nabla^2f(x)\triangle xf^​(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)=12λ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⁡xf(x),s.t.Ax=b⟺min⁡zf~(z)=f(Fz+x^),s.t.Ax^=b\min_x{f(x)},s.t. Ax=b\iff \min_z\tilde f(z)=f(Fz+\hat x),s.t. A\hat x=bminx​f(x),s.t.Ax=b⟺minz​f~​(z)=f(Fz+x^),s.t.Ax^=b

    • 两种问题对比

    • 证明

      ∇f~(z)=FT∇f(Fz+x^),∇2f~(z)=FT∇2f(Fz+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【加入等式约束】

      牛顿迭代步:△znt=−∇2f~(z)−1∇f~(z)=−(FT∇2f(Fz+x^)F)−1FT∇f(Fz+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=Fz+x^⟹△xnt=F△zntX=Fz+\hat x\implies\triangle x_{nt}=F\triangle z_{nt}X=Fz+x^⟹△xnt​=F△znt​

      一阶KKT条件:∇f(x+△xnt)+ATw=0\nabla f(x+\triangle x_{nt})+A^Tw=0∇f(x+△xnt​)+ATw=0 ,得到w=−(AAT)−1A(∇f(x)+∇2f(x)△xnt)w=-(AA^T)^{-1}A(\nabla f(x)+\nabla^2f(x)\triangle x_{nt})w=−(AAT)−1A(∇f(x)+∇2f(x)△xnt​)

      二阶KKT条件:∇2f(x)△xnt+ATw+∇f(x)=0\nabla^2 f(x)\triangle x_{nt}+A^Tw+\nabla f(x)=0∇2f(x)△xnt​+ATw+∇f(x)=0 ,得到[FTA][∇2f(x)△xnt+ATw+∇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

      根据FTATw=0F^TA^Tw=0FTATw=0,发现矩阵方程成立,于是得到λ~2(z)=λ2(x)\tilde \lambda^2(z)=\lambda^2(x)λ~2(z)=λ2(x),即迭代逼近的效果相同

基于infeasible初值的牛顿法

初始点infeasible,但是希望x+△xntx+\triangle x_{nt}x+△xnt​满足二阶KKT条件{∇2f(x)△xnt+ATw+∇f(x)=0A(x+△xnt)=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系统
  • 求解方法
    • LDLTLDL^TLDLT分解
      B=PLDLTPTB=PLDL^TP^TB=PLDLTPT,P是置换矩阵,L是下三角矩阵,D是块矩阵

      复杂度:O(13(n+p)3)O(\frac13(n+p)^3)O(31​(n+p)3)

    • 消元法

      结果:v=−H−1(g+ATw),w=(AH−1AT)−1(h−AH−1g)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(n3+p3)O(n^3+p^3)O(n3+p3)

实例

  • 例子&如何降低计算

    • 等式约束牛顿法

    • 对偶问题+无约束牛顿法

    • infeasible初值的牛顿法

    结论:无论哪种方法,(设D是正对角阵)总要计算 ADATw=hADA^Tw=hADATw=h

  • Network flow optimization

  • Analytic center of linear matrix inequality

总结

  • 基本定义:min⁡f(x),s.t.Ax=b\min{f(x)},s.t. Ax=bminf(x),s.t.Ax=b

  • 直接解KKT条件(例子-二次规划函数)
    {Ax∗=b∇f(x∗)+ATν∗=0\begin{cases}Ax^*=b \\ \nabla f(x^*)+A^T\nu^*=0 \end{cases}{Ax∗=b∇f(x∗)+ATν∗=0​

  • 消除等式约束

    • 通过变量替换

      • x=Fz+x^x=Fz+\hat xx=Fz+x^【通解+特解】
      • 求解对偶变量ν∗=−(AAT)−1A∇f(x∗)\nu^*=-(AA^T)^{-1}A\nabla f(x^*)ν∗=−(AAT)−1A∇f(x∗)【LSE逼近】
    • 通过对偶问题
      max⁡(−bTν−f∗(−ATν)),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)=(△xntT∇2f(x)△xnt)12\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⁡xf(x),s.t.Ax=b⟺min⁡zf~(z)=f(Fz+x^),s.t.Ax^=b\min_x{f(x)},s.t. Ax=b\iff \min_z\tilde f(z)=f(Fz+\hat x),s.t. A\hat x=bminx​f(x),s.t.Ax=b⟺minz​f~​(z)=f(Fz+x^),s.t.Ax^=b
  • 基于infeasible初值的牛顿法

    • 基本定义:

      初始点infeasible,但是希望x+△xntx+\triangle x_{nt}x+△xnt​满足二阶KKT条件{∇2f(x)△xnt+ATw+∇f(x)=0A(x+△xnt)=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系统方程的求解

    • LDLTLDL^TLDLT分解

      普通矩阵B=PLDLTPTB=PLDL^TP^TB=PLDLTPT,P是置换矩阵,L是下三角矩阵,D是块矩阵

      复杂度:O(13(n+p)3)O(\frac13(n+p)^3)O(31​(n+p)3)

    • 消元法

      v=−H−1(g+ATw),w=(AH−1AT)−1(h−AH−1g)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(n3+p3)∼O(n3)O(n^3+p^3)\sim O(n^3)O(n3+p3)∼O(n3)

  • 三种求解牛顿法的实例

    • 等式约束牛顿法
    • 对偶问题+无约束牛顿法
    • infeasible初值的牛顿法

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

  1. 《Go语言圣经》学习笔记 第十一章 测试

    <Go语言圣经>学习笔记 第十一章 测试 目录 go test 测试函数 测试覆盖率 基准测试 剖析 示例函数 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语 ...

  2. [go学习笔记.第十一章.项目案例] 2.客户信息管理系统

    一.基本介绍 1.需求说明 项目需求分析 1.模拟实现基于文本界面的 < 客户信息管理软件 > 2.该软件实现对客户对象的插入.修改和删除(用切片实现),并能够打印客户明细表 2.界面设计 ...

  3. [go学习笔记.第十一章.项目案例] 1.家庭收支记账软件项目

    一.基本介绍 1.项目开发流程说明 2.项目需求说明 目标: 模拟实现一个基于文本界面的<<家庭记账软件>> 掌握初步的编程技巧和调试技巧 主要涉及以下知识点 : (1).局部 ...

  4. 《统计学习方法》学习笔记 第二十一章 PageRank算法

    目录 1 PageRank的定义 1.1 基本想法 1.2 有向图和随机游走模型 1 有向图(directed graph) 2 随机游走模型 3 PageRank的基本定义 4 PageRank的一 ...

  5. 《机器学习》周志华(西瓜书)学习笔记 第十一章 特征选择与稀疏学习

    机器学习 总目录 第十一章 特征选择与稀疏学习 11.1 子集搜索与评价 给定属性集,其中有些属性可能很关键.很有用,另一些 属性则可能没什么用.我们将属性称为"特征" (feat ...

  6. 西瓜书学习笔记——第十一章:特征选择与稀疏学习

    第十一章:特征选择与稀疏学习 11.1 子集搜索与评价 子集搜索 特征子集评价 11.2 过滤式选择 Relief的相关统计量 11.3 包裹式选择 拉斯维加斯方法和蒙特卡罗方法: 11.4 嵌入式选 ...

  7. 最优化方法(学习笔记)-第六章逼近与拟合

    文章目录 范数逼近和最小范数 观测m≥\geq≥未知n 范数逼近的定义及解释 罚函数逼近 观测m≤\leq≤未知n 最小范数问题 最小罚函数问题 正则化逼近 正则化理解 标量化问题 Tikhonov ...

  8. 最优化方法(学习笔记)-第七章统计估计

    Statistical estimation Logistic 回归-二分类 整体分类思路 最大化似然函数 最大似然估计MLE 带独立同分布噪音的线性测量模型 viv_ivi​是高斯分布 viv_iv ...

  9. 邓俊辉数据结构与算法学习笔记-第十一章

    文章目录 11.串 11.a ADT 11.b 串匹配 11.b1 串匹配 11.b2 蛮力匹配 11.c KMP算法 11.c1 KMP算法:从记忆力到预知力 11.c2 KMP算法查表 11.c3 ...

最新文章

  1. System.arraycopy(src, srcPos, dest, destPos, length) 与 Arrays.copyOf(original, newLength)区别
  2. 子数组最大值设计02
  3. 强化学习(一)---绪论
  4. LeetCode 198 House Robber Python
  5. android 动态调用apk,通过反射动态加载未安装apk
  6. linux下覆盖文件命令,在Linux中使用命令行进行文件覆盖的操作
  7. Mac VSCode配置C语言环境(可以调试)
  8. oracle 对象的审计,初识!聊聊ORACLE的审计功能
  9. testNg 关闭浏览器异常解决办法
  10. 作业中会遇到【不能实现】部分。这时,正确的处理的方法~
  11. C++ STL 容器的合并、求差集、交集等操作实例 含详细注释版
  12. 「深度」物料成本不到1500的iPhone6s凭什么5288元起售?
  13. .net core2 发送电子邮件封装
  14. CMS垃圾回收器总结
  15. linux文件解压缩加解密
  16. selenium 操作 IE11--无法开启新窗口
  17. Go语言使用谷歌浏览器打开指定网址
  18. 莫古力最新服务器,《最终幻想14》将调整现有人口平均化策略
  19. 一信通短信接口对接_短信接口对接流程
  20. 隐马尔可夫模型(Baum Welch算法与Viterbi算法)

热门文章

  1. Maven基础5:Maven基本概念,仓库配置(在setting中配置本地仓库 和 远程仓库);全局setting和局部setting;
  2. 再议访问者模式 - Visitor vs Acyclic Visitor
  3. 【手机下载Linux】
  4. 利用poi 读取excel通用工具类
  5. 函数最值题目及答案_有关函数的极值与导数的测试题及答案
  6. PHM2010刀具磨损数据集分享
  7. linux 配置 ftp 服务器以及 ftp 客户端登录
  8. Unity地图分割组合时出现接缝的处理办法
  9. JMockit 介绍 4 使用JMockit运行测试
  10. C#实现批量生成条形码 ——主要用于准考证号的条形码生成