收藏 分享(赏)

第八章数值优化.ppt

上传人:yjrm16270 文档编号:9659207 上传时间:2019-08-21 格式:PPT 页数:65 大小:1.15MB
下载 相关 举报
第八章数值优化.ppt_第1页
第1页 / 共65页
第八章数值优化.ppt_第2页
第2页 / 共65页
第八章数值优化.ppt_第3页
第3页 / 共65页
第八章数值优化.ppt_第4页
第4页 / 共65页
第八章数值优化.ppt_第5页
第5页 / 共65页
点击查看更多>>
资源描述

1、第8章 数值优化,8.1 单变量函数的极小值 8.2 内德-米德方法和鲍威尔方法 8.3 梯度和牛顿方法,目录,8.1 单变量函数的极小值,定义8.1 如果存在包含p的开区间I,使得对所有xI,有f(p)f(x),则称函数f 在x=p处有局部极小值。类似地,如果对所有xI,有f(p)f(x),则称函数f 在x=p处有局部极大值。如果f 在点x=p处有局部极大值或极小值,则称f 在点x=p处有局部极值。,单调性的定义和判定,定义8.2 设f (x)定义在区间I上。 若对所有x1f(x2),则称f 在区间I上递减。定理8.1 设f (x) 在区间I=a,b上连续,并在(a,b)上可微。 若对所有x

2、(a,b)有f (x) 0,则f (x)在 I上递增。 若对所有x(a,b)有f (x) 0,则f (x)在 I上递减。,驻点和一阶导数测试,定理8.2 设f(x)定义在区间I=a, b上,并在内点p(a, b)处有局部极值。若f(x)在x=p处可微,则f (p)=0。定理8.3 设f(x) 在I=a, b上连续,并设除x=p处外, f (x)对所有x(a, b)都有定义。 若在(a, p)上f (x)0,则f(p)是局部极小值。 若在(a, p)上f (x)0,而在(p, b)上f (x)0,则f(p)是局部极大值。,二阶导数测试,定理8.4 设f在区间a, b上连续,并且f 和f 在区间(

3、a, b)上有定义。又设p(a, b)是关键点,即f (p)=0。 若f (p)0,则f(p)是f 的一个局部极小值。 若f (p)0,则f(p)是f 的一个局部极大值。 若f (p)=0,则结果不确定。,8.1.1 分类搜索方法,直接法是一种数值方法 这种方法的基本思想是迭代,通过迭代产生一个点序列 X(k) ,使之逐步接近最优点 只用到目标函数,通过对函数多次求值来求函数f(x)在给定区间上的一个局部极小值 要尽量减少函数求值的次数,确定在哪里求f(x)值的好策略非常重要 如黄金分割搜索法、Fibonacci搜索法、随机搜索法,搜索法必须满足的条件,使用这些方法来求f(x)的极小值必须满足

4、特定的条件,以保证在给定的区间内有合适的极小值 这个特定条件就是函数f(x)在给定区间中是单峰的 定义8.3 如果存在唯一的pI,使得 (1) f(x)在a, p上递减, (2) f(x)在p, b上递增, 则函数f(x)在I=a, b上是(下)单峰的。,黄金分割搜索法(0.618法),如果已知f(x)在a,b上是(下)单峰的,则有可能找到该区间的一个子区间,f(x)在该子区间上取得极小值 选择两个内点cd,这样就有acdb。f(x)的单峰特性保证了函数值f(c)和f(d)小于maxf(a), f(b) 出现两种情况:,黄金分割搜索方法的决策过程,a,c,p,d,b,y=f(x),如果f(c)

