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

PSO详解变体上新!新型混合蛾焰粒子群优化(MFPSO)算法

1.2 标准 PSO 和 MFO 算法的算法基础

PSO,由 Kennedy 和 Eberhart 在 1995 年 [40] 提出,模拟了鸟类寻找食物的集体运动。候选解表示为粒子,基于个人最佳 p b e s t pbest pbest 和全局最佳 g b e s t gbest gbest 位置更新它们的速度。第 i i i 个粒子在第 t t t 次迭代中的速度 v i t v_i^t vit 和位置 x i t x_i^t xit 通过公式 1 和 2 更新,其中 w w w 是惯性权重, ( c 1 , c 2 ) (c_1, c_2) (c1,c2) 是加速系数, ( r a n d 1 , r a n d 2 ) (rand_1, rand_2) (rand1,rand2) 是 [0,1] 之间的随机数。

v i t + 1 = w ⋅ v i t + c 1 ⋅ r a n d 1 ⋅ ( p b e s t i t − x i t ) + c 2 ⋅ r a n d 2 ⋅ ( g b e s t t − x i t ) (1) v_i^{t+1} = w \cdot v_i^t + c_1 \cdot rand_1 \cdot (pbest_i^t - x_i^t) + c_2 \cdot rand_2 \cdot (gbest^t - x_i^t) \tag{1} vit+1=wvit+c1rand1(pbestitxit)+c2rand2(gbesttxit)(1)

x i t + 1 = x i t + v i t + 1 (2) x_i^{t+1} = x_i^t + v_i^{t+1} \tag{2} xit+1=xit+vit+1(2)

MFO [41] 受到蛾子利用月光导航的启发,被人工光源干扰。种群 ( M M M) 由蛾子(代理)组成,而火焰 ( F F F) 是排序后的 M M M,代表最佳位置。火焰 ( F n o F_{no} Fno) 的数量随着迭代次数的增加而减少,以平衡探索和开发,使用公式 3。

F n o = round ( n − t ∗ n − 1 maxIter ) (3) F_{no} = \text{round}(n - t * \frac{n - 1}{\text{maxIter}}) \tag{3} Fno=round(ntmaxItern1)(3)

i i i 只蛾子在第 t t t 次迭代中的位置 M i t M_i^t Mit 使用对数螺旋方程更新,如公式 4 所示,其中第 i i i 只蛾子围绕相应的第 i i i 个火焰 F i t F_i^t Fit 飞行, b b b 是定义对数螺旋形状的常数, r r r 是 [-1,1] 之间的随机数。这种方法通过确保火焰不会在迭代过程中固定在特定的蛾子上来保持多样性。

