码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-01-25 01:06:41      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:需要   初始   span   算法   bubuko   14.   改进   复杂   lse   

粒子群算法(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)算法解析(简略版)

标签:需要   初始   span   算法   bubuko   14.   改进   复杂   lse   

原文地址:https://www.cnblogs.com/qw-blog/p/shaoyang-hunnu-China.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!