5、f(d),则从右侧压缩,使用a,d,c,p,d,b,y=f(x),如果f(c)f(d),则从左侧压缩,使用c,b,a,黄金分割法原理,设函数 f (x) 在闭区间 a, b 上是(下)单峰函数,即在 (a, b) 内 f (x) 有唯一的极小点p,在p的左边 f (x) 严格单调下降,在p的右边f (x)严格单调上升。那么对于(a, b)内任意两点cd,如果 f (c) f (d),则p a, d;否则p c, b,黄金分割法,选择内点c和d,使得区间a,c与d,b对称,即b-d=c-a,其中 c=a+(1-r)(b-a)=ra+(1-r)b d=b-(1-r)(b-a)=(1-r)a+rb并

6、且1/2r1(保证cd) 希望r在每个子区间上保持为常数,且旧的内点中有一个成为新子区间的一个内点,而另一个则成为新子区间的一个端点 在每次迭代中只需要找一个新的点,则只需要一次新的函数求值计算,比例因子的选择,设f(c0)f(d0),则从右侧压缩,使用a0,d0,即取a1=a0,b1=d0和d1=c0,则需要再求一个新的点c1,a1,c1,d1,b1,a0,c0,d0,b0,0,1-r,r,1,因为1/2r1(保证cd),故取,斐波那契(Fibonacci)搜索法,黄金分割搜索法第一次迭代中进行了两次函数求值,而在后续的每次迭代中则只进行一次函数求值 r的值对每个子区间相同,当|bk-ak|

7、或|f(bk)-f(ak)|时,迭代结束,取ak,bk的中点为所求最小值点。其中是预定义的容差 斐波那契(Fibonacci)搜索法中r的值不是常数,而且子区间数(迭代数)是由指定的容差决定的,斐波那契(Fibonacci)搜索法,斐波那契(Fibonacci)序列基于公式: F0=0, F1=1, Fn=Fn-1+Fn-2即Fk=0,1,1,2,3,5,8,13,21, 设函数 f (x) 在闭区间 a0, b0 上是单峰函数,选择1/2r01,使内点c0和d0可以在下一个子区间上使用,从而只需一次新的函数求值计算,比例因子的确定,设f(c0)f(d0),则从右侧压缩,使用a,d,即取a1=

8、a0,b1=d0和d1=c0,则需要再求一个新的点c1,为子区间a1,b1选择r1(1/2r11),使得,a1,c1,d1,b1,a0,c0,d0,b0,1-r0,r0,2r01,1-r0,r1,1-r1,因为有Fn=Fn-1+Fn-2 ,Fibonacci搜索从r0=Fn-1/Fn开始,对k=1,2,n-3,用rk=Fn-1-k/Fn-k。注意rn-3=F2/F3=1/2,因此这一步无需增加新的点。整个过程总共需要 (n-3)+1=n-2步。将第k个子区间的长度按因子 rk=Fn-1-k/Fn-k缩减,得到第(k+1)个子区间。最后一个子区间的长度为,由Fibonacci数列,将r0=Fn-

9、1/Fn,n4代入r1,得,如果极小值横坐标的容差为,则需要找到最小的n,使得,按要求,由如下公式可找到第k个子区间ak,bk的内点ck和dk,其中的n由上面不等式求得,区别常数的设置,每次迭代需要确定两个新的内点,一个来自前一次的迭代,另一个重新计算。当r0=F2/F3=1/2时,两个内点将在区间中点重合。为区分它们,引入一个小的区别常数e。当求ck和dk的时候,rk=1/2+e,则(1-rk)=1/2-e,例8.3,分类搜索法,黄金分割搜索法与斐波那契搜索法都可用于f(x)不可微的情况。 搜索法存在的问题:函数在极小值附近可能比较平缓,从而限制了精度,而且速度也较慢 对于小的n值,斐波那契

10、搜索法比黄金分割搜索法更为有效;对于大的n值,两者几乎相同,8.1.2 利用导数求极小值,设f(x)在区间a,b上是(下)单峰的,并在x=p处有唯一极小值。并设f (x)在(a,b)上所有的点处有定义。令初始点p0在(a,b)内。若f (p0)0,则极小值点p在p0左侧。,a,p0,p,b,y=f(x),a,p0,p,b,y=f(x),1. 对极小值分类,首先求出三个测试值p0, p1=p0+h, p2=p0+2h,使得f(p0)f(p1), f(p1)0 若f(p0)0, 则p0p,且应该选择步长h0 容易找到h,使三点p0, p1=p0+h, p2=p0+2h满足要求。如有a+1b,则令h

