粒子群算法
粒子群算法介绍
粒子群算法(Particle Swarm Optimization,PSO)是一种受自然界鸟类飞行时集群的策略启发而得到的算法,其主要思想是利用种群中的每个个体进行探索,再将个体得到的最优解进行汇总比较,从而使得种群整体往全局最优解或者近似的方向去靠拢。
通俗来讲,可以将粒子看作是鸟,全局最优解代表栖息地或者食物,每个鸟抽象为质点,且都具有两个属性:速度和位置
注意:这里的速度是带有方向的,不是标量的速度
在最初的状态下,假设所有的鸟的速度和位置都是随机的,每个鸟都会向着自己的方向去进行探索。在下一轮更新中,每一只鸟都会向种群提交自己的位置信息,以及和栖息地或者食物的距离。种群的鸟类经过比对后,会根据栖息地或者食物最可能存在的位置(种群最优解)去修正一下自己的方向,但是不会完全改变自己的方向。同时,每一只鸟也会记录每一次自己离最优解的距离,并选取出最好的那次来修改自己的方向(个体最优解)
简单来说,就是鸟以最开始的方向为基础,根据个体最优解+种群最优解来不断修改自己的方向,并迭代自己的位置和速度参数,最后所有的鸟即整个种群会收敛到最优解的位置
算法理论部分
根据以上的流程,可以总结为下图
MATLAB代码实现
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 砕月之殇的摆烂小窝!
评论