收藏 分享(赏)

单纯形法解决无约束优化问题.doc

上传人:精品资料 文档编号:10624691 上传时间:2019-12-09 格式:DOC 页数:7 大小:168.60KB
下载 相关 举报
单纯形法解决无约束优化问题.doc_第1页
第1页 / 共7页
单纯形法解决无约束优化问题.doc_第2页
第2页 / 共7页
单纯形法解决无约束优化问题.doc_第3页
第3页 / 共7页
单纯形法解决无约束优化问题.doc_第4页
第4页 / 共7页
单纯形法解决无约束优化问题.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、分 数: _任课教师签字:_课程作业学 年 学 期:20172018 学年第二学期课 程 名 称:优化理论作 业 名 称:作业三学 生 姓 名:学 号:提 交 时 间:一、问题重述形如的 问题称为无约束优化问题,常用下降算法来解决这min(x),Rnf类问题。下降算法的关键在于步长和搜索方向的选取。步长的求取可以借助前面作业中提到的一维搜索等方法求取,而搜索方向算法可以分为两大类,解析法和直接法。解析法借助了目标函数的导数进行搜索,这类算法搜索速度快、效率高,但是对目标函数的要求更为严格。常用的方法有最速下降法、Newton 法、共轭梯度法、拟 Newton 法等。直接法不使用导数,也不需要得

2、到目标函数的明确解析式,只需要能够得到某些函数上的点即可。因此直接法的适用范围更广,但相应的收敛速度会较慢,计算量也会随着问题维数的增加而迅速增大。常用的方法有单纯形法、Powell 方向加速法以及 Powell 改进算法。本作业以直接法的 Powell 法为例,解决具体的无约束优化问题,并对将Powell 方向加速法和 Powell 改进算法解决结果进行对比。二、算法原理对于 n 维正定二次函数 ,设 关于(x)0.5TfGbxc01,.(kn)pG 共轭, 与 为任意不同点。分别从 与 出发,依次沿 作一维0x1 1 1,p搜索。如果最后找到两个互不相同的极小点 与 ,则 与 关abbax

3、0.k于 G 共轭。Powell 方向加速法正是基于这一原理,每次迭代过程作 n+1 次一维搜索。第一次沿给定的 n 个线性无关的方向 依次作一维搜索,之后沿由这01,.np一阶段的起点到第 n 次搜索所得到的点的方向 P 再做一次一维搜索,并把这次所得点作为下一阶段的起点,下一阶段的 n 个搜索方向为 。以此01,.,np直到找到最优解。此算法是在迭代中逐次生成共轭方向,而共轭方向又是较好的搜索方向,所以称之为方向加速法。但是,此算法产生的 n 个向量可能线性或近似线性相关,这时张不成 n 维空间,可能得不到真正的极小点。因此,Powell 原始算法存在一定的缺陷。Powell 改进算法虽然

4、不再具有二次终止性,但克服了搜索方向的线性相关的不利情形,是解决无约束优化问题较有效的直接法之一。本次作业一维搜索的过程是利用函数求导,求得最小值。经过试验发现, 是允许为负数的。否则最终寻优得到的极值点与实际结果存在很大的偏差,而且寻优的效率特别低下。三、算法流程Powell 算法流程图:开 始目 标 函 数 F(x)初 始 点 x0最 大 误 差Error设 初 始 搜 索 方 向Pi=ei,i=0,1,.n-1从 x0依 次 沿Pi,(i=0,1,.n-1)进 行 一 维 搜 索 得 到 xn|xn-x0|=F0或(F0-2Fn+F*)(F0-Fn- )0.5(F0-F*)2Pk=Pk,

5、k=1,2,m;Pk=Pk+1,k=m+1,.n-1;Pn=(xn-x0)/|xn-x0|YYNN图 2 Powell 改进算法流程图四、实验验证1、设目标函数 ,收敛精度为 0.001,初始点(-4212(x)(x)f2,2) 。利用 Matlab 自带的函数求二元函数极值点函数 fminsearch,求得极值点为(-0.630,-1.500),最小值为-1.722。以此为标准,检验 Powell 方向加速法和Powell 改进算法的寻优结果。Powell 方向加速法经过 2 次迭代,求得极值点(-0.630,-1.500) ,对应的最小值-1.722;Powell 改进方向加速法经过 2

6、次迭代,求得极值点(-0.630,-1.500) ,对应的最小值 1.722。2、设目标函数 ,收敛精度为 0.001,初始42121(x)(x)f点(-2,2) 。利用 Matlab 自带的函数求二元函数极值点函数 fminsearch,求得极值点为(0.5827,-1.7913),最小值为-1.5109。以此为标准,检验 Powell 方向加速法和 Powell 改进算法的寻优结果。Powell 方向加速法经过 4 次迭代,求得极值点(0.5827,-1.7912) ,对应的最小值-1.5109;Powell 改进方向加速法经过 2 次迭代,求得极值点(-0.630,-1.500) ,对应

7、的最小值 1.722。两种方法对应的寻优过程如下图所示。x1x2Pwoell优优优优优优优优优12 3 45-3 -2 -1 0 1 2 3-8-6-4-2024x1x2Pwoell优优优优优优优12 345-3 -2 -1 0 1 2 3-8-6-4-2024图 3 Powell 直接与改进法寻优过程四、算法程序1、Powell 方向加速关键部分算法:error=0.001; x_process =-2,2; dimensions=2;P=eye(dimensions);zeros(1,dimensions);%初始搜索方向syms aerfa;while(1)x_zero=x_proces

8、s;for i=1:dimensions%沿着 P(i,:)方向进行一维搜索f=F_Object(x_process+aerfa*P(i,:);aerfa_process_all=double(real(solve(diff(f);F_process_j=;for j=1:length(aerfa_process_all)aerfa_process=aerfa_process_all(j);x_process_j=x_process+aerfa_process*P(i,:);F_process_j=F_process_j F_Object(x_process_j);end,j=min(F_pr

9、ocess_j);aerfa_process=aerfa_process_all(j);x_process=x_process+aerfa_process*P(i,:);endif norm(x_process-x_zero)=F_process(1)|(F_process(1)2*F_process(dimensions+1)+F_Object_xing)*(F_process(1)-F_process(dimensions+1)-F_Object_data)20.5*(F_process(1)-F_Object_xing)2*F_Object_data)x_zero=x_process;e

10、lsefor i=m:dimensions-1 P(i,:)=P(i+1,:); endP(dimensions,:)=(x_process-x_zero)/norm(x_process-x_zero);f=F_Object(x_process+aerfa*P(dimensions,:);aerfa_process_all=double(real(solve(diff(f);%一维搜索F_process_j=;for j=1:length(aerfa_process_all)aerfa_process=aerfa_process_all(j);x_process_j=x_process+aerfa_process*P(i,:);F_process_j=F_process_j F_Object(x_process_j);end,j=min(F_process_j);aerfa_process=aerfa_process_all(j);x_process=x_process+aerfa_process*P(end,:);x_zero=x_process;endend

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

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

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


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

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

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