鲍威尔算法
gk
dj
设xk,
xk+1为从不
x
k
g k+1 dk
同点出发,沿同 一方向dj进行一维 搜索而到的两个 极小点.
x
k+1
梯度和等值面相垂直的性质, dj和 xk, xk+1两点 处的梯度gk,gk+1之间存在关系:
(d j )T g k = 0, (d j )T g k +1 = 0
另一方面,对于上述二次函数,其xk, xk+1 两点处 的梯度可表示为: g k = Gx k + b, g k +1 = Gx k +1 + b 因而有
由于满足Powell条件,则淘汰函数值下降量最 d30 大的方向e1,下一轮的基本方向组为e2, 。 构成新的方向
3 1 2 d = x − x = − = 1.5 1 0.5
0 3 0 2 0 0
d30 方向一维搜索得极小点和极小值 沿 3.8 1 x = , f ( x1 ) = −7.9 1.7
3.96 3.8 4.12 x = 2x − x = 2 − 1.7 = 2.18 1.94
1 3 1 2 1 0
1 F3 = f ( x3 ) = −7.964
检验Powell条件,淘汰函数值下降量最大的方 1 d30 ,d3 。 向e2,下一轮的基本方向组应为 构成新的方向 3.96 3.8 0.16 1 1 1 d 3 = x 2 − x0 = − 1.7 = 0.24 1.94
1 1 d 2 = x 2 − x0
1 0
x2 d1
1 x0
x1 2
x*
0 x2
1
沿d2作一维搜索得点 x2 . 即是二维问题的极 小点x* .
x11
e2 d2
x0 o
e1
x10
x1
方法的基本迭代格式包括共轭方向产生和方 向替换两主要步骤。
把二维情况的基本算法扩展到n维,则鲍威 尔基本算法的要点是: 在每一轮迭代中总有一个始点(第一轮的 始点是任选的初始点)和n个线性独立的搜索 方向。从始点出发顺次沿n个方向作一维搜索 得一终点,由始点和终点决定了一个新的搜索 方向。 用这个方向替换原来n个方向中的一个,于 是形成新的搜索方向组。替换的原则是去掉原 方向组的第一个方向而将新方向排在原方向的 最后。此外规定,从这一轮的搜索终点出发沿 新的搜索方向作一维搜索而得到的极小点,作 为下一轮迭代的始点。这样就形成算法的循环。
2.基本算法 2.基本算法 二维情况描述鲍威尔的基本算法: 1)任选一初始点x0 , 再选两个线性无关的 向量,如坐标轴单位 向 量 e1=[1,0]T 和 e2=[0,1]T 作 为 初 始 搜索方向。 2 )从x0 出发, 顺次 沿e1, e1 作一维搜索, 0 x10点,两点连 , x2 得 o 1 线得一新方向d
上述基本算法仅具有理论意义 。
因为在迭代中的n个搜索方向有时会变成线 性相关而不能形成共轭方向。这时张不成n维 空间,可能求不到极小点,所以上述基本算法 有待改进。 3.改进的算法 在鲍威尔基本算法中,每一轮迭代都用连结始 点和终点所产生出的搜索方向去替换原向量组 中的第一个向量,而不管它的“好坏”,这是 产生向量组线性相关的原因所在。 在改进的算法中首先判断原向量组是否需要替 换。如果需要替换,还要进一步判断原向量组 中哪个向量最坏,然后再用新产生的向量替换 这个最坏的向量,以保证逐次生成共轭方向。
0 d 1 = x2 − x 0
x2 d1
1 x0 0 x2
1
x1 2
x*
x11
e2 d2
x0
e1
x10
x1
用 d1代替e1形成两个线性无关向量d1 ,e2 ,作为 0 下一轮迭代的搜索方向。再 x2 从出发,沿d1作一 1 维搜索得点 x0 ,作为下一轮迭代的初始点。 3)从出发x ,顺次 沿e2,d1 作一维搜索, 1 x11 , x2 得到点 ,两点连 线得一新方向:
为此,要解决两个关键问题: (1)dk+1是否较好?是否应该进入新的方向 组?即方向组是否进行更新? (2)如果应该更新方向组, dk+1不一定替换 k 方向 d1k ,而是有选择地替换某一方向d m 。
令在k次循环中
F0 = f ( x0k )
F2 = f ( xnk ) F3 = f ( xnk+1 )
例4-5 用改进的鲍威尔法求目标函数 f ( x ) = x12 + 2 x22 − 4 x1 − 2 x1 x2 的最优解。已知初始点[1,1]T,迭代精度 ε = 0.001
。
解:(1)第1轮迭代计算
,
1 x = 1
0 0
F0 = f 0 = f ( x00 ) = −3
沿e1方向进行一维搜索 min f ( x00 + α e1 ) = α 2 − 4α − 3 得 α1 = 2 1 1 3 0 0 x1 = x0 + α1e1 = + 2 = 1 0 1
1 d3 方向进行一维搜索得 沿
4 x = 2
2
f ( x 2 ) = −8
检验终止条件
x 2 − x02 = (4 − 3.8) 2 + (2 − 1.7) 2 = 0.36 > ε
(3)第3轮迭代计算
d30, 3 ,起始点为 x02 = x 2,先 d1 此轮基本方向组为 1 0 d3 方向,进行一维搜索,得 后沿 d3 , 4 4 2 2 x1 = x2 = 2 , 2
一阶导数
变尺度法
d k = − Ak g k
A =A
k
k −1
+ ∆A
k −1
一阶导数,使 A k ≈ [G k ]−1
检验终止条件 x22 − x02 = 0 < ε 故最优解
4 x = 2
*
f ( x * ) = −8
1 d3 , 32 为共轭方向, d 实际上,前两轮迭代的 由于本例目标函数是二次函数,按共轭方向的 二次收敛性,故前两轮的结果就是问题的最优 解,但每一轮迭代都需要进行n+1次迭代。
此点为下轮迭代初始点。 按点距准则检验终止条件
1 x1 − x0 = (3.8 − 1) 2 + (1.7 − 1) 2 = 2.886 > ε
需进行第二轮迭代机算。
(2)第2轮迭代计算
d30 ,分别相当于 d11 , 2 , d1 此轮基本方向组为e2, 1 x0 =x1 。 起始点为
沿e2方向进行一维搜索得 3.8 1 1 x1 = f ( x1 ) = −7.98 1.9
,反射点及其函数值 Nhomakorabea 3 1 5 x = 2x − x = 2 − = 1.5 1 2
0 3 0 2 0 0
F3 = f ( x30 ) = −7
检验Powell条件
( F0 − 2 F2 + F3 )( F0 − F2 − ∆ m ) 2 = 1.25 2 0.5∆ m ( F0 − F3 ) = 32
f1 = f ( x10 ) = −7
x10 为起点,沿第二坐标轴方向 e2 进行一维 以 搜索 min f ( x10 + α e2 ) = 2α 2 − 2α − 7 得 α 2 = 0.5 3 0 3 0 0 x2 = x1 + α 2e1 = + 0.5 = 1 1 1.5
鲍威尔(Powell)法是直接利用函数值来构造共轭方 向的一种方法 对函数: f ( x ) = 1 x T Gx + bT x + c
4.5 鲍威尔方法
2
基本思想:在不用导数的前提下,在迭代中逐次构造G 在不用导数的前提下,在迭代中逐次构造 在不用导数的前提下 的共轭方向
j dj
1.共轭方向的生成
则选用新方向dk,并在第k+1迭代中用dk替换对应于∆ m k 的方向 d m 。否则,仍然用原方向组进行第k+1迭代。
这样重复迭代的结果,后面加进去的向量 都彼此对G共轭,经n轮迭代即可得到一个由n 个共轭方向所组成的方向组。对于二次函次, 最多n次就可找到极小点,而对一般函数,往 往要超过n次才能找到极小点(这里“n”表示 设计空间的维数)。
k x0k , xnk , xn+1( xnk+1 = xnk + ( xnk − x0k ) = 2 xnk − x0k )
分别称为一轮迭代的始点、终点和反射点 。
f i = f ( xik ) (i = 0,1, 2,L, n) 记:
∆ i = f i −1 − f i (i = 1, 2,L, n)
x11 为起点沿 d30 方向一维搜索得 以 3.96 1 x2 = f 2 = f ( x1 ) = −7.996 2 1.9
确定此轮中函数值最大下降量及其相应方向 ∆1 = 0.08 ∆ m = max[∆1 , ∆ 2 ] = 0.08 ∆ 2 = 0.016
反射点及其函数值
因此 F0 = f 0 , F2 = f n
则在循环中函数下降最多的第m次迭代是
∆ m = max ∆ i = f m−1 − f m
1≤i ≤ n
k 相应的方向为d m 。
为了构成共轭性好的方向组,须遵循下列准则: 在k次循环中,若满足条件:
F3 < F0
和 ( F0 − 2 F2 + F3 )( F0 − F2 − ∆ m ) 2 < 0.5∆ m ( F0 − F3 ) 2
表2 无约束优化方法搜索方向之间的相互联系
搜索方向 函数梯度的修正 因子 所用目标函数 信息