【智能算法】能量谷优化算法(EVO)原理及实现

news2024/10/6 8:34:15

在这里插入图片描述

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献


1.背景

2023年,M Azizi等人受到物理理论粒子稳定性与衰变性启发,提出了能量谷优化算法(Energy Valley Optimizer, DVO)。

2.算法原理

2.1算法思想

EVO基于粒子物理反应的优化过程。在这个过程中,稳定性较差的粒子会通过衰变释放能量,并趋向于向能量谷或稳定带移动,以提高其稳定性水平。这种物理过程启发了元启发式算法的发展,其中候选解倾向于逐步改进以达到更稳定的状态。
在这里插入图片描述

2.2算法过程

考虑富中子粒子和贫中子粒子之间的差异,对每个粒子进行目标函数评价,并确定为粒子的中子富集水平(NEL):
E B = ∑ i = 1 n N E L i n ,   i = 1 , 2 , … , n (1) \mathrm{EB=\frac{\sum_{i=1}^nNEL_i}n,~i=1,2,\ldots,n}\tag{1} EB=ni=1nNELi, i=1,2,,n(1)
式中,NELi为第i个粒子的中子富集能级,EB为宇宙中粒子的富集界。

确定粒子的稳定水平:
S L i = N E L i − B S W S − B S ,   i = 1 , 2 , … , n (2) \mathrm{SL_i=\frac{NEL_i-BS}{WS-BS},~i=1,2,\ldots,n}\tag{2} SLi=WSBSNELiBS, i=1,2,,n(2)
其中,SLi为第i个粒子的稳定水平,BS和WS为宇宙内稳定水平最佳和最差的粒子。

