CEC2020:能量谷优化算法(Energy valley optimizer,EVO)求解CEC2020(提供MATLAB代码)

news2024/11/26 18:19:27

一、能量谷优化算法

能量谷优化算法(Energy valley optimizer,EVO)是MahdiAzizi等人于2023年提出的一种新颖的元启发式算法,其灵感来自关于稳定性和不同粒子衰变模式的物理原理。
物理反应是指两个粒子或外部亚原子粒子碰撞产生新粒子。在宇宙中,绝大多数粒子被认为是不稳定的,除了那些无限期保持完整的稳定粒子。不稳定的粒子倾向于通过分解或衰变来释放能量,而各种类型的粒子的整体衰变率则有所不同。在衰变过程中,产生能量较低的粒子,而额外的能量通过发射过程产生。能量谷涉及基于其结合能和与其他粒子相互作用的粒子的稳定性。对多种现象的直接观察使专家们提取了一些有价值的模式来定义粒子的衰变。该领域最关键的挑战是通过考虑中子(N)和质子(Z)的数量以及N / Z比率来确定粒子的稳定性界限。N/Z ≈ 1 是指稳定、轻质的颗粒,而对于较重的颗粒,较大的 N/Z 值被视为稳定带。基于粒子的稳定水平,每个粒子倾向于通过移动其N / Z比并向稳定带或能量谷移动来增加其稳定性水平。在这方面,粒子的中子富集水平在这一作用中起着至关重要的作用。位于稳定性界限上方的富中子粒子经历衰变过程,需要如此多的中子来保持稳定。另一方面,贫中子粒子需要太少的中子来实现稳定性,倾向于经历电子捕获或正电子发射以向能谷或稳定带移动。
在这里插入图片描述

在衰变过程中,产生能量水平较低的粒子,同时释放出过多的能量。有三种类型的排放决定了具有不同稳定性水平的粒子的衰变过程。α(α)粒子表示与氦相同的致密且带正电的粒子。β(β)粒子是带负电的粒子,其特征是具有较高速度的电子。伽马(γ)射线代表具有较高能量水平的光子。这些类型的发射的整体行为在电场内部进行了说明,考虑到α粒子在很小程度上向负极板弯曲。相比之下,β粒子向正极板弯曲很大,电场不影响γ射线。根据所呈现的发射过程细节,有三种类型的衰变,称为α、β和伽马衰变,源自前面提到的发射类型。在α衰变中,确定α粒子的损失,其中N / Z比率中的N和Z值在每个发射过程中减少。在β衰变中,β粒子的喷射是一个问题,其中通过减少N和增加Z值来增加N / Z比。在伽马衰变中,涉及从激发粒子中省略具有较高能级的γ光子,而这种衰变模式不需要改变N / Z值。这些方面的示意图如图所示。

1.1算法原理

第一步随机初始化:

