本文主要是介绍快速简单理解粒子群优化算法(Particle Swarm Optimization, PSO),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.粒子的两个性质:位置、速度
位置是什么: 解空间中的点
速度是什么:解空间点的运动性质,和物理中的速度类似,是一个矢量,包括大小和方向,也就是找到下一个迭代点时的方向和距离
当粒子具有这两个性质的时候,转为数学语言为:当前解的大小已知,判断是否为极值,不是的话,按照一定的方向走一定的距离,寻找下一个迭代点,一直到迭代结束。
2.粒子群中的两个极值:个体极值、群体极值
个体极值是什么:单个粒子在运动过程中的极值的最优位置(个人力量的最大)。
群体极值是什么:种群中所有粒子搜索到的最优位置(群体力量最大)
两者关系:群体极值是最优的个体极值
3.迭代公式中的重要变量名称
: 第i个粒子的位置
:第i个粒子的速度
:个体极值
:种群极值
4.迭代公式
找到最优值=随机一些粒子从初始位置开始,根据速度不断搜寻。
-------速度更新
-------位置更新
速度更新公式的理解:
下一次速度 = 当前速度*惯性矩阵+当前个体极值位置偏差+当前种群极值位置偏差
用当前两种极值偏差约束速度,使速度更向极值方向靠拢,加强收敛性
位置更新公式理解:
下一次位置 = 当前位置+更新后的速度
找到下一个可能极值点
5.总结
粒子群优化算法更新结合只用当前时刻去约束步长和方向,不涉及以前时刻极值。
和最速梯度下降法类似,只不过将梯度改成自己定义的下降方向
这篇关于快速简单理解粒子群优化算法(Particle Swarm Optimization, PSO)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!