粒子群算法(PSO)算法解析(简略版)

Posted qw-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了粒子群算法(PSO)算法解析(简略版)相关的知识,希望对你有一定的参考价值。

粒子群算法(PSO)

1.粒子群算法(PSO)是一种基于群体的随机优化技术; 初始化为一组随机解,通过迭代搜寻最优解。

     PSO算法流程如图所示(此图是从PPT做好,复制过来的,有些模糊)

技术分享图片

 

2.PSO模拟社会的三条规则:

①飞离最近的个体,以避免碰撞

②飞向目标(认知行为)——Pbest

③飞向群体的中心(社会行为)——Gbest

 

3.迭代公式:

技术分享图片

 

举一个粒子。。。在一维中,利用MATLAB中自带的函数求极值

技术分享图片      技术分享图片

技术分享图片

 

                                                                 搜索起始点位置

注:fmincon(有约束的非线性最小化) fminbnd(有边界的标量非线性最小化) GlobalSearch(全局搜索)

技术分享图片技术分享图片

左图为用fminbnd函数求解情况;右图为用GlobalSearch 在[0,20]内求解情况。

由右图所示结果可以看出,采用fmincon进行有约束的非线性最小化求解,容易进入局部最优解;fminbnd在进行非线性最小化求解也容易掉进局部最优,导致在非连续函数下,使得求解结果不收敛。GlobalSearch在[0,20]内进行非线性最小化求解能够很精确地寻最优值。

 但是由于基本的粒子群算法不满足       技术分享图片 因此它不是全局收敛。

技术分享图片

                                       技术分享图片

对于一些较为复杂的二维,高维函数,它们具有广泛的搜索空间,也存在很多局部最优解(极小值点),因此我们用PSO算法较难找到全局最优值。

因此,我们需要对基本粒子群算法进行改进, 以达到更快的收敛速度及尽量跳出局部最优的陷阱, 从而达到全局最优。(图见上面可知)

PSO算法是一种很基础的全局搜索算法,可以很好的达到搜索最小值的效果;但是由于算法原理的一些缺陷,也存在一些问题,对PSO算法的改进方法,在下次博客中再分享。

谢谢大家!!!

 

以上是关于粒子群算法(PSO)算法解析(简略版)的主要内容,如果未能解决你的问题,请参考以下文章

粒子群优化算法(PSO)

粒子群优化算法PSO及matlab实现

粒子群算法(PSO)

粒子群优化算法(PSO)

粒子群算法(PSO)简介及Python实现

优化算法粒子群优化算法(PSO)含Matlab源码 1073期