融合Sin混沌和分段权值的阿基米德优化算法

2023-10-10 03:50

本文主要是介绍融合Sin混沌和分段权值的阿基米德优化算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、理论基础
    • 1、阿基米德优化算法
    • 2、改进的阿基米德优化算法
      • (1)Sin混沌反向学习初始化策略
      • (2)算数交叉算子
      • (3)分段权值策略
      • (4)SAOA算法流程图
  • 二、仿真实验与结果分析
  • 三、参考文献

一、理论基础

1、阿基米德优化算法

请参考这里。

2、改进的阿基米德优化算法

(1)Sin混沌反向学习初始化策略

本文先利用Sin混沌产生多样性较好的初始种群;其次,根据反向学习产生反向种群;最后,分别计算Sin混沌初始种群及反向种群的适应度,选择适应度低的解作为初始种群,提高了找到最优初始解的概率,从而使种群向全局最优解靠近。Sin混沌1维映射表达式如下: { X n + 1 = sin ⁡ ( 2 / X n ) n = 0 , 1 , ⋯ , N − 1 ≤ X n ≤ 1 X n ≠ 0 (1) \begin{dcases}X_{n+1}=\sin(2/X_n)\quad n=0,1,\cdots,N\\-1≤X_n≤1\quad\quad\quad X_n≠0\end{dcases}\tag{1} {Xn+1=sin(2/Xn)n=0,1,,N1Xn1Xn=0(1)其中, X n X_n Xn是取值为 ( − 1 , 1 ) (-1,1) (1,1)的序列且初始值不能设置为0。将Sin混沌序列映射到解空间中,得到种群 X = { X i , i = 1 , 2 , … N } , X j = { X j , j = 1 , 2 , … , d i m } X=\{X_i,i=1,2,…N\},X_j=\{X_j,j=1,2,…,dim\} X={Xi,i=1,2,N},Xj={Xj,j=1,2,,dim},种群个体表示如下: X i + 1 , j = sin ⁡ ( 2 / X i , j ) (2) X_{i+1,j}=\sin(2/X_{i,j})\tag{2} Xi+1,j=sin(2/Xi,j)(2)其中, X i + 1 , j X_{i+1,j} Xi+1,j为第 i + 1 i+1 i+1个种群的第 j j j维值。
由种群X计算反向种群 X ∗ = { X i ∗ , i = 1 , 2 , ⋯ , N } , X i ∗ = { X i j ∗ , j = 1 , 2 , ⋯ , d i m } X^*=\{X_i^*,i=1,2,\cdots,N\},X_i^*=\{X_{ij}^*,j=1,2,\cdots,dim\} X={Xi,i=1,2,,N},Xi={Xij,j=1,2,,dim},反向种群个体 X i j ∗ X_{ij}^* Xij表示如下: X i j ∗ = X min ⁡ j + X max ⁡ j − X i j (3) X_{ij}^*=X_{\min j}+X_{\max j}-X_{ij}\tag{3} Xij=Xminj+XmaxjXij(3)其中, [ X min ⁡ j , X max ⁡ j ] [X_{\min j},X_{\max j}] [Xminj,Xmaxj]为搜索空间的动态边界。将Sin混沌种群 X X X和反向种群 X ∗ X^* X组成新种群 { X ∪ X ∗ } \{X\cup X*\} {XX},将新种群的适应度值进行排序,选择 N N N个适应度值最优的个体组成初始种群。

(2)算数交叉算子

为提高标准AOA的全局搜索性能,本文引入的算术交叉算子,表达式如式(4)所示: X n e w t + 1 = λ × X i t + 1 + ( 1 − λ ) × ( X b e s t − X i t + 1 ) (4) X_{new}^{t+1}=\lambda\times X_i^{t+1}+(1-\lambda)\times(X_{best}-X_i^{t+1})\tag{4} Xnewt+1=λ×Xit+1+(1λ)×(XbestXit+1)(4)其中, λ ∈ ( 0 , 1 ) \lambda\in(0,1) λ(0,1)表示随机数。
通过交叉选择后,利用贪婪机制比较新旧个体适应度值,再决定是否更新当前个体,通过这种斱式不断获得更优解,从而提升算法全局寻优性能。其中贪婪机制的数学模型如式(5)所示: X i t + 1 = { X i t + 1 f ( X i t + 1 ) < f ( X n e w t + 1 ) X n e w t + 1 f ( X i t + 1 ) ≥ f ( X n e w t + 1 ) (5) X_i^{t+1}=\begin{dcases}X_i^{t+1}\quad f(X_i^{t+1})<f(X_{new}^{t+1})\\X_{new}^{t+1}\quad f(X_i^{t+1})≥f(X_{new}^{t+1})\end{dcases}\tag{5} Xit+1={Xit+1f(Xit+1)<f(Xnewt+1)Xnewt+1f(Xit+1)f(Xnewt+1)(5)

(3)分段权值策略

为解决标准AOA的“早熟”问题,本文提出分段权值的位置更新策略,首先,借鉴双曲正切函数的思想,
本文在算法迭代前中期种群位置更新处引入动态双曲正切权值 w w w,其值随迭代次数的增加呈非线性递减,其次,在算法迭代后期,引入正弦波动权值,降低算法陷入局部最优的概率。分段权值 w w w的计算公式如(6)所示: w = { w s t a r t − ( w s t a r t − w e n d ) × tanh ⁡ ( α × π × ( t / t max ⁡ ) ) t ≤ δ β 1 × sin ⁡ ( β 2 × π × t + β 3 × π ) + θ t > δ (6) w=\begin{dcases}w_{start}-(w_{start}-w_{end})\times\tanh(\alpha×\pi×(t/t_{\max}))\quad t≤\delta\\\beta_1×\sin(\beta_2×\pi×t+\beta_3×\pi)+\theta\quad\quad\quad\quad\quad\quad\quad\,\,\, t>\delta\end{dcases}\tag{6} w={wstart(wstartwend)×tanh(α×π×(t/tmax))tδβ1×sin(β2×π×t+β3×π)+θt>δ(6)其中, w s t a r t w_{start} wstart表示迭代开始时的初始权值,即当 t = 0 t=0 t=0时, w s t a r t = 0.8 w_{start}=0.8 wstart=0.8 w e n d w_{end} wend表示迭代结束时的权值,即当 t = t max ⁡ t=t_{\max} t=tmax w e n d = 0.4 w_{end}=0.4 wend=0.4 δ = 0.8 × t max ⁡ \delta=0.8×t_{\max} δ=0.8×tmax β 1 = 0.23 , β 3 = 2.2 , θ = 0.3 \beta_1=0.23,\beta_3=2.2,\theta=0.3 β1=0.23,β3=2.2,θ=0.3 α \alpha α β 2 \beta_2 β2为调节因子,控制曲线的平滑度,经过多次实验验证,当 α = 0.75 \alpha=0.75 α=0.75 β 2 = 0.06 \beta_2=0.06 β2=0.06时,实验结果为最优。
在这里插入图片描述

图1 分段权值曲线图

由图1可知,在算法迭代初期, w w w值较大,使SAOA具有较强的全局勘探能力,在算法迭代中期, w w w值较小,使SAOA的开収性能逐步提高幵尽可能在最优解附近精确寻优,在算法迭代后期, w w w值的方向和大小变换的不确定性增强SAOA搜索的多元性,避免算法陷入局部极值空间。因此,AOA引入分段权值策略后全局搜索阶段的个体位置更新公式为: X i t + 1 = w × X i t + c 1 × r a n d × a c c i − n o r m t + 1 × d × ( X r a n d − X i t ) (7) X_i^{t+1}=w\times X_i^t+c_1\times rand\times acc_{i-norm}^{t+1}\times d\times (X_{rand}-X_i^t)\tag{7} Xit+1=w×Xit+c1×rand×accinormt+1×d×(XrandXit)(7)局部开发阶段个体位置更新公式为: X i t + 1 = w × X b e s t t + F × c 2 × r a n d × a c c i − n o r m t + 1 × d × ( T × X b e s t t − X i t ) (8) X_i^{t+1}=w×X_{best}^t+F\times c_2\times rand\times acc_{i-norm}^{t+1}\times d×(T\times X_{best}^t-X_i^t)\tag{8} Xit+1=w×Xbestt+F×c2×rand×accinormt+1×d×(T×XbesttXit)(8)

(4)SAOA算法流程图

改进算法SAOA流程图如图2所示:
在这里插入图片描述

图2 SAOA算法流程图

二、仿真实验与结果分析

为验证SAOA算法的可行性和优越性,将基本AOA与本文加入Sin混沌反向学习初始化策略的算法(AOA1)、加入算术交叉算子的算法(AOA2)、加入分段权值策略的算法(AOA3)在8个具有不同寻优特征的基准函数(文献[1]表2所示)上进行仿真实验。算法参数统一设置为:种群规模 N = 30 N=30 N=30,搜索空间维度 d i m = 30 dim=30 dim=30,最大迭代次数 t max ⁡ = 500 t_{\max}=500 tmax=500。每个算法独立运算30次。
结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F1
AOA:最优值: 1.6746e-66,最差值:1.753e-39,平均值:6.1435e-41,标准差:3.1966e-40
AOA1:最优值: 5.7647e-62,最差值:1.7268e-39,平均值:6.1012e-41,标准差:3.1473e-40
AOA2:最优值: 4.3968e-200,最差值:1.2421e-178,平均值:4.303e-180,标准差:0
AOA3:最优值: 1.5318e-310,最差值:1.1924e-281,平均值:4.0291e-283,标准差:0
SAOA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F2
AOA:最优值: 1.6009e-35,最差值:6.5489e-22,平均值:3.2547e-23,标准差:1.2518e-22
AOA1:最优值: 3.7609e-38,最差值:3.583e-21,平均值:1.8295e-22,标准差:6.8358e-22
AOA2:最优值: 2.9226e-103,最差值:9.0725e-92,平均值:3.7514e-93,标准差:1.6608e-92
AOA3:最优值: 4.1632e-155,最差值:5.7685e-144,平均值:2.436e-145,标准差:1.053e-144
SAOA:最优值: 1.5989e-215,最差值:2.724e-205,平均值:9.0884e-207,标准差:0
函数:F3
AOA:最优值: 7.5118e-48,最差值:8.6192e-33,平均值:3.0529e-34,标准差:1.572e-33
AOA1:最优值: 1.0034e-50,最差值:2.8446e-34,平均值:1.8923e-35,标准差:6.3344e-35
AOA2:最优值: 1.1302e-186,最差值:2.7808e-172,平均值:9.7485e-174,标准差:0
AOA3:最优值: 6.277e-300,最差值:3.4202e-274,平均值:1.1944e-275,标准差:0
SAOA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F4
AOA:最优值: 7.6449e-29,最差值:3.391e-17,平均值:2.3228e-18,标准差:7.0509e-18
AOA1:最优值: 1.4188e-30,最差值:4.7871e-17,平均值:2.6662e-18,标准差:9.265e-18
AOA2:最优值: 3.1007e-96,最差值:4.9665e-86,平均值:1.9065e-87,标准差:9.0675e-87
AOA3:最优值: 2.3162e-154,最差值:3.0331e-142,平均值:1.7742e-143,标准差:6.4233e-143
SAOA:最优值: 9.0328e-215,最差值:2.3161e-203,平均值:8.747e-205,标准差:0
函数:F5
AOA:最优值: 8.4204e-05,最差值:0.0022504,平均值:0.00089385,标准差:0.00059891
AOA1:最优值: 0.00027581,最差值:0.0055002,平均值:0.0010532,标准差:0.0010696
AOA2:最优值: 6.6486e-06,最差值:0.00022333,平均值:6.3523e-05,标准差:5.1903e-05
AOA3:最优值: 1.2371e-06,最差值:0.00039392,平均值:0.00011008,标准差:9.6329e-05
SAOA:最优值: 9.4862e-07,最差值:0.00028988,平均值:9.4534e-05,标准差:7.4552e-05
函数:F6
AOA:最优值: 0,最差值:154.7181,平均值:91.8765,标准差:58.31
AOA1:最优值: 0,最差值:136.5486,平均值:64.7859,标准差:57.8149
AOA2:最优值: 0,最差值:0,平均值:0,标准差:0
AOA3:最优值: 0,最差值:0,平均值:0,标准差:0
SAOA:最优值: 0,最差值:0,平均值:0,标准差:0
函数:F7
AOA:最优值: 19.963,最差值:19.9668,平均值:19.9659,标准差:0.001449
AOA1:最优值: 7.9936e-15,最差值:19.9668,平均值:17.9689,标准差:6.092
AOA2:最优值: 8.8818e-16,最差值:4.4409e-15,平均值:3.1382e-15,标准差:1.7413e-15
AOA3:最优值: 8.8818e-16,最差值:8.8818e-16,平均值:8.8818e-16,标准差:0
SAOA:最优值: 8.8818e-16,最差值:4.4409e-15,平均值:1.4803e-15,标准差:1.3467e-15
函数:F8
AOA:最优值: 0,最差值:0.45932,平均值:0.032437,标准差:0.099215
AOA1:最优值: 0,最差值:0.75495,平均值:0.040519,标准差:0.14942
AOA2:最优值: 0,最差值:0,平均值:0,标准差:0
AOA3:最优值: 0,最差值:0,平均值:0,标准差:0
SAOA:最优值: 0,最差值:0,平均值:0,标准差:0

实验结果表明改进算法在搜索精度、收敛速度和稳定性等方面均有较大提升。

三、参考文献

[1] 罗仕杭, 何庆. 融合Sin混沌和分段权值的阿基米德优化算法[J]. 计算机工程与应用, 2022, 58(14): 63-72.

这篇关于融合Sin混沌和分段权值的阿基米德优化算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/177734

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

MySQL中慢SQL优化方法的完整指南

《MySQL中慢SQL优化方法的完整指南》当数据库响应时间超过500ms时,系统将面临三大灾难链式反应,所以本文将为大家介绍一下MySQL中慢SQL优化的常用方法,有需要的小伙伴可以了解下... 目录一、慢SQL的致命影响二、精准定位问题SQL1. 启用慢查询日志2. 诊断黄金三件套三、六大核心优化方案方案

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、