当前位置:
文档之家› 第五章无约束优化的间接搜索法
第五章无约束优化的间接搜索法
20 2 f (X)=
30
0.5 0 [2 f (X)] -1 =
0 0.125
f (X1(0) ) = [ 08
f (X2(0) ) = [ 4 16 ]T
0 ]T X1(1)= X1(0) - [2f (X1(0))]-1 f (X1(0) )
0.5 0
= [ 0 0 ]T -
[ 0 0 ]= [ 0 0 ]T
共轭梯度法搜索的第一步沿负梯度方向, 以后各步沿与上次搜索方向相共轭的方向进 行搜索。共轭梯度法的关键是如何在迭代过 程中不断生成共轭搜索方向
• 共轭梯度法共轭搜索方向的生成 考虑二次函数
f (X) = 0.5 XT H X + BT X + C
从 X(k) 出发,沿H的某一共轭方向S(k)作一维 搜索得到 X(k+1),即
若满足,则输出最优解:X * = X (k), f * = f (X *) ,并终止迭代计算 ;
否则,继续下一步迭代计算;
4)计算X (k)点的海赛矩阵2 f (X (k))及其逆 矩阵[2 f (X (k))] -1
5)沿牛顿方向S(k) = - [2 f (X (k)) ]-1 f (X (k)) 进行一维搜索,求最佳步长(k);
S(1) = -g(1) + (0)S(0)
其中,(0)为待定常数,可以利用共轭方向与梯 度之间的关系求得。
由
[S(1) ]T[ g(1) - g(0) ] = 0
有 展开,得
[ -g(1) + (0)S(0) ]T[ g(1) - g(0) ] = 0
- [g(1)]Tg(1) +[g(1)]Tg(0)+(0)[S(0)]Tg(1) - (0)[S(0)]Tg(0) = 0
牛顿法的迭代公式为
X (k+1) = X (k) - [2 f (X (k)) ]-1 f (X (k))
X (k+1)=X (k) + (k) S(k) 牛顿方向:S(k) = - [2 f (X (k)) ]-1 f (X (k)) 迭代步长:(k) =1
修正牛顿法(又称阻尼牛顿法)的迭代 公式为
所以
- [g(1)]Tg(1) - (0)[S(0)]Tg(0) = 0
所以
(0) = - [g(1)]Tg(1) / [S(0)]Tg(0)
= [g(1)]Tg(1) / [g(0)]Tg(0)
= ||g(1)||2 / ||g(0)||2
S(1) = -g(1) + ||g(1)||2 / ||g(0)||2 S(0)
S(2) = -g(2) + (1) g(1) + (0) g(0)
其中, (1) 、 (0) 为待定常数,可以利用共轭方 向与梯度之间的关系求得。
[S(2) ]T[ g(1) - g(0) ] = 0
[S(2) ]T[ g(2) - g(1) ] = 0
即 [-g(2) + (1) g(1) + (0) g(0) ]T [ g(1) - g(0) ] = 0 [-g(2) + (1) g(1) + (0) g(0) ]T [ g(2) - g(1) ] = 0
因为
[S(0) ]T g(1) = 0
所以
[S(0) ]T g(2) = 0
即
g(2) 与g(0)正交。
所以
[S(0) ]T g(2) = 0
由式(6)得 [g(1) ]T g(2) = 0
可见, g(0)、g(1) 、g(2)构成一个空间正交系。
3)在g(0)、g(1)、g(2)构成的空间正交系中求与 S(0)及S(1)均共轭的方向S(2),以此作为下一步迭代 计算的搜索方向。仍取S(2)为g(0)、g(1)、g(2) 的线 性组合,即
所以
令 得
(1)[g(1)]Tg(1) - (0) [ g(0)]T g(0) ] = 0 -[g(2)]T g(2) - (1)[g(1)]Tg(1) = 0
(1) = - (1) (1) = - (1) = [g(2)]T g(2)/ [g(1)]Tg(1)
= ||g(2)||2 / ||g(1)||2 (0) = (1) [g(1)]T g(1)/ [g(0)]Tg(0)
• 共轭梯度法的计算步骤及算法框图
1)给定初始点X(0)及收敛精度>0,k=0;
2)取 S(0) = -▽f (X(0) );
3) X(k+1) = X(k) + (k) S(k) ( k = 0, 1, 2, …, n) (k) 为一维搜索所得的最佳步长。
4) 判断 || ▽f (X(k+1) ) || ≤ ? 若满足,则输出 X * = X(k+1) 和 f * = f (X * ) 否则,转下一步;
(X)的极小点应满足: (X)=0
即
f (X (k))+ 2 f (X (k)) (X - X (k)) =0
2 f (X (k)) (X - X (k)) = - f (X (k))
当 2 f (X (k)) 正定且有逆阵时,上式两边 同时左乘 [2 f (X (k)) ]-1, 得
X = X (k) - [2 f (X (k)) ]-1 f (X (k))
6)令X (k+1)=X (k) + (k) S(k) ,并令k k+1, 转2),重复上述迭代计算过程。
举例: 用牛顿法求目标函数
f (X) = x12 + 4x22 的无约束最优解。初始 点X1(0)= [ 0 0 ]T , X2(0)= [ 2 2 ]T。
解: f (X) = [ 2x1 8x2 ]T
证明,这样处理一般都可以取得较好的效 果。
举例: 用共轭梯度法求目标函数
f (X) = x12 + 4x22 的无约束最优解。初始 点X(0)= [ 2 2 ]T, =0.01 。 解: f (X) = [ 2x1 8x2 ]T
若S(j)和S(k)关于H共轭,则有
[S(j) ]T H S(k) = 0 (4)式两边同时左乘[S(j) ]T,有
[S(j) ]T[g(k+1) - g(k) ]= (k) [S(j) ]TH S(k) = 0
即
[S(j) ]T[ g(k+1) - g(k) ] = 0
(5)
式(5)就是共轭方向与梯度之间的关系。 它表明沿方向S(k) 进行一维搜索,其终点X(k+1) 与始点X(k)梯度之差(g(k+1)-g(k))与 S(k) 的共轭
若能设法构造一个矩阵来逼近海赛矩阵 的逆阵而避免计算海赛矩阵及其逆阵,这样 的方法统称为拟牛顿法。如只用梯度信息但 比梯度法快的共轭梯度法,以及针对牛顿法 提出的变尺度法等。
§5.3 共轭梯度法
• 基本思想
共轭梯度法属于共轭方向法中的一种方
法。它是利用目标函数在迭代点X(k)的梯度来
构造共轭搜索方向的,具有二次收敛性。
沿S(1)进行一维搜索,得 X(2) = X(1) + (1) S(1), 并计算X(2)点的梯度 g(2) ,则有
[S(1)]Tg(2) =0
故有 [ -g(1) + (0)S(0) ]T g(2) = 0
(6)
因为S(0)和S(1)共轭,所以有
[S(0) ]T[ g(2) - g(1) ] = 0
那么, g(1)与S(0) 有什么关系呢?
-g(0)
二者正交,即
X(1)
[g(1)]TS(0)=0 或 [S(0)]Tg(1) =0 g(1)
X(0)
因此,S(0)与g(1)构成平面正交系。
2 ) 在 S(0) 与 g(1) 构 成 的 平 面 正 交 系 中 求 S(0) 的 共轭方向S(1),以此作为下一步迭代计算的搜索 方向。取S(1)为S(0)与g(1)的线性组合,即
再沿S(2) 进行一维搜索,得 X(3) = X(2) + (2Байду номын сангаас S(2),
如此继续下去,可以求得共轭方向的递推公式 为
S(k+1) = -g(k+1) + ||g(k+1)||2 / ||g(k)||2 S(k)
(k = 0, 1, 2, …, n-1)
沿着这些共轭搜索方向一直搜索下去,直 到最后迭代点处梯度的模小于给定的允许值为 止。若目标函数为非二次函数,经n次搜索还未 达到最优点时,则以最后得到的点作为初始点, 重新计算共轭方向,一直到满足精度要求为止。
的二次性,所以牛顿法在极小点附近收敛速 度较快。但无论是牛顿法还是修正牛顿法在 每次迭代计算时都要计算目标函数的海赛
矩阵及其逆阵,因此计算工作量很大,特别 是矩阵求逆,当维数高时工作量更大,且当 海赛矩阵为奇异阵时,其逆阵不存在,无法 使用牛顿法,所以在实际使用中受到一定限 制。另外,从计算机存储方面考虑,牛顿法 所需要的存储量是很大的。
方向S(j)与正交。共轭梯度法就是利用这个性质 做到不必计算矩阵H就能求得共轭方向的。
1)设初始点X(0) ,第一个搜索方向S(0)取X(0) 点的负梯度方向 -g(0)。即 S(0) = -g(0)
沿S(0)进行一维搜索,得 X(1) = X(0) + (0) S(0), 并计算X(1)点的梯度 g(1) 。
X (k+1) = X (k) - (k) [2 f (X (k)) ]-1 f (X (k)) 阻尼因子: (k)
• 计算步骤及算法框图
1) 任选初始点 X (0) ,给定收敛精度>0, k=0;
2) 计算X (k)点的梯度f (X (k))及其模; 3) 检验终止条件: || f (X (k)) ||≤ ?