当前位置:文档之家› 无约束优化方法(最速下降法_牛顿法)

无约束优化方法(最速下降法_牛顿法)

第四章 无约束优化方法——最速下降法,牛顿型方法概述在求解目标函数的极小值的过程中,若对设计变量的取值范围不加限制,则称这种最优化问题为无约束优化问题。

尽管对于机械的优化设计问题,多数是有约束的,无约束最优化方法仍然是最优化设计的基本组成部分。

因为约束最优化问题可以通过对约束条件的处理,转化为无约束最优化问题来求解。

为什么要研究无约束优化问题?(1)有些实际问题,其数学模型本身就是一个无约束优化问题。

(2)通过熟悉它的解法可以为研究约束优化问题打下良好的基础。

(3)约束优化问题的求解可以通过一系列无约束优化方法来达到。

所以无约束优化问题的解法是优化设计方法的基本组成部分,也是优化方法的基础。

根据构成搜索方向所使用的信息性质的不同,无约束优化方法可以分为两类。

一:间接法——要使用导数的无约束优化方法,如梯度法、(阻尼)牛顿法、变尺度法、共轭梯度法等。

二:直接法——只利用目标函数值的无约束优化问题,如坐标轮换法、鲍威尔法单纯形法等。

无约束优化问题的一般形式可描述为:求n 维设计变量 []12Tn n X x x x R =∈L使目标函数 ()min f X ⇒目前已研究出很多种无约束优化方法,它们的主要不同点在于构造搜索方向上的差别。

无约束优化问题的求解: 1、解析法可以利用无约束优化问题的极值条件求得。

即将求目标函数的极值问题变成求方程0)(min *=X f的解。

也就是求X*使其满足解上述方程组,求得驻点后,再根据极值点所需满足的充分条件来判定是否为极小值点。

但上式是一个含有n个未知量,n个方程的方程组,在实际问题中一般是非线性的,很难用解析法求解,要用数值计算的方法。

由第二章的讲述我们知道,优化问题的一般解法是数值迭代的方法。

因此,与其用数值方法求解非线性方程组,还不如用数值迭代的方法直接求解无约束极值问题。

2、数值方法数值迭代法的基本思想是从一个初始点)0(X出发,按照一个可行的搜索方向)0(dρ搜索,确定最佳的步长0α使函数值沿)0(d ρ方向下降最大,得到)1(X 点。

依此一步一步地重复数值计算,最终达到最优点。

优化计算所采用的基本迭代公式为),2,1,0()()()1(Λρ=+=+k dXXK K K K α (4.2)在上式中, ()K d r 是第是 k+1 次搜索或迭代方向,称为搜索方向(迭代方向)。

由上面的迭代公式可以看出,采用数值法进行迭代求优时,需要确定初始点)(k X 、搜索方向)(k d ρ和迭代步长K α,称为优化方法迭代算法的三要素。

第三章我们已经讨论了如何在搜索方向)(k d ρ上确定最优步长K α的方法,本章我们将讨论如何确定搜索方向)(k d ρ。

最常用的数值方法是搜索方法,其基本思想如下图所示:0)(0)(0)(*2*1*=∂∂=∂∂=∂∂nx X f x X f x X fM无约束优化方法可以分为两类。

一类是通过计算目标函数的一阶或二阶导数值确定搜索方向的方法,称为间接法,如最速下降法、牛顿法、变尺度法和共轭梯度法。

另一类是直接利用目标函数值确定搜索方向的方法,称为直接法,如坐标轮换法、鲍威尔法和单形替换法。

各种无约束优化方法的区别在于确定其搜索方向0d 的方法不同。

4.1最速下降法最速下降法是一个求解极值问题的古老算法,1847年由柯西(Cauchy )提出。

4.1.1最速下降法的基本原理由第二章优化设计的数学基础可知,梯度方向是函数增加最快的方向,负梯度方向是函数下降最快的方向,所以最速下降法以负梯度方向为搜索方向,每次迭代都沿着负梯度方向进行一维搜索,直到满足精度要求为止。

因此,最速下降法又称为梯度法。

由公式(4.2)),2,1,0()()()1(Λρ=+=+k d X X K K K K α可知,若某次选代中己取得点)(k X ,从该点出发,取负梯度方向)()()()()(k k k X f X f d ∇∇-=ρ 为搜索方向。

则最速下降法的迭代公式为()(1)()()()(0,1,2,)()k K K Kk f X XXk f X α+∇=-=∇L (4.3)当第k次的迭代初始点)(k X 和搜索方向)(k d ρ已经确定的情况下,原目标函数成为关于步长α的一维函数。

即()()()()K K f X S ϕαα=+最优步长K α可以利用一维搜索的方法求得(1)()()()()min ()()()min ()k K k K k k f Xf Xd f X d ααϕααα+==+=+r r根据一元函数极值的必要条件和多元复合函数的求导公式,得()()()()()()0TK k K f X d f X ϕαα⎡⎤'=-∇+∇=⎣⎦r(1)()()()0TK K f X f X +⎡⎤∇∇=⎣⎦或写成 (1)()[]0K T k dd +=r r 由此可知,在最速下降法中相邻两个搜索方向互相正交。

也就是说在用最速下降法迭代求优的过程中,走的是一条曲折的路线,该次搜索方向与前一次搜索方向垂直,形成“之”字形的锯齿现象,如图4.1所示。

最速下降法刚开始搜索步长比较大,愈靠近极值点其步长愈小,收敛速度愈来愈慢。

特别是对于二维二次目标函数的等值线是较扁的椭圆时,这种缺陷更加明显。

因此所谓最速下降是指目标函数在迭代点附近出现的局部性质,从迭代过程的全局来看,负梯度方向并非是目标函数的最快搜索方向。

图4.1最速下降法的搜索路径此外,最速下降法的迭代公式也可以写成下面的形式(1)()()()(0,1,2,)K K k K X X f X k α+=-∇=L (4.4)将其与式4.3相比较,可知,此处K α等于4.3式中步长除以函数在()K X 点导数的模()()k f X∇,而此时的搜索方向()()()k k d f X =∇r也不再是个单位向量。

4.1.2最速下降法的迭代过程1) 给定初始点(0)X ,收敛精度ε,并令计算次数0k ⇐; 2) 计算)(k X 点的梯度()()K f X ∇及梯度的模()()k f X ∇,并令)()()()()(k k k X f X f d ∇∇-=ρ 3) 判断是否满足精度指标()()k f X ε∇≤;若满足,)(k X 为最优点,迭代停止,输出最优解*()k X X =和*()()()k f X f X =,否则进行下一步计算; 4) 以)(k X为出发点,沿)(k d ρ进行一维搜索,求能使函数值下降最多的步长K α,即()()()()min ()()k k k k K f Xd f X d ααα+=+r r5) 令(1)()()k k k K XXd α+=+r ,k=k+1,转到步骤2)。

