第五章无约束优化的间接搜索法
机械优化设计方法第五章 多变量无约束优化方法

似极小点,则在X(k)点根据函数f(X)的性质,选择一个方向S(k),沿 此方向搜索函数值应是下降的,称S(k)为下降方向。
(3)当搜索方向S(k)确定以后,由X(k)点出发,沿S(k)方向进行搜索,
定出步长因子α(k),得新设计点 X(k+1)= X(k)+α(k) S(k) 并满足f(X(k+1))<f(X(k))。具有这种性质的算法称为下降算法。α(k) 可以是一维搜索方法确定的最优步长因子,亦可用其他方法确定。 (4)若新点X(k+1)满足迭代计算终止条件,则停止迭代,X(k+1)点就 作为近似局部极小点X*;否则,又从X(k+1)点出发,返回第(2)步 继续进行搜索迭代。
的极为有用的性质:从任意初始点X(0)出发,依次沿n个线性无关 的与A共扼的方向S1,S2,…, Sn各进行一维搜索,那么总能在第n 步或n步之前就能达到n维正定二次函数的极小点;并且这个性质 与所有的n个方向的次序无关。因而说共轭方向法具有有限步收敛 的特性。通常称具有这种性质的算法为二次收敛算法。 2.理论与实践证明,将二次收敛算法用于非二次的目标函数, 亦有很好的效果,但迭代次数不一定保证有限次,即对非二次n维 目标函数经n步共轭方向一维搜索不一定就能达到极小点。 3.对于非二次的目标函数寻优的另一种处理方法是循环迭代 法,即当达n步迭代终点X(n)时还未收敛,此时可将X(n)作为新的初 始点,再重新开始迭代,实践证明,这样做要比一直迭代下去具 有更好的效果。 4.即便对于正定二次函数,在数值计算中,由于数据的舍入 以及计算误差的累积,往往破坏了这种共轭性质。
(一)共轭方向的定义
设A为n×n阶实对称正定矩阵,如果有两个n维向量S1和S2满足
S1TAS2=0 则称向量S1与S2对于矩阵A共轭。 共轭向量的方向称为共轭方向。
6.1无约束优化(线搜索)

共轭梯度法-数值表现
Polak & Ribiere(1971)
Hestenes & Stiefel
⊙ 严格凸二次函数+精确线搜索确定步长,四个算法相同!
⊙ FR-CG的理论分析最完善;PR+-CG的实际表现最好!
⊙ 非精确线搜索:满足强Wolfe准则,参数 ⊙ 终止条件 或者迭代10000次后终止(*)
共轭梯度法-基本思想
设G对称正定,
共轭梯度法-具体算法
Conjugate Gradient Method(CG)
m in im iz e n
x R
1 T x G x-b T x 2
Gx = b
⊙线搜索法,要求用精确步长,且 ⊙ p(0)= - g(0),对k > 0 共轭的部分 具体地,即 其 中 算法最多迭代 n 次即终止! 计算量: 矩阵向量乘(1) 内积(2) 向量求和(3)
共轭梯度法
Conjugate j g Gradient Method
修正前:A的特征值分别是 -1.25, 2.87, 8.38 修正后:A+D’ 的特征值分别是 1.13, 3.00, 8.87
第 5 章 无约束优化:线搜索法 数学规划基础 LHY‐SMSS‐BUAA 第 5 章 无约束优化:线搜索法 数学规划基础 LHY‐SMSS‐BUAA
第 5 章 无约束优化:线搜索法
数学规划基础
LHY‐SMSS‐BUAA
第 5 章 无约束优化:线搜索法
数学规划基础
LHY‐SMSS‐BUAA
6
共轭梯度法-性质
定理 设 m 是CG法中使 g(m) ≠0 的最大整数. 则 m ≤ n,且对所有的 k = 1, …, m,下列事实成立:
最优化方法:第五章 常用无约束优化方法

