粒子群优化算法 Particle Swarm Optimization

粒子群优化算法是基于群体智能理论的优化算法,利用粒子在迭代搜索的过程中完成对问题的寻优。

这种算法由 J. Kennedy 和 R.C.Eberhart 于 1995 年提出,是一种演化计算技术,其来源于对一个简化社会模型的模拟,通过跟踪群体的两个极值以调整自己的位置和速度,这两个极值分别是:粒子本身所寻最优解 Pbest 和群体所寻最优解 Gbest 。

概念解释

  • 「群 swarm」是群体智能的一个基本原则,其来源于微粒群匹配开发应用人工生命的模型;
  • 「粒子 particle」用于将群体中的成员描述为没有质量、没有体积的,但具有速度和加速状态的物质。

PSO 的应用

PSO 属于群智能算法的一种,基于模拟鸟群捕食行为设计。

假设区域内只有一块食物(即最优解),鸟群的任务是找到这个食物源,个体会相互传递各自的信息以实现传送,通过这样的协作来判断最优解,同时也将最优解的信息传递给整个群体,最终都能聚集在食物源周围,即找到了最优解。

标准 PSO 的算法流程

  1. 初始化一群微粒(群体规模为 m),包括随机的位置和速度;
  2. 评价每个微粒的适应度;
  3. 对每个微粒,将适应值和 Pbest 作比较,并将最佳值作为当前的最好位置 Pbest ;
  4. 对每个微粒,将适应值和 Gbest 作比较,并将最佳值作为 Gbest 的索引号;
  5. 根据方程变化微粒的速度和位置;
  6. 如未达到结束条件,则重复步骤 2 。