什么是粒子群算法算法
粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization,PSO)。由J. Kennedy和R. C. Eberhart等人于1995年提出。其属于进化算法的一种,也是从随机解出发,经过迭代寻找最优解,其经过适应度来评价解的品质。app
这种算法以其实现容易、精度高、收敛快等优势引发了学术界的重视,而且在解决实际问题中展现了其优越性。dom
求解过程ide
PSO经过模拟鸟群的捕食行为完成最优解的求取。函数
假设一群鸟在一个空间捕捉食物。在这个区域里只有一块食物(对应着最优解)。全部的鸟都不知道食物在那里。可是它们能够判断自身与食物的大体距离(经过fit值判断与最优解的距离)。最简单有效的方法就是搜寻目前离食物最近的鸟的周围区域。学习
PSO中,问题的每一个解都是搜索空间中的一只“鸟”。咱们称之为“粒子”。全部的粒子都有一个由被优化的函数决定的适应值(fitness value),能够经过种群中适应度最高的粒子的位置和自身与自身最优状况的判断完成位置的更新。优化
即,PSO 会初始化一群随机粒子。利用迭代寻找最优解。在每一次迭代中,粒子经过跟踪两个"极值"来实现位置的更新。spa
一、粒子自己所找到的最优解,个体极值pbest。orm
二、整个种群目前找到的最优解,全局极值gBest。blog
每一个粒子有一个重要的属性,名为速度,该属性一样决定了它们更新的方向和更新的距离。
粒子们会追随当前的最优粒子在解空间中搜索。
粒子群算法的求解伪代码以下:
初始化粒子群
while 未达到最大迭代次数或最小loss:
for each_p