M i t + 1 = { ∣ F i t − M i t ∣ ∗ e b ⋅ r ∗ cos ⁡ ( 2 π r ) + F i t if  t ≤ F n o ∣ F i t − M i t ∣ ∗ e b ⋅ r ∗ cos ⁡ ( 2 π r ) + F n o t otherwise (4) M_i^{t+1} = \begin{cases} |F_i^t - M_i^t| * e^{b \cdot r} * \cos(2 \pi r) + F_i^t & \text{if } t \leq F_{no} \\ |F_i^t - M_i^t| * e^{b \cdot r} * \cos(2 \pi r) + F_{no}^t & \text{otherwise} \end{cases} \tag{4} Mit+1={FitMitebrcos(2πr)+FitFitMitebrcos(2πr)+Fnotif tFnootherwise(4)

Ling 等人开发了混合 HyMFPSO 算法,结合了 PSO 和 MFO,其在八个基准函数 (2-10 维) [42] 上的表现优于 PSO 和 MFO。在 HyMFPSO 中,PSO 速度 ( v i t + 1 v_i^{t+1} vit+1) 被添加到 MFO 位置更新中,如公式 5 所示。Shaikh 等人提出了 HMFPSO,这是 Hy-PSO-MFO 的改进版本,由 Yang 等人验证了基准函数和电力传输应用 [43]。HMFPSO 引入了基于 PSO 的局部吸引子 ( Q i t Q_i^t Qit),用于蛾子位置更新,如公式 6 所示。 p B e s t i t pBest_i^t pBestit g b e s t t gbest^t gbestt 代表局部和全局最佳火焰。
分别, ϕ \phi ϕ 是 [0, 1] 范围内的随机数 [43]。

Q i t = ϕ × p B e s t i t + ( 1 − ϕ ) × g b e s t t (5) Q_i^t = \phi \times pBest_i^t + (1 - \phi) \times gbest^t \tag{5} Qit=ϕ×pBestit+(1ϕ)×gbestt(5)

M i t + 1 = ∣ F i t − M i t ∣ × e b × r × cos ⁡ ( 2 π r ) + Q i t (6) M_i^{t+1} = |F_i^t - M_i^t| \times e^{b \times r} \times \cos(2 \pi r) + Q_i^t \tag{6} Mit+1=FitMit×eb×r×cos(2πr)+Qit(6)
在这里插入图片描述

2 提出的蛾火焰粒子群优化 (MFPSO) 算法

标准 PSO 算法存在过早收敛问题,可能会陷入局部最小值 [14]。粒子速度基于局部和全局最优值进行更新。粒子位置仅基于粒子速度进行更新,这增加了过早收敛的可能性。

2.1 提出的 MFPSO 算法的概念及其方程

提出的蛾火焰粒子群优化 (MFPSO) 算法旨在通过整合粒子群优化 (PSO) 和蛾火焰优化 (MFO) 算法的元素来改进原始 PSO 的性能。MFO 算法,受蛾子自然导航行为的启发,在探索方面表现出色,这是由于其火焰更新机制 [41]。通过结合 MFO 的强探索能力和 PSO 的强开发能力,MFPSO 算法旨在避免标准 PSO 中的过早收敛,并实现探索与开发之间的更好平衡。

在 MFPSO 算法中,将 PSO 中的粒子速度概念整合到蛾子的 MFO 算法中。MFPSO 的种群由一组蛾子组成,每只蛾子由速度 v i ( t ) v_i^{(t)} vi(t) 和位置 x i ( t ) x_i^{(t)} xi(t) 定义,其中 i i i 表示第 i i i 只蛾子, d d d 表示第 d d d 维, t t t 是迭代次数。每蛾只子的位置代表候选解,对应于速度控制应用中的 PID 参数。火焰种群 F F F 由基于适应度值排序的蛾子组成, f i ( t ) f_i^{(t)} fi(t) 表示第 i i i 只火焰在第 t t t 次迭代中第 d d d 维的位置。

蛾子的速度 v i ( t ) v_i^{(t)} vi(t) 根据当前蛾子位置 x i ( t ) x_i^{(t)} xi(t)、整个种群中全局最佳蛾子位置 g b e s t d gbest_d gbestd 和第 i i i 只蛾子的个人最佳位置 p b e s t i , d pbest_{i,d} pbesti,d 的差异步长进行更新。方程 8 显示了蛾子的速度更新,其中 v v v 是惯性权重, r 1 r_1 r1 r 2 r_2 r2 是 [0,1] 范围内的随机数, c 1 c_1 c1 c 2 c_2 c2 是加速系数,影响个人最佳位置和全局最佳位置的影响。这种机制反映了 PSO 算法中的速度更新。

v i , d ( t + 1 ) = w ⋅ v i , d ( t ) + c 1 ⋅ r 1 ⋅ ( p b e s t i , d − x i , d ( t ) ) + c 2 ⋅ r 2 ⋅ ( g b e s t d − x i , d ( t ) ) (8) v_{i,d}^{(t+1)} = w \cdot v_{i,d}^{(t)} + c_1 \cdot r_1 \cdot (pbest_{i,d} - x_{i,d}^{(t)}) + c_2 \cdot r_2 \cdot (gbest_d - x_{i,d}^{(t)}) \tag{8} vi,d(t+1)=wvi,d(t)+c1r1(pbesti,dxi,d(t))+c2r2(gbestdxi,d(t))(8)

MFPSO 算法的主要思想是结合 MFO 的探索能力与 PSO 在蛾子位置更新中的开发能力,从而提高性能并防止过早收敛。蛾子种群被分为两组。在第一组中,位置 x i , d ( t + 1 ) x_{i,d}^{(t+1)} xi,d(t+1) 根据新计算的速度 v i , d ( t + 1 ) v_{i,d}^{(t+1)} vi,d(t+1) 更新。在第二组中,位置基于围绕相应目标火焰位置 P i , d ( t ) P_{i,d}^{(t)} Pi,d(t) 的对数螺旋运动更新。混合位置更新方程由公式 9 给出,其中 b b b 是定义螺旋形状的常数(设为 1), l i , d l_{i,d} li,d i i i 只蛾子的第 d d d 维的随机数,范围为 [-1,1]。

x i , d ( t + 1 ) = { x i , d ( t ) + v i , d ( t + 1 ) , if rand ≤ 0.5 ∣ P i , d ( t ) + ∣ x i , d ( t ) − P i , d ( t ) ∣ ⋅ e b ⋅ l i , d ⋅ cos ⁡ ( 2 π ⋅ l i , d ) , otherwise (9) x_{i,d}^{(t+1)} = \begin{cases} x_{i,d}^{(t)} + v_{i,d}^{(t+1)}, & \text{if rand} \leq 0.5 \\ |P_{i,d}^{(t)} + |x_{i,d}^{(t)} - P_{i,d}^{(t)}| \cdot e^{b \cdot l_{i,d}} \cdot \cos(2 \pi \cdot l_{i,d}), & \text{otherwise} \end{cases} \tag{9} xi,d(t+1)={xi,d(t)+vi,d(t+1),Pi,d(t)+xi,d(t)Pi,d(t)ebli,dcos(2πli,d),if rand0.5otherwise(9)

目标火焰的数量 F n o F_{no} Fno 随着每次迭代而减少,从种群大小开始,如公式 3 所示。第 i i i 个目标火焰位置 P i , d ( t ) P_{i,d}^{(t)} Pi,d(t) 的第 d d d 维由公式 10 确定,其中 t t t 是迭代次数, f i , d ( t ) f_{i,d}^{(t)} fi,d(t) 表示第 i i i 个火焰的位置的第 d d d 维, f F n o , d ( t ) f_{F_{no},d}^{(t)} fFno,d(t) 表示位于种群中 F n o F_{no} Fno 索引的蛾子的第 d d d 维位置。

p i , d ( t ) = { f i , d ( t ) , if  t ≤ F n o f F n o , d ( t ) , otherwise (10) p_{i,d}^{(t)} = \begin{cases} f_{i,d}^{(t)}, & \text{if } t \leq F_{no} \\ f_{F_{no},d}^{(t)}, & \text{otherwise} \end{cases} \tag{10} pi,d(t)={fi,d(t),fFno,d(t),if tFnootherwise(10)

2.2 MFPSO 算法的逐步描述

算法 1 描述了 MFPSO 算法的步骤,图 1 显示了 MFPSO 序列的流程图。首先,初始化 MFPSO 参数,包括惯性权重和加速系数。MFPSO 算法的第二步初始化包含所有候选解的随机种群 M M M,其中 n P o p nPop nPop 是种群大小。每只蛾子有两个属性:位置 x i x_i xi,代表解决方案本身(例如,PID 参数),以及速度 v i v_i vi,这是从 PSO 算法继承的特征,用于位置更新。
在这里插入图片描述

http://www.xdnf.cn/news/3067.html

相关文章:

  • GA-Transformer遗传算法优化编码器多特征分类预测/故障诊断,作者:机器学习之心
  • 【Redis——数据类型和内部编码和Redis使用单线程模型的分析】
  • EtherCAT 分布式时钟(DC)补偿技术解析
  • React Native 动态切换主题
  • 使用js写一个发布订阅者
  • 给 BBRv2/3 火上浇油的 drain-to-target
  • 26考研 | 王道 | 计算机网络 | 第一章 计算机网络的体系结构
  • Python核心机制与实战技巧:从变量作用域到GIL的深度解析
  • 基于Springboot + vue实现的列书单读书平台
  • 技术赋能与模式重构:开源AI大模型驱动下的“一盘货”渠道革命——基于美的案例与S2B2C生态融合的实证研究
  • 部署一个自己的Spring Ai 服务(deepseek/通义千问)
  • 20250429 垂直地表发射激光测量偏转可以验证相对性原理吗
  • 学习海康VisionMaster之线圆测量
  • 一个SciPy图像处理案例的全过程
  • java 加入本地lib jar处理方案
  • 暑假里系统学习新技能(马井堂)
  • AWS创建多块盘并创建RAID0以及后增加空间
  • 【OSG学习笔记】Day 14: 操作器(Manipulator)的深度使用
  • Go语言Context机制深度解析:从原理到实践
  • 【Java核心】一文理解Java面向对象(超级详细!)
  • 测试基础笔记第十六天
  • 【沉浸式求职学习day29】【信科知识面试题第一部分】【新的模块,值得收藏】
  • Opencv中图像深度(Depth)和通道数(Channels)区别
  • 嵌入式复习第一章
  • 基于C++的IOT网关和平台1:github项目ctGateway
  • ppt箭头素材图片大全
  • Python实例题:ebay在线拍卖数据分析
  • OpenAI Embedding 和密集检索(如 BERT/DPR)进行语义相似度搜索有什么区别和联系
  • Transformer-LSTM-SVM回归
  • 扣子流程图批量导入飞书多维表格