北核论文完美复现:自适应t分布与动态边界策略改进的算术优化算法

news2024/9/21 14:47:25

       声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 

目录

原始算术优化算法

改进点1:引入余弦控制因子的动态边界策略

改进点2:自适应t分布变异策略

改进算法流程图

结果展示

参考文献

完整代码获取


        ​很多小伙伴问我,某某算法到底该怎么改效果比较好。实话讲,如果不经过实验,我随便说一个策略,效果能好吗?至于加什么策略,怎么加策略,为什么加这个策略,都是需要经过实验才能得出来的。        

        对于那些初学智能优化算法的小伙伴,我的建议还是要多看论文进行学习和复现。相信没有小伙伴是不看文献直接就能想出来创新点的吧,如果有,那大概率是闭门造车。

        当然,我相信大部分小伙伴代码水平没那么高,复现论文仍有一定难度。因此,我也会不断推出一些复现改进算法的文章。大家也可以用这些改进的算法应用到各类预测、优化、故障诊断、路径优化等等任务中,我之前的推文里也有很多,都可以套用。

        今天为大家带来一篇北大核心+CSCD扩展上的一篇论文完美复现。这是一篇是2022年发表在《计算机应用研究》上的一篇文章,级别还是很高的,改进的算法叫算术优化算法。

原始算术优化算法

        算术优化算法也是一种新颖的2021年提出的基于群体的元启发式算法,包括勘探阶段和开发阶段。勘探阶段的算子为乘法M(Multiplication) 和除法D(Division) ,这两个算子(D和M) 分散性高,有利于全局勘探;而开发阶段的算子为加法A( Addition) 和减法S(Subtraction),这两个算子(A和S)具有显著的低分散性,可以容易地接近目标,因此S和A的联系来支持开发阶段,有利于更快地接近最优解。

        为了避免推文中出现繁冗的公式,这边仅仅列出公式及其序号,方便大家在后续改进过程中查看公式序号从而对应改进点。

        不得不说,原始AOA算法操作简单且寻优时间较短,同时寻优精度良好,超过了大部分传统启发式算法,但仍存在易陷入局部最优等问题。

        针对这些问题,文章提出了一种自适应t分布变异和动态边界策略改进的算术优化算法(t-CAOA)。

        这是2022年发表在《计算机应用研究》上的一篇文章,级别还是很高的,改进的算法叫算术优化算法。

改进点1:引入余弦控制因子的动态边界策略

        与其他群智能优化算法类似,基本算术优化算法在寻优过程中同样会遇到全局搜索能力和局部开发能力不平衡的现象。在基本算术优化算法中,MOA的取值决定了算法优化过程中的阶段选择,MOA越大,算法的局部搜索能力越强;MOA越小,算法的全局搜索能力越强,式(2)描述的MOA是线性增长的,即算法的全局搜索能力线性减小。然而,AOA在进化探索过程中却是非线性变化的,线性增长的MOA不能准确贴近实际迭代过程,引入余弦控制因子将MOA的变化转换为非线性,可以更贴近算法实际的迭代过程,以下将引入余弦控制因子的自适应系数命名为CMOA。引入余弦控制因子的CMOA在算法迭代前期,CMOA较小并缓慢增大以充分进行全局搜索;在算法后期,CMOA急速增大以进行局部搜索。AOA作为一种新型群体智能算法,如何平衡其全局搜索和局部搜索对提高算法的性能至关重要。若全局搜索和局部搜索协调不好,在进化过程中可能会导致算法出现早熟收敛现象。因此,本文在MOA更新公式中加入由余弦因子控制的非线性惯性权重来动态调节算法全局搜索与局部搜索的平衡,提高算法寻优精度和稳定性。公式如下:

改进点2:自适应t分布变异策略

        t分布又称学生分布,含有参数自由度,当t(n→∞)→N(0,1),当t(n=1)=C(0,1),其中N(0,1)为高斯分布,C(0,1)为柯西分布,即标准高斯分布和柯西分布是t分布的两个边界特例分布,三者函数的分布图像如下图所示。其中,柯西变异的全局搜索能力较强,能够有效地保持种群的多样性;而高斯变异的局部开发能力较强,可以保证进化后期的收敛速度。t分布综合了柯西分布和高斯分布的优点,本文采用以迭代次数iter为t分布的自由度参数的t分布变异算子对解的位置进行扰动,使得算法在迭代前期具有较好的全局开发能力,在迭代后期具有良好的局部探索能力,并提高算法的收敛速度,具体的位置更新方式如下:

        其中:Xji+1为自适应t分布变异扰动后最优解在第j维的位置;Xjbest为变异扰动前最优解在第j维的位置,迭代次数作为t分布的自由度参数。

