Skip to content

18.2.5 无约束问题的解法

考虑一般的优化问题

(18.72)f(x)=min!,xRn,

这里 f 是连续可微函数. 本节描述的每一种方法一般是构建一无穷序列 {xk}Rn , 其聚点是一平稳点. 这个点列将从 x1 开始,按照如下递推公式构建:

(18.73)xk+1=xk+αkdk(k=1,2,),

即首先在 xk 处确定一方向 dk ,而步长 αk 表示在 xk 沿 dk 方向离 xk+1 有多远. 这样的方法称作下降法, 是指

(18.74)f(xk+1)<f(xk)(k=1,2,).

等式 f(x)=0 刻画平稳点,并且可以用作迭代算法的停止规则,其中 表示梯度算子 (参见第 933 页 13.2.6.1).

18.2.5.1 最速下降法

从现时点 xk 出发,函数下降最快速的方向是

(18.75a)dk=f(xk),

从而,

(18.75b)xk+1=xkαkf(xk).

最速下降法以 f(x)=f(xi) 为水平线的示意图见图 18.6.

01936af3-1230-7a0e-9a4a-8542777881ce_31_543_1081_555_301_0.jpg

步长 αk 由线搜索确定,即 αk 是一维问题

(18.76)f(xk+αdk)=min!,α0

的解. 上述问题可以用 1208 页 18.2.4 给出的方法求解.

最速下降法(18.75b)收敛得相当慢. 对于序列 {xk} 的每个聚点 x ,有 f(x)=0 . 在二次目标函数情形下,即 f(x)=xTCx+pTx ,该方法取如下特殊形式:

(18.77a)xk+1=xk+αkdk,

其中

(18.77b)dk=(2Cxk+p), 且 αk=dkTdk2dkTCdk.

18.2.5.2 牛顿法的应用

假定在当前的近似点 xk 处,函数 f 由如下二次函数逼近:

(18.78)q(x)=f(xk)+(xxk)Tf(xk)+12(xxk)TH(xk)(xxk).

这里 H(xk) 是黑塞矩阵,即 fxk 处的二阶偏导数矩阵. 如果 H(xk) 是正定的,则 q(x)xk+1 处达到绝对极小,且 q(xk+1)=0 ,从而得到牛顿方法:

(18.79a)xk+1=xkH1(xk)f(xk)(k=1,2,),

(18.79b)dk=H1(xk)f(xk),αk见 (18.73).

牛顿法收敛速度快, 但它也有如下缺点:

a) 矩阵 H(xk) 必须是正定的.

b) 该方法仅对充分好的初始点收敛.

c) 步长可能没有影响.

d) 该方法并不是一种下降法.

e) 计算逆矩阵 H1(xk) 的计算量相当大.

通过所谓的阻尼牛顿法可能会适当减少某些缺点 (例如 1251 页 19.2.2.2):

(18.80)xk+1=xkαkH1(xk)f(xk)(k=1,2,),

其中的松弛因子 αk 比如可以通过前面给出的原则来确定 (参见第 1210 页 18.2.5.1).

18.2.5.3 共轭梯度法

两个向量 d1,d2 称作相对于对称正定矩阵 C 是共轭向量,是指它们满足

(18.81)d1TCd2=0.

如果 d1,d2,,dn 相对于矩阵 C 是两两共轭的,那么凸二次问题 q(x)=xTCx+ pTx,xRn 可以通过 n 步求解,为此只要从 x1 出发构建序列 xk+1=xk+αkdk , 其中 αk 是最优步长. 假设 f(x)x 的邻域内是近似二次函数,即 C12H(x) , 则为二次目标函数研发的方法也可应用于更一般的函数 f(x) ,而无须明着使用矩阵 H(x) .

共轭梯度法分如下几个步骤:

**a) x1Rn,d1=f(x1) ,其中 x1x 的一个适当的初始近似. (18.82)

**b) xk+1=xk+αkdk(k=1,,n) ,其中 αk0 使得 f(xk+αdk) 达到极小.(18.83a)

(18.83b)dk+1=f(xk+1)+μkdk(k=1,,n1),

其中

(18.83c)μk=f(xk+1)Tf(xk+1)f(xk)Tf(xk),dn+1=f(xn+1).

c) 用 xn+1dn+1 代替 x1d1 ,重复步骤 b).

18.2.5.4 戴维顿 (Davidon)、弗莱彻 (Fletcher) 和鲍威尔 (Powell)(DFP) 方法

在 DFP 方法中,从 x1 出发的点列根据下列公式确定:

(18.84)xk+1=xkαkMkf(xk)(k=1,2,),

这里 Mk 是对称正定矩阵. 在 f 为二次函数的情形下,这一方法的想法是逆黑塞矩阵由矩阵 Mk 逐步近似. 从对称正定矩阵 M1 ,例如, M1=I(I 为单位矩阵) 出发, MkMk1 加上一个 2 秩修正矩阵确定:

(18.85)Mk=Mk1+vkvkTvkTvk(Mk1wk)(Mk1wk)TwkTMkwk,

其中 vk=xkxk1,wk=f(xk)f(xk1)(k=2,3,) . 步长 αk 从求解下列优化问题得到:

(18.86)f(xkαMkf(xk))=min!,α0.

如果 f(x) 是二次函数,则 DFP 方法变成共轭梯度法,相应的初始 M1=I .

version 1.24.0