g1
0.73846 0.04616
1.47692 0.42500 0.36923
0.11076 0.11076
束 优
f (X1) 0.06134, g2 f (X 2 ) 00..2828105028, g2 0.91335.
化 因为 方 法
g1T g0 0.0000,
g
T 2
g1
方
(4)计算 X k1 X k Pk,f k1 f ( X k1 ),gk1 g( X k1) .
法 (5)判别终止准则是否满足:若满足,则打印最优解X k1
,fk1 结束;否则,置k k 1 ,转(2).
第 五 章 常 用 无 约 束 优 化 方 法
例5.2 试用Newton法求 f (x1,x2 ) x12 4x22 的极小点,初 始点取为 X 0 [1, 1]T .
方 法
, X k1 f (X k1) ,结束;否则,置 k k 1,转(2).
将最速下降法应用于正定二次函数
f (X ) 1 X T AX bT X c (5.4)
2
第
可以推出显式迭代公式.
五
设第k次迭代点为Xk,我们来求Xk+1的表达式.对式
章 (5.4)关于X求梯度,有
常
g(X ) AX b (5.5)
Pk [2 f (X k )]1f ( X k )
步长因子 tk 1
方向 Pk [2 f (X k )]1f (X k ) 是直指点 X k 处近似二次函数
Q(X )的极小点的方向.此时称此方向为从点 X k 出发的
Newton方向.从初始点开始,每一轮从当前迭代点出发,
第
沿Newton方向并取步长 的tk 算1 法称为Newton法.
无约束常用优化方法

步长 ,作前进(或后退)试探.如试探成功(目
标函数值有所减小),则按步长序列
,加
大步长(注意每次加大步长都是由初始点算起),直
至试探失败(目标函数值比前一次的有所增加)时,
则取其前一次的步长作为沿这个坐标轴方向搜索的最
优步长,并计算出该方向上的终止点,而后以这个终
止点为始点再进行下一坐标轴方向的搜索,并重复上
处
显然 是二次函数,并且还是正定二次函数,所以 是凸函数且存在唯一全局极小点.为求此极小点,令
即可解得
即
(5.9)
对照基本迭代公式,易知,式(5.9)中的搜索方向
步长因子
方向
是直指点 处近似二次函数
的极小点的方向.此时称此方向为从点 出发的
Newton方向.从初始点开始,每一轮从当前迭代点出发,
沿Newton方向并取步长 的算法称为Newton法.
另外,共轭梯度法不要求精确的直线搜 索.但是,不精确的直线搜索可能导致迭代 出来的向量不再共轭,从而降低方法的效 能.克服的办法是,重设初始点,即把经过 n次迭代得到的Xn作为初始点重新迭代.
五、坐标轮换法
在坐标轮换法中,沿各个坐标轴方向进行一维搜索
时,常选用最优步长法或加速步长法.加速步长法从
初始点出发,沿搜索(坐标轴)方向先取一个较小的
三、共轭方向法
1、概念
通常,我们把从任意点
出发,依次沿某组共轭
方向进行一维搜索的求解最优化问题的方法,叫做共
轭方向法.
2、特点
• 一般地,在n维空间中可以找出n个互相共轭的方向,对于n元正 定二次函数,从任意初始点出发,顺次沿这n个共轭方向最多作n 次直线搜索就可以求得目标函数的极小点.这就是共轭方向法的 算法形成的基本思想.
5 无约束优化方法

第二节 一、方法说明
最速下降法
从某一点X(k)出发,以该点的最速下降方向:即负梯度方向 - f(X(k)),进行一维搜索,得最优步长k,从而获得新的迭 代点X(k+1),如此重复迭代,即得到无约束问题的最优解.
第三节
牛顿法
1 Newton法的基本思想 若x*是无约束问题的局部解,则x*满足
f (X ) 0
*
因此,可以通过求解该方程组来得到无约束最优化问题解。注 意到该方程组是非线性的,处理起来比较困难,因此考虑原 目标函数在点X(k)处的一个二次逼近:
f ( X ) p2 ( X ) f ( X ( k ) ) f ( X ( k ) )T ( X - X ( k ) ) 1 [ X - X ( k ) ]T H ( X ( k ) )( X - X ( k ) ) 2
Newton法的缺点: (1)可能会出现在某步迭代时目标函数值上升,即存在k,使得 f(X(k+1))>f(X(k)) 。 如 在 上 例 中 , 取 x(1)=(1 , 1)T , f(x(1))=4 , 由 Newton 法得到的 x(2)=(-0.75,-1.25)T ,此时, f(x(2))=4.5156 函数值上升。 (2)当初始点x(1)距x*较远时,产生的点列{X(k)}可能不收敛;或 者收敛到鞍点;或者H(x(k))奇异无法计算。
(1)
0
又由于 故得
(d ) f ( X ) 0
(0) T (1)
(d (0) )T Ad (1) 0
称方向d(0)与方向d(1)关于矩阵A共轭
5 无约束最优化方法

