Alex_McAvoy

想要成为渔夫的猎手

DFP 算法

Reference

DFP 算法是建立在阻尼牛顿法之上的,由 Davidon 提出,后经 Fletcher 和 Powell 加以发展和完善,因此以三人的姓名的首字母命名,是最早的拟牛顿法

对于阻尼牛顿法的搜索方向 dk=Hk1gk,根据拟牛顿条件,DFP 选用 Dk 作为 Hk1 的近似,其迭代格式为:

Dk+1=Dk+Dk,k=0,1,2,...

其中,D0 取单位矩阵 I,因此,算法的关键就是每一次迭代的校正矩阵 Dk 如何构造

关于拟牛顿条件详见:拟牛顿迭代法

【算法原理】

假设校正矩阵 Dk 与拟牛顿条件 δk=Dk+1yk、近似矩阵 Dk 有关

采用待定系数法,设 αβ 为待定系数,向量 μ,νRn 为待定列向量,则校正矩阵 Dk 可待定为:

Dk=αμμT+βννT

从形式上看,这种待定公式保证了校正矩阵 Dk 的对称性

结合拟牛顿条件 δk=Dk+1yk,将 Dk 的待定式带入迭代式,有:

δk=Dk+1yk=(Dk+Dk)yk=Dkyk+αμμTyk+βννTyk=Dkyk+μ(αμTyk)+ν(βνTyk)=Dkyk+(αμTyk)μ+(βνTyk)ν

可以发现,括号中的 αμTykβνTyk 是两个数,取最简单的情况,进行如下赋值:

{αμTyk=1βνTyk=1

带回 δk 中,有:

δkDkyk=μν

为使上式成立,直接取最简单情况 μ=δkν=Dkyk,此时,对于待定系数 αβ,有:

{α=1δkTykβ=1ykTDkyk

这时,校正矩阵 Dk 已构造出来,即:

Dk=δkδkTδkTykDkykykTDkTykTDkyk

由于近似矩阵 Dk 为近似成海森矩阵逆矩阵 Hk1 的正定矩阵,故有:

DkT=Dk

因此,DFP 最终的迭代式为:

Dk+1=Dk+δkδkTδkTykDkykykTDkykTDkyk,k=0,1,2,...

【算法流程】

DFP 算法的算法流程如下:

  1. 给定初值 x0 和精度阈值 ε,并令 D0=Ik=0
  2. 计算梯度向量 gk,与搜索方向 dk=Dkgk
  3. 利用 λk=argminλRf(xk+λdk) 得到步长 λk,并令 δk=λdkxk+1=xk+δk
  4. xk+1 的梯度向量 gk+1 的 L1 范数 ||gk+1|| 满足 ||gk+1||<ε,则停止迭代,得近似解 x=xk+1,否则转至步骤 5
  5. 计算两次迭代的梯度差 yk=gk+1gk
  6. 计算第 k+1 次的近似矩阵 Dk+1=Dk+δkδkTδkTykDkykykTDkykTDkyk
  7. k=k+1,转至步骤 2
感谢您对我的支持,让我继续努力分享有用的技术与知识点!
0 comments
Anonymous
Markdown is supported

Be the first person to leave a comment!