算法(三)粒子群算法之局部粒子

  在全局版的标准粒子群算法中,每个粒子的速度的更新是根据两个因素来变化的,这两个因素是:1. 粒子自己历史最优值pi。2.  粒子群体的全局最优值pg。如果改变粒子速度更新公式,让每个粒子的速度的更新根据以下两个因素更新,A. 粒子自己历史最优值pi。B. 粒子邻域内粒子的最优值pnk。其余保持跟全局版的标准粒子群算法一样,这个算法就变为局部版的粒子群算法。

一般一个粒子i 的邻域随着迭代次数的增加而逐渐增加,开始第一次迭代,它的邻域为0,随着迭代次数邻域线性变大,最后邻域扩展到整个粒子群,这时就变成全局版本的粒子群算法了。经过实践证明:全局版本的粒子群算法收敛速度快,但是容易陷入局部最优。局部版本的粒子群算法收敛速度慢,但是很难陷入局部最优。现在的粒子群算法大都在收敛速度与摆脱局部最优这两个方面下功夫。其实这两个方面是矛盾的。看如何更好的折中了。

根据取邻域的方式的不同,局部版本的粒子群算法有很多不同的实现方法。

第一种方法:按照粒子的编号取粒子的邻域,取法有四种:1,环形取法 2,随机环形取法 3,轮形取法 4,随机轮形取法。

        

  1  环形                          2 随机环形

            

3 轮形                                                                     4随机轮形

  环形取法为例:以粒子1为例,当邻域是0的时候,邻域是它本身,当邻域是1时,邻域为2,8;当邻域是2时,邻域是2,3,7,8;......,以此类推,一直到邻域为4,这个时候,邻域扩展到整个例子群体。据文献介绍(国外的文献),采用轮形拓扑结构,PSO的效果很好。

第二种方法:按照粒子的欧式距离取粒子的邻域

在第一种方法中,按照粒子的编号来得到粒子的邻域,但是这些粒子其实可能在实际位置上并不相邻,于是Suganthan提出基于空间距离的划分方案,在迭代中计算每一个粒子与群中其他粒子的距离。记录任何2个粒子间的的最大距离为dm。对每一粒子按照||xa-xb||/dm计算一个比值。其中||xa-xb||是当前粒子a到b的距离。而选择阈值frac根据迭代次数而变化。当另一粒子b满足||xa-xb||/dm<frac时,认为b成为当前粒子的邻域。

这种办法经过实验,取得较好的应用效果,但是由于要计算所有粒子之间的距离,计算量大,且需要很大的存储空间,所以,该方法一般不经常使用。

时间: 2024-12-28 06:33:23

算法(三)粒子群算法之局部粒子的相关文章

粒子群算法(1)----粒子群算法简单介绍

