粒子群算法简介优缺点及其应用.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
粒子群算法简介优缺点及其应用概要

* * 粒子群算法 * * 粒子群算法的研究背景 粒子群算法(Particle Swarm Optimization,简称PSO),是一种基于群体智能的进化计算方法。PSO由Kennedy和Eberhart博士于1995年提出。 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS)。CAS理论于1994年正式提出,CAS中的成员称为主体。比如研究鸟群系统,每个鸟在这个系统中就称为主体。主体有适应性,它能够与环境及其他的主体进行交流,并且根据交流的过程“学习”或“积累经验”改变自身结构与行为。整个系统的演变或进化包括:新层次的产生(小鸟的出生);分化和多样性的出现(鸟群中的鸟分成许多小的群);新的主题的出现(鸟寻找食物过程中,不断发现新的食物)。 * * PSO的基本概念源于对鸟群捕食行为的研究: 一群鸟在随机搜寻食物,在这个区域里只有一块食物,所有鸟都不知道食物在哪里。但是他们知道当前的位置离食物还有多远。 那么找到食物的最优策略是什么呢?最简单有效的就是搜寻目前离食物最近的鸟的周围区域。 粒子群算法的基本原理 * * PSO算法就从这种生物种群行为特性中得到启发并用于求解优化问题。 在PSO中,把一个优化问题看作是在空中觅食的鸟群,那么“食物”就是优化问题的最优解,而在空中飞行的每一只觅食的“鸟”就是PSO算法中在解空间中进行搜索的一个“粒子”(Particle)。 “群”(Swarm)的概念来自于人工生命,满足人工生命的五个基本原则。因此PSO算法也可看作是对简化了的社会模型的模拟,这其中最重要的是社会群体中的信息共享机制,这是推动算法的主要机制。 * * 粒子在搜索空间中以一定的速度飞行,这个速度根据它本身的飞行经验和同伴的飞行经验来动态调整。所有的粒子都有一个被目标函数决定的适应值(fitness value),这个适应值用于评价粒子的“好坏”程度。 每个粒子知道自己到目前为止发现的最好位置(particle best,记为pbest)和当前的位置,pbest就是粒子本身找到的最优解,这个可以看作是粒子自己的飞行经验。 除此之外,每个粒子还知道到目前为止整个群体中所有粒子发现的最好位置(global best,记为gbest),gbest是在pbest中的最好值,即是全局最优解,这个可以看作是整个群体的经验。 * * 每个粒子使用下列信息改变自己的当前位置: (1)当前位置; (2)当前速度; (3)当前位置与自己最好位置之间的距离; (4)当前位置与群体最好位置之间的距离。 * * 用随机解初始化一群随机粒子,然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个“极值”来更新自己: 一个是粒子本身所找到的最好解,即个体极值(pbest),另一个极值是整个粒子群中所有粒子在历代搜索过程中所达到的最优解(gbest)即全局极值。 找到这两个最好解后,接下来是PSO中最重要的“加速”过程,每个粒子不断地改变其在解空间中的速度,以尽可能地朝pbest和gbest所指向的区域“飞”去。 粒子群算法的基本思想 * * 假设在一个N维空间进行搜索,粒子i的信息可用两个N维向量来表示: 第i个粒子的位置可表示为 速度为 在找到两个最优解后,粒子即可根据下式来更新自己的速度和位置: 粒子群优化算法的一般数学模型 :是粒子i在第k次迭代中第d维的速度; :是粒子i在第k次迭代中第d维的当前位置; (1) (2) * * i=1,2,3…,M:种群大小。 c1和c2:学习因子,或称加速系数,合适的c1和c2既可加快收敛又不易陷入局部最优。 rand1和rand2:是介于[0,1]之间的随机数。 是粒子i在第d维的个体极值点的位置; 是整个种群在第d维的全局极值点的位置。 最大速度vmax:决定了问题空间搜索的力度,粒子的每一维速度vid都会被限制在[-vdmax,+vdmax ]之间,假设搜索空间的第d维定义为区间[-xdmax,+xdmax ] ,则通常vdmax=kxdmax , 0.1?k?1.0,每一维都用相同的设置方法。 * * 公式(1)主要通过三部分来计算粒子i更新的速度: 粒子i前一时刻的速度 ; 粒子当前位置与自己历史最好位置之间的距离 ; 粒子当前位置与群体最好位置之间的距离 。 粒子通过公式(2

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档