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

分数阶粒子群算法-附代码

分数阶粒子群算法

文章目录

  • 分数阶粒子群算法
    • 1.粒子群优化算法
    • 2. 改进粒子群算法
      • 2.1 分数阶粒子群算法
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.Python代码

摘要:通过引入粒子进化因子,利用粒子的状态信息自适应更改分数阶次 α ,通过速度增量为零来更新粒子速度、位置值;结合传统粒子群粒子更新公式,采用粒子对称分布的改进粒子群算法。

1.粒子群优化算法

基础粒子群算法的具体原理参考网络资料

2. 改进粒子群算法

2.1 分数阶粒子群算法

为防止传统粒子群算法陷入局部最优、早熟收敛等问题的发生,同时为了加快算法的收敛速度,由于基于分数阶的学习训练算法很容易跳出局部极值点,且能克服基于一阶梯度的传统学习训练算法易陷入局部极值的缺点,本文将粒子群算法与分数阶微分相结合,通过粒子群粒子的速度、位置的重新组合来自适应调整速度导数的阶次 α 。并通过 对 粒 子 当 前 的 速 度 求 α 阶 导 数 来 更 新 其 速 度、位置值。

根据分数阶微分的 G − L \mathrm{G}-\mathrm{L} GL 定义, 当信号持续 3 个单位即 n = 3 n=3 n=3 时, 根据分数阶微分的差值表达式 (9), 令当前时刻 导数为 0 , 即速度增量为零时求当前时刻速度, 如下式

d a v ( t ) d ( t ) α ≈ v ( t ) + ( − α ) v ( t − 1 ) + ( − α ) ( − α + 1 ) 2 v ( t − 2 ) + \frac{d^a v(t)}{d(t)^\alpha} \approx v(t)+(-\alpha) v(t-1)+\frac{(-\alpha)(-\alpha+1)}{2} v(t-2)+ d(t)αdav(t)v(t)+(α)v(t1)+2(α)(α+1)v(t2)+ ( − α ) ( − α + 1 ) ( − α + 2 ) 6 v ( t − 3 ) = 0 ( 12 ) \frac{(-\alpha)(-\alpha+1)(-\alpha+2)}{6} v(t-3)=0 (12) 6(α)(α+1)(α+2)v(t3)=0(12)
可得
v ( t ) = ( α ) v ( t − 1 ) + ( α ) ( − α + 1 ) 2 v ( t − 2 ) + ( α ) ( − α + 1 ) ( − α + 2 ) 6 v ( t − 3 ) (13) v(t)=(\alpha) v(t-1)+\frac{(\alpha)(-\alpha+1)}{2} v(t-2)+\frac{(\alpha)(-\alpha+1)(-\alpha+2)}{6} v(t-3) \tag{13} v(t)=(α)v(t1)+2(α)(α+1)v(t2)+6(α)(α+1)(α+2)v(t3)(13)

设式 (10) 中 ω = 1 \omega=1 ω=1, 则粒子速度按下列公式更新
v ( t + 1 ) = α v ( t − 1 ) + 1 2 α ( 1 − α ) v ( t − 2 ) + 1 6 α ( 1 − α ) ( 2 − α ) v ( t − 3 ) + c 1 r 1 d ( p i d ( t ) − x i d ( t ) ) + c 2 r 2 d ( p g d ( t ) − x i d ( t ) ) (14) \begin{gathered} v(t+1)=\alpha v(t-1)+\frac{1}{2} \alpha(1-\alpha) v(t-2)+\frac{1}{6} \alpha(1-\alpha)(2-\alpha) v(t-3)+c_1 r_{1 d}\left(p_{i d}(t)-\right. \\ \left.x_{i d}(t)\right)+c_2 r_{2 d}\left(p_{g d}(t)-x_{i d}(t)\right) \end{gathered}\tag{14} v(t+1)=αv(t1)+21α(1α)v(t2)+61α(1α)(2α)v(t3)+c1r1d(pid(t)xid(t))+c2r2d(pgd(t)xid(t))(14)
其中, α \alpha α 为分数阶次。粒子位置按照式 (11) 进行不断调整 更新, 直到找到最佳位置。

