Skip to content

18.2.5 无约束问题的解法 ​

考虑一般的优化问题

(18.72)f(x―)=min!,x―∈Rn,

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

(18.73)x―k+1=x―k+αkd―k(k=1,2,⋯),

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

(18.74)f(x―k+1)<f(x―k)(k=1,2,⋯).

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

18.2.5.1 最速下降法 ​

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

(18.75a)d―k=−∇f(x―k),

从而,

(18.75b)x―k+1=x―k−αk∇f(x―k).

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

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

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

(18.76)f(x―k+αd―k)=min!,α≥0

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

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

(18.77a)x―k+1=x―k+αkd―k,

其中

(18.77b)d―k=−(2Cx―k+p―), 且 αk=d―kTdk2d―kTCd―k.

18.2.5.2 牛顿法的应用 ​

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

(18.78)q(x―)=f(x―k)+(x―−x―k)T∇f(x―k)+12(x―−x―k)TH(x―k)(x―−x―k).

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

(18.79a)x―k+1=x―k−H−1(x―k)∇f(x―k)(k=1,2,⋯),

即

(18.79b)d―k=−H−1(x―k)∇f(x―k),且αk见 (18.73).

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

a) 矩阵 H(x―k) 必须是正定的.

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

c) 步长可能没有影响.

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

e) 计算逆矩阵 H−1(x―k) 的计算量相当大.

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

(18.80)x―k+1=x―k−αkH−1(x―k)∇f(x―k)(k=1,2,⋯),

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

18.2.5.3 共轭梯度法 ​

两个向量 d―1,d―2 称作相对于对称正定矩阵 C 是共轭向量,是指它们满足

(18.81)d―1TCd―2=0.

如果 d―1,d―2,⋯,d―n 相对于矩阵 C 是两两共轭的,那么凸二次问题 q(x―)=x―TCx―+ p―Tx―,x―∈Rn 可以通过 n 步求解,为此只要从 x―1 出发构建序列 x―k+1=x―k+αkd―k , 其中 αk 是最优步长. 假设 f(x―) 在 x―∗ 的邻域内是近似二次函数,即 C≈12H(x―∗) , 则为二次目标函数研发的方法也可应用于更一般的函数 f(x―) ,而无须明着使用矩阵 H(x―∗) .

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

**a) x―1∗∗∈Rn,d―1=−∇f(x―1) ,其中 x―1 是 x―∗ 的一个适当的初始近似. (18.82)

**b) x―k∗∗+1=x―k+αkd―k(k=1,⋯,n) ,其中 αk≥0 使得 f(x―k+αd―k) 达到极小.(18.83a)

(18.83b)d―k+1=−∇f(x―k+1)+μkd―k(k=1,⋯,n−1),

其中

(18.83c)μk=∇f(x―k+1)T∇f(x―k+1)∇f(x―k)T∇f(x―k),d―n+1=−∇f(x―n+1).

c) 用 x―n+1 和 d―n+1 代替 x―1 和 d―1 ,重复步骤 b).

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

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

(18.84)x―k+1=x―k−αkMk∇f(x―k)(k=1,2,⋯),

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

(18.85)Mk=Mk−1+v―kv―kTv―kTv―k−(Mk−1w―k)(Mk−1w―k)Tw―kTMkw―k,

其中 v―k=x―k−x―k−1,w―k=∇f(x―k)−∇f(x―k−1)(k=2,3,⋯) . 步长 αk 从求解下列优化问题得到:

(18.86)f(x―k−αMk∇f(x―k))=min!,α≥0.

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

version 1.24.0