粒子群(PSO)算法简介

一、简介
粒子群算法是由Kennedy和 Eberhart于1995年提出的,算法模拟鸟群飞行觅食的行为,通过鸟之间的集体协作使群体达到最优与遗传算法类似,它也是基于群体迭代,但无交叉变异算子,群体在解空间中追随最优粒子进行搜索。粒子群算法初始化为一群随机粒子,然后通过迭代找到最优解。每次迭代 ,粒子通过跟踪2个“极值”:粒子本身所找到的最优解 PBest 和群体找到的最优解 GBest 以更新自己。PSA算法数学表示如下:设搜索空间为D维 ,总粒子数N0,第i个粒子位置表示为向量Xi=(xi1,xi2 ,…,xid);第i个粒子的历史最优位置为Pi=(pi1,pi2 ,…,pid) ,其中Pg为所有Pi(i=1,…,n)中的最优;第i个粒子的位置变化率为向量Vi=(vi1,vi2,…,vid)。每个粒子的位置按如下公式变化:

vid(t+1)=w×vid(t)+c1×rand()×[pid(t)-xid(t)]+c2×rand()×[pgd(t)-xid(t)] (1)

xid(t+1)=xid(t)+vid(t+1) (2)

式c1,c2为正的常数,称为加速因子;rand()产生[0,1]间的均匀分布的随机数;W为惯性因子,W 较大时适于大范围探查,W较小时适于小范围开发。迭代中位置 xi和速度vi超过边界则取边界值。粒子群初始位置和速度随机产生 ,然后按式(1)和(2)进行迭代 ,直至找到满意的解。

二、粒子群算法的优化

因为在搜索过程中的全局搜索能力与局部搜索能力之间的平衡关系对算法是否成功起着重要的作用, 适当地改变惯性权值会有很好的效果,当惯性权值较大时, 有利于搜索跳出局部极小点,当惯性权值较小时,有利于算法的收敛,所以一般在优化初期设置较大的惯性权值,这样可以具有较强的全局搜索能力,而在优化的后期设置较小的惯性权值,使得局部搜索能力提高。
为此,我们采取惯性因子w线性变化的方式:
w=wmax–k×(wmax–wmin)/kmax

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值