1. 首页 > 笙耀百科 >

粒子群算法(一):模拟鸟群觅食的新的进化算法

粒子群算法(一):粒子群算法概述

1、粒子群算法也称粒子群优化算法(ParticleSwarmOptimization,PSO),属于群体智能优化算法,是近年来发展起来的一种新的进化算法(EvolutionaryAlgorithm,EA)。

粒子群算法(一):模拟鸟群觅食的新的进化算法粒子群算法(一):模拟鸟群觅食的新的进化算法


2、粒子群算法是模拟鸟群觅食的所建立起来的一种智能算法,一开始所有的鸟都不知道食物在哪里,它们通过找到离食物近的鸟的周围,再去寻找食物,这样不断的追踪,大量的鸟都堆积在食物附近这样找到食物的几率就大大增加了。

3、粒子群算法,也称粒子群优化算法(ParticalSwarmOptimization),缩写为PSO,是近年来发展起来的一种新的进化算法((Evolu2tionaryAlgorithm-EA)。

4、粒子群算法原理如下:粒子群优化(ParticleSwarmOptimization,PSO)算法是1995年由美国学者Kennedy等人提出的,该算法是模拟鸟类觅食等群体智能行为的智能优化算法。在自然界中,鸟群在觅食的时候,一般存在个体和群体协同的行为。

粒子群算法简单介绍

粒子群算法(也称粒子群优化算法(particle swarm optimization, PSO)),模拟鸟群随机搜索食物的行为。粒子群算法中,每个优化问题的潜在解都是搜索空间中的一只鸟,叫做“粒子”。所有的粒子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定它们“飞行”的方向和距离。

粒子群算法初始化为一群随机的粒子(随机解),然后根据迭代找到解。每一次迭代中,粒子通过跟踪两个极值来更新自己:第1个是粒子本身所找到的解,这个称为个体极值;第2个是整个种群目前找到的解,这个称为全局极值。也可以不用整个种群,而是用其中的一部分作为粒子的邻居,称为局部极值。

假设在一个D维搜索空间中,有N个粒子组成一个群落,其中第i个粒子表示为一个D维的向量:

第i个粒子的速度表示为:

还要保存每个个体的已经找到的解 ,和一个整个群落找到的解 。

第i个粒子根据下面的公式更新自己的速度和位置:

其中, 是个体已知解, 是种群已知解, 为惯性权重, , 为学习因子(或加速常数 acceleration constant), , 是[0,1]范围内的随机数。

式(1)由三部分组成:

什么是粒子群算法

粒子群算法,也称粒子群优化算法,是近年来发展起来的一种新的进化算法,粒子群算法属于进化算法的一种,和模拟退火算法相似,它也是从随机解出发,通过迭代寻找解,它也是通过适应度来评价解的品质;

但它比遗传算法规则更为简单,它没有遗传算法的交叉和变异操作,它通过追随当前搜索到的值来寻找全局,这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性,粒子群算法是一种并行算法。

粒子群算法

粒子群算法(ParticleSwarmOptimization),又称鸟群觅食算法,是由数学家J.Kennedy和R.C.Eberhart等开发出的一种新的进化算法。它是从随机解开始触发,通过迭代寻找出其中的解。

粒子群算法也称粒子群优化算法(ParticleSwarmOptimization,PSO),属于群体智能优化算法,是近年来发展起来的一种新的进化算法(EvolutionaryAlgorithm,EA)。

粒子群算法原理如下:粒子群优化(ParticleSwarmOptimization,PSO)算法是1995年由美国学者Kennedy等人提出的,该算法是模拟鸟类觅食等群体智能行为的智能优化算法。在自然界中,鸟群在觅食的时候,一般存在个体和群体协同的行为。

粒子群算法(也称粒子群优化算法(particleswarmoptimization,PSO)),模拟鸟群随机搜索食物的行为。粒子群算法中,每个优化问题的潜在解都是搜索空间中的一只鸟,叫做“粒子”。

粒子群算法,也称粒子群优化算法(ParticalSwarmOptimization),缩写为PSO,是近年来发展起来的一种新的进化算法((Evolu2tionaryAlgorithm-EA)。

粒子群算法引言粒子群优化算法(PSO)是一种进化计算技术(evolutionarycomputation),有Eberhart博士和kennedy博士发明。源于对鸟群捕食的行为研究PSO同遗传算法类似,是一种基于叠代的优化工具。

粒子群算法

粒子群算法(Particle Swarm Optimization),又称鸟群觅食算法,是由数学家J. Kennedy和R. C. Eberhart等开发出的一种新的进化算法。它是从随机解开始触发,通过迭代寻找出其中的解。本算法主要是通过适应度来评价解的分数,比传统的遗传算法更加的简单,它没有传统遗传算法中的“交叉”和“变异”等操作,它主要是追随当前搜索到的值来寻找到全局值。这种算法实现容易,精度高,收敛快等特点被广泛运用在各个问题中。

粒子群算法是模拟鸟群觅食的所建立起来的一种智能算法,一开始所有的鸟都不知道食物在哪里,它们通过找到离食物近的鸟的周围,再去寻找食物,这样不断的追踪,大量的鸟都堆积在食物附近这样找到食物的几率就大大增加了。粒子群就是这样一种模拟鸟群觅食的过程,粒子群把鸟看成一个个粒子,它们拥有两个属性——位置和速度,然后根据自己的这两个属性共享到整个集群中,其他粒子改变飞行方向去找到近的区域,然后整个集群都聚集在解附近,后终找到解。

算法中我们需要的数据结构,我们需要一个值来存储每个粒子搜索到的解,用一个值来存储整个群体在一次迭代中搜索到的解,这样我们的粒子速度和位置的更新公式如下:

其中pbest是每个粒子搜索到的解,gbest是整个群体在一次迭代中搜索到的解,v[i]是代表第i个粒子的速度,w代表惯性系数是一个超参数,rang()表示的是在0到1的随机数。Present[i]代表第i个粒子当前的位置。我们通过上面的公式不停的迭代粒子群的状态,终得到全局解

粒子群算法

粒子群算法(particle swarm optimization,PSO)是计算智能领域中的一种生物启发式方法,属于群体智能优化算法的一种,常见的群体智能优化算法主要有如下几类:

除了上述几种常见的群体智能算法以外,还有一些并不是广泛应用的群体智能算法,比如萤火虫算法、布谷鸟算法、蝙蝠算法以及磷虾群算法等等。

而其中的粒子群优化算法(PSO)源于对鸟类捕食行为的研究,鸟类捕食时,找到食物简单有限的策略就是搜寻当前距离食物近的鸟的周围。

设想这样一个场景:一群鸟在随机的搜索食物。在这个区域里只有一块食物,所有的鸟都不知道食物在哪。但是它们知道自己当前的位置距离食物还有多远。那么找到食物的策略是什么?简单有效的就是搜寻目前离食物近的鸟的周围区域。

Step1:确定一个粒子的运动状态是利用位置和速度两个参数描述的,因此初始化的也是这两个参数;

Step2:每次搜寻的结果(函数值)即为粒子适应度,然后记录每个粒子的个体历史位置和群体的历史位置;

Step3:个体历史位置和群体的历史位置相当于产生了两个力,结合粒子本身的惯性共同影响粒子的运动状态,由此来更新粒子的位置和速度。

位置和速度的初始化即在位置和速度限制内随机生成一个N x d 的矩阵,而对于速度则不用考虑约束,一般直接在0~1内随机生成一个50x1的数据矩阵。

此处的位置约束也可以理解为位置限制,而速度限制是保证粒子步长不超限制的,一般设置速度限制为[-1,1]。

粒子群的另一个特点就是记录每个个体的历史和种群的历史,因此而二者对应的位置和值也需要初始化。其中每个个体的历史位置可以先初始化为当前位置,而种群的历史位置则可初始化为原点。对于值,如果求值则初始化为负无穷,相反地初始化为正无穷。

每次搜寻都需要将当前的适应度和解同历史的记录值进行对比,如果超过历史值,则更新个体和种群的历史位置和解。

速度和位置更新是粒子群算法的核心,其原理表达式和更新方式:

每次更新完速度和位置都需要考虑速度和位置的限制,需要将其限制在规定范围内,此处仅举出一个常规方法,即将超约束的数据约束到边界(当位置或者速度超出初始化限制时,将其拉回靠近的边界处)。当然,你不用担心他会停住不动,因为每个粒子还有惯性和其他两个参数的影响。

粒子群算法求平方和函数小值,由于没有特意指定函数自变量量纲,不进行数据归一化。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息