当前位置: 首页 > news >正文

SCI1区TOP:自适应学习粒子群算法SLPSO,深度解析+性能实测

目录

    • 1.摘要
    • 2.改进策略
    • 3.自适应学习粒子群算法
    • 4.结果展示
    • 5.参考文献
    • 6.获取代码


1.摘要

粒子群算法(PSO)是一种基于种群的随机搜索方法,广泛应用于科学和工程领域的连续空间优化问题,并已证明其高效性和有效性。许多实际问题的往往未知,因此依赖试错法寻找最合适PSO变体会导致较高的计算成本。本文提出了一种自适应学习粒子群算法(SLPSO),SLPSO结合了四种不同的PSO搜索策略,并通过概率模型描述每种策略被选择以更新粒子的概率,该模型能够根据策略在过去几代中的表现,自动调整用来提升搜索效率和优化结果。

2.改进策略

基于差分速度更新策略(DbV)

在许多速度更新策略中,PSO生成的速度向量通常被视为对旧速度向量的适度修改,受邻域粒子影响。这种方法导致其难以快速适应病态问题的不同优化阶段。因此, 采用差分进化策略(DE/current-to-rand/1):
U i d ← X i d + K × ( X k d − X i d ) + F × ( X j d − X h d ) U_{i}^{d}\leftarrow X_{i}^{d}+K\times\left(X_{k}^{d}-X_{i}^{d}\right)+F\times\left(X_{j}^{d}-X_{h}^{d}\right) UidXid+K×(XkdXid)+F×(XjdXhd)
受DE/current-to-rand/1策略的启发,DbV策略通过完全基于差异信息重新组合速度,避免了逐步调整速度的方式。与DE/current-to-rand/1不同,DbV不仅利用差异信息来更新速度向量,还将pbest作为吸引子,指导粒子的飞行方向:
V i a d i d ← X k d − X j d , c = N ( 0.5 , 0.2 ) . V i d ← c × V i a d i d + c × ( p b e s t i d − X i d ) . V i d = min ⁡ ( V max ⁡ d , max ⁡ ( V i d , V min ⁡ d ) ) , \begin{aligned} & Viad_i^d\leftarrow X_k^d-X_j^d, \\ & c=N(0.5,0.2). \\ & V_i^d\leftarrow c\times Viad_i^d+c\times\left(pbest_i^d-X_i^d\right). \\ & V_i^d=\min\left(V_{\max}^d,\max\left(V_i^d,V_{\min}^d\right)\right), \end{aligned} ViadidXkdXjd,c=N(0.5,0.2).Vidc×Viadid+c×(pbestidXid).Vid=min(Vmaxd,max(Vid,Vmind)),

基于估计速度更新策略(EbV)

PSO的一个显著特点是其较高的收敛速度,但全局精英 g b e s t gbest gbest的使用会对整个种群产生强烈的影响 ,容易导致搜索过程陷入局部最优解。在复杂的多峰问题中,PSO算法通常在初期表现出快速的收敛速度,但这种收敛仅持续几个世代,随后便会被困于局部最优解。估计分布算法(EDA)是一种基于模型的优化方法,EDA的更新操作通过学习个体分布的概率模型来调整整个种群的分布。本文提出了一种速度更新策略,基于三个位置的局部分布估计进一步提升搜索效率:
C = ( D − 1 ) N ( 0 , 1 ) D + C ( 0 , 1 ) D . V i d ← ( m e a n i d − X i d ) + C 3 ( p b e s t i d − m e a n i d ) 2 + ( X i d − m e a n i d ) 2 + ( X k d − m e a n i d ) 2 . V i d = min ⁡ ( V max ⁡ d , max ⁡ ( V i d , V min ⁡ d ) ) , \begin{aligned} \mathcal{C}= & \frac{(D-1)N(0,1)}{D}+\frac{\mathcal{C}(0,1)}{D}. \\ V_{i}^{d}\leftarrow & \left(mean_{i}^{d}-X_{i}^{d}\right)+\frac{\mathcal{C}}{\sqrt{3}}\sqrt{\left(pbest_{i}^{d}-mean_{i}^{d}\right)^{2}+\left(X_{i}^{d}-mean_{i}^{d}\right)^{2}+\left(X_{k}^{d}-mean_{i}^{d}\right)^{2}}. \\ V_{i}^{d}= & \min\left(V_{\max}^{d},\max\left(V_{i}^{d},V_{\min}^{d}\right)\right), \end{aligned} C=VidVid=D(D1)N(0,1)+DC(0,1).(meanidXid)+3 C(pbestidmeanid)2+(Xidmeanid)2+(Xkdmeanid)2 .min(Vmaxd,max(Vid,Vmind)),

CLPSO and PSO-CL-pbest

