前面几篇博客中,分别讲述了最速下降法、Newton法、拟Newton法和共轭方向法,这些方法中都需要计算目标函数 f(x) 的梯度,其中Newton法还需要计算目标函数 f(x) 的Hesse矩阵。我们把以上方法统称为导数方法。当然还有不计算导数的方法,称为直接方法。步长加速法就是一种简单的直接方法,对于变量较少的无约束极小化问题,步长加速法是一种简单又比较有效的方法。
基本思想
选定初始点 x0 和初始步长向量 s0 (这里是步长向量,与导数法中的步长因子不一样,可以吧步长向量看作是 αkpk ),其中 s0 的每一个分量都是正数。
步长加速算法主要由交替进行的”探测搜索”和”模式移动”构成。探测搜索的出发点我们称为参考点,用向量 r=[r1,r2,...,rn]T 来表示,探测搜索的目的是在参考点附近寻找比他更好的点(在求解最小值问题时就是值更小的点),我们把找到的更优点称为基点,用向量 b=[b1,b2,...,bn]T 来表示。如果能找到这样的点 b ,我们就能找到一个有利的前进方向
r~=b+α(b−r)
其中
α>0(1)
,一般会取
α=1
,或用直线搜索技术来确定。当上式