最优化学习笔记(十八)——拟牛顿法(4)DFP算法

    秩2算法可以保证在任意第 k 步迭代下, 只要一维搜索是精确的,近似矩阵 Hk 就是正定的。

DFP算法

  1. k=0 ,选择初始点 x(0) ,任意选择一个堆成正定实矩阵 H0
  2. 如果 g(k)=0 , 停止迭代; 否则,令 d(k)=Hkg(k)
  3. 计算
    αk=argminα0f(x(k)+αd(k))x(k+1)=x(k)+αkd(k)

    4.计算
    Δx(k)=αkd(k)Δg(k)=g(k+1)g(k)Hk+1=Hk+Δx(k)Δx(k)TΔx(k)TΔg(k)+[HkΔg(k)][HkΔg(k)]TΔg(k)THkΔg(k)

    5.令 k==k+1 , 回到第二步。

定理18.1 利用DFP算法求解二次型问题时,Hessian矩阵为 Q=QTHk+1Δg(i)=Δx(i),0ik 成立。

    需要说明的是DFP算法是一种共轭方法。
定理18.2 假定 g(k)0 ,在DFP算法中,只要矩阵 Hk 是正定的, Hk+1 就一定是正定的。

    DFP算法能够使得 Hk 是正定的,因此它由于秩1算法,但是,处理一些规模较大的非二次型问题时,DFP算法会被“卡住”,迭代无法继续展开,原因是 Hk 矩阵接近称为奇异矩阵了,后续的BFGS算法可以解决这一问题。

你可能感兴趣的:(最优化)