11、=(+/-)1,否则令h=(+/-)1/2,依此类推。,寻找过程(设f(p0)0),若满足f(p0)f(p1), f(p1)f(p1)且f(p1)f(p2),则说明p2)p。则需检测更靠右(左)的点。步长加倍,并重复检测过程 若f(p0) f(p1),表明h太大, p1已经跳过了p。则需检测更靠近p0的点。步长减半,并重复检测过程,2. 求极小值p的二次逼近方法,由p0, p1=p0+h, p2=p0+2h,可用二次插值来求p的近似值pmin。基于三点的拉格朗日多项式为,其中yi=f(pi),i=0,1,2. Q(x)的导数为,以Q(p0+hmin)的形式求解Q(x)=0,得,将上式中的各项乘

12、以2h2,并合并包含hmin的项,得,由上式解得,值pmin=p0+hmin比p0更逼近p,因此可用pmin代替p0,并重复上述计算过程,求出新的h和新的hmin。重复这一迭代过程,直到得到所需的精度。,8.1 单变量函数的极小值 8.2 内德-米德方法和鲍威尔方法 8.3 梯度和牛顿方法,目录,多元函数求极值的问题,设函数f(x1,x2,xN)定义在区域,上。如果f (p1,p2,pN) f (x1,x2,xN)对所有的点(x1,x2,xN)R都成立,则函数f (x1,x2,xN)在点(p1,p2,pN) 处有局部极小值; 如果f (p1,p2,pN) f (x1,x2,xN)对所有的点(x

13、1,x2,xN)R都成立,则函数f (x1,x2,xN)在点(p1,p2,pN) 处有局部极大值。,二元函数的极小值问题,二元函数的图形是一个几何表面定理8.5(二阶偏导数测试)设f(x,y)及其一阶和二阶偏导数在区域R上连续。设点(p,q) R是一个临界点,即fx(p,q)=0且fy(p,q)=0。可用高阶偏导数来确定临界点的属性。,若 且 fxx(p,q)0, 则 f (p,q)是 f 的局部极小值。 若 且 fxx(p,q)0, 则 f (p,q)是 f 的局部极大值。 若 ,则f (x,y)在 (p,q)没有局部极值。 若 ,则结果不确定。,例8.5,多元函数的直接搜索法,多变量目标函

14、数f(x1,x2,xN)的极值直接搜索法对函数的可微性不作显性或隐性的假设 对非光滑(不可微)目标函数而言,直接方法特别有用 内德米德方法和鲍威尔方法,单纯形方法的基本思想,内德和米德提出了单纯形法,可用于求解多变量函数的局部极小值 从可行域中的一个基本可行解出发,判断它是否已是最优解,若不是,寻找下一个基本可行解,并使目标函数得到改进,如此迭代下去,直到找出最优解或判定问题无解为止。 从另一个角度说,就是从可行域的某一个极点出发,迭代到另一个极点,并使目标函数的值有所改善,直到找出有无最优解时为止。,单纯形的概念,单纯形是指0维中的点,一维中的线段,二维中的三角形,三维中的四面体,n维空间中

15、的有n+1个顶点的多面体。例如在三维空间中的四面体,其顶点分别为(0,0,0),(1,0,0),(0,1,0),(0,0,1)。具有单位截距的单纯形的方程是xi1,并且xi0,i=1,2,n,二元函数的单纯形方法,在二维平面空间中,单纯形就是三角形 搜索过程:比较三角形3个顶点处的函数值,f(x,y)值最大的顶点为最差顶点(W),用一个新的顶点代替最差顶点,形成新的三角形式 继续这一过程,生成一系列三角形(它们可能具有不同的形状),函数在其顶点处的值越来越小 随着三角形的减小就可以找到极小值点的坐标,单纯形的寻找过程,初始三角形BGW 良边的中点 反射点R 开拓点E 收缩点C 向B方向收缩,每