如果粒子的中子富集水平高于富集界(NELi > EB),则假设该粒子具有较大的N/Z比,因此采用α、β或γ衰变过程。在[0,1]范围内生成一个随机数,它模拟了宇宙中的稳定界(Stability Bound, SB)。如果粒子的稳定水平高于稳定界(SLi > SB),则认为发生α和γ衰变。
在这里插入图片描述
发射的射线是候选溶液中的决策变量,将其去除并替换为具有最佳稳定水平(XBS)的粒子或候选溶液中的射线:
X i N e w 1 = X i ( X B S ( x i j ) ) , { i = 1 , 2 , … , n . j = A l p h a I n d e x I I . (3) \left.\mathrm{X_i^{New1}}=\mathrm{X_i}\Big( \mathrm{X_{BS}}\Big( \mathrm{x_i^j}\Big)\Big),\left\{\begin{array}{c}i=1,2,\ldots,n.\\j=Alpha Index II.\end{array}\right.\right.\tag{3} XiNew1=Xi(XBS(xij)),{i=1,2,,n.j=AlphaIndexII.(3)
其中,Xi为第i个粒子(解候选)的当前位置向量,XBS为稳定性等级最好的粒子的位置向量。

在伽马衰变中,发射γ射线以提高受激粒子的稳定性水平,位置更新为:
D i k = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 , { i = 1 , 2 , … , n . k = 1 , 2 , … , n − 1. (4) \mathrm D_{\mathrm i}^{\mathrm k}=\sqrt{(\mathrm x_2-\mathrm x_1)^2+\left(\mathrm y_2-\mathrm y_1\right)^2},\left\{\begin{array}{c}i=1,2,\dots,n.\\k=1,2,\dots,n-1.\end{array}\right.\tag{4} Dik=(x2x1)2+(y2y1)2 ,{i=1,2,,n.k=1,2,,n1.(4)
第二个候选解决方案位置更新为:
X i N e w 2 = X i ( X N g ( x i j ) ) , { i = 1 , 2 , … , n . j = Gamma Index II . (5) \mathrm X_{\mathrm i}^{\mathrm New2}=\mathrm X_{\mathrm i}\Big(\mathrm X_{\mathrm Ng}\Big(\mathrm x_{\mathrm i}^{\mathrm j}\Big)\Big),\left\{\begin{matrix}i=1,2,\ldots,n.\\j=\text{Gamma Index II}.\end{matrix}\right.\tag{5} XiNew2=Xi(XNg(xij)),{i=1,2,,n.j=Gamma Index II.(5)
其中,XNg为第i个粒子周围邻近粒子的位置向量。

如果粒子的稳定水平低于稳定界(SLi≤SB),则认为发生了β衰变。β射线从粒子中释放出来,以提高粒子的稳定水平,因此由于这些粒子的不稳定水平较高,应该在搜索空间中进行大的跳跃:
X C P = ∑ i = 1 n X i n ,   i = 1 , 2 , … , n . X i N e w 1 = X i + ( r 1 × X B S − r 2 × X C P ) S L i ,   i = 1 , 2 , … , n . (6) \mathrm{X_{CP}=\frac{\sum_{i=1}^nX_i}n,~i=1,2,\ldots,n.}\\\mathrm{X_{i}^{New1}=X_{i}+\frac{(r_{1}\times X_{BS}-r_{2}\times X_{CP})}{SL_{i}},~i=1,2,\ldots,n.}\tag{6} XCP=ni=1nXi, i=1,2,,n.XiNew1=Xi+SLi(r1×XBSr2×XCP), i=1,2,,n.(6)
其中,XBS是稳定水平最好的粒子的位置向量,XCP是粒子中心的位置向量。
为了提高算法的开发和探索水平,对采用β衰变的粒子进行另一个位置更新过程,在粒子的稳定水平不影响运动过程的情况下,对具有最佳稳定水平(XBS)的粒子或候选粒子和邻近的粒子或候选粒子(XNg)进行控制:
X i N e w 2 = X i + ( r 3 × X B S − r 4 × X N g ) ,   i = 1 , 2 , … , n . (7) \mathrm{X_i^{New2}=X_i+\begin{pmatrix}r_3\times X_{BS}-r_4\times X_{Ng}\end{pmatrix},~i=1,2,\ldots,n.}\tag{7} XiNew2=Xi+(r3×XBSr4×XNg), i=1,2,,n.(7)
其中,XBS是稳定性水平最好的粒子的位置向量,XNg是第i个粒子周围邻近粒子的位置向量。
如果粒子的中子富集水平低于富集界(NELi≤EB),则认为该粒子的N/Z比较小,因此粒子倾向于通过电子捕获或正电子发射向稳定带移动:
X i N e w = X i + r ,   i = 1 , 2 , … , n . (8) \mathrm{X_i^{New}=X_i+r,~i=1,2,\ldots,n.}\tag{8} XiNew=Xi+r, i=1,2,,n.(8)

伪代码

在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

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

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

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

相关文章

数据结构速成--栈

由于是速成专题,因此内容不会十分全面,只会涵盖考试重点,各学校课程要求不同 ,大家可以按照考纲复习,不全面的内容,可以看一下小编主页数据结构初阶的内容,找到对应专题详细学习一下。 目录 一…

【ROS2】搭建ROS2-Humble + Vscode开发流程

【ROS2】搭建ROS2-Humble Vscode开发流程 文章目录 【ROS2】搭建ROS2-Humble Vscode开发流程1.基本环境配置2.搭建Vscode开发环境 1.基本环境配置 基本的环境配置包括以下步骤: 安装ROS2-Humble,可以参考这里安装一些基本的工具,可以参考…

Linux LVM与磁盘配额

目录 一.LVM概述 LVM LVM机制的基本概念 PV(Physical Volume,物理卷) VG(Volume Group,卷组) LV(Logical Volume,逻辑卷) 二.LVM 的管理命令 三.创建并使用LVM …

2024 计算机毕业设计之SpringBoot+Vue项目合集(源码+L文+PPT)

各位朋友大家好,有幸与屏幕前你们相识,博主现已经搬砖9年,趁着头发还充裕,希望给大家提供一些编程领域的帮助,深知计算机毕业生这个阶段的崩溃与闹心,让我们共同交流进步。 博主给大家列举了项目合集&#…

Android Studio修改项目包名

1.第一步,项目结构是这样的,3个包名合在了一起,我们需要把每个包名单独展示出来 2.我们点击这个 取消选中后的包名结构是这样的,可以看到,包名的每个文件夹已经展示分开了,现在我们可以单独对每个包名文件夹…

ubuntu+安装Google Protobuf 库

本文参考文章如下 https://blog.csdn.net/wzw1609119742/article/details/119712422#t18https://blog.csdn.net/j8267643/article/details/134133091https://blog.csdn.net/jax_fanyang/article/details/135937002?spm1001.2014.3001.5502 现在论坛上据大部分的教程都是下面…

【深度学习实战(5)】使用仿射变换来实现自己的letter_box操作

一、letter_box 深度学习模型输入图片的尺寸为正方形,而数据集中的图片一般为长方形,粗暴的resize会使得图片失真,采用letterbox可以较好的解决这个问题。该方法可以保持图片的长宽比例,剩下的部分采用灰色填充。 二、代码 本例…

✌粤嵌—2024/4/3—合并K个升序链表✌

代码实现: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* merge(struct ListNode *l1, struct ListNode *l2) {if (l1 NULL) {return l2;}if (l2 NULL) {return l1;}struct Lis…

本地搭建属于你自己的AI搜索引擎 支持多家AI模型

FreeAskInternet 是一个完全免费、私有且本地运行的搜索聚合器,并使用 MULTI LLM 生成答案,无需 GPU。用户可以提出问题,系统将进行多引擎搜索,并将搜索结果合并到LLM中,并根据搜索结果生成答案。全部免费使用。 项目…

老王讲IT:名片管理系统

综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ************************************************** 欢…

MySQL 基础使用

文章目录 一、Navicat 工具链接 Mysql二、数据库的使用1.常用数据类型2. 建表 create3. 删表 drop4. insert 插入数据5. select 查询数据6. update 修改数据7. delete 删除记录truncate table 删除数据 三、字段约束字段1. 主键 自增delete和truncate自增长字段的影响 2. 非空…

16 - Debian如何配置vsftpd(1)实现匿名上传下载

作者:网络傅老师 特别提示:未经作者允许,不得转载任何内容。违者必究! Debian如何配置vsftpd(1)实现匿名上传下载 《傅老师Debian小知识库系列之16》——原创 前言 傅老师Debian小知识库特点&#xff1a…

保护C#代码的艺术:深入浅出代码混淆技术

摘要 在C#开发中,代码的保护是一个不可忽视的问题。本文深入探讨了几种常用的C#代码混淆工具,帮助开发者理解如何有效地保护代码不被反编译。同时,本文也对混淆技术的优缺点进行了分析,并提供了一些实际使用的建议。 引言 C#是…

实战:通用二进制格式安装 MySQL(mysql-5.7.29)-2024.4.6(测试成功)

目录 文章目录 目录实验环境下载url安装相关包准备用户准备二进制程序准备环境变量准备配置文件生成数据库文件,并提取root密码准备服务脚本和启动修改口令测试登录安全初始化(可选)shell一键安装关于我最后 实验环境 mysql-5.7.29 centos7.6 1810软件位…

centos 更新系统时间

在CentOS中更新系统时间 1 检查当前时间: date 2 更新时间: 手动设置时间,但更常见的是通过网络同步时间。CentOS通常默认使用NTP(Network Time Protocol)来同步时间。 如果尚未安装NTP,请先安装它&#…

Servlet-Filter实现反爬虫

以前用DotNetCore实现过反爬虫功能。在tomcat里面可以利用Servlet的Filter类实现请求的控制来达到反爬虫功能,进而增强JRT的web安全。 实现黑名单过滤器,对在黑名单列表的IP的所有请求都跳转到警告页面,业务各种请求自行定义加入黑名单 /* …

leetcode:42.接雨水

单调栈解题思路: 需要知道当前遍历到的元素左边和右边第一个比该元素大的元素。 如果当前遍历到的元素大于栈顶元素,则该元素为栈顶元素右边第一个比它大的元素,此时,栈顶元素的栈内相邻元素是该元素左边第一个比它大的元素。【…

项目中,如何写 readme.md 文件 | 写项目总结

tips:注意写 1. readme文件:①项目文档(项目需求和设计文档、项目系统架构和技术文档、接口文档)、②项目结构、③启动项目。具体结构见下文。 2. 项目总结:技术栈、描述、主要工作!!需求及功…

Python SQL解析和转换库之sqlglot使用详解

概要 Python SQLGlot是一个基于Python的SQL解析和转换库,可以帮助开发者更加灵活地处理和操作SQL语句。本文将介绍SQLGlot库的安装、特性、基本功能、高级功能、实际应用场景等方面。 安装 安装SQLGlot库非常简单,可以使用pip命令进行安装: pip install sqlglot安装完成后…

MajorDoMo thumb.php 未授权RCE漏洞复现(CNVD-2024-02175)

0x01 产品简介 MajorDoMo是MajorDoMo社区的一个开源DIY智能家居自动化平台。 0x02 漏洞概述 MajorDoMo /modules/thumb/thumb.php接口处存在远程命令执行漏洞,未经身份验证的攻击者可利用此漏洞执行任意指令,获取服务器权限。 0x03 影响范围 MajorD…