机械优化设计鲍威尔法
机械优化设计鲍 威 尔 法班级:0841001成员:张波2010213217 张建2010213214 潘阳瑞2010213227 2013年6月鲍威尔法 鲍威尔(Powell)法是直接利用函数值来构造共轭方向的一种方法。 基本思想:在不用导数的前提下,在迭代中逐次构造G 的共轭方向。 一.基本算法:(二维情况描述鲍威尔的基本算法) 1)任选一初始点x 0 ,再选两个线性无关的向量,如坐标轴单位向量e 1 =[1,0] T 和 e 2 =[0,1] T 作为初始搜索方向。 2)从 x 0 出发,顺次沿 、 作一维搜索,得 、 点,两点连线得一新 1 e 2 e 0 1 x 0 2 x 方向 1 d 0 0 2 1 x x d 用 代替e 1, 形成两个线性无关向量 ,e 1 ,作为下一轮迭代的搜索方向。再 1 d 1 d 从 出发,沿 作一维搜索得点 ,作为下一轮迭代的初始点。 0 2 x 1 d 0 1 x 3)从 出发,顺次沿 、 作一维搜索,得到点 、 ,两点连线得一新方向: 1 x 2 e 1 d 1 1 x 1 2 x 。 1 1 1 2 2 x x d 沿 作一维搜索得点 ,即是二维问题的极小点 。 2 d 2 x * x 把二维情况的基本算法扩展到n维,则鲍威尔基本算法的要点是:在每一轮迭代中总有一个始点(第一轮的始点是任选的初始点)和n个线性独立 的搜索方向。从始点出发顺次沿n个方向作一维搜索得一终点,由始点和终点决定了 一个新的搜索方向。用这个方向替换原来n个方向中的一个,于是形成新的搜索方向组。替换的原则 是去掉原方向组的第一个方向而将新方向排在原方向的最后。此外规定,从这一轮的 搜索终点出发沿新的搜索方向作一维搜索而得到的极小点,作为下一轮迭代的始点。 这样就形成算法的循环。图1.二维情况下的鲍威尔法 二.改进算法 在鲍威尔基本算法中,每一轮迭代都用连结始点和终点所产生出的搜索方向去替 换原向量组中的第一个向量,而不管它的“好坏” ,这是产生向量组线性相关的原因所 在。 在改进的算法中首先判断原向量组是否需要替换。如果需要替换,还要进一步判 断原向量组中哪个向量最坏,然后再用新产生的向量替换这个最坏的向量,以保证逐 次生成共轭方向。 为此,要解决两个关键问题: (1) 是否较好?是否应该进入新的方向组?即方向组是否进行更新? 1 k d (2)如果应该更新方向组, 不一定替换方向 ,而是有选择地替换某一方 1 k d k d 1 向 。 k m d 改进算法的具体步骤:(1)给定初始点 (记作 ) ,选取初始方向组,它由n个线性无关的向量 , 0 x 0 0 x 0 1 d ,., 所组成,置 。 0 2 d 0 n d 0 k(2)从 出发,顺次沿 , ,., 作一维搜索得 , ,., 。接 k x 0 k d 1 k d 2 k n d k x 1 k x 2 k n x 着以 为起点,沿方向 k n x k k n k n x x d 0 1 移动一个 的距离,得到 k k n x x 0 k k n k k n k n k n x x x x x x 0 0 1 2 ) ( 、 、 分别称为一轮迭代的始点、终点和反射点。始点、终点和反射点所对应 k x 0 k n x k n x 1 的函数值分别为:) ( 0 0 k x f F ) ( 2 k n x f F ) ( 1 3 k n x f F 同时计算各中间点的函数值,并记为: (i=1,2,.,n) ) ( k i i x f f 因此有 , 0 0 f F n f F 2 计算n个函数值之差 , ,., 。 1 0 f f 2 1 f f n n f f 1 记作: (i=1,2,.,n) i i i f f 1 其中最大者记作: m m i n i m f f 1 1 max (3)根据是否满足判断条件 和 0 3 F F ,来确定是否要对原方向组进行 2 3 0 2 2 0 3 2 0 ) ( 5 . 0 ) )( 2 ( F F F F F F F m m 替换。 若不满足判别条件,则下轮迭代仍使用原方向组,并以 、 中函数值小者作 k n x k n x 1 为下轮迭代的始点。 若满足上述判别条件,则下轮迭代应对原方向组进行替换,将 补充到原方向 k n d 1 组的最后位置,而除掉 。即新方向组为 作为下轮迭 k m d k n k n k m k m k k d d d d d d 1 1 1 2 1 , ,., , ,., , 代的搜索方向。下轮迭代的始点取为沿 方向进行一维搜索的极小点 。 k n d 1 1 0 k x(4)判断是否满足收敛准则。若满足则取 为极小点,否则应置 , 1 0 k x 1 k k 返回2,继续进行下一轮迭代。这样重复迭代的结果,后面加进去的向量都彼此对G共轭,经 n轮迭代即可得到一个由n个共轭方向所组成的方向组。对于二次函数,最多n次就可 找到极小点,而对一般函数,往往要超过n次才能找到极小点(这里“n”表示设计空 间的维数) 。 图2.鲍威尔法的程序框图 题目:用改进的鲍威尔法求目标函数 的最优 2 1 1 2 2 2 1 2 1 2 4 2 ) ( x x x x x x x f 解。已知初始点[1,1]T,迭代精度 。 001 . 0 解:初始点 ,初始搜索方向, 。初始点处的函数值 ] [ 1 1 0 0 x ] [ 0 1 2 0 2 e d 。 3 ) ( 0 0 0 0 x f f F 第一轮迭代: 1)沿 方向进行一维搜索,得 : 0 1 d] [ ] [ ] [ 1 1 1 1 0 1 1 1 0 1 1 0 0 0 1 d x x 为一维搜索最佳步长,应满足极值必要条件: 1 ] 3 4 [ min ] [ min ) ( 2 0 1 1 0 0 0 1 d x f x f) ( min 0 4 2 ) ( 1 所以算出一维搜索最佳步长 2 1 得 ] [ 3 1 0 1 x 从而算出 点处的函数值及沿 走步后函数值的增量 0 1 x 0 1 d 7 ) ( 0 1 1 x f f 4 1 0 1 f f 2)再沿 方向进行一维搜索,得 0 2 d] [ ] [ ] [ 3 1 0 1 2 3 1 0 2 2 0 1 0 2 2