粒子群算法(Particle Swarm Optimization, PSO)是Kennedy博士于1995年提出的一种数值最优化算法。
本文简述粒子群算法的原理与操作流程。
注1:限于研究水平,分析难免不当,欢迎批评指正。
注2:文章内容会不定期更新。
一、算法描述
粒子群算法利用个体优值与种群优值求解最优解的数值最优化算法。
设维空间中,各粒子组成种群
其中,
第个粒子的位置 | |
第个粒子的速度 | |
第个粒子的历史最优位置 | |
种群全局最优值 |
粒子速度更新公式:
粒子位置更新公式:
算法流程:
①
初始化,设置加速常数
和
,最大进化代数
,当前进化代数设为
,随机产生
个粒子
组成初始种群
;随机产生各粒子初始位移变化
,组成位移变化矩阵
。
②
评价种群,计算每个粒子在每一维空间的适应值。
③
比较粒子的适应值和自身最优值
pbest
。如果当前值比
pbest
更优,则置
pbest
为当前值,并将
pbest
位置设为
n
维空间中的当前位置。
④
比较粒子适应值与种群最优值。如果当前值比
gbest
更有,则置
gbest
为当前粒子的当前值,
并将
pbest
位置设为
n
维空间中的当前位置。
⑤
更新粒子的位移方向和补偿,产生新种群
⑥
检查是否收敛或者达到最大迭代数,若满足,则结束寻优;否则
,转步骤
②。
参考文献
- Kennedy J., Eberhart R.C. Particle swarm optimization. Proceedings of IEEE International Conferences on Neural Networks 1995.
- Shi Y .A Modified Particle Swarm Optimizer[C]//Proc of IEEE Icec Conference.1998.
- 袁亚湘. 最优化理论与方法. 科学出版社, 1997.