一.粒子群算法的历史  粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,CAS中的成员称为主体.比方研究鸟群系统,每一个鸟在这个系统中就称为主体.主体有适应性,它能够与环境及其它的主体进行交流,而且依据交流的过程"学习"或"积累经验"改变自身结构与行为.整个系统的演变或进化包括:新层次的产生(小鸟的出生):分化和多样性的出现(鸟群中的鸟分成很多小的群):新的主题的出现(鸟寻找食物过程中,不断发现新

粒子群算法(1)----粒子群简要

一.历史粒子群算法  从复杂适应系统衍生PSO算法(Complex Adaptive System,CAS).CAS理论于1994年正式提出,CAS中的成员称为主体.比方研究鸟群系统,每一个鸟在这个系统中就称为主体.主体有适应性,它能够与环境及其它的主体进行交流,而且依据交流的过程"学习"或"积累经验"改变自身结构与行为. 整个系统的演变或进化包括:新层次的产生(小鸟的出生):分化和多样性的出现(鸟群中的鸟分成很多小的群):新的主题的出现(鸟寻找食物过程中.不断发现

数学建模方法-粒子群算法

一.引言 哈喽大家好,有一段时间没更新Blog了,最近身体不太舒服哈,今天开始继续更了.言归正传,这次要讲的是"粒子群算法".这个算法是由两个科学家在1995年,根据对鸟类捕食行为的研究所得到启发而想出来的.好的,接下来让我们开始吧. 二.鸟类捕食行为 鸟妈妈有7个鸟宝宝,有一天,鸟妈妈让鸟宝宝们自己去找虫子吃.于是鸟宝宝们开始了大范围的捕食行为.一开始鸟宝宝们不知道哪里可以找得到虫子,于是每个鸟宝宝都朝着不同的方向独自寻找. 但是为了能够更快的找到虫子吃,鸟宝宝们协商好,谁发现了虫子

【智能算法】粒子群算法(Particle Swarm Optimization)超详细解析+入门代码实例讲解

喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 01 算法起源 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源于对鸟群捕食的行为研究 .该算法最初是受到飞鸟集群活动的规律性启发,进而利用群体智能建立的一个简化模型.粒子群算法在对动物集群活动行为观察基础上,利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解.

粒子群算法(PSO)算法解析(简略版)

粒子群算法(PSO) 1.粒子群算法(PSO)是一种基于群体的随机优化技术: 初始化为一组随机解,通过迭代搜寻最优解. PSO算法流程如图所示(此图是从PPT做好,复制过来的,有些模糊) 2.PSO模拟社会的三条规则: ①飞离最近的个体,以避免碰撞 ②飞向目标(认知行为)--Pbest ③飞向群体的中心(社会行为)--Gbest 3.迭代公式: 举一个粒子...在一维中,利用MATLAB中自带的函数求极值        搜索起始点位置 注:fmincon(有约束的非线性最小化) fminbnd(

粒子群算法的寻优算法-非线性函数极值寻优

一.简介   粒子群算法又被称为粒子群优化算法(PSO).粒子群算法是源于对鸟群捕食的行为研究:是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法. 二.粒子群算法分析 1.基本思想 粒子群算法通过设计一种粒子来模拟鸟群中的鸟类个体,粒子仅具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向.每个粒子在搜索空间中单独的搜寻最优解,并将其记为当前个体极值,并将个体极值与整个粒子群里的其他粒子共享,找到最优的那个个体极值作为整个粒子群的当前全局最优解,不断迭代,更新速度和位

粒子群算法简介及应用

简介 定义 粒子群优化算法(Particle Swarm optimization,PSO)又翻译为粒子群算法.微粒群算法.或微粒群优化算法.是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法.通常认为它是群集智能 (Swarm intelligence, SI) 的一种.它可以被纳入多主体优化系统(Multiagent Optimization System, MAOS). 模拟捕食 SO模拟鸟群的捕食行为.一群鸟在随机搜索食物,在这个区域里只有一块食物.所有的鸟都不知道食物在那

粒子群算法 Particle Swarm Optimization, PSO(转贴收藏)

粒子群算法(1)----粒子群算法简介 http://blog.csdn.net/niuyongjie/article/details/1569671 粒子群算法(2)----标准的粒子群算法 http://blog.csdn.net/niuyongjie/article/details/1572814 粒子群算法(3)----标准的粒子群算法(局部版本) http://blog.csdn.net/niuyongjie/article/details/1584946 粒子群算法(4)----粒子

C语言实现粒子群算法(PSO)二

上一回说了基本粒子群算法的实现,并且给出了C语言代码.这一篇主要讲解影响粒子群算法的一个重要参数---w.我们已经说过粒子群算法的核心的两个公式为: Vid(k+1)=w*Vid(k)+c1*r1*(Pid(k)-Xid(k))+c2*r2*(Pgd(k)-Xid(k))Xid(k+1) = Xid(k) + Vid(k+1) 标红的w即是本次我们要讨论的参数.之前w是不变的(默认取1),而现在w是变化的,w称之为惯性权重,体现的是粒子继承先前速度的能力. 经验表明:一个较大的惯性权重有利于全局