1、 现代机械优化设计授课老师: 王春洁 2014-12-17北京航空航天大学 现代机械优化设计第 1 页目录第一部分一、 一维优化方法 .21. 进退法 22. 格点法 23. 牛顿法 24. 二次插值 3应用原则: .4二、 多维无约束优化 .41. 梯度法 42. 二阶牛顿法与阻尼牛顿法 .53. DFP 变尺度法 64. 单纯形法 6三、 多维约束优化 .61. 随机方向搜索法 82. 可行方向法 83. 惩罚函数法 8第二部分一、 采用有约束多维优化方法解决箱梁模板的设计问题 101.1 问题的描述 111.2 多维约束优化 14总结与致谢 .18参考文献 .19北京航空航天大学 现代机
2、械优化设计第 2 页第一部分本部分为简述学过的优化算法(一维,多维无约束,多维有约束)的选择方法及应用原则。一、 一维优化方法1. 进退法由单峰函数的性质可知,在极小点 左边函数值应严格下降,而在极小值mx右边函数值应严格上升。因此,可从某一个给定的初始点 出发,以初始步长0x沿着函数值的下降方向,逐步前进(或后退) ,直至找到相继的 3 个试点的函0h数值按“高- 低- 高”变化为止。2. 格点法格点法是一种计算极其方便的方法,其迭代步骤可简要概括为把搜索区间等分成 n 个点 ,计算各个点对应的数值,取出函数值最小的点的横12,nx坐标 ,之后,在 两侧取临点 ,作为新的区间并判断mm1,m
3、x是否成立,倘若成立,则 就是最优解,对应的函数值 即为1xeps my最优值;若不成立则以 为新区间重复以上过程直到满足条件为止。13. 牛顿法牛顿法是用切线代替弧,逐渐逼近函数根值的方法。当目标函数 有一()fx阶连续导数并且二阶导数大于零时,在曲线 上作一系列切线,使之与()yfx轴的脚垫 逐渐趋于 的根 。x(0)1(2)3,.xx0f*对于一维搜索函数 ,假定已经给出极小点的一个较好的近似点 ,)yf 0在 点附近用一个二次函数 来逼近函数 :0()f20000012ffff然后以该二次函数 的极小点作 极小点的一个新的近似点 。根()() 1据极值必要条件: 即: 000ff可得:
4、 100f依次继续下去可得到牛顿迭代公式: 1 ,12.kkf北京航空航天大学 现代机械优化设计第 3 页其具体计算步骤概括为:1) 给定初始点 ,控制误差 ,并令 ;00k2) 计算 , ;()kf()kf3) 根据牛顿迭代公式求 ;14) 若 则求得近似解 ,停止计算,否则转到 5) ;1ka*1ka5) 令 转到 1) 。4. 二次插值二次插值是多项式逼近法的一种。所谓多项式逼近,是利用目标函数在若干点的信息(函数值,导数值等) ,构成一个与目标函数值很接近的低次插值多项式,然后利用该多项式的最优解作为函数的近似最优解,随着区间的逐次缩短,多项式函数的最优点与原函数最优点之间的距离逐渐减
5、小,直到满足一定的精度要求时迭代终止。设原目标函数在 的三个点对应的函数值 则可123x123()()fxffx作出如下多项式: 201()Pxa多项式 的极值点可从极值的必要条件求得:()P2px即: 12pa又由于: 1011Pxxf22a30133f根据以上各式可知: 1132pcxx式中: 311ffcx21123ffc以上是插值法的公式推导过程,根据其基本思想概括其迭代过程如下:1) 确定初始搜索区间,定出初始插值结点;2) 利用式与计算 与 ;px()pf3) 终止条件判断 当 时,如果 ,则 为所求的极小点;如果2|2)(mfxfmx北京航空航天大学 现代机械优化设计第 4 页,
6、则 为所求的极小点;2()mfxf2x 当 时,则需比较 的大小,以便在 中丢2|p2(),mfx123,mx掉 或 ,得到新的三点,然后再转 2)。13应用原则:一维优化算法是求一维目标函数的最优点和最优值。求单变量的极值问题,但是在很多时候函数的求导很困难,甚至根本不可导,而且计算机不擅长求导,求导是用其他算法实现的,计算量大,需要的时间长。所以在优化过程中一般不采用解析法而采取直接探索法求最优点。这种求优方法称为一维优化方法。求解一维的最小值一般分为两步。第一步是确定函数值最小值所在的区间a,b,称为搜索区间;第二步是在该区间内求出最优步长因子或最优值。确定搜索区间的方法:进退法、外推法
7、。一维最优化算法分有格点法、二次插值法、三次插值法等。格点法结构和程序很简单,但效率偏低;二次插值法和三次插值法的搜索效率较高,收敛速度较快,调用函数次数少。三次插值法的效率比二次插值法更高,在同样搜索次数下,其精度更高,但程序复杂,可靠性差些,对高维数的优化问题更适宜,经过某些技术处理,方法的可靠度可以大为提高。二、 多维无约束优化1. 梯度法函数的梯度方向是函数值增加最快的方向,则负梯度方向必然是函数值下降最快的方向,所以在优化中采取负梯度矢量作为一维搜索的方向,成为最速下降法,也叫一阶梯度法。 (此法属于解析法,既间接求优法)梯度法的迭代过程简单,对初始点的选择,要求不高。梯度方向目标函
8、数值下降迅速只是个局部性质,从整体来看,不一定是收敛最快的方向。以二维二次函数为例,相邻两次的搜索方向是正交的,所以搜索路径是曲折的锯齿形的;对于高维的非线性函数,接近极值点处,容易陷入稳定的锯齿形搜索路径。目标函数在点 的梯度为:kx T12 .kkkk nffffxx 搜索方向为梯度方向:北京航空航天大学 现代机械优化设计第 5 页kkfxs梯度法的迭代公式为: 1 kkkkkfxx 式中: 是函数 在迭代点 处的梯度;ks()fk最优化步长。()概括其迭代过程为:1) 任选初始迭代点 ,选定收敛精度 ,令 ;(0)x0k2) 确定 点的梯度 ,并确定搜索方向 ;()kx()kf()S3)
9、 判断是否满足迭代终止条件 ,若满足,则给出最优解()|kfx,否则转向下一步;()*,(*)kyf4) 从 出发,沿负梯度方向做一维搜索,求最优步长 ;()k()()()()minkkkkxSfS05) 令 , ,返回 2) 。(1)()kkx 12. 二阶牛顿法与阻尼牛顿法二阶牛顿法与一维搜索方法中的牛顿法类似,只需将其推广到 n 维。利用二次函数(二次曲线) 来逐点去近似或者逼近目标函数 ,然后求出这个()x()fx二次函数的极小点 ,作为对原目标函数求优的下一个迭代点 ,通过若干*0 (1)k次的重新迭代,使迭代点逐步逼近元目标函数极小点 。*二阶牛顿法的一般迭代公式: (1)()2(
10、)1()kkkkxfxf式中 就是 Hessian 矩阵,可写为:2()kfx(1)()()1()kkkkHf阻尼牛顿法是在二阶牛顿法基础上进行修正得到的。在上述牛顿法中,存在一个问题,由于迭代式中没有步长因子,所以有时候函数值反而会有所增大,即: (1)()kkfxf从而可能造成发散导致计算失败。所以要对牛顿法进行修正。通过将步长改用为最优步长因子 ,将迭代式改写为:()k1()()()1()kkkHfx此时: ()()()kkkSx迭代步骤如下:1) 任选初始点 ,给定精度 ,同时置 ;(0)x002) 计算 点的梯度和海鳃矩阵的逆矩阵;()k北京航空航天大学 现代机械优化设计第 6 页3
11、) 检验是否满足精度要求 ,若满足停止迭代,否则进行步骤 4) ;()|kfx4) 令 ;()()1()kkkSHx5) 从 出发沿牛顿方向 进行以为搜索:0()()()()minkkkkfxSfxS求出最优步长 ;()k6) 令 , ,转步骤 2) 。(1)kxS1当初始点选择得当的时候,两方法是目前算法中收敛速度最快的一种(尤其对于二次函数),但是初始点选择不当的时候,会影响收敛导致计算失败,不过对于修正牛顿法,即使初始点选择不当,也能求出最优解。在应用时,两方法要计算一二阶偏导数及 Hessain 矩阵的逆矩阵,准备工作量较大,程序较为复杂,存储量也大,特别的,当变量较多时,因为次数较高
12、,Hessain 矩阵是奇异矩阵,逆矩阵不存在,因而不能使用牛顿法。3. DFP 变尺度法由于梯度法和牛顿法具有各种缺点,为弥补上述缺点,综合了两种方法各自的优点,提出了变尺度法。变尺度法迭代公式为: (1)()()()kkkkxAfx它可以看成是梯度法和牛顿法的改进算法,当 时,上式变成梯度法:()kAI(1)()()()kkkf当 时,上式变成牛顿法:()1kH(1)()()1()kkkxHfxDFP 变尺度法综合了梯度法、牛顿法的优点而又避弃它们各自的缺点,只需计算一阶偏导数,无需计算二阶偏导数及其逆矩阵,对目标函数的初始点选择均无严格要求,收敛速度快。在应用时,对于高维(维数大于 50
13、)问题,变尺度法被认为是无约束极值问题最好的优化方法之一。4. 单纯形法所谓单纯形是指变量所属的 中,由 n+1 个线性独立的点构成不可分割的()nR简单几何图形。对于二维问题,线性独立是指不在同一条直线上的三个点构成的三角形。对于三维问题就是不同平面上的四个点构成的空间四面体,对 n 维问题就是由 n+1 个顶点构成的凸多面体。它的基本思路是:对构成单纯形的各个顶点的函数值进行比较,从函数的大小可以判断出函数变化的大致趋势,舍去最坏点,代之以好点,构成新的单纯形逐步向最优点逼近。它不同于前面的沿某一方向进行的一维搜索思想。其迭代过程包括:反射,延伸,压缩,缩边。单纯形法属于直接法,这类方法甚
14、至适用于未知目标函数的数学表达式而只知道他的具体算法情况,程序简单,收敛快,效果好,适用于中小型问题。北京航空航天大学 现代机械优化设计第 7 页三、 多维约束优化根据处理约束条件的不同,约束优化方法分为直接法和间接法两类。在迭代过程中逐点考察约束,并使迭代点始终局限于可行域内的算法称为直接法,如随即方向法、可行方向法、复合形法等。把约束条件引入目标函数,将约束优化问题转化为无约束优化问题求解的算法称为间接法,如惩罚函数法。(1)直接法:是设法使每一次迭代产生的新迭代点限制在可行域内,且一步一步地降低目标函数的值,直到获得一个在可行域内的约束最优解。但需要满足可行性和适用性。可行方向法用于解决
15、不等式约束优化问题(IP 型) ,在有约束优化问题中,可行方向法求解大型约束优化问题的主要方法,并且收敛速度快、效果好,但程序较复杂,它解决具有不等式约束优化问题,也是用梯度法求解约束非线性最优问题的直接方法之一。适用可行法的条件:目标函数沿该方向下降。求优过程中,探索方向必须是在可行域内:a 可行域内;b 在容许的约束边界上;c 已越出可行域,则通过计算取得新的步长,使其迭代点返回至可行域前的边界上。(2)间接法:用无约束方法解决有约束问题约束优化类型:不等式约束优化问题(IP 型)等式约束优化问题(EP 型)一般约束优化问题(GP 型)注:等式约束条件小于变量个数。惩罚函数法是一种使用很广
16、泛、很有效的间接法。其基本原理是将约束优化问题转化为无约束优化问题求解的一种算法,其有两个前提条件:一是不破坏原约束的约束条件;二是最优解必须归结到原约束问题的最优解上去。按照惩罚函数的构成方式,惩罚函数法分为三种:内点法、外点法和混合法。内点罚函数是在可行域内逐步逼近最优解,解决不等式问题。内点法只适用于解不等式约束优化问题。由于内点法需要在可行域内部进行搜索,所以初始点必须在可行域内部选取可行设计点。内点法的突出优点在于每个迭代点都北京航空航天大学 现代机械优化设计第 8 页是可行点。因此,当迭代达到一定阶段时,尽管尚没有达到最优点,但也可以被接受为一个较好的近似解。外点法是解决等式或不等
17、式问题。混合罚函数法是指用罚函数法解决有等式约束和不等式约束的一般约束(GP 型)优化问题的方法,把它称为混合惩罚函数法,简称混合法。1. 随机方向搜索法在可行域内选择一个初始点,利用随机数的概率特性,产生若干个随机方向,并从中选择一个能使目标函数值下降最快的随机方向 作为搜索方向,从d初始点 出发,沿 方向以一定步长进行搜索,得到函数值最小的一点 ,若0xd lx,则以 方向为搜索方向,以适当的步长 h 向前跨步,得到()lff0()lx新点 ,若 ,则将 ,重复前面的过程,否则就缩短步长11)f10xh,直到步长 (或者其他的判别方法) ,就结束计算,取得约束最优解。h约束随机方向搜索法的
18、程序结构简单,使用方便,这种方法对于目标函数的性态无特殊要求,由于其搜索方向是从许多当相中选择最好的方向,加之可随机变化的步长,因此收敛速度快。常用于小型优化问题的求解,但为了避免所求的结果是局部最优解,往往需要选择几个不同的初始点, ,从几次计算结果中做出正确的分析,得出全局最优解。2. 可行方向法可行方向法的基本思想是从可行点出发,沿着可行下降方向进行搜索,求出使目标函数值下降的新的可行点,算法主要包括选择搜索方向和确定搜索步长的两个方面,概括其基本迭代格式为:1) 从可行点 开始迭代,设已得到可行点 ;0xkx2) 在 处用某种方法确定一可行下降方向 ;k d3) 在 方向上寻找新的迭代
19、点 ,使得 是可行点且d1kkx1k,令 ,转至 2)直到满足条件停机。1()(kkff可行方向法是求解大型约束优化方法问题的主要方法之一,其收敛速度快,效果好,但是程序较为复杂。一般当求解大中型的约束优化问题,且可行域为连续闭集,目标函数和约束函数均为设计变量的连续函数,可采用可行方向法求解。3. 惩罚函数法罚函数法的基本思想是用约束条件去构造一个制约函数,当约束条件不满足是,该函数就受到制约,反之当约束条件满足条件时,则不受制约,吧目标函数和约束条件函数一起构成一个新的函数,将约束问题化成一系列无约束问题求解。要保证如下两点:一是不能破坏约束问题的约束条件,二是使它归结到原约束问题的同一最
20、优点上去。一般形式为:北京航空航天大学 现代机械优化设计第 9 页()()1, ()mkkuxrfrGgx新的目标函数称为增广目标函数,上式右端第二项成为惩罚项, 称为罚()kr因子,是一个递增或者递减的数列,在迭代过程中,使惩罚项起的作用越来越小,最后使得: ()li()0kurgx根据惩罚项的不同,罚函数法可分为内点罚函数法,外点罚函数法以及混合罚函数法。1) 内点罚函数法他要求迭代过程均在可行域 g 内进行,因此在可行域 g 的边界上设置一道屏障,使迭代点靠近 g 的边界时给出的函数值很大,甚至趋近于无穷大,离边界较远的可行域内,新旧函数值尽量接近,因此惩罚函数的形式为: ()()1,m
21、kkuxrfrgx或者: ()()1, ln()kkurfr2) 外点罚函数法外点法是将惩罚函数定义于可行域外,且求解无约束问题的搜索点是从可行域外部逼近元目标函数的最优解。外点惩罚函数的构造形式一般为: ()() 2()211, min0,pkk ki ji jxrfrgxrhx上式中的 是递增数列:()M0(1)()()()(),l,kkkkCg。动作三:内模整体下降,在此过程中,G1 点的 Y 轴位置应该更大。即:值最大。这样可以得到所有的约束条件和所需函数:北京航空航天大学 现代机械优化设计第 15 页1.2 多维约束优化多维约束优化分为直接法和间接法。在直接法中,每一步的迭代解都要服
22、从两个条件:可行性和使用性。解的可行性是指每一步的迭代解都应当在可行域的范围之内。解的使用性是指每一步的迭代解都应是较上一值更优的。使用的轮换法就是一种典型的直接优化方法。间接法是指通过一定的方法将优化问题转换,使其去除约束,成为无约束优化问题,从而使用无约束优化的方法来解决。其中惩罚函数法为较为常用的间接法。一般问题的可行域为:在约束范围中存在某个点 X*,使其周围每个点距离小于 e0 时,f(x)f(X*)。则称: X 为一个局部最优解。在一个问题中,可能存在多个局部最优解。全局最优解为所求问题的最小值,全局最优解一定在局部最优解中,故只需在局部最优解中寻找最小值即可。轮换法为一种直接求解
23、的有约束优化方法,建立在多维无约束优化方法的基础上。基本思想为:寻找某维上的最小值直至找到或超出范围,换维继续寻找,直至到达终止条件。步骤可以简单描述:1选取一个步长 a,初始值 x(0)和终止条件 e;2沿 x(0)中的第一维方向进行搜索,其初始步长为 a;3当 x(0)的第一维方向以 a=2a 的速度进行搜索,直至 f(x)开始增大(找到局部最优解)或 x 超出约束条件;4退回当前步长 a,将此 x(0)的第一维方向记做 x(1)的第一维方向,增加一维从新进行 24 步过程;北京航空航天大学 现代机械优化设计第 16 页5当 x(0)达到其最大维数,使用所记录的 x(1)进行新的搜索,此时
24、,a=a/2;6如此循环直至达到终止条件 。其流程图基本如下:图 3 轮换坐标法的流程图惩罚函数法是一种间接求解的多维有约束优化算法,数学模型与轮换法类似,不过引入了一个新的条件,罚函数:此罚函数须满足两个条件:北京航空航天大学 现代机械优化设计第 17 页1不破坏原函数的约束条件;2 取最小值时的 x 为 f(x)取最小值时的 x。通过引入罚函数,原问题变成了高维的无约束优化问题,可以使用无约束优化方法进行求解。具体步骤如下:1在可行域内选择初始点 x0 可根据经验选择;2确定初始罚因子 r0 和 C,并确定 K 值为 0;3求罚函数的最小值,解出最优点 Xk;4当 K=0 时,跳至步骤 5
25、,否则至 6;5K=K+1, r(K+1)=Cr(K),X K+1=XK,转至步骤 3;6判断终止条件,满足则继续到 7,否则至步骤 5;7输出 f(x)与 x。其路程图大致如下:图 4 罚函数法的流程图结束条件通常有两个,一为两次的 X 值的变化较小,即 ,北京航空航天大学 现代机械优化设计第 18 页,二为两次的 F(x)值变化较小,即 ,。在实际问题中,应当先建立正确的模型以进行进一步的分析。对问题的分析后给出的数学模型建立如下:其中,X,Y, c ,c1 作为未知量进行轮换,而下面四个为约束条件,函数 F(x)是个求最大值的函数,故可将 F(x)=-F(x)。使用轮换坐标法对其进行优化
26、,将 X(X,Y, c,c1 )作为坐标四维向量进行轮换运算。当达到结束条件时,可终止运算。对模型的建立,罚函数法与坐标轮换法基本一致,分析出的目标函数和约束条件,在运算时,罚函数用 (x)的形式表示。即,因为约束条件为 4 个,且只存在 的形式。使用此罚函数进行多维无约束优化运算,达到终止条件时对其终止,可得到优化结果。通过使用坐标轮换法对箱体的压模进行设计后,得到了较好的结果,虽然同实际的结果存在着一定的差异。因为在实际工作中,需考虑到物体的强度等更多的因素,需增加更多的约束条件。从整体看来,机械优化是一种先进有效的优化方法,它有效的运算了在多维有约束的条件下,机械设计的最优解的求得。在各
27、个领域里均得到了广泛的运用,有效的提高了产品的质量与设计。机械优化设计是适应生产现代化要求发展起来得一门新兴学科,它是在现代机械设计理论的基础上提出的一种更科学的设计方法,它可使机械产品的设计质量达到更高的水平。并且,随着对运算要求的不断提高,更多的优化方法也被提出,如遗传算法,模拟退火算法,神经网络算法,蚁群算法。这些方法更能快北京航空航天大学 现代机械优化设计第 19 页速有效的提高了优化的运算,为机械的设计提供了更好的工具。总结与致谢通过学习现代机械优化设计这门课,我学到了许多在读本科时就经常听到的优化算法,这次学习让我从原理上,本质上真正认识到了这些算法的实现过程。受益颇多。通过这学期
28、机械优化设计的学习,让我明白在设计机械零部件的过程中要从优化设计的角度考虑问题,将实际问题抽象成数学模型,并运用所学的优化知识使机构最优化。和其他的课不同,这门课学习的是一种解决问题的方法和思路,有了方法和思路,而且老师给出了算法的流程图,就可以根据实际问题编写程序,计算最优解。感谢王老师的授课和指导,您严谨的工作态度和上课的激情激励着我不断奋进。北京航空航天大学 现代机械优化设计第 20 页参考文献1 梁尚明, 殷国富. 现代机械优化设计M. 北京:化学工业出版社, 2005:98-104.2 张翔, 陈建能. 机械优化设计 M. 北京:机械工业出版社 , 2012:85-89.3 孙靖民, 梁迎春. 机械优化设计M. 第四版. 北京:机械工业出版社, 2007:121-124.