由于本文分数阶粒子群算法的分数阶次 α \alpha α 采用的是自 适应参数调整机制, 通过引入进化因子 f f f, 利用粒子的位 置、速度状态来自适应改变分数阶次 α \alpha α 。对于粒子群算法中 的每个粒子i, 粒子到其它粒子的平均距离公式如下
d i x = 1 N − 1 ∑ j = 1 , j = i N ∑ k = 1 D ( x i k − x j k ) 2 (15) d_{i x}=\frac{1}{N-1} \sum_{j=1, j=i}^N \sqrt{\sum_{k=1}^D\left(x_{i k}-x_{j k}\right)^2} \tag{15} dix=N11j=1,j=iNk=1D(xikxjk)2 (15)
其中, N N N D D D 分别为粒子群个数和空间维数。
在进化过程中, 进化因子 (evolutionary factor) f f f 决定 系统当前的进化状态, 其定义为
f = d g − d min ⁡ d max ⁡ − d min ⁡ ∈ [ 0 , 1 ] (16) f=\frac{d_g-d_{\min }}{d_{\max }-d_{\min }} \in[0,1] \tag{16} f=dmaxdmindgdmin[0,1](16)
其中, d g d_g dg 为全局最优位置到其它粒子的平均距离, d max ⁡ d_{\max } dmax d min ⁡ d_{\min } dmin 为所有 d i x d_{i x} dix 中的最大值和最小值。
根据进化因子 f f f, 鉴于分数阶次 α \alpha α [ 0.5 , 0.8 ] [0.5,0.8] [0.5,0.8] 范围 内算法能够获得吏快的收敛速度 [ 13 ] { }^{[13]} [13], 故提出 α \alpha α 的动态调整 等式如下, 此时的 α \alpha α 变化与迭代次数无关
α ( f ) = 1 / 2 e − 0.47 f ∈ [ 0.5 , 0.8 ] (17) \alpha(f)=1 / 2 e^{-0.47 f} \in[0.5,0.8] \tag{17} α(f)=1/2e0.47f[0.5,0.8](17)

3.实验结果

请添加图片描述

4.参考文献

[1]魏晶茹,马瑜,夏瑞,蒋海波,周亭亭.基于分数阶粒子群的Otsu图像分割算法[J].计算机工程与设计,2017,38(12):3284-3290.DOI:10.16208/j.issn1000-7024.2017.12.017.

5.Matlab代码

6.Python代码

相关文章:

  • springboot(三)
  • Kubernetes 常见面试题(六)
  • Linux安装禅道最新版
  • 【Bluetooth|蓝牙开发】十一、一文秒懂 | 超详细的Bluez交叉编译
  • TC8:SOMEIPSRV_FORMAT_01-10
  • 软考:信息安全工程师3
  • 接口(续)和Object类
  • 构造接口,免费查询快递物流
  • 被裁后一个offer都没有,测试人的问题在哪里?
  • 图像运算和图像增强一
  • 【C++】unordered map/set
  • 定时任务框架
  • C型9.4MM针脚距电磁阀插头
  • 【算法 | 实验8】分配最小页数(数组划分和最大值最小化问题)
  • rsync远程同步+inotify监控
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • Fundebug计费标准解释:事件数是如何定义的?
  • httpie使用详解
  • javascript 哈希表
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • socket.io+express实现聊天室的思考(三)
  • Spring核心 Bean的高级装配
  • Twitter赢在开放,三年创造奇迹
  • 关于List、List?、ListObject的区别
  • 普通函数和构造函数的区别
  • 前端_面试
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 以太坊客户端Geth命令参数详解
  • Spring Batch JSON 支持
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (ros//EnvironmentVariables)ros环境变量
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (独孤九剑)--文件系统
  • (二)JAVA使用POI操作excel
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET NPOI导出Excel详解
  • .Net多线程总结
  • .NET简谈设计模式之(单件模式)
  • //解决validator验证插件多个name相同只验证第一的问题
  • ?php echo ?,?php echo Hello world!;?
  • [<事务专题>]
  • [autojs]逍遥模拟器和vscode对接
  • [AutoSar]BSW_Com07 CAN报文接收流程的函数调用
  • [C++]C++类基本语法
  • [C++]priority_queue的介绍及模拟实现
  • [Delphi]一个功能完备的国密SM4类(TSM4)[20230329更新]
  • [EMWIN]FRAMEWIN 与 WINDOW 的使用注意