您好,欢迎访问三七文档
信赖域方法信赖域方法是求解最优化问题的另一类有效方法。其最初的设计思想可追溯至Levenberg和Marquart对Gauss-Newton法的修正。线搜索方法是把一个复杂的最优化问题转化成一系列简单的一维寻优问题。信赖域方法是把最优化问题转化为一系列相对简单的局部寻优问题。信赖域方法------基本思想牛顿法的基本思想:在迭代点kx附近用二次函数逼近原函数,21sGssgfsqxfkTTkkk并以sqk的的极小点ks修正,kx得到:.1kkksxx以上方法只能保证算法的局部收敛性,为了建立全局收敛性算法,阻尼Newton法采用精确一维搜索技术,信赖域方法是另一种新的保证算法全局收敛的方法。ksxx21()()()()()2TTkkkkkkfxfxgxxxxfxxx但它没有进一步利用二次模型。在每次迭代中给出一个信赖域,这个信赖域一般是当前迭代点的一个小邻域。然后在这个邻域内求解一个子问题,得到,接着用某一评价函数来决定是否接受该以及确定下一次迭代的信赖域。kxksks信赖域方法------基本思想如果试探步长被接受,则1,kkkxxs否则,1kkxx新的信赖域的大小取决于试探步的好坏,粗略地说,如果试探步较好,下一步否则信赖域扩大或保持不变,减小信赖域。信赖域扩大或不变;信赖域变小。信赖域方法------基本思想在每次迭代中给出一个信赖域,这个信赖域一般是当前迭代点的一个小邻域。然后在这个邻域内求解一个子问题,得到,接着用某一评价函数来决定是否接受该以及确定下一次迭代的信赖域。kxksks如果试探步长被接受,则1,kkkxxs否则,1kkxx信赖域扩大或不变;信赖域变小。信赖域方法------基本思想这个信赖域一般是当前迭代点的一个小邻域。接着用以及kx在每次迭代中给出一个信赖域,然后在这个邻域内求解一个子问题,得到,ks某一评价函数来决定是否接受该ks确定下一次迭代的信赖域。信赖域方法的模型子问题1min12TTkkkkqsfgssGs.ksts其中,,kkkxfgxxskG是Hesse阵kxf2的近似0k为信赖域半径.注:(1)这种方法既具有牛顿法的快速局部收敛性,又具有理想的全局收敛性。(2)不要求目标函数的Hesse阵是正定的。(3)利用了二次模型来求修正步长,使得目标函数的下降比线性搜索方法更有效。(4)由于步长受到使Taylor展开式有效的信赖域的限制,故方法又称为有限步长法。1min2TTkkkkqsfgssGs.ksts信赖域半径的选择根据模型函数sqk与目标函数xf的拟合程度来调整信赖域半径.k给定问题(1)的解,ks定义比值:0kkkkkkkkkfxfxsAredrqqsPred它衡量模型函数sqk与目标函数xf的一致性程度。,21sGssgfsqxfkTTkkkksxx1+kkkxxs1min(1)2TTkkkkqsfgssGs.ksts注:(1)kr越接近于1,表明模型函数与目标函数的一致性程度越好,可以增大k以扩大信赖域。(2)0kr不接近于1,可以保持k不变。(3)kr接近于零或取负值,表明与目标函数的一致性程度不好,可以减小k以缩小信赖域.()kqs()fx()fx()kqs0kkkkkkkkkfxfxsAredrqqsPred信赖域算法步骤1:给出,0nRx信赖域半径的上界,,0,012120,01,01,0.k步骤2:如果,kg停止.步骤3:求解子问题(1)得到.ks步骤4:计算kksxf和,kr令:othersxrsxxkkkkk111min12TTkkkkqsfgssGs.ksts0kkkkkkkkkfxfxsAredrqqsPred步骤5:校正信赖域半径,令:2212111111,min,),[,,0kkkkkkkkkkkrrr步骤6:产生1,kG校正(s),kq令,1kk转步骤2注:参数建议取:1,2,5.0,75.0,01.00212112TTkkkkqsfgssGs步骤2:如果,kg停止.步骤3:求解子问题(1)得到.ks步骤4:计算kksxf和,kr令:1min12TTkkkkqsfgssGs.ksts信赖域子问题折线法基本思想如果令信赖域的半径k在区间,0内连续变化,则问题(1)的解ks在空间nR中形成一条光滑的连续曲线,记为.kop此时,问题(1)等价于在信赖域内并且在最优曲线kop上确定一点使二次函数取极小,即sqkkkopksstssq,.min由于最优曲线的确定需要计算矩阵kG的所有特征值和特征向量,相当费时。1min12TTkkkkqsfgssGs.ksts用低维空间内满足一定要求的折线,记为,k代替最优曲线。通过求解:min2.,kkkqsstss得问题(1)的近似解.ks注:1:求解(2)的一个突出特点在于:近似折线k一经确定,对于给定的,k无需再解任何线性方程组,即能相当有效地确定问题(1)的近似解。折线法:2:构造近似最优曲线kop的折线时,一般应满足:当点x从kx出发沿着折线前进时:性质1:点x到kx的距离单调增加;性质2:函数值sqk严格单调下降;性质1确保对任意给定的,k折线上的近似解惟一。性质2确保在折线上所确定的近似解ks能满足收敛性定理的条件。折线法算法原理(1970)连接Cauchy点C.P.和牛顿点1,Nkx与信赖域的边界的交点,取为.1kx显然,.1kkkxxCauchy点:由最速下降法迭代一步产生的点,记为C.P.Newton点:由牛顿法迭代一步产生的点,记为,kqs折线NkkxPCx1..称为单折线.:kkx..CP()kfx1kx1Nkx针对二次函数从当前迭代点出发,1,Nkxkx折线法算法原理(1970)连接Cauchy点C.P.和牛顿点1,Nkx其连线与信赖域的边界的交点取为.1kx显然,.1kkkxxCaushy点=?Newton点=?1=kx?kx..CP()kfx1kx1Nkx精确一维搜索求最佳步长.2kkTkkkgGggCauchy步为:ckkksdCaushy点:=(+)kkkqxd=-,kkdg12TTkkkkqsfgssGs221=2TkkkkkkkkqxgfxggGg令'=0,得1.TcckkkkkkkTkkkggxxsxggGgCaushy点为:.TkkkkkTkkkgggggGgNewton步为:Nkkksd12TTkkkkqsfgssBsNewton点:11.NNkkkkkkxxsxGg1,kkkdGg1,k1,kkGgNewton点为其中由方程1cNckkkkkkxxsss得到。Cauchy步为:1.TckkkkkTkkkggxxggGgCaushy点为:,TckkkkTkkkggsggGgNewton步为:11.NkkkkxxGg1,NkkksGgNewton点为.1kkkxx111=1cNkkkxxx=1cNkkkxss=cNckkkkxsss折线法算法原理(1970)当Newton步的长度kNks时,111;NkkkkkxxxGg当ckks取,kkkkggs1;kkkkkxxgg时,综上:11,,ckkkkkkcNccNkkkkkkkkkcNkkkkkkkxgsgxxsssssxGgss双折线法(1979)让信赖域迭代中产生的点偏向牛顿方向,于是把Cauchy点和牛顿方向上的Nˆ点连接起来,并将这条连线与信赖域边界的交点取为.1kxNkkxNPCx1ˆ..称为双折线.折线1..NkkxCPx称为单折线,1ˆ..NkkxCPNx称为双折线(信赖域迭代中产生的点偏向牛顿方向,会改善算法的性态).在双折线情形下:kNkkckkkkkNkkckckNkckkkckkkkkkssgGxsssssxsggxxˆ1ˆˆ1,,其中.,1,,14ˆkkTkkkTkkNkNkgGggGggss一般取.2.08.0例1:设,222141xxxxf在当前点,1,1Tkx,21k试用双折线法求.1kx解:1401,1,6,2,02TTkkkxgGTkkNkgGs1,731156.0469.026512402kkkTkkckggGggs由于,kcks计算,ˆNks有:684.073251240214kkTkkkTkkgGggGgg747.02.08.0747.0320.0ˆNkNkss由于,813.0ˆkNks故取双折线步长为:1,0ˆckNkckkssss使得,kks解二次方程22ˆkckNkcksss得.867.0因此669.0340.0867.0ˆckNkckkssss所以331.0660.01kkksxx[s,val,posdef,count,lambda]=TRUST(g(x),B,d);TRUST是matlab自带的求解信赖域子问题的函数,利用它信赖域方法的程序就简单多了。课件下载邮箱邮箱名:xdgongchengyouhua@126.com(xd+工程优化的小写全拼)密码:xidian123
本文标题:工程优化第4章-5
链接地址:https://www.777doc.com/doc-2443450 .html