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

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

目录

原始算术优化算法

改进点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.mzph.cn/diannao/15960.shtml

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

相关文章

【Linux】Ubuntu系统挂载NAS文件夹

测试系统:Ubuntu24.02 1. 安装必要的软件包 sudo apt update sudo apt install cifs-utils 2. 创建挂载点 sudo mkdir -p /mnt/nas 3. 获取当前用户的 UID 和 GID id -u id -g 4. 挂载:设置用户名/密码/nas地址 sudo mount -t cifs -o username,…

【网络】socket套接字结合IO多路复用

引言 在多线程编程中,I/O 多路复用(如 select、poll 或 epoll)可以与多线程结合使用,以提高系统的并发处理能力和效率。结合多线程和 I/O 多路复用,可以实现高性能的网络服务器和客户端。以下是一些常见的多线程和 I/…

vue+css解决图片变形问题(flex-shrink: 0)

解决前 给图片添加 flex-shrink: 0;即可解决图片变形问题

基于springboot+vue的致远汽车租赁系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

东方通TongWeb结合Spring-Boot使用

一、概述 信创需要; 原状:原来的服务使用springboot框架,自带的web容器是tomcat,打成jar包启动; 需求:使用东方通tongweb来替换tomcat容器; 二、替换步骤 2.1 准备 获取到TongWeb7.0.E.6_P7嵌入版 这个文件,文件内容有相关对应的依赖包,可以根据需要来安装到本地…

上5个B端系统的设计规范,让你的开发比着葫芦画瓢。

B端系统设计规范在企业级系统开发中起着重要的作用,具体包括以下几个方面: 统一风格和布局:设计规范能够统一系统的风格和布局,使不同功能模块的界面看起来一致,提升用户的使用体验和学习成本。通过统一的设计规范&am…

Day42 最后一块石头的重量Ⅱ + 目标和 + 一和零

1049 最后一块石头的重量Ⅱ 题目链接:1049.最后一块石头的重量Ⅱ 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和…

力扣 5. 最长回文子串 python AC

动态规划 class Solution:def longestPalindrome(self, s):size len(s)maxl 1start 0dp [[False] * size for _ in range(size)]for i in range(size):dp[i][i] Truefor L in range(2, size 1):for i in range(size):j L i - 1if j > size:breakif s[i] s[j]:if L…

AI大模型领域新闻跟踪

杨值麟 月之暗面杨植麟:大模型开发是“承包森林”月之暗面集结最强创投,“清华师姐”是最强“助攻”月之暗面杨植麟:互联网研发是“种树”,大模型研发是“承包森林”月之暗面杨植麟复盘大模型创业这一年:向延绵而未知…

Web课外练习9

<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>邮购商品业务</title><!-- 引入vue.js --><script src"./js/vue.global.js" type"text/javascript"></script><link rel&…

B2117 整理药名

整理药名 题目描述 医生在书写药品名的时候经常不注意大小写&#xff0c;格式比较混乱。现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式&#xff0c;即药品名的第一个字符如果是字母要大写&#xff0c;其他字母小写。 如将 ASPIRIN 、 aspirin 整理成 Aspir…

python获取cookie的方式

通过js获取cookie&#xff0c;避免反复登录操作。 经验证在JD上没有用&#xff0c;cookie应该无痕或者加密了&#xff0c;只能用单浏览器不关的模式来实现&#xff0c;但是代码留着&#xff0c;其他网站可能有用。 def cookie_set():driver webdriver.Chrome(optionschrome_…

一千题,No.0024(数素数)

令 Pi​ 表示第 i 个素数。现任给两个正整数 M≤N≤104&#xff0c;请输出 PM​ 到 PN​ 的所有素数。 输入格式&#xff1a; 输入在一行中给出 M 和 N&#xff0c;其间以空格分隔。 输出格式&#xff1a; 输出从 PM​ 到 PN​ 的所有素数&#xff0c;每 10 个数字占 1 行&…

Kubernetes 文档 / 概念 / 工作负载 / 工作负载管理 / Job

Kubernetes 文档 / 概念 / 工作负载 / 工作负载管理 / Job 此文档从 Kubernetes 官网摘录 中文地址 英文地址 Job 会创建一个或者多个 Pod&#xff0c;并将继续重试 Pod 的执行&#xff0c;直到指定数量的 Pod 成功终止。 随着 Pod 成功结束&#xff0c;Job 跟踪记录成功完成的…

原哥花了1个多月的时间终于开发了一款基于android studio的原生商城app

大概讲一下这个app实现的功能和前后端技术架构。 功能简介 广告展示商品展示跳转淘宝联盟优惠卷购买发布朋友圈宝妈知识资讯商品搜索朋友圈展示/点赞/评论登陆注册版本升级我的个人资料商品和资讯收藏我的朋友圈意见反馈 安卓端技术选型 Arouter组件化daggerrxjavaretrofit…

基于开源二兄弟MediaPipe+Rerun实现人体姿势跟踪可视化

概述 本文中&#xff0c;我们将探索一个利用开源框架MediaPipe的功能以二维和三维方式跟踪人体姿势的使用情形。使这一探索更有趣味的是由开源可视化工具Rerun提供的可视化展示&#xff0c;该工具能够提供人类动作姿势的整体视图。 您将一步步跟随作者使用MediaPipe在2D和3D环…

【计算机毕业设计】基于SSM+Vue的校园美食交流系统【源码+lw+部署文档】

目录 前 言 第1章 概述 1.1 研究背景 1.2 研究目的 1.3 研究内容 第二章 开发技术介绍 2.1 Java技术 2.2 Mysql数据库 2.3 B/S结构 2.4 SSM框架 第三章 系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 系统性能分析 3.3 系…

大模型训练中CUDA out of memory的几种解决方法

常用&#xff1a; 1. 减小batch size 2. 如果需要较大的batch size来达到预期训练指标效果&#xff0c;则使用gradient accumulation来累积梯度&#xff0c;达到等价效果的同时&#xff0c;占用显存小&#xff1b; 3. 使用低精度做训练。&#xff08;mixed precision traini…

自麻省理工学院和谷歌最新研究:零样本跨语言对齐的新途径

在构建实用的语言模型&#xff08;LMs&#xff09;时&#xff0c;使模型与人类偏好对齐是一个不可或缺的阶段。这通常需要大量的标注偏好数据&#xff0c;这些数据对于多种语言来说难以获取&#xff0c;尤其是对于多语种环境&#xff0c;这使得扩展到更多语言变得具有挑战性。本…

YOLO系列模型疑问

YOLO模型V1版本 1、论文里提到bounding box的&#xff08;x&#xff0c;y&#xff09;值表示什么意思呢&#xff1f; 原论文&#xff1a; Each bounding box consists of 5 predictions: x, y, w, h, and confidence. The (x, y) coordinates represent the center of the bo…