16、一步的逻辑判断,若f(B)f(R),则以R代替W否则计算E和f(E)若f(E)f(B),则以E代替W否则以R代替W,若f(R)f(W),则以R代替W 否则计算C1=(M+R)/2和f(C1)计算C2=(W+M)/2和f(C2)取两者中函数值较小者为C若f(C)f(W),则以C代替W否则计算S=(W+B)/2和f(S)以S代替W以M代替G,若f(R)f(G),则转(反射点或开拓点)否则转(压缩点或收缩点),例8.6,坐标轮换法,设X0是函数z=f (x1,x2,xN)的极小值点的初始估计。假设函数的偏导数不可得。一种直观的方法是通过连续地沿着每个标准基向量方向找极小值,来求下一个近似的X1。该方

17、法生成一系列点X0=P0, P1, P2,PN=X1,沿着函数f 的每个标准基向量是一个单变量函数,这样就可以在一个函数为单峰的区间上用黄金分割搜索法或斐波那契搜索法来求f 的极小值,重复该迭代过程,生成点序列,鲍威尔方法,通常由于多变量函数的几何特点,沿着某个自变量的变化路线找到的极小值有可能并不是函数的极小值,所以坐标轮换法的效率不高 但从点X0到点X1这一步正是(原始)鲍威尔方法的第一步,鲍威尔方法核心,在坐标轮换法过程中增加两个步骤 (1)在某种程度上,向量PN -P0代表着每次迭代过程移动的平均方向。因此确定点X1为沿向量PN-P0方向的函数f 取得极小值的点。沿着PN -P0方向的

18、f 是单变量函数,因此可用黄金分割搜索法或斐波那契搜索法 (2)用向量PN -P0代替下一迭代过程中的某个方向向量,对新的方向向量集开始迭代,并产生点序列,鲍威尔基本算法要点,在每一轮迭代中总有一个始点(第一轮的始点是任取的初始点)和n个线性独立的搜索方向。从始点出发顺次沿n个方向作一维搜索得一终点,由始点和终点决定了一个新的搜索方向 用这个方向替换原来n个方向中的一个,于是形成新的搜索方向组。替换的原则是去掉原方向组的第一个方向而将新方向排在原方向的最后。此外规定,从这一轮的搜索终点出发沿新的搜索方向作一维搜索而得到的极小点,作为下一轮迭代的始点。这样就形成算法的循环,上述基本算法仅具有理论

19、意义,鲍威尔方法迭代步骤,设X0是函数z=f (x1,x2,xN)的极小值点位置的初始估计,Ek=0 0 . 0 1k 0 . 0:k=1, 2, ,N为标准基向量, 且i=0,令P0=Xi 对k=1,2,N,求值k,使得f(Pk-1+kUk)极小,并令Pk=Pk-1+kUk 令i=i+1 对j=1,2,N-1,令Uj=Uj+1。令UN=PN -P0,若|UN|,则得到解PN,迭代停止 求值,使得f(P0+UN)极小。令Xi=P0+UN 重复第(I)步到第(V)步,x1,x2,P0,P1,X1,X2,X3,鲍威尔基本方法示意图,P2,(二维情形),鲍威尔方法举例,例8.7:用鲍威尔方法对二元函

20、数f(x,y)=cos(x)+sin(y)求局部极小值。初始点为X0=(5.5,2),求迭代前两步X1和X2。 准确值是P=(, 3/2) 用MATLAB自带的求局部极小值函数(线性搜索)fminunc求得的结果是P=(3.141592403193604, 4.712389175014903),鲍威尔方法的讨论,在鲍威尔基本算法中,每一轮迭代都用连结始点和终点所产生出的搜索方向PN -P0去替换原来向量组中的第一个向量U1 ,而不管它的“好坏”。 上述步骤中假设了平均方向是继续搜索的良好方向,但实际情况有可能并不是这样 随着迭代次数的增加,方向向量集的n个搜索方向有时会趋向于变成线性相关,它将

21、会丢掉一个或多个方向,从而不能组成n维空间,因此可能出现点集 并不收敛于局部极小值点的情况 基本鲍威尔算法有待改进,有关线性相关的说明,在鲍威尔基本算法中,每一轮迭代都用连结始点和终点所产生出的搜索方向UN+1=PN -P0去替换原来向量组中的第一个向量U1 ,即下一轮的搜索方向组为U2, U3, , UN+1 这种自然的替换方式忽略了向量组U2, U3, , UN+1 可能出现线性相关的情况 当上述向量组线性相关时,算法产生的点列可能不收敛于问题的解 如果抛弃f 减小最快的方向向量Ur,结果将更好。 Ur可能是平均向量UN =PN -P0的主要分量,改进的鲍威尔方法,改进的算法是:首先判断原

22、向量组是否需要替换。如需要替换,还要进一步判断原向量组中哪个向量最坏,然后再用新产生的向量替换这个最坏的向量,以保证逐次生成共轭方向。 要替换的两种情况: 沿着平均方向f 继续减小 f 沿最大下降方向Ur的减小是f 整体减小量的主要部分,改进的鲍威尔方法概要,8.1 单变量函数的极小值 8.2 内德-米德方法和鲍威尔方法 8.3 梯度和牛顿方法,目录,梯度方法和牛顿方法,8.2节介绍的内德米德方法和鲍威尔方法是针对多元函数偏导数不可求的方法,是直接搜索法 8.3节介绍的梯度方法和牛顿方法是针对函数f(X)的偏导数可得的求极小值的方法,其中,X=(x1, x2, , xN)T,梯度的定义,定义8

23、.4 设z=f(X)是X的函数,对k=1,2,N,存在。f的梯度,记为f(X),是向量,梯度向量在局部指向f(X)增加得最快的方向。因此-f(X)在局部指向下降得最快的方向。,例8.8,梯度是一个向量。N元函数f(x1 ,x2 ,xN)在某点x处的梯度为:,梯度的方向与函数f的等值线的一个法线方向相同,从较低的等值线指向较高的等值线。,梯度的方向就是函数f的值增加最快的方向,其相反方向就是函数值降低最快的方向。,关于函数梯度的说明,梯度法的定义,梯度法又称最速下降法(steepest descent method) 由法国数学家Cauchy于1847年首先提出。在每次迭代中,沿最速下降方向(负

24、梯度方向)进行搜索,每步沿负梯度方向取最优步长,因此这种方法称为最优梯度法。,梯度方法描述,从迭代初始点P0开始,沿着过P0,方向为S0=-f(P0)/|-f(P0)|的直线搜索,到达点P1. 当点X满足约束X=P0+S0时,在该点取得局部极小值 由于偏导数可得,因此极小化过程可以使用二次或三次近似方法 然后计算-f(P1),并沿方向S1=-f(P1)/|-f(P1)|搜索,到达点P2 .当X满足约束X=P1+S1时,在该点取得局部极小值 迭代该计算过程,得到点序列 ,满足f(P0)f(P1). f(Pk) 如果limkPk=P,则f(P)是f(X)的一个局部极小值,梯度法搜索过程示意图,梯度

25、方法概要,设Pk已知 求梯度向量f(Pk) 计算搜索方向Sk=-f(Pk)/|-f(Pk)| 在区间0,b上对()=f(Pk+Sk)进行单参数极小化,b为一个较大值。这一过程将产生值=hmin,它是()的一个局部极小值点。关系式(hmin)=f(Pk+hminSk)表明,它是f(X)沿搜索线X=Pk+hminSk的一个极小值 构造下一个点Pk+1=Pk+hminSk 进行极小化过程的终止判断,若函数值满足|f(Pk+1)-f(Pk) |或两点距离满足|Pk+1-Pk|,则迭代终止,否则转第步,例8.9 用梯度法求函数 的P1和P2。 初始点采用P0=(-3, -2),P0,P1,P2,P,梯度

