选定初始点X0,令下标变量k=0,然后按照某种规则把Xk映射为后继点Xk+1,从而形成一个迭代序列{Xk},这种规则称为迭代算法。如果某个函数f(X),迭代序列恒满足f(xk+1)<f(xk),则称此迭代算法为下降迭代算法,简称下降算法。
记ΔXk=XK+1−Xk,令ΔXk=tk⋅Pk,得Xk+1=Xk+ΔXk=Xk+tkPk,其中,Pk为与ΔXk同方向的向量,称为搜索方向,tk称为步长因子(tk>0)
利用下降迭代算法求一个越苏优化问题的极小值,则每一次迭代都应根据目标函数,约束函数在改点的某些信息,确定本次迭代的一个搜索方向Pk和适当的步长tk,使新的迭代点在约束可行域内,级{Xk}∈D(k=0,1,2,....).下降迭代算法的关键在于构造每一步的搜索向量和确定步长因子,UI单Pk的构造方法和tk的选取方法确定,这就确定了一种迭代方法。多数算法中,步长的确定方法采用
tk:mintf(Xk+tPk)
下降迭代算法的一般步骤为:
step1.选定初始点X0,令k=0
step2.依照一定的规则搜索向量,取f(X)在点Xk的下降方向作为搜索向量Pk。
step3.从Xk出发,沿搜索方向Pk确定步长tk,使得Xk+tkPk∈D,且
f(Xk+tkPk)<f(Xk)
step4.得到新的迭代点Xk+1=Xk+tkPk
step5.检查终止条件,判定Xk+1是否为极小点或近似极小点,若是,停止迭代,输出Xk作为最优解,否则,k=k+1,转到step2
实现向X∗逼近的搜索,其关键是确立寻找P(k)的各种有效办法,这正是各种迭代法的主要区别所在。为了计算方便,有时取P(k)为单位向量,称为规格化方向,有时取tk为常数,称为定步长。
下面给出一个有关结论:
设f(X)一节连续可微,Xk+1按如下规则获得:
⎧⎩⎨tk:mintf(Xk+tPk)Xk+1=Xk+tkPk
则有 Δf(Xk+1)Pk=0.
证明:设ϕ(t)=f(Xk+tPk),令ϕ′(t)=0,即
df(Xk+tPk)dt=0⇒Δf(Xk+tPk)TPk=0
可求出tk⇒Δf(Xk+tkPk)TPk=0⇒Δf(Xk+1)Tpk=0
该结论说明,从某一点Xk出发沿搜索方向Pk对目标函数f(X)进行搜索求解,所得极小点(即新的迭代点)为Xk+1,且改点的梯度Δf(Xk+1)与搜索方向Pk正交。此外,由于过点Xk+1的目标函数的等值面f(X)=f(Xk+1)与该点的梯度Δf(Xk+1)正交,则这个等值面与搜索方向Pk在点Xk+1相切。下面这张图说明原理: