能量谷算法Energy Valley Optimizer (EVO)附matlab代码

时间:2023-02-05 14:58:30

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

????个人主页:Matlab科研工作室

????个人信条:格物致知。

更多Matlab仿真内容点击????

​智能优化算法​​​       ​​神经网络预测​​​       ​​雷达通信 ​​​      ​​无线传感器​​​        ​​电力系统​

​信号处理​​​              ​​图像处理​​​               ​​路径规划​​​       ​​元胞自动机​​​        ​​无人机 ​

⛄ 内容介绍

在本文中,能量谷优化器 (EVO) 被提议作为一种新颖的元启发式算法,其灵感来自关于稳定性和不同粒子衰变模式的高级物理原理。二十个无约束的数学测试函数被用于不同的维度来评估所提出的算法的性能。出于统计目的,通过考虑预定义的停止标准,进行 100 次独立优化运行以确定统计测量值,包括平均值、标准偏差和所需的目标函数评估次数。一些著名的统计分析也用于比较目的,包括 Kolmogorov–Smirnov、Wilcoxon 和 Kruskal–Wallis 分析。此外,最新的进化计算竞赛(CEC),关于现实世界的优化,还考虑将 EVO 的结果与最成功的最先进算法进行比较。结果表明,所提出的算法在处理复杂的基准测试和实际问题时可以提供具有竞争力和出色的结果。

物理反应是指两个粒子或外部亚原子粒子发生碰撞,产生新的粒子。在宇宙中,除了无限期保持完整的稳定粒子外,绝大多数粒子都被认为是不稳定的。不稳定的粒子往往会通过分解或衰变释放能量,而各种粒子的总体衰变率则有所不同。在衰变过程中,会产生能量较低的粒子,而额外的能量则通过发射过程带走。能量谷涉及粒子的稳定性,基于粒子的结合能和与其他粒子的相互作用。对多种现象的直接观察使专家们提取了一些有价值的模式来定义粒子的衰变。该领域最关键的挑战是通过考虑中子 (N) 和质子 (Z) 的数量以及 N/Z 比来确定粒子的稳定性界限。N/Z ≈ 1 是指稳定的轻质粒子,而对于较重的粒子,N/Z 的较大值被认为是稳定带。基于粒子的稳定性水平,每个粒子都倾向于通过改变其 N/Z 比并向稳定带或能量谷移动来增加其稳定性水平。在这方面,粒子的中子富集水平在这一行动中起着至关重要的作用。位于稳定边界之上的富含中子的粒子会经历衰变过程,并且需要如此多的中子才能达到稳定的目的。另一方面,贫中子粒子,出于稳定性目的需要太少的中子,62 ; 在图 1.A中,示意性地说明了这些方面。能量谷算法Energy Valley Optimizer (EVO)附matlab代码

在衰变过程中,会产生能量较低的粒子,同时会释放出过多的能量。三种类型的排放决定了具有不同稳定性水平的粒子的衰变过程。α (α) 粒子表示与氦相同的致密且带正电的粒子。β (β) 粒子是带负电的粒子,其特征是具有更高速度的电子。伽马 (γ) 射线代表具有更高能量水平的光子。在图 ​​1​​ B 中,这些类型的发射的整体行为在电场内进行了说明,考虑到 α 粒子在较小程度上向负极板弯曲。相反,β粒子向正极板弯曲很大,电场不影响γ射线。

根据所呈现的发射过程的详细信息,存在三种类型的衰变,称为 alpha、beta 和 gamma 衰变,这些衰变源自前面提到的发射类型。在 alpha 衰变中,确定 α 粒子的损失,其中 N/Z 比中的 N 和 Z 值在每个发射过程中减少。在 β 衰变中,β 粒子的喷射是一个问题,其中通过减少 N 和增加 Z 值来增加 N/Z 比。在伽马衰变中,忽略来自激发粒子的具有更高能级的 γ 光子是值得关注的,而对于这种衰变模式,N/Z 值不需要改变。这些方面的示意图如图 ​​1​​ C所示。

大多数最近开发的元启发式算法都是一些合理的高级搜索技术,由各种启发性概念制定,为最大化或最小化优化问题提供一个或多个好的解决方案,特别是在信息不完善或不完整的情况下。搜索过程主要在一些随机确定的初始候选者中进行。元启发式的更高层次程序试图以逐步的方式提高这些候选人的整体地位。因此,通过不同粒子的衰减过程的原理可以成为新算法的一个很好的起点,在该算法中,粒子达到稳定点的趋势可以用作候选解决方案性能改进的灵感概念。

能量谷算法Energy Valley Optimizer (EVO)附matlab代码

能量谷算法Energy Valley Optimizer (EVO)附matlab代码

能量谷算法Energy Valley Optimizer (EVO)附matlab代码能量谷算法Energy Valley Optimizer (EVO)附matlab代码能量谷算法Energy Valley Optimizer (EVO)附matlab代码⛄ 部分代码


close all

clear all 

clc

SearchAgents=30; 

Fun_name='F7';  

Max_iteratinotallow=1000; 

[lowerbound,upperbound,dimension,fitness]=fun_info(Fun_name);

[Best_score,Best_pos,TSA_curve]=EVO(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);



figure('Position',[500 500 660 290])


subplot(1,2,1);

func_plot(Fun_name);

title('Objective space')

xlabel('x_1');

ylabel('x_2');

zlabel([Fun_name,'( x_1 , x_2 )'])


subplot(1,2,2);

plots=semilogy(TSA_curve,'Color','g');

set(plots,'linewidth',2)

hold on

title('Objective space')

xlabel('Iterations');

ylabel('Best score');


axis tight

grid on

box on

legend('EVO')

img =gcf;  %获取当前画图的句柄

print(img, '-dpng', '-r600', './img2.png')         %即可得到对应格式和期望dpi的图像

display(['The best solution obtained by TSA is : ', num2str(Best_pos)]);

display(['The best optimal value of the objective funciton found by TSA is : ', num2str(Best_score)]);    

⛄ 运行结果

能量谷算法Energy Valley Optimizer (EVO)附matlab代码

能量谷算法Energy Valley Optimizer (EVO)附matlab代码

能量谷算法Energy Valley Optimizer (EVO)附matlab代码

⛄ 参考文献

[1] Azizi M ,  Aickelin U ,  Khorshidi H A , et al. Energy valley optimizer: a novel metaheuristic algorithm for global and engineering optimization[J]. Scientific Reports.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料