理解
粒子群算法是一种逼近算法,它并不一定能获取到最优解。在求解可能性极大以至无法穷举的情况下,是一种有效的获取接近最优解的方案。在算法思想上,类似贪心算法和分治算法。
流程
- PSO初始化一群随机粒子(位置,速度)
- 迭代更新速度(速度跟踪自身位置,自身极值和全局极值),通过速度更新位置
- 满足迭代次数或迭代效果即退出。
在这个算法中,核心是速度更新。如何即保持一定的随机性探索能力,又可以向已知极值收拢。
常用的速度更新公式如下,满足此公式的粒子群算法称为标准微粒群算法。
在实践中
Vmax一般设为每维变量变化范围的10%-20%
群体规模m 一般取20~40,对较难或特定类别的问题 可以取到100~200
惯性权重w描述粒子上一代速度对当前代速度的影响。w值较大,全局寻优能力强,局部寻优能力弱
思考
如何取舍各个权重参数,需要根据我们实际情况去考虑,速度更新方法不一定需要根据这个标准的公式来。理解各个参数的含义及这个公式的所代表的含义,我们可以根据业务特性开发自己的速度更新方法。