粒子群算法

时间:2024-04-08 16:55:54编辑:奇事君

粒子群算法

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

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

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

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

Step1:确定一个粒子的运动状态是利用位置和速度两个参数描述的,因此初始化的也是这两个参数;
Step2:每次搜寻的结果(函数值)即为粒子适应度,然后记录每个粒子的个体历史最优位置和群体的历史最优位置;
Step3:个体历史最优位置和群体的历史最优位置相当于产生了两个力,结合粒子本身的惯性共同影响粒子的运动状态,由此来更新粒子的位置和速度。

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

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

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

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

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

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

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


粒子群算法的优缺点

优点:PSO同遗传算法类似,是一种基于迭代的优化算法。系统初始化为一组随机解,通过迭代搜寻最优值。同遗传算法比较,PSO的优势在于简单容易实现,并且没有许多参数需要调整。缺点:在某些问题上性能并不是特别好。网络权重的编码而且遗传算子的选择有时比较麻烦。最近已经有一些利用PSO来代替反向传播算法来训练神经网络的论文。扩展资料:注意事项:基础粒子群算法步骤较为简单。粒子群优化算法是由一组粒子在搜索空间中运动,受其自身的最佳过去位置pbest和整个群或近邻的最佳过去位置gbest的影响。对于有些改进算法,在速度更新公式最后一项会加入一个随机项,来平衡收敛速度与避免早熟。并且根据位置更新公式的特点,粒子群算法更适合求解连续优化问题。参考资料来源:百度百科-粒子群算法

上一篇:配置文件

下一篇:网页最大化