最优化算法确定迭代步长【线搜索技术】

无约束问题最优化算法框架

(step0:)

输入优化函数,确定迭代起始点x0,容许误差 epsilon;

(step1:)

if 容许误差条件满足,终止迭代;输出当前x值;
else 计算迭代方向dk;迭代步长 alpha_k; // dk必须满足收敛条件;关于迭代步长的计算,就是线搜索技术解决问题
    to step 2;

(step2:)

计算x_{k+1}=x_k+alpha_k*dk;
to step 1;

一、精确线搜索技术

之前介绍的黄金分割法就是一种精确线搜索技术
线搜索-黄金分割法

二、非精确线搜索技术

Armijo准则
算法:
(step0:)

给定beta属于(0,1),sigma 属于(0,0.5),m=0;

(step1:)

对于不等式 f(x_k+betam*dk)<=f(x_k)+sigma*betamg_k^Tdk
成立,alpha_k=beta^mk; stop;
不成立,to step 2;

(step2:)

m=m+1;to step 1;

精确搜索和非精确搜索比较

  1. 精确搜索所求(alpha) 使得(f(x_{k+1}))在搜索区间取得最小值,
    非精确搜索仅仅使得所求(alpha)满足收敛条件
  2. 非精确搜索计算量小的多

参考资料

《最优化方法及其Matlab程序设计》

坚持
原文地址:https://www.cnblogs.com/liudianfengmang/p/13441207.html