在CLPSO中,每个粒子每个分量的速度都有可能受到其他粒子 p b e s t pbest pbest的影响。这种策略促进了种群的多样性,从而能够有效解决多峰问题。
V i d ← w × V i d + c × r a n d i d × ( p b e s t f i ( d ) d − X i d ) . V i d = min ⁡ ( V max ⁡ d , max ⁡ ( V i d , V min ⁡ d ) ) , \begin{aligned} & V_{i}^{d}\leftarrow w\times V_{i}^{d}+c\times rand_{i}^{d}\times\left(pbest_{f_{i}(d)}^{d}-X_{i}^{d}\right). \\ & V_{i}^{d}=\min\left(V_{\max}^{d},\max\left(V_{i}^{d},V_{\min}^{d}\right)\right), \end{aligned} Vidw×Vid+c×randid×(pbestfi(d)dXid).Vid=min(Vmaxd,max(Vid,Vmind)),

CLPSO在大多数问题中具有非常大的搜索范围,本文提出了一种新的变种——PSO-CL-pbest,该变种在相对较小的区域内进行搜索:
V i d ← w × V i d + 0.5 × c × r a n d i × ( p b e s t f i ( d ) d − X i d + p b e s t i d − X i d ) . V i d = min ⁡ ( V max ⁡ d , max ⁡ ( V i d , V min ⁡ d ) ) . \begin{aligned} V_{i}^{d} & \leftarrow w\times V_{i}^{d}+0.5\times c\times rand_{i}\times\left(pbest_{f_{i}(d)}^{d}-X_{i}^{d}+pbest_{i}^{d}-X_{i}^{d}\right). \\ V_{i}^{d} & =\min\left(V_{\max}^{d},\max\left(V_{i}^{d},V_{\min}^{d}\right)\right). \end{aligned} VidVidw×Vid+0.5×c×randi×(pbestfi(d)dXid+pbestidXid).=min(Vmaxd,max(Vid,Vmind)).

3.自适应学习粒子群算法

在SLPSO中,每个策略都有一个执行概率 p r o S T R i proSTR_i proSTRi,用于确定第 i i i个策略在更新粒子时被选中的概率。初始时,所有策略的执行概率相等(0.25),并且四个策略的累加器 S i S_i Si都初始化为0。在每一代中,粒子会根据适应度值进行排序,然后为每个粒子分配一个权重:
w j = l o g ( p s − j + 1 ) l o g ( 1 ) + ⋯ + l o g ( p s ) w_j=\frac{log(ps-j+1)}{log(1)+\cdots+log(ps)} wj=log(1)++log(ps)log(psj+1)
这些权重会被加到与其对应的更新策略的累加器中。经过一定数量的代数(Gs)后,通过一定的规则更新每个更新策略的执行概率,以动态调整策略的使用频率:
p r o S T R j ′ = ( 1 − α ) p r o S T R j + α S j G s , p r o S T R j = p r o S T R j ′ / ( p r o S T R 1 ′ + ⋯ + p r o S T R 4 ′ ) , \begin{aligned} & proSTR_{j}^{\prime}=(1-\alpha)proSTR_{j}+\alpha\frac{S_{j}}{Gs}, \\ & proSTR_{j}=proSTR_{j}^{\prime}/(proSTR_{1}^{\prime}+\cdots+proSTR_{4}^{\prime}), \end{aligned} proSTRj=(1α)proSTRj+αGsSj,proSTRj=proSTRj/(proSTR1++proSTR4),

伪代码

4.结果展示

5.参考文献

[1] Wang Y, Li B, Weise T, et al. Self-adaptive learning based particle swarm optimization[J]. Information Sciences, 2011, 181(20): 4515-4538.

6.获取代码

相关文章:

  • 【孟德尔随机化】PhenoScanner不能用的,替代方法
  • PPT 技能:巧用 “节” 功能,让演示文稿更有序
  • 使用 Arduino 的 WiFi 控制机器人
  • 【人工智能】【Python】在Scikit-Learn中使用KNN(K最近邻算法)
  • Ruoyi+uniapp+websocket点对点和广播通知消息
  • 分享几个论文校对相关的deepseek提示词
  • Linux脚本编程
  • python基础课程整理--字典的基础
  • 图像滑块对比功能的开发记录
  • 芋道打包时报错:缺失@unocss插件
  • WLAN无线组网 WI-FI
  • 使用 Python pandas操作 Excel 文件
  • leetcode0020 - 有效的括号 easy
  • 精选一百道备赛蓝桥杯——2.K倍区间
  • YOLOv10改进之MHAF(多分支辅助特征金字塔)
  • BookChatApp通用书籍阅读APP
  • 云渲染技术在影视特效制作中的核心优势
  • Spring AI+硅基流动DeepSeek语音识别全栈方案:从FFmpeg预处理到分布式推理
  • 量子计算:气候模型的新纪元
  • 采用大模型技术进行知识图谱实体对齐的技术和开源项目
  • 媒体刊文:“假官号”层出不穷,平台要当好把关人
  • 上海乐高乐园客流预测来了:工作日0.8万人次/日,周末节假日2万人次/日
  • 特朗普与泽连斯基通话
  • 全球前瞻|特朗普19日将与俄乌总统分别通话,英国脱欧后首开英欧峰会
  • 倒票“黄牛”屡禁不绝怎么破?业内:强化文旅市场票务公开制度
  • 上海这个咖啡文化节首次“走出去”,率本土品牌亮相英国伦敦