一种引入过渡阶段和高斯变异的改进算术优化算法(TGAOA)-附代码

news2024/9/20 19:38:04

一种引入过渡阶段和高斯变异的改进算术优化算法(TGAOA)

文章目录

  • 一种引入过渡阶段和高斯变异的改进算术优化算法(TGAOA)
    • 1.算术优化算法
    • 2. 改进算术优化算法
      • 2.1 重构数学加速优化器 MOA
      • 2.2 新策略的引入
      • 2.3 具有一致性的高斯变异策略
      • 2.4具有一致性的高斯变异策略
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.Python代码

摘要:针对算术优化算法收敛精度低、易陷入局部最优等问题,提出了一种改进的过渡高斯算术优化算法,该算法将新的非线性过渡阶段与改进的高斯变异策略相结合。 首先,为了更好地从勘探阶段的高离散度策略过渡到开发阶段的低离散度策略,提出过渡阶段策略,并通过比较三种曲线实验重构数学优化加速函数。其次,引入具有算术优化算法特性的高斯变异策略和边界函数策略,加强算法跳出局部区域的能力。

1.算术优化算法

基础算术优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/119785544

2. 改进算术优化算法

2.1 重构数学加速优化器 MOA

选择余弦函数作为数学优化 的加速函数, 以实现相对最优的勘探过程、过渡 过程和开发过程。余弦函数的选择使得算法在求 解问题时更具通用性。具体公式如等式 1 所示。
M O A = { 1 2 cos ⁡ ( 3 π × t 2 × M − Iter  ) + 1 2 0 < t ≤ 2 3 M − Iter  0 2 3 M − Iter  < t ≤ M − Iter  } (6) M O A=\left\{\begin{array}{c} \frac{1}{2} \cos \left(\frac{3 \pi \times t}{2 \times M_{-} \text {Iter }}\right)+\frac{1}{2} \quad 0<t \leq \frac{2}{3} M_{-} \text {Iter } \\ 0 \quad \frac{2}{3} M_{-} \text {Iter }<t \leq M_{-} \text {Iter } \end{array}\right\}\tag{6} MOA={21cos(2×MIter 3π×t)+210<t32MIter 032MIter <tMIter }(6)

M O B = { 1 2 cos ⁡ ( 3 π × t 2 × M − Iter  ) + 1 2 1 3 M − Iter  < t ≤ M − Iter  0 0 < t ≤ 1 3 M − Iter  } (8) M O B=\left\{\begin{array}{c} \frac{1}{2} \cos \left(\frac{3 \pi \times t}{2 \times M_{-} \text {Iter }}\right)+\frac{1}{2} \quad \frac{1}{3} M_{-} \text {Iter }<t \leq M_{-} \text {Iter } \\ 0 \quad 0<t \leq\frac{1}{3} M_{-} \text {Iter } \end{array}\right\}\tag{8} MOB={21cos(2×MIter 3π×t)+2131MIter <tMIter 00<t31MIter }(8)

2.2 新策略的引入

S S A \mathrm{SSA} SSA在过渡阶段的更新公式设计中, 由于原 A O A \mathrm{AOA} AOA 采用了对所有个体均选择历史最优位置进行更新 的更新策略, 忽略了当前个体位置向量对优化过 程的重大影响。因此, 新公式引入了当前个体位 置。在此基础上, 过渡阶段还加入当前所有个体 的平均位置, 在算法迭代初期, 个体分布较为分 散, 平均位置与最优位置距离较远, 有利于勘探 阶段的执行, 随着算法的迭代, 这个距离会逐渐 减小逐渐收玫, 有利于开发阶段的执行。最终用 以平衡原始 A O A \mathrm{AOA} AOA 的勘探和开发阶段的过渡更新公 式如下:
x i , j ( t + 1 ) = best ⁡ ( x j ) + 2 × M O P × ( x temp  − x mean  ) (8) x_{i, j}(t+1)=\operatorname{best}\left(x_j\right)+2 \times M O P \times\left(x_{\text {temp }}-x_{\text {mean }}\right)\tag{8} xi,j(t+1)=best(xj)+2×MOP×(xtemp xmean )(8)
其中, x temp  x_{\text {temp }} xtemp  表示当前个体位置, x mean  x_{\text {mean }} xmean  表示当前所有个体的平均位置。