最速下降法的程序框图如图4.2所示。

4.2最速下降法的程序框图例题4.1 用最速下降法求目标函数2212()(1)(1)f X x x =-+-的极小值,设初始点(0)T [0 0]X =,计算精度210ε-=。

解 (1)计算初始点(0)X 处目标函数的梯度和梯度的模11(0)22(0)()2(1)2() 2(1)()2 ()f X x x f X x f X x f X ∂⎡⎤⎢⎥∂--⎡⎤⎡⎤⎢⎥∇===⎢⎥⎢⎥-∂-⎢⎥⎣⎦⎣⎦⎢⎥∂⎣⎦∇=(2)由于(0)()f X ε∇=>,不满足精度指标,转下一步计算。

(3)确定搜索方向(0)(0)(0)2()2()f X df X -⎤∇=-==⎥-∇⎦r (4)计算新的迭代点 由公式(4.2)可得(1)(0)(0)00XXdαα⎡⎤=+=+=⎢⎥⎣⎦r 代入目标函数(1)22()1)1)f X =-+沿)(k d ρ方向进行一维搜索(或对α求导,并令其为零)(1)()1)1)df X d α=-+ 令(1)()0df X d α=,,求得最优步长0α。

(5)计算新迭代点(1)11X ⎡⎤===⎢⎥⎣⎦ (6)计算新迭代点的梯度及梯度的模1(1)22(1)0()2(1)0x f X x -⎡⎤⎡⎤∇==⎢⎥⎢⎥-⎣⎦⎣⎦(0)()0f X ε∇=<因已满足精度要求,停止迭代,得最优解为*11X ⎡⎤=⎢⎥⎣⎦,*()0f X =可见,对于目标函数的等值线为圆的情况,只要一次迭代就能达到极小值点*X。

这是因为圆周上任意一点的负梯度方向总是指向圆心的,如图4.3所示。

图4.3例题4.1目标函数极小值的搜索过程通过上面的分析可知最速下降法具有以下特点:(1)理论明确,程序简单,对初始点要求不严格,每次迭代所需的计算量和存储量也较小,适用于计算机计算。

(2)对一般函数而言,最速下降法的收敛速度并不快,因为最速下降方向仅仅是指某点的一个局部性质。

(3)最速下降法相邻两次搜索方向的正交性,决定了迭代全过程的搜索路线呈锯齿状,在远离极小点时逼近速度较快,而在接近极小点时逼近速度较慢。

(4)最速下降法的收敛速度与目标函数的性质以及初始点的选择密切相关。

对于等值线(面)为同心圆(球)的目标函数,一次搜索即可达到极小点。

若目标函数为二次函数,等值线为椭圆,当初始点选在长轴或短轴上时,一次搜索也可达到极小值点。

最速下降法的收敛速度和变量的尺度关系很大,这一点可从最速下降法收敛速度的估计式上看出来。

在适当条件下,有式中的海赛矩阵最大特征值上界;其最小特征值下界。

当相邻两个迭代点之间满足上式时(右边的系数为小于等于1的正的常数),我们称相应的迭代方法是具有线性收敛速度的迭代法。

因此,最速下降法是具有线性收敛速度的选代法。

鉴于应用最速下降法可以使目标函数在开头几步下降很快,所以它可与其它无约束优化方法配合使用。

即在开始阶段用梯度法求得一个较优的初始点,然后用其它收敛快的方法继续寻找极小点。

4.2牛顿法牛顿法是根据目标函数的等值线在极值点附近为同心椭圆族的特点,在极值点*X 邻域内用一个二次函数()X ϕ来近似代替原目标函数()f X ,并将()X ϕ的极小值点作为对目标函数()f X 求优的下一个迭代点,经多次迭代,使之逼近原目标函数()f X 的极小值点。

4.2.1牛顿法的基本原理设目标函数是连续二阶可微的,将函数在)(k X 点按泰勒级数展开,并保留到二次项,得()()()()2()()1()()()[()]()()()() 2K K T K K T K K f X X f Xf XX XX X f X X X ϕ≈=+∇-+-∇-此式是个二次函数,设(1)k X +为()X ϕ的极小值点,则(1)()0k Xϕ+∇=即()2()(1)()()()()0k k k k f X f X X X +∇+∇-=(1)()2()1()[()]()(0,1,2,)K K K K X X f X f X k +-=-∇∇=L (4.5)这就是多元函数求极值的牛顿法迭代公式。

相关主题