改进算法流程图

        t-CAOA的具体执行流程如下图所示:

        1)初始化参数,包括种群规模为30,迭代次数为500;

        2)随机生成初始解和计算适应度值;

        3)根据式(6)更新CMOA的参数值,使得勘探和开发阶段之间的转换动态且非线性;

        4)若r1<CMOA,根据式(3)实行勘探并更新位置;若r1≥CMOA,根据式(5)实行开发并更新位置。

结果展示

        原文作者选取了 10 个不同特点的基准测试函数与基本算术优化算法AOA、海洋捕食者算法MPA、灰狼优化算法GWO、鲸鱼优化算法WOA进行对比。

        这边为了方便大家对比,选取23个基准测试函数,与基本算术优化算法AOA进行对比。

        可以看到,选取的前11个函数里(没有故意遗漏!),在大部分函数上都优于原来的AOA算法,且收敛速度大幅提高,是一种不错的改进方法!

        当然,部分函数上该算法已经直接找到最优值,如F9,因此迭代曲线上没有显示(至于这种策略好不好仁者见仁智者见智,由于不是我改进的方法我这边不做过多评判)。

        ​其他的函数小伙伴们可以自行尝试,总体上效果明显优于原有的算术优化算法!

参考文献

        [1]郑婷婷,刘升,叶旭.自适应t分布与动态边界策略改进的算术优化算法[J].计算机应用研究,2022,39(05):1410-1414.

完整代码获取

         点击下方小卡片,后台回复关键字,不区分大小写:

TCAOA

         其他更多需求或想要的代码均可点击下方小卡片后后台私信,看到后会秒回~

         更多代码链接:更多代码链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1696784.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java进阶学习笔记22——泛型方法、通配符和上下限

泛型方法: package cn.ensource.d11_generics_method;public class Test {public static void main(String[] args) {// 泛型方法String res test("Java");System.out.println(res);Dog dog1 test(new Dog());System.out.println(dog1);}// 泛型方法pub…

python考试成绩管理与分析:从列表到方差

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、考试成绩的输入与列表管理 二、成绩的总分与平均成绩计算 三、成绩方差的计算 四、成…

基于Rsoft的Fullwave仿真模块进行双芯波导能量耦合与波分复用

Rsoft中的Fullwave仿真模块可以更精确的仿真微小结构,按照建立模型,设置参数,监测能量,优化结构的思路对其进行仿真。图1是在Fullwave模块中建立的双芯波导仿真模型。在模型中设置好折射率、光源、光路、监测器等便可以进行仿真。…

mysql实战——XtraBackup二进制包安装

1、二进制包下载网站 Software Downloads - Percona 2、安装xtrabackup 解压安装包 tar xvf percona-xtrabackup-8.0.27-19-Linux-x86_64.glibc2.17.tar.gz -C /usr/local 进入目录 cd percona-xtrabackup-8.0.27-19-Linux-x86_64.glibc2.17/ 安装依赖 yum install perl-Dig…

平安养老险陕西分公司:举办“贺司庆·员工橙心面对面”活动

为践行新价值文化与“三省”推广,平安养老险陕西分公司以集团36周年司庆为契机结合“员工聆听计划”指引要求,举办“贺司庆,员工橙心面对面”活动。 活动邀请西北大学公共管理学院高阳教授为分公司员工带来生动有趣的《压力管理新科学》心理课…

gdc2024:Raytracing in Snowdrop技术实现与性能优化策略

在今年的GDC(游戏开发者大会)的Advanced Graphics Summit上,关于Snowdrop引擎中光线追踪技术的讨论引起了广泛关注。 一、光线追踪全局照明的实现细节 屏幕空间追踪: 屏幕空间追踪从相机出发,对屏幕上的每个像素点生成…

搭建企业级AI应用的流程

搭建企业级AI应用的流程是一个复杂且系统化的工程,它需要从多个维度出发,确保最终的应用既符合企业的业务需求,也具备高效、稳定和可扩展的特性。以下是详细的步骤: 初步接触与需求分析是整个项目的基础。在这一阶段,我…

STM32 DMA配置库函数

单片机学习! 目录 1. DMA_DeInit 2. DMA_Init 3. DMA_StructInit 4. DMA_Cmd 5. DMA_ITConfig 6. DMA_SetCurrDataCounter 7. DMA_GetCurrDataCounter 8. 获取/清除函数 8.1 DMA_GetFlagStatus 8.2 DMA_ClearFlag 8.3 DMA_GetITStatus 8.4 DMA_ClearITP…

【调试笔记-20240526-Linux-在 OpenWrt-23.05 发行版上安装 cloudreve】

调试笔记-系列文章目录 调试笔记-20240526-Linux-在 OpenWrt-23.05 发行版上安装 cloudreve 文章目录 调试笔记-系列文章目录调试笔记-20240526-Linux-在 OpenWrt-23.05 发行版上安装 cloudreve 前言一、调试环境操作系统:Windows 10 专业版调试环境调试目标 二、调…

Adobe Animate AN v24.0.2 安装教程 (动画特效设计及合成工具)

Adobe系列软件安装目录 一、Adobe Photoshop PS 25.6.0 安装教程 (最流行的图像设计软件) 二、Adobe Media Encoder ME v24.3.0 安装教程 (视频和音频编码渲染工具) 三、Adobe Premiere Pro v24.3.0 安装教程 (领先的视频编辑软件) 四、Adobe After Effects AE v24.3.0 安装…

安卓手机听书的各种免费方案

categories: Tips tags: Tips 写在前面 最近 Tencent 突然给微信读书上限制了, 普通用户一个月内仅能导入 3 本书, 这就让经常在 weread 上面听书入眠的我很无奈了. 折腾一下备选方案吧, 肯定是免费优先咯. 下面主要从支持 tts 的阅读器/ tts 免费中文引擎两个角度来讲. r…

Linux服务升级:Predixy 升级代理 Redis-cluster 集群

目录 一、实验 1.环境 2. 启动Redis服务 3.Predixy 升级代理 Redis-cluster 集群 二、问题 1. Predixy进行set操作报错 2.如何创建脚本启动predixy 3.Redis代理对比 一、实验 1.环境 (1)主机 表1 主机 系统版本节点软件IP备注CentOS7.9Redis…

沁恒CH32V307开发板移植lvgl V9版本图形库

我们在移植lvgl9版本之前也是去网上进行了大量资料的查找,发现关于lvgl的移植大多停留在8版本的基础上,所以我们绝对自己干,并把移植过程中遇到的问题总结出来,这里主要为大家总结一下移植中一些容易踩的坑,以及8版本和…

新建一个STM32的工程

一、SMT32开发方式 1、基于寄存器的方式:和51单片机开发方式一样,是用程序直接配置寄存器,来达到我们想要的功能,这种方式最底层、最直接、效率会更高一些,但是STM32的结构复杂、寄存器太多,所以不推荐基于…

深入理解 Spring 上下文(Context)层次结构

前言 在使用 Spring 框架进行应用程序开发时,Spring 上下文(Context)是一个非常重要的概念。Spring 上下文提供了一个环境,用于管理应用程序中的对象(通常称为 Bean)及其之间的依赖关系。在复杂的应用程序…

Nginx代理配置(专业版)

写在前面提醒:使用代理,如果可以,请尽量支持双协议,http、https均要支持哈。 注意:监控系统只是运行代码,是否支持https,需要运维同学在你们的服务器上配置https证书,配置好证书&…

【最新区块链论文录用资讯】CCF A — SP 2024 共17篇

Conference:45th IEEE Symposium onSecurity and Privacy CCF level:CCF A Categories:网络与信息安全 Year:2024 Num:17 Efficient Zero-Knowledge Arguments For Paillier Cryptosystem Paillier 加密系统的有效…

VUE3视频播放器 videojs-player/vue

简介 官网: https://gitcode.com/surmon-china/videojs-player/overviewhttps://github.com/surmon-china/videojs-player?tabreadme-ov-file video-player是一个基于video.js的视频播放器组件,它提供了丰富的功能,包括视频播放、暂停、快…

Vue学习笔记3——事件处理

事件处理 1、事件处理器(1)内联事件处理器(2)方法事件处理器 2、事件参数3、事件修饰符 1、事件处理器 我们可以使用v-on 指令(简写为)来监听DOM事件,并在事件触发时执行对应的JavaScript。 用法: v-on:click"me…

mysql之递归sql

mysql之递归sql 递归sql在一些公司是不允许使用的,会涉及数据库压力,所以会在代码里递归查询,但有些公司开发流程没有规定,且数据库数据量不大,之前写过好几遍了,老是记不住,记录一下 通过父级…