2.3 具有一致性的高斯变异策略

高斯变异策略因其优异的随机性在其他算法 中跳出局部最优有较多的应用, 本文在基本高斯 变异的基础上, 提出了一种与算术优化算法具有 一致性的高斯变异策略,公式见(9)。
x pause  = { 2 ⋅ M O P ⋅  Gauss  × x i , j r 4 ≤ 0.5 2 ⋅ M O P ⋅  Gauss  + x i , j r 4 > 0.5 } (9) x_{\text {pause }}=\left\{\begin{array}{ll} 2 \cdot M O P \cdot \text { Gauss } \times x_{i, j} & r_4 \leq 0.5 \\ 2 \cdot M O P \cdot \text { Gauss }+x_{i, j} & r_4>0.5 \end{array}\right\}\tag{9} xpause ={2MOP Gauss ×xi,j2MOP Gauss +xi,jr40.5r4>0.5}(9)
其中 M O P M O P MOP 为原始 A O A \mathrm{AOA} AOA 算法的参数见公式(4)。 Gauss 表示服从标准正态的高斯函数。 r 4 r_4 r4 表示区 间为 [ 0 , 1 ] [0,1] [0,1] 的随机数。 x pause  x_{\text {pause }} xpause  表示策略更新后生成的 解。

2.4具有一致性的高斯变异策略

本文提出的新的高斯变异策略很好地解决了算法陷入局部最优的问题, 但是高斯变异策略可 能会使得个体每个维度朝着不同的方向更新, 这 有时会导致解空间区域较大的目标函数跳出局部 失效。因此本文还提出了一种与算术优化算法具 有一致性的边界函数变异策略, 该策略不仅解决 了所提出的新高斯变异策略存在的问题, 还能够 更好地帮助算法解决跳出局部最优问题, 公式如 等式(10)。
X pause  = { ( U B − L B ) ⋅ rand ⁡ ( ) × x i , j r 4 ≤ 0.5 ( U B − L B ) ⋅ rand ⁡ ( ) + x i , j r 4 > 0.5 } (10) X_{\text {pause }}=\left\{\begin{array}{ll} (U B-L B) \cdot \operatorname{rand}() \times x_{i, j} & r_4 \leq 0.5 \\ (U B-L B) \cdot \operatorname{rand}()+x_{i, j} & r_4>0.5 \end{array}\right\} \tag{10} Xpause ={(UBLB)rand()×xi,j(UBLB)rand()+xi,jr40.5r4>0.5}(10)
其中解空间的上界和下界由 U B U B UB L B L B LB 表示, 而 0 和 1 之间的随机整数由 rand ⁡ ( O \operatorname{rand}\left(\mathrm{O}\right. rand(O 表示。 X pause  X_{\text {pause }} Xpause  表 示策略变化后生成的解决方案。

在这里插入图片描述

3.实验结果

在这里插入图片描述

4.参考文献

[1]张伟,李世港,齐明楚,周徐虎,宋燕.一种引入过渡阶段和高斯变异的改进算术优化算法[J/OL].小型微型计算机系统:1-12[2023-04-23].http://kns.cnki.net/kcms/detail/21.1106.TP.20230413.1731.019.html

5.Matlab代码

6.Python代码

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

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

相关文章

YOLOv8 应用轻量级通用上采样算子CARAFE

特征上采样是现代卷积神经网络架构中的关键操作,例如特征金字塔。其设计对于密集预测任务,如目标检测和语义/实例分割至关重要。在本研究中,我们提出了一种称为内容感知特征重组(CARAFE)的通用、轻量级且高效的操作符,以实现这一目标。CARAFE具有以下几个优点:(1)大的…

模型评估与选择

一、问题 在现实任务中&#xff0c;我们往往有多种学习算沾了供选择&#xff0c;甚至对同 -个学习算法&#xff0c;当使用不同的参数配置时也会产生不 同的模型 . 那么&#xff0c;我们该选用 哪一个学习算法、使用哪一种参数配置呢? 理想的解决方案当然是对候选模型的泛化误…

Java线程详解

线程是CPU调度和分配的基本单位&#xff0c;是操作系统可以识别的最小执行和调度单位&#xff0c;每个线程都有自己特定的独立的内存区域&#xff0c;当然也与其他线程共享堆内存&#xff0c;文件队列以及其他内核资源&#xff0c;Java虚拟机允许一个应用拥有多个线程并发工作。…

AI绘画——Lora模型 小人书·连环画 xiaorenshu

目录 小人书连环画 使用说明&#xff1a; Instructions for v1.5: Instructions for v1.0: 下载地址 模型演示&#xff08;多图预警&#xff09; Night Sky YOZORA Model 模型 Lora模型xiaorenshu pastel-mix模型pastel-waifu-diffusion.vae模型Lora模型xiaorenshu 小人书…

JavaSE05|数组的定义与使用

文章目录 JavaSE05|**数组的定义与使用**1.数据基本概念**2.** **数组是引用类型****3.** **数组的应用场景** JavaSE05|数组的定义与使用 1.数据基本概念 定义&#xff1a;可以看成是相同类型元素的一个集合 1.1数组初始化 动态初始化&#xff1a;在创建数组时&#xff0c…

使用 Kubectl Patch 命令更新资源

Kubectl patch 命令允许用户对运行在 Kubernetes 集群中的资源进行局部更新。相较于我们经常使用的 kubectl apply 命令&#xff0c;kubectl patch 命令在更新时无需提供完整的资源文件&#xff0c;只需要提供要更新的内容即可。 Kubectl patch 支持以下 3 种 patch 类型&…

ROS学习第三十三节——Arbotix使用

https://download.csdn.net/download/qq_45685327/87718484 1.介绍 通过 URDF 结合 rviz 可以创建并显示机器人模型&#xff0c;不过&#xff0c;当前实现的只是静态模型&#xff0c;如何控制模型的运动呢&#xff1f;在此&#xff0c;可以调用 Arbotix 实现此功能。 Arboti…

第九章 桥接模式

文章目录 前言一、桥接模式(Bridge)-基本介绍完整代码Brand 手机接口&#xff0c;定义行为Vivo 实现 Brand 接口XiaoMi 实现 Brand 接口Phone 抽象桥接类FoldedPhone 实现桥接 &#xff08;折叠样式手机&#xff09;UpRightPhone 实现桥接&#xff08;直立样式手机&#xff09;…

干货 | 被抑郁情绪所困扰?来了解CBT吧!

Hello&#xff0c;大家好&#xff01; 这里是 壹脑云科研圈 &#xff0c;我是 喵君姐姐~ 我们的情绪就像是一组正弦波&#xff0c;有情绪很高涨的时刻&#xff0c;也会有情绪低落的瞬间&#xff0c;也会有情绪平稳的时候。 这种情绪上的变化非常正常&#xff0c;也正是因为这…

shell的变量功能

文章目录 shell的变量功能什么是变量&#xff1f;变量的可变性与方便性影响bash环境操作的变量脚本程序设计(shell script)的好帮手 变量的使用与设置&#xff1a;echo、变量设置规则、unset变量的使用(echo)变量设置的规定使用案例 环境变量的功能用env观察环境变量与常见环境…

数据结构(五)—— 栈与队列(2)

一、接上章 栈与队列的中等、困难题。 堆是一块动态内存 栈是先进后出的堆的一种方法 队列是一种先进先出的线性表 二、题 2.5 150 逆波兰表达式求值 很有意思的一道题&#xff0c;将中缀表达式 4 13 / 5&#xff0c;转化为后缀表达式之后&#xff1a;["4", &qu…

深入理解机器学习——过拟合(Overfitting)与欠拟合(Underfitting)

分类目录&#xff1a;《深入理解深度学习》总目录 机器学习的主要挑战是我们的算法必须能够在先前未观测的新输入上表现良好&#xff0c;而不只是在训练集上表现良好。在先前未观测到的输入上表现良好的能力被称为泛化&#xff08;Generalization&#xff09;。通常情况下&…

测试需求平台6-数据持久化与PyMySQL使用

✍此系列为整理分享已完结入门搭建《TPM提测平台》系列的迭代版&#xff0c;拥抱Vue3.0将前端框架替换成字节最新开源的arco.design&#xff0c;其中约60%重构和20%新增内容&#xff0c;定位为从 0-1手把手实现简单的测试平台开发教程&#xff0c;内容将囊括基础、扩展和实战&a…

信息安全技术 健康医疗数据安全指南 付下载地址

声明 本文是学习GB-T 39725-2020 信息安全技术 健康医疗数据安全指南. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 数据使用管理办法示例 第一章 总则 第一条 为规范数据使用流程&#xff0c;根据国家相关法律法规及相关规定&#xff0c;特制定本…

imgaug Augment Polygons 对标注图片和polygons的数据增强

对于本地化进行图像的增强&#xff0c;大家都是非常好操作的。但是&#xff0c;对于标注信息一起增强&#xff0c;还是稍微有一些难度的&#xff0c;麻烦很多。 我是遇到一个数据集非常少的任务&#xff0c;只有40张图。就直接标记了去训练&#xff0c;发现几乎不拟合&#xf…

这一篇搞定Spring

文章目录 一、引言1.1 原生web开发中存在哪些问题&#xff1f; 二、Spring框架2.1 概念2.2 访问与下载 三、Spring架构组成四、山寨版的Spring容器4.1准备工作4.2 山寨IOC容器4.3 配置文件告诉容器 管理哪些bean4.4 相关类4.5 测试 容器 五、构建Maven项目5.1 新建项目5.2 选择…

深度强化学习——AlphaGo实例讲解(5)

现在我们来分析AlphaGo这个实例&#xff0c;看看深度强化学习是怎么样用来玩围棋游戏的 AlphaGo的主要设计思路&#xff1a; 首先是训练&#xff0c;要分3步来做&#xff1a; 1、behavior cloning&#xff1a;这是一种模仿学习&#xff0c;alphaGo模仿人类玩家&#xff0c;从…

STM32平衡小车 pid简单学习

自动控制系统 自动控制系统可分为开环控制系统和闭环控制系统。 1、开环控制系统开环控制系统(open-loop control system)指被控对象的输出(被控制量)对控制器(controller)的输出没有影响。在这种控制系统中&#xff0c;不依赖将被控量反送回来以形成任何闭环回路。 2、闭环控…

c++入门(下)

C入门&#xff08;下&#xff09; 对于C的基础语法的讲解&#xff0c;由想要实现多次重复的函数&#xff0c;引出宏函数和inline的内联函数的对比&#xff0c;对于inline的讲解和运用&#xff0c;在后&#xff0c;C语言中的NULL和C中独特的nullptr的相比两者的比较&#xff0c…

kong(4):限流配置

Kong 提供了 Rate Limiting 插件&#xff0c;实现对请求的限流功能&#xff0c;避免过大的请求量过大&#xff0c;将后端服务打挂。 Rate Limiting 支持秒/分/小时/日/月/年多种时间维度的限流&#xff0c;并且可以组合使用。例如说&#xff1a;限制每秒最 多 100 次请求&…