X = [ X 1 X 2 ⋮ X i ⋮ X n ] = [ x 1 1 x 1 2 ⋯ x 1 j ⋯ x 1 d x 2 1 x 2 2 ⋯ x 2 j ⋯ x 2 d ⋮ ⋮ ⋮ ⋱ ⋮ x i 1 x i 2 ⋯ x i j ⋯ x i d ⋮ ⋮ ⋮ ⋱ ⋮ x n 1 x n 2 ⋯ x n j ⋯ x n d ] , { i = 1 , 2 , … , n . j = 1 , 2 , … , d . \mathrm{X}=\left[\begin{array}{c}{\mathrm{X}}_{1}\\ {\mathrm{X}}_{2}\\ \vdots \\ {\mathrm{X}}_{\mathrm{i}}\\ \vdots \\ {\mathrm{X}}_{\mathrm{n}}\end{array}\right]=\left[\begin{array}{c}{\mathrm{x}}_{1}^{1} {\mathrm{x}}_{1}^{2} \cdots {\mathrm{x}}_{1}^{\mathrm{j}} \cdots {\mathrm{x}}_{1}^{\mathrm{d}}\\ {\mathrm{x}}_{2}^{1} {\mathrm{x}}_{2}^{2} \cdots {\mathrm{x}}_{2}^{\mathrm{j}} \cdots {\mathrm{x}}_{2}^{\mathrm{d}}\\ \vdots \vdots \vdots \ddots \vdots \\ {\mathrm{x}}_{\mathrm{i}}^{1} {\mathrm{x}}_{\mathrm{i}}^{2} \cdots {\mathrm{x}}_{\mathrm{i}}^{\mathrm{j}} \cdots {\mathrm{x}}_{\mathrm{i}}^{\mathrm{d}}\\ \vdots \vdots \vdots \ddots \vdots \\ {\mathrm{x}}_{\mathrm{n}}^{1} {\mathrm{x}}_{\mathrm{n}}^{2} \cdots {\mathrm{x}}_{\mathrm{n}}^{\mathrm{j}} \cdots {\mathrm{x}}_{\mathrm{n}}^{\mathrm{d}}\end{array}\right], \left\{\begin{array}{c}\begin{array}{c}i=\mathrm{1,2},\dots ,n.\end{array}\\ j=\mathrm{1,2},\dots ,d.\end{array}\right. X= X1X2XiXn = x11x12x1jx1dx21x22x2jx2dxi1xi2xijxidxn1xn2xnjxnd ,{i=1,2,,n.j=1,2,,d.

x i j = x i , min j + rand . ( x i , max j − x i , min j ) , { i = 1 , 2 , … , n . j = 1 , 2 , … , d . {\text{x}}_{{\text{i}}}^{{\text{j}}} = {\text{x}}_{{{\text{i}},{\text{min}}}}^{{\text{j}}} + {\text{rand}}.\left( {{\text{x}}_{{{\text{i}},{\text{max}}}}^{{\text{j}}} - {\text{x}}_{{{\text{i}},{\text{min}}}}^{{\text{j}}} } \right),{ }\quad \left\{ {\begin{array}{c} {\begin{array}{c} {i = 1,2, \ldots ,n.} \\ \end{array} } \\ {j = 1,2, \ldots ,d.} \\ \end{array} } \right. xij=xi,minj+rand.(xi,maxjxi,minj),{i=1,2,,n.j=1,2,,d.
在算法的第二步中,确定粒子的富集束缚(EB),用于考虑富中子粒子和贫中子粒子之间的差异。为此,对每个粒子进行目标函数评估并确定为粒子的中子富集水平(NEL)。数学表示如下:
E B = ∑ i = 1 n N E L i n , i = 1 , 2 , … , n \mathrm{EB}=\frac{\sum_{\mathrm{i}=1}^{\mathrm{n}} \mathrm{NEL}_{\mathrm{i}}}{\mathrm{n}}, \mathrm{i}=1,2, \ldots, \mathrm{n} EB=ni=1nNELi,i=1,2,,n

在第三步中,根据目标函数评估确定颗粒的稳定性水平如下:
SL i = NEL i − BS WS − BS ,  i = 1 , 2 , … , n . {\text{SL}}_{{\text{i}}} = \frac{{{\text{NEL}}_{{\text{i}}} - {\text{BS}}}}{{{\text{WS}} - {\text{BS}}}},{\text{ i}} = 1,2, \ldots ,{\text{n}}.{ } SLi=WSBSNELiBS, i=1,2,,n.
在EVO的主搜索循环中,如果粒子的中子富集水平高于富集界限,则假定粒子具有更大的N / Z比,因此使用α,β或γ方案的衰变过程是透视的。在这方面,在[0,1]范围内生成一个随机数,它模仿宇宙中的稳定性界限(SB)。如果粒子的稳定性水平高于稳定性界限,则认为发生了α和γ衰变,因为对于稳定性水平较高的较重粒子来说,这两种衰变是可能发生的。
在这里插入图片描述

基于关于阿尔法衰变的物理原理、发射α射线,提高产物在物理反应中的稳定性水平。这方面可以在数学上表述为 EVO 的位置更新方案之一,其中生成新的候选解决方案。为此,生成两个随机整数作为 [1, d] 范围内的 Alpha Index I,表示发射光线的数量,以及 [1, Alpha Index I] 范围内的 Alpha Index II,它定义了要发射的α射线。发射的光线是候选解中的决策变量,它们被粒子或具有最佳稳定性水平的候选粒子中的射线移除并替换。这些方面在数学上表述如下:
X i New 1 = X i (  X BS (  x i j  ) ) , { i = 1 , 2 , … , n . j = A l p h a   I n d e x   I I . {\text{X}}_{{\text{i}}}^{{{\text{New}}1}} = {\text{X}}_{{\text{i}}} { }\left( {{\text{ X}}_{{{\text{BS}}}} { }\left( {{\text{ x}}_{{\text{i}}}^{{\text{j }}} } \right)} \right),{ }\left\{ {\begin{array}{c} {\begin{array}{c} {i = 1,2, \ldots ,n.} \\ \end{array} } \\ {j = Alpha \,Index \,II.} \\ \end{array} } \right.{ } XiNew1=Xi( XBS( xi)),{i=1,2,,n.j=AlphaIndexII.

此外,在伽马衰变中,发射γ射线以提高激发粒子的稳定性水平,因此这方面可以在数学上表述为 EVO 的另一个位置更新过程,其中生成新的候选解决方案。为此,在[1,d]范围内生成两个随机整数作为伽马指数I,表示发射光子的数量,以及[1,伽马指数I]范围内的伽马指数II,它定义了粒子中要考虑的光子。粒子中的光子是候选解中的决策变量,它们被相邻粒子或候选粒子移除并取代,它模仿激发粒子与其他粒子甚至磁场的相互作用。在这方面,所考虑的粒子与其他粒子之间的总距离计算如下,并为此目的使用最近的粒子:
D i k = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 , { i = 1 , 2 , … , n . k = 1 , 2 , … , n − 1. {\text{D}}_{{\text{i}}}^{{\text{k}}} = \sqrt {\left( {{\text{x}}_{2} - {\text{x}}_{1} } \right)^{2} + \left( {{\text{y}}_{2} - {\text{y}}_{1} } \right)^{2} } ,{ }\left\{ {\begin{array}{c} {i = 1,2, \ldots ,n.} \\ {k = 1,2, \ldots ,n - 1.} \\ \end{array} } \right. Dik=(x2x1)2+(y2y1)2 ,{i=1,2,,n.k=1,2,,n1.
使用这些操作,在此阶段生成第二个候选解决方案的位置更新过程按如下方式执行:
X i New 2 = X i (  X Ng (  x i j  ) ) , { i = 1 , 2 , … , n . j = G a m m a   I n d e x   I I . {\text{X}}_{{\text{i}}}^{{{\text{New}}2}} = {\text{X}}_{{\text{i}}} { }\left( {{\text{ X}}_{{{\text{Ng}}}} { }\left( {{\text{ x}}_{{\text{i}}}^{{\text{j }}} } \right)} \right),{ }\left\{ {\begin{array}{c} {\begin{array}{c} {i = 1,2, \ldots ,n.} \\ \end{array} } \\ {j = Gamma\, Index \,II.} \\ \end{array} } \right.{ } XiNew2=Xi( XNg( xi)),{i=1,2,,n.j=GammaIndexII.
如果粒子的稳定性水平低于稳定性界限,则认为会发生β衰变,因为这种类型的衰变发生在稳定性水平较低的更不稳定的粒子中。基于关于β衰变的物理原理,β射线从粒子中排出以提高粒子的稳定性水平,因此由于这些粒子的不稳定性水平较高,因此应该在搜索空间中进行较大的跳跃。在这方面,对粒子进行位置更新过程,其中执行向具有最佳稳定性水平和粒子中心的粒子或候选物的受控运动。该算法的这些方面模拟了粒子到达稳定带的趋势,其中大多数已知粒子位于该带附近,并且其中大多数具有更高水平的稳定性。这些方面在数学上表述如下:
X C P = ∑ i = 1 n X i n , i = 1 , 2 , … , n \mathrm{X}_{\mathrm{CP}}=\frac{\sum_{\mathrm{i}=1}^{\mathrm{n}} \mathrm{X}_{\mathrm{i}}}{\mathrm{n}}, \mathrm{i}=1,2, \ldots, \mathrm{n} XCP=ni=1nXi,i=1,2,,n

X i New 1 = X i + ( r 1 × X BS − r 2 × X CP ) SL i ,  i = 1 , 2 , … , n . {\text{X}}_{{\text{i}}}^{{{\text{New}}1}} = {\text{X}}_{{\text{i}}} + \frac{{\left( {{\text{r}}_{1} \times {\text{X}}_{{{\text{BS}}}} - {\text{r}}_{2} \times {\text{X}}_{{{\text{CP}}}} } \right)}}{{{\text{SL}}_{{\text{i}}} }},{\text{ i}} = 1,2, \ldots ,{\text{n}}.{ } XiNew1=Xi+SLi(r1×XBSr2×XCP), i=1,2,,n.
为了提高算法的开发和探索水平,对采用β衰变的粒子进行了另一个位置更新过程,其中受控地向具有最佳稳定水平的粒子或候选粒子的粒子或候选粒子在粒子的稳定性水平不影响运动过程的情况下执行。这些方面在数学上表述如下:
X i New 2 = X i + ( r 3 × X BS − r 4 ×  X Ng ) ,  i = 1 , 2 , … , n . {\text{X}}_{{\text{i}}}^{{{\text{New}}2}} = {\text{X}}_{{\text{i}}} + \left( {{\text{r}}_{3} \times {\text{X}}_{{{\text{BS}}}} - {\text{r}}_{4} \times {\text{ X}}_{{{\text{Ng}}}} } \right),{\text{ i}} = 1,2, \ldots ,{\text{n}}.{ } XiNew2=Xi+(r3×XBSr4× XNg), i=1,2,,n.
如果粒子的中子富集水平低于富集界限(,则假定粒子具有较小的N / Z比,因此粒子倾向于经历电子捕获或正电子发射以向稳定带移动。在这方面,确定搜索空间中的随机移动以考虑这些类型的运动,如下所示:

X i New = X i + r ,  i = 1 , 2 , … , n . {\text{X}}_{{\text{i}}}^{{{\text{New}}}} = {\text{X}}_{{\text{i}}} + {\text{r}},{\text{ i}} = 1,2, \ldots ,{\text{n}}.{ } XiNew=Xi+r, i=1,2,,n.

1.2算法描述

在这里插入图片描述

1.3算法流程

在这里插入图片描述

1.4参考文献

Azizi, M., Aickelin, U., A. Khorshidi, H. et al. Energy valley optimizer: a novel metaheuristic algorithm for global and engineering optimization. Sci Rep 13, 226 (2023). https://doi.org/10.1038/s41598-022-27344-y

二、CEC2020简介

CEC2020共有10个测试函数测试维度包含:2D、5D、10D、15D、20D。CEC2020测试问题随着维度的增加求解极其困难。

在这里插入图片描述

三、求解结果

完整代码添加博客下方博主微信:djpcNLP123
将能量谷优化算法ECO运用于求解CEC2020中10个函数,其中每个测试函数可以选择的维度分别有:2D、5D、10D、15D、20D。增大迭代次数,能量谷优化算法ECO的求解效果更佳。本例测试函数维度均为10D(可根据自己需求调整),种群大小为50,最大迭代次数为100次。

close all
clear
clc
MaxFes = 100;%迭代次数
VarNumber = 10;%维度 2/5/10/15/20
nPop = 50;%种群大小
VarMin=-100;%下限
VarMax=100;%上限
fitnessfunc=str2func('cec20_func');
Function_name=10;%测试函数1-10
[Best_Fit,Best_Pos,Curve]=EVO(nPop,MaxFes,VarMin,VarMax,VarNumber,CostFunction);  
figure
plot(Curve,'k','linewidth',2.5)
xlabel('迭代次数')
ylabel('适应度值')
legend('EVO')
title(strcat('CEC2020-F',num2str(Function_name)))

部分求解结果:

F1:

在这里插入图片描述

F2:

在这里插入图片描述

F3:

在这里插入图片描述

F4:

在这里插入图片描述

F5:

在这里插入图片描述

四、参考代码

完整代码添加博客下方博主微信:djpcNLP123

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

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

相关文章

【matplotlib】可视化解决方案——如何向画布添加交叉直线

概述 在 matplotlib 中,如果想要在画布上添加一组横纵较差的直线,需要使用到 Cursor 类,该类实现了图形化界面中任何位置的数值定位可视化某种意义上来讲,这种横纵交叉线类似数值放大镜,可以清楚地显示任何位置的坐标…

以图搜图服务快速搭建

以图搜图服务快速搭建 电商公司,管理的商品少则几千,多则上百万。如何帮助用户从多如牛毛的商品中找到类似的商品就成了问题。 以图搜图就可以很好的帮助解决这个问题,通过 Towhee(resnet50 模型) Milvus 如何实现本…

Linux常用命令——lsusb命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) lsusb 显示本机的USB设备列表信息 补充说明 lsusb命令用于显示本机的USB设备列表,以及USB设备的详细信息。 lsusb命令是一个学习USB驱动开发,认识USB设备的助手,推荐大家使用…

深信服面经---云计算方向(附问题知识点解析)

深信服面经---云计算高级开发一、一面问题概览二、实操相关三、复盘对问题答案进行整理(查漏补缺)3.1、go语言简单了解3.2、项目中成就感最大或挑战最大的地方3.3、项目问题---协议头引入之后,包的大小增加了多少3.4、如何建立缓存3.5、cache…

STM32定时器的配置,解析预分频系数和重装载值与时钟频率的关系

🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列专栏 - 蓝…

“一键转换图片:学习如何使用Python调整大小、增强和转换图片!“

目录 简介: 源代码: 代码说明: 效果如图所示: 有关其中用到的Pillow模块: 简介: 在这个世界上,图片处理已经成为了必须掌握的技能之一,无论是为了更好地展示产品,还是…

C++ Primer Plus 第6版 读书笔记(4) 第4章 复合类型

目录 4.1 数组 4.2 字符串 4.3 string 类简介 4.3.4 string 类 I/O 4.4结构简介 4.5 共用体 4.6 枚举 4.7 指针和自由存储空间 4.8 指针、数组和指针算术 4.8.1 程序说明 4.8.2指针小结 4.8.5 自动存储、静态存储和动态存储 4.9 类型组合 4.10 数组的替代…

[算法与数据结构]--贪心算法初识

贪心算法贪心算法的解题过程贪心算法案例1.选择排序2. 平衡字符串3. 买卖股票的最佳时机 II4. 跳跃游戏5 钱币找零6 多机调度问题7.活动选择8. 最多可以参加的会议数目9. 无重叠区间来自算法导论对于这个贪心算法的解释定义贪心算法(又名贪婪算法)故名思意就是一个“贪心”的算…

小程序开发(一)新建/拉取项目,配置远程仓库

一、前期准备工作及工具 1、工具 微信开发者工具、Git 2、准备工作 相关开发工具的安装和配置工作请自行百度 二、新建或拉取远程项目 1、打开微信开发者工具(扫码登录等验证工作自行操作),选择小程序。 2、点击号新建项目,项目名称、目录、模板选…

Git(狂神课堂笔记)

1.首先去git官网下载我们对应的版本Git - Downloading Package (git-scm.com) 2.安装后我们会发现git文件夹里有三个应用程序: Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多 Git CMD:Windows风格的命令行 G…

kafka入门到实战三(单线程实现顺序消费,含demo)

这里需要前面两章的基础,如果没有环境或者看不懂在说什么,就翻一翻前两章。 kafka顺序消费(单线程) 顺序消费 顺序消费:是指消息的产生顺序和消费顺序相同。不管你用的是什么q或者kafka还是sofa,顺序依赖…

启动框架 Anchors接入和分析

参考:https://juejin.cn/post/6844904128443858958https://blog.csdn.net/gqg_guan/article/details/127760207从哪下手整个冷启动过程中,系统方法我们无法进行优化,主要需要优化的是系统暴露出来的一些生命周期方法,从Application的attachBa…

OSCP学习踩过的坑

OSCP终于拿到证,感觉参加考试备考的日子才过去没有多久,想起了那几个月被“虐待”的日子,我想总结下在课程和考试中的犯的错误! 计划 我制定了一个学习计划,计划是学习、练习,然后再学习、练习一些&#…

SpringCloud:服务拆分及远程调用

目录 SpringCloud:服务拆分及远程调用 1、服务拆分 2、远程调用 SpringCloud:服务拆分及远程调用 SpringCloud是目前国内使用最广泛的微服务框架。 官网地址: Spring Cloud SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了…

【10】SCI易中期刊推荐——工程技术-计算机:人工智能(中科院2区)

🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…

JAVA开发(Eureka基本原理)

Eureka基本原理。 通过上图我们可以看出,服务提供者在启动的时候需要向注册中心注册自己的信息,而注册中心把向自己注册的服务提供者都保存下来,以便服务消费者获取用来发起请求,而服务消费者需要从注册中心获取服务提供者列表&am…

网络层:IP协议

目录 基本概念 IP报头 IP报文分片 为什么要分片? 如何分片? 分片的报文如何组装? 分片策略如何? 网段划分 IP地址被分成了五类IP: CIDR 特殊的IP地址: 私有IP和公网IP 路由 如何转发数据包&a…

「ABAP」一文带你入门OPEN SQL中的SELECT查询(附超详细案例解析)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

阿里云服务器价格,阿里云轻量应用服务器最新价格表

阿里云服务器从地域上来区分可分为ECS云服务器和轻量应用服务器,从活动内容来区分又可分为秒杀云服务器和新用户特惠云服务器,下面是截止目前,阿里云服务器最新的秒杀及新用户特惠购买价格,以表格形式形式展示出来以供参考。 阿里…

​ICLR 2023 | 图数据分布外检测:从能量模型出发

©PaperWeekly 原创 作者 | 吴齐天单位 | 上海交通大学博士生研究方向 | 机器学习与图深度学习继续探索 Graph OOD 的相关问题,与以往工作不同的是,这篇工作避开了复杂的数学推导和琐碎的数据生成过程,直接从简单有效的判别模型入手研究…