github代码地址:https://github.com/BecauseY/optimization-algorithm
算法介绍
PSO是粒子群优化算法(——Particle Swarm Optimization)的英文缩写,是一种基于种群的随机优化技术,由Eberhart和Kennedy于1995年提出。粒子群算法模仿昆虫、兽群、鸟群和鱼群等的群集行为,这些群体按照一种合作的方式寻找食物,群体中的每个成员通过学习它自身的经验和其他成员的经验来不断改变其搜索模式。
算法流程
首先说一下参数,有一个种群的概念,种群中每一个个体都可以看作问题的一个解,这个解通过更新自己来最终得到最优解。每一个解可以看作一个鸟(或者一个粒子),所有的鸟都在一个n维空间进行搜索,每个鸟都有一个位置和速度,这个位置就是问题的解。通过适应性函数来判断目前位置的好坏,然后更新自己的位置和速度。
该算法是每个鸟向自己的历史最优解(最佳位置)和所有鸟的历史最优解(最佳位置)进行学习的,通过以下公式可以看出:
t时刻到t+1时刻的速度:
下一时刻位置: