融合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

相关文章

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO