思想来源
鸟群、鱼群的迁徙、觅食等行为属于群体智能行为(Swarm Intelligence,SI),本身是一种最优化的过程。通过模仿这种群体智能行为,并融入社会心理学的个体认识和社会影响等概念,Kennedy和Eberhart于1995年提出了粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization),缩写为 PSO。
个体认识————自己的经验
社会影响————他人的经验
PSO模拟自然界的生物活动以及群体智能的随机搜索算法,属于进化算法(Evolutionary Algorithm - EA)的一种,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的"交叉"(Crossover) 和"变异"(Mutation) 操作,它通过追随当前搜索到的最优值来寻找全局最优。。和其他算法不同的是,每个粒子都可以进行智能决策。
基本原理
在捕食时,鸟群都是通过自己的探索于群体的合作最终发现食物的所在位置。虽然小鸟不知道食物具体的位置,但是会有一个间接的机制会让小鸟指导它当前与食物的距离(如香味)。各个小鸟在飞行过程中不断地记录和更新它当前曾经到达的离食物最近的位置,同时,它们相互交流比较,得到当前整个群体已经窄带的最佳位置。一次作为每个小鸟的指导方向,小鸟结婚自身经验和整个鸟群的经验,不断调整。
在粒子群优化算法中,每个小鸟都被是为一个“粒子”。
每个粒子都具有速度和位置。
由问题定义的适应度函数确定粒子的适应值,然后不断迭代,由粒子本身的历史最优解和群体的全局最优解来影响粒子的速度与位置,让粒子在搜索空间中探索与开发,最终找到全局最优解。
算法流程
实现算法可参考博客:
https://blog.youkuaiyun.com/google19890102/article/details/30044945
感谢各位大佬看到最后~
本文为原创。转载请注明出处。
注:原理部分,参考了一些文章,博客,如有侵权请联系,我附上原出处。