热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

Powell算法、Powell修正算法_matlab仿真

1.鲍威尔基本算法的运算流程1.采用坐标轮转法顺次沿n个坐标轴方向[e1,e2,,en]进行一维搜索。然后以初始点X(0)和终点Xn(1)构成一个新的方向S(1),并以此
1.鲍威尔基本算法的运算流程
1.采用坐标轮转法顺次沿n个坐标轴方向[e1,e2,...,en]进行一维搜索。然后以初始点X(0)和终点Xn(1)构成一个新的方向S(1),并以此方向为搜索方向在做一维搜索得到极小值点X(n+1)(1)。
2.去初始点X0(2)=X(n+1)(1),并去掉元搜索方向组中的第一个方向S1(1)=e1,而将第一轮构成的新搜索方向S(1)作为最末一个方向[e2,e3,...,en,S(1)],以此组成第二轮迭代的n个方向。
3.依此进行下去,直到获得满足迭代收敛精度要求的近似最小点为止。
评价:
Powell基本算法仅仅具有理论的意义,不要说对于多维的复杂函数,就是对于二次函数,他也可能失效。因为基本算法中,没有衡量过n个搜索方向是否会变成线性相关?一旦搜索方向存在相关关系,就不能形成共轭方向,从而长不成n维空间。导致随后的迭代搜索在降维空间(退化空间)中进行,求不到极值点。
2.鲍威尔修订算法

1.核心

在每一轮产生新的搜索方向S(k)后,首先判断原搜索方向组是否可以直接用于下一轮迭代的搜索方向组,如果可以,就仍然用它,否则进一步判断原搜索方向组中哪个方向上函数值下降量最大,或者贡献最大,然后再用新搜索方向替换这个贡献最大的搜索方向,以保证逐次生成共轭方向,确保n维搜索方向始终线性无关。


对于第K轮迭代:搜索方向组[S1(k),S2(k),...,Sm(k),...,Sn(k)]
记:f(0)=f(X0(k))  , f(1)=f(Xn(k)) 。映射点:f(2)=f(2*Xn(k)-X0(k))
△m(k)={f( X(i)(k) )- f( X(i-1)(k) ),i=1,2,...,n}  记:Sm(k)为与△m(k)相对应的搜索方向.
S(k)=Xn(k)-X0(k)(???我们要判断这个新方向是否值得一用???)

2.Powell条件

1.f2
2.(f0-2f1+f2)(f0-f1-△m(k))<0.5△m(k)(f0-f3)^2
若两个条件可以同时成立,则用S(k)代替Sm(k);否则仍用原来的方向组

3.Powell修订算法流程设计

注:Xm(k)代表第k轮搜索第m个方向后得值。(m
1.任选初始点X(0)=X0(1),给定迭代收敛精度Err1,Err2。取初始基本方向组为单位坐标向量系,即
S(m)(1)=e(m).(i=1,2,...,n),并置迭代轮次k=1。
2.从X0(k)出发,依次沿S(m)(k)(m=1,2,...,n)做一维搜索,得n个极小点X(m)(k);构造新的搜索方向S(k)=X(n(k))-X(0)(k)。并沿此方向进行一维搜索的极小点X(n+1)(k)。
3.判断迭代终止条件。A:||X(n+1)(k)-X0(k)||≤Err1???  或B:|f(X(n+1)(k))-f(X0(k))|≤Err2|f(X(n+1)(k))|。若满足两者其中的一个,则终止迭代并输出最优解:X* = X(n+1)(k)  和 最优值 f* = f(X*)。否则,继续下面的迭代工作。
4.计算f(X(m)(k)),m=1,2,3,...,n,并求沿各个搜索方向上的下降的差值,选择下降最大者。
△m(k) = max{X(m-1)(k) - X(m)(k),m=1,2,...,n}=f(m-1)-f(m),及与之对应的两个点X(m-1)(k)、X(m)(k),那么第k轮迭代中贡献最大的方向为:S(m)(k)=X(m)(k)-X(m-1)(k)。
5.确定用映射点X(k)=2*X(n)(k)-X(0)(k),并计算f(X(k))。记f(0) = f(X(0)(k));f(1) = f(X(n)(k))及f(2) = f(X(k))。
验证Powell条件, 1.f2  2.(f0-2f1+f2)(f0-f1-△m(k))<0.5△m(k)(f0-f2)^2。若满足转到第(6),若不满足,转到(7)步。
6.设置第k+1轮迭代的出发点和搜索方向组。
初始点:X(0)(k+1) = X(n+1)(k) 
搜索方向:[S(1)(k),...,S(m-1)(k),S(k),S( m+1 )(k),...,S(n)(k)]
设置k=k+1,返回(2).
7.设置第k+1轮迭代的出发点和搜索方向组。
若f1
否则 X(0)(k+1) = X(K);
搜索方向:S(m)(k+1)=S(m)(k);
设置k=k+1,返回(2).

3.Powell算法流程图


推荐阅读
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 关键词:塞尔达旷传说野之息、switch、cemu设置、Wii U、租赁、游戏机 ... [详细]
  • 本文讨论了同事工资打听的话题,包括同工不同酬现象、打探工资的途径、为什么打听别人的工资、职业的本质、商业价值与工资的关系,以及如何面对同事工资比自己高的情况和凸显自己的商业价值。故事中的阿巧发现同事的工资比自己高后感到不满,通过与老公、闺蜜交流和搜索相关关键词来寻求解决办法。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 如何配置小米wifi放大器来增强家庭无线路由器信号?
    本文介绍了如何通过配置小米wifi放大器来增强家庭无线路由器信号的方法。通过打开米家APP,选择设备添加,搜索并选择需要添加的wifi放大器,根据系统提示进行下一步操作即可完成配置。配置完成后,家庭无线路由器信号将得到增强。 ... [详细]
  • Win10下游戏不能全屏的解决方法及兼容游戏列表
    本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ... [详细]
  • 本文讨论了如何在不使用SearchBar display controller的情况下,单独使用SearchBar并捕获其textChange事件。作者介绍了实际状况,即左侧SliderMenu中的SearchBar需要在主页TableView中显示搜索结果。然后,作者提供了解决方案和步骤,帮助读者实现这一功能。 ... [详细]
author-avatar
mobiledu2502902687
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有