26、法小结,梯度法是从梯度的几何含义自然延伸得到的,所以几何上比较直观 梯度法的基本思想是从当前点xk出发寻找使得目标函数下降最快的方向,即负梯度方向。 优点:迭代点列总是收敛的,而且计算过程简单,梯度法的缺点,梯度法相邻的两个搜索方向是相互垂直的,迭代点越靠近极小值点则函数下降的速度越慢 对于N变量函数f(x1,x2,xN)而言,收敛到一个极小值的速度可能很慢 一般地,函数f的极小值在几何上使得值hmin很小,这导致需要大量的极小化过程 梯度法一般用于最优化过程开始的几步搜索,牛顿方法原理,由单变量函数的二次逼近求极小值的方法推广而得,以有N个独立变量的二次多项式的极小值来近似代替目标函数f的极

27、小值 对有N个独立变量的函数z=f (x1,x2,xN)而言,从初始点P0开始,递归构造出一个含N个变量的二次多项式序列 如果目标函数是良态的,并且初始点在实际极小值附近,则该二次多项式的极小值序列将收敛到目标函数f的极小值,黑森(Hessian)矩阵,定义8.5 设z=f(X)是X的函数,对于i, j=1, 2, ., N,存在。f 在X处的黑森矩阵是一个NN矩阵,其中, i, j=1, 2, ., N,例8.10,二阶泰勒多项式,定义8.6 f(X)在中心A处的二阶泰勒多项式为,设z=f (x1,x2,xN)的一阶和二阶偏导数存在,并在包含P0的一个区间内连续,f 在点P处有极小值。则 f

28、 在P0的泰勒展开为,Q(X)是一个N变量的二阶多项式,它可能在Q(X)=0有极小值,由Q(X)=0得f(P0)+(X-P0)(H f(P0)T=0 若P0在点P(f的极小值点)附近,则H f(P0)可逆,则可求得X=P0 -f(P0)(H f(P0)-1) T 用P1代替上式中的X,得P1=P0-f(P0)(H f(P0)-1) T 上式中,用Pk-1代替P0,Pk代替P1,得 Pk=Pk-1-f(Pk-1)(H f(Pk-1)-1) T 上式建立了一个迭代关系式,由此迭代关系式可生成点序列Pk(k=0,1,2,.) 但算法中涉及到矩阵求逆的运算,理论上虽然可行,实际上用它进行计算则效率很低

29、,改进的牛顿方法概要,设Pk已知 计算搜索方向Sk=-f(Pk-1)(H f(Pk-1)-1) T 在区间0, b上对()=f(Pk+Sk)进行单变量极小化,b为较大值。得到值=hmin它是()的极小值点。关系式(hmin)=f(Pk+hminSk)表明,它是f(X)沿搜索线X=Pk+hminSk的一个极小值 构造下一点,Pk+1=Pk+hminSk 进行终止条件测试,即函数值f(Pk)和f(Pk+1)是否足够相近,距离|Pk+1-Pk|是否足够小? 重复上述过程,无约束优化方法直接法总结,1 Nelder-Mead法(单纯形法) 思路清楚,收敛慢 2 坐标轮换法 计算效率较低 适合维数较低,目标函数无导数或导数较难求得 3 Powell法 具有二次收敛性,收敛速度较快,可靠性高,被认为是直接法中最有效的方法之一,无约束优化方法间接法总结,1 梯度法 方向: 负梯度,用到一阶导数 适合于精度不高或用于复杂函数寻找一个好的初始点 2 牛顿法 用到一阶导数和海色矩阵,具有二次收敛性 要求海色矩阵非奇异,且维数不宜太高,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报