粒子群算法(二)全局版本

标准的粒子群算法

(一)问题抽象

鸟被抽象为没有质量和体积的微粒(点),并延伸到N维空间,粒子I在N维空间的位置表示为矢量Xi=(X1,X2,…,Xn),飞行速度表示为矢量Vi=(V1,V2,…,Vn)。每个粒子都有一个由目标函数决定的适应值(fitness value),并且知道自己到目前为止发现的最好位置(pbest)和现在的位置Xi。这个可以看作是粒子自己的飞行经验。除此之外,每个粒子还知道到目前为止整个群体中所有粒子发现的最好位置(gbest)(gbest是pbest中的最好值)。这个可以看作是粒子同伴的经验。粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。

(二)算法描述

PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。

随机粒子是如何运动的?只是说按照一定的公式更新。这个公式是粒子群算法中的位置速度更新公式。要求求取函数y=1-cos(3*x)*exp(-x)在[0,4]最大值,并在[0,4]之间放置了两个随机点,这些点的坐标假设为x1=1.5; x2=2.5;这里的点是一个标量,但是更一般的情况--x为一个矢量的情况,比如二维的情况z=2*x1+3*x22的情况。这个时候每个粒子为二维,记粒子P1=(x11,x12),P2=(x21,x22),P3=(x31,x32),......Pn=(xn1,xn2)。这里n为粒子群群体的规模,也就是这个群中粒子的个数,每个粒子的维数为2。更一般的是粒子的维数为q,这样在这个种群中有n个粒子,每个粒子为q维。

由n个粒子组成的群体对Q维(每个粒子的维数)空间进行搜索。每个粒子表示为:xi=(xi1,xi2,xi3,...,xiQ),每个粒子对应的速度可以表示为vi=(vi1,vi2,vi3,....,viQ),每个粒子在搜索时要考虑两个因素:

1,自己搜索到的历史最优值 pi ,pi=(pi1,pi2,....,piQ),i=1,2,3,....,n。

2,全部粒子搜索到的最优值 pg,pg=(pg1,pg2,....,pgQ),注意这里的pg只有一个。

下面给出粒子群算法的位置速度更新公式:

重要的参数记忆

是保持原来速度的系数,所以叫做惯性权重

是粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为2。

是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。

是[0,1]区间内均匀分布的随机数

是对位置更新的时候,在速度前面加的一个系数,这个系数叫做约束因子。通常设置为1。

这样一个标准的粒子群算法就结束了。

(三)标准PSO算法流程

Step1:初始化一群微粒(群体规模为m),包括随机位置和速度;

Step2:评价每个微粒的适应度;

Step3:对每个微粒,将其适应值与其经过的最好位置 pbest作比较,如果较好,则将其作为当前的 最好位置pbest;

Step4:对每个微粒,将其适应值与其经过的最好位置 gbest作比较,如果较好,则将其作为当前的 最好位置gbest;

Step5:根据上述公式调整微粒速度和位置;

Step6:未达到结束条件则转Step2。

迭代终止条件根据具体问题一般选为 最大迭代次数Gk 或 微粒群迄今为止搜索到的最优位置满足预定最小适应值。

对整个基本的粒子群的过程给一个简单的图形表示:

注意:这里的粒子是同时跟踪自己的历史最优值与全局(群体)最优值来改变自己的位置及速度的,所以又叫做全局的标准粒子群优化算法。

(四)遗传算法和粒子群算法的比较

共性

(1)都属于仿生算法。 

(2)都属于全局优化方法。

(3)都属于随机搜索算法。

(4)都隐含并行性。

(5)根据个体的适配信息进行搜索,因此不受函数约束条件的限制,如连续性、可导性等。

(6)对高维复杂问题,往往会遇到早熟收敛和收敛性能差的缺点,都无法保证收敛到最优点。

差异: 

(1) PSO有记忆,对好的解所有粒子都保存,而GA中以前的知识随着种群的改变而改变。 

(2) PSO中的粒子仅仅通过当前搜索到最优点进行共享信息,所以很大程度上这是一种单共享项信息机制。而GA中,染色体之间相互共享信息,使得整个种群都向最优区域移动。 

(3) GA的编码技术和遗传操作比较简单,而PSO相对于GA没有交叉和变异操作,粒子只是通过内部速度进行更新,因此原理更简单、参数更少、实现更容易。

GA可以用来研究三个方面问题:网络连接权重、网络结构、学习算法。优势在于可处理传统方法不能处理的问题,例如不可导的节点传递函数或没有梯度信息。缺点:在某些问题上性能不是特别好;网络权重的编码和遗传算子的选择有时较麻烦。研究表明PSO是一种很有潜力的神经网络算法。速度较快且有较好的结果,且没有遗传算法碰到的问题。


  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值