在数学中,海森矩阵(Hessian matrix 或 Hessian)是一个自变量为向量的实值函数 的二阶偏导数组成的方块矩阵,此函数如下:
如果 f 所有的二阶导数都存在,那么 f 的海 森矩阵即:
H(f)ij(x) = DiDjf(x)
阻尼牛顿法
基本牛顿法对于一般非线性函数求解可能失 效的缺陷可以通过在迭代中引入步长因子和 一维搜索加以解决,改进后的算法称为阻尼 牛顿法,引入的步长因子αk也称为阻尼因子。 由于引入阻尼因子和一维搜索,虽然增加了 计算量,但可以保证迭代点的严格下降性, 可以适用于任何非线性函数,具有更理想的 收敛效果。
变尺度法(拟牛顿法)
变尺度法是通过坐标变换构造的一类最优化 算法。这类算法的搜索方向在计算中以递推 形式逐步产生并最终逼近牛顿方向,而不需 计算函数的二阶导数及其及逆矩阵。 变尺度法具有超线性收敛速度。
坐标变换
当函数在一点的二阶导数矩阵为正定时,其函数 在该点的泰勒二次展开式是正定二次函数,其等 值线为同心椭圆族。 引入变换矩阵U和如下变换:
唯一极小 (全局极小)
2 f ( x1 x2 ) 2 x12 2 x1 x2 x2 3x1 x2
f 0 f 0.298 f 0.298
多局部极小
根据搜索方向的不同构成方式:
导数法(解析法):利用目标函数的一阶导数 和二阶导数信息构造搜索方向的方法。(梯度 法、牛顿法、变尺度法、共轭梯度法)收敛性 和收敛速度较好,较为常用 模式法(直接法):通过几个已知点上函数值 的比较构造搜索方向的一类算法。(鲍威尔法) 迭代次数多,收敛速度慢,搜索方向不理想
转向(ቤተ መጻሕፍቲ ባይዱ);
第五章无约束优化的间接搜索法

1)尽管理论上可以证明目标函数为n维正定 二次函数时,共轭梯度法只需要n次迭代就可以 达到最优点,但由于计算机的舍入误差,实际 计算往往要多进行若干次才能得到满足精度要 求的结果;而对于一般的目标函数,迭代次数 将更多。
所以
令 得
(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)
因为
[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) 的线 性组合,即
再沿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次搜索还未 达到最优点时,则以最后得到的点作为初始点, 重新计算共轭方向,一直到满足精度要求为止。
05-无约束优化算法

05-⽆约束优化算法05-⽆约束优化算法⽬录⼀、⽆约束最⼩化问题[⽆约束最⼩化问题] 使 f(x) 最⼩化, f:R n→R 是凸的,且⼆次可微(意味着 domf 是开集)。
假设这个问题是可解的,也就是存在最优点 x∗ ,最优值 inf x f(x)=f(x∗) ,记为 p∗ .[最优充要条件] 因为 f 是可微且凸的,点 x∗ 是最优点的充要条件是∇f(x∗)=0 .注:其实可以从⼆维的图像去理解因此解决⽆约束最⼩化问题等同于寻找上式的解,是含有n个未知数的n个⽅程的集⽅程组。
有时我们是⽤递归算法来解决这个问题,也就是依次计算x(0),x(1),...∈domf , 有f(x(k))→p∗,k→∞ 。
这样的序列叫做问题的最⼩化序列 (minimizing sequence)。
算法的停⽌条件:f(x(k))−p∗≤ϵ,ϵ≥0 是可容许的误差值。
[初始点,下⽔平集] 初始点 x(0) 必须在 domf 中,并且下⽔平集S={x∈domf|f(x)≤f(x(0))} 必须是闭的。
注:下⽔平集是闭的,其实就是对函数做了⽔平切割,然后⽔平切割下的图像是封闭的如果函数 f 是闭的(也就是它的所有下⽔平集都是闭的)那么以上条件都能满⾜。
定义在domf=R n上的连续函数是闭的,所以如果domf=R n,那么初始下⽔平集条件对于任何x(0)都满⾜。
另⼀种闭函数:定义域是开集,当x趋近于bd domf时,f(x) 趋近于⽆限。
[强凸] ⼀个函数在 S 上是强凸的,如果存在 m>0 ,使得对于所有的 x∈S ,有∇2f(x)⪰mI.注:强凸的性质,其实就是保证函数的 ∇2f(x)>0 ,也就是确保只有⼀个最优解,⽽弱凸是最优解有多个,如下图所⽰。
对于x,y∈S我们有f(y)=f(x)+∇f(x)T(y−x)+12(y−x)T∇2f(z)(y−x) , for some z∈[x,y] 。
根据强凸的假设,最后⼀项⼤于等于 (m/2)‖y−x‖22,∀x,y∈S ,也就是:f(y)≥f(x)+∇f(x)T(y−x)+(m/2)‖y−x‖22 .当m=0 时,我们得到了描述凸性的基本不等式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)) ||≤ ?