【智能算法】原子搜索算法(ASO)原理及实现

在这里插入图片描述

目录

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


1.背景

2019年,Zhao等人受到原子运动规律启发,提出了原子搜索算法(Atom Search Algorithm,ASO)。

2.算法原理

2.1算法思想

ASO根据分子动力学中原子的物理运动规律建立,通过种群中各个原子之间的相互作用力来指导群体进行智能优化搜索。

2.2算法过程

根据牛顿第二定律,如果Fi是作用在第i个原子上的相互作用力,而Gi是作用
在第i个原子上的约束力,该原子的质量为mi,那么第i个原子的加速度为:
a i = F i + G i m i (1) a_i=\frac{F_i+G_i}{m_i}\tag{1} ai=miFi+Gi(1)

相互作用力Fi:

相互作用力 Fi表示周围原子对当前原子 i 的作用力之和:
F i d ( t ) = ∑ j ∈ K b e s t r a n d j F i j d ( t ) (2) F_{i}^{d}\left(t\right)=\sum_{j\in K_{\mathrm{best}}}rand_{j}F_{ij}^{d}\left(t\right)\tag{2} Fid(t)=jKbestrandjFijd(t)(2)

其中,d为原子所在的维数。Kbest为对原子i产生作用力的原子的集合;Fijd(t)为第t次迭代中第j个原子对原子i的伦纳德·琼斯(L-J)势作用力:
K b e s t ( t ) = N − ( N − 2 ) ⋅ t T (3) K_{\mathrm{best}}(t)=N-(N-2)\cdot\sqrt{\frac{t}{T}}\tag{3} Kbest(t)=N(N2)Tt (3)

Fijd(t)定义为:
F i j d ( t ) = − η ( t ) [ 2 ( h i j ( t ) ) 13 − ( h i j ( t ) ) 7 ] (4) F_{ij}^d(t)=-\eta\left(t\right)\left[2\bigl(h_{ij}(t)\bigr)^{13}-\bigl(h_{ij}(t)\bigr)^{7}\right]\tag{4} Fijd(t)=η(t)[2(hij(t))13(hij(t))7](4)
在这里插入图片描述

η(t)为用于调整排斥区域或吸引区域的深度函数:
η ( t ) = − α ( 1 − t − 1 T ) 3 e − 20 t T (5) \eta\left(t\right)=-\alpha\left(1-\frac{t-1}{T}\right)^3\mathrm{e}^{-\frac{20t}{T}}\tag{5} η(t)=α(1Tt1)3eT20t(5)

hij标准定义为:
h i j = r i j ( t ) σ ( t ) (6) h_{ij}=\frac{r_{ij}(t)}{\sigma(t)}\tag{6} hij=σ(t)rij(t)(6)
σ为长度尺度,表示碰撞直径;rij为2个原子之间的欧几里得距离:
r i j ( t ) = ∥ x i ( t ) , x j ( t ) ∥ 2 σ ( t ) = ∥ x i ( t ) , ∑ j ∈ K b e s t ( t ) x j ( t ) K b e s t ( t ) ∥ 2 (7) \begin{aligned}&r_{ij}(t)=\left\|x_{i}(t),x_{j}(t)\right\|_{2}\\&\sigma(t)=\left\|x_{i}(t),\frac{\sum_{j\in K_{\mathrm{best}}(t)}x_{j}(t)}{K_{\mathrm{best}}(t)}\right\|_{2}\end{aligned}\tag{7} rij(t)=xi(t),xj(t)2σ(t)= xi(t),Kbest(t)jKbest(t)xj(t) 2(7)
为了改善勘探范围,论文中将表现为斥力的 h 的下限设置为 hmin=1.1,上限设置为 hmax=2.4,并且在hmin的基础上增加了一个正弦扰动函数g(t):
h i j ( t ) = { h min ⁡ + g ( t ) r i j ( t ) σ ( t ) < h min ⁡ r i j ( t ) σ ( t ) h min ⁡ ⩽ r i j ( t ) σ ( t ) ⩽ h max ⁡ h max ⁡ r i j ( t ) σ ( t ) > h max ⁡ (8) h_{ij}\left(t\right)=\begin{cases}h_{\min}+g(t)&\frac{r_{ij(t)}}{\sigma(t)}<h_{\min}\\\\\frac{r_{ij(t)}}{\sigma(t)}&h_{\min}\leqslant\frac{r_{ij(t)}}{\sigma(t)}\leqslant h_{\max}\\\\h_{\max}&\frac{r_{ij(t)}}{\sigma(t)}>h_{\max}\end{cases}\tag{8} hij(t)= hmin+g(t)σ(t)rij(t)hmaxσ(t)rij(t)<hminhminσ(t)rij(t)hmaxσ(t)rij(t)>hmax(8)
g(t)定义为:
g ( t ) = 0.1 sin ⁡ ( π 2 ⋅ t T ) (9) g(t)=0.1\sin\left(\frac{\pi}{2} \cdot \frac{t}{T}\right)\tag{9} g(t)=0.1sin(2πTt)(9)
在这里插入图片描述

共价键约束力Gi:

为了突出种群最佳原子的引导作用,假设每个原子与种群最佳原子具有一个共价键,因此每个原子都要受到最佳原子的约束力作用:

G i d = β e − 20 t T ( x b e s t d ( t ) − x i d ( t ) ) (10) G_i^d=\beta\mathrm{e}^{\frac{-20t}{T}}\Big( x_{\mathrm{best}}^d( t ) -x_i^d( t ) \Big)\tag{10} Gid=βeT20t(xbestd(t)xid(t))(10)

原子加速度ai:

结合相互作用力和几何约束力,在时间t的第i个原子在第d维上的加速度:
a i d = F i d + G i d m i ( t ) = − α ( 1 − t − 1 T ) 3 e − 20 t T ∑ j ∈ K b e s t r a n d j [ 2 ( h i j ( t ) ) 13 − ( h i j ( t ) ) 7 ] m i ( t ) + β e − 20 t T ( x b e s t d ( t ) – x i d ( t ) ) m i (11) \begin{aligned} a_i^d= \frac{F_i^d+G_i^d}{m_i(t)}= -\alpha\left(1-\frac{t-1}T\right)^3\mathrm{e}^{-\frac{20t}T}\sum_{j\in K_{\mathrm{best}}}\frac{rand_j\left[2\left(h_{ij}\left(t\right)\right)^{13}-\left(h_{ij}\left(t\right)\right)^7\right]}{m_i\left(t\right)}+ \beta\mathrm{e}^{-\frac{20t}T}\frac{\left(x_{\mathrm{best}}^d(t)–x_i^d(t)\right)}{m_i} \end{aligned}\tag{11} aid=mi(t)Fid+Gid=α(1Tt1)3eT20tjKbestmi(t)randj[2(hij(t))13(hij(t))7]+βeT20tmi(xbestd(t)xid(t))(11)
第t次迭代中第i个原子的质量mi(t)由当前种群个体的适应度值大小决定:
M i ( t ) = e − f i ( t ) − f min ⁡ ( t ) f max ⁡ ( t ) − f min ⁡ ( t ) m i ( t ) = M i ( t ) ∑ j = 1 N M i ( t ) (12) M_{i}(t)=\mathrm{e}^{-\frac{f_{i}(t)-f_{\min}(t)}{f_{\max}(t)-f_{\min}(t)}}\\m_{i}(t)=\frac{M_{i}(t)}{\sum_{j=1}^{N}M_{i}(t)}\tag{12} Mi(t)=efmax(t)fmin(t)fi(t)fmin(t)mi(t)=j=1NMi(t)Mi(t)(12)
其中,fmax(t)和fmin(t)分别表示原子种群中最大适应度值和最小适应度值。

位置更新

更新公式:
ν i d ( t + 1 ) = r a n d i d ν i d ( t ) + a i d ( t ) x i d ( t + 1 ) = x i d ( t ) + ν i d ( t + 1 ) (13) \begin{aligned}&\nu_{i}^{d}\left(t+1\right)=rand_{i}^{d}\nu_{i}^{d}\left(t\right)+a_{i}^{d}\left(t\right)\\&x_{i}^{d}\left(t+1\right)=x_{i}^{d}\left(t\right)+\nu_{i}^{d}\left(t+1\right)\end{aligned}\tag{13} νid(t+1)=randidνid(t)+aid(t)xid(t+1)=xid(t)+νid(t+1)(13)
在这里插入图片描述

伪代码
在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

[1] Zhao W, Wang L, Zhang Z. A novel atom search optimization for dispersion coefficient estimation in groundwater[J]. Future Generation Computer Systems, 2019, 91: 601-610.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt学习记录(C++)——Day 2

目录 一、作业 要求&#xff1a; 实现&#xff1a; 1.创建新的窗口类 2. 主窗口中实现 二、 窗口菜单设计 效果展示图 三、图片资源的导入 步骤&#xff1a; 举例&#xff1a; 四、 对话框 1.模拟对话框 2. 非模态对话框 3.错误对话框 4.信息对话框 5.提问对话…

【C++】缺省参数和函数重载

目录 1.缺省参数 1.1缺省参数的定义 1.2 缺省参数的简单应用 1.3 缺省参数分类&#xff1a;全缺省参数和半缺省参数 1.3.1半缺省参数 1.3.2全缺省参数 3.缺省参数注意事项&#xff1a;缺省参数不能在函数声明和定义中同时出现 4.函数重载 4.1 函数重载概念 4.2 函数参数类型…

matlab使用教程(35)—求解时滞微分方程(3)

1中立型 DDE 以下示例说明如何使用 ddensd 求解中立型 DDE&#xff08;时滞微分方程&#xff09;&#xff0c;其中时滞出现在导数项中。此问题最初由 Paul [1] 提出。方程是&#xff1a; 由于该方程在 y ′ 项中存在时滞&#xff0c;因此该方程称为中立型 DDE。如果时滞仅出现…

基于SSM的基于个人需求和地域特色的外卖推荐系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的基于个人需求和地域特色的外卖推荐系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

10 - 三态门和寄存器

1. 三态门 1.1 引入背景 现在我们需要封装一个单字节存储器。 Clear 清零&#xff0c;Pre 置 1&#xff0c;CP 的上升沿将输入 DI 数据写入。 问题&#xff1a;总线冲突。如果将多个存储器连到一起&#xff0c;就会出现一个输入连到多个输出发生数据冲突的问题。 需要三态门…

【单片机家电产品学习记录--红外线】

单片机家电产品学习记录–红外线 红外手势驱动电路&#xff0c;&#xff08;手势控制的LED灯&#xff09; 原理 通过红外线对管&#xff0c;IC搭建的电路&#xff0c;实现灯模式转换。 手势控制灯模式转换&#xff0c;详细说明 转载 1《三色调光LED台灯电路》&#xff0c…

计数排序解读

当我们提及排序算法时&#xff0c;通常会想到冒泡排序、选择排序、插入排序、归并排序和快速排序等经典算法。然而&#xff0c;今天我们要探讨的是一种非比较型整数排序算法——计数排序。计数排序在某些特定场景下表现出色&#xff0c;具有线性的时间复杂度。下面我们将深度剖…

SYS-2722音频分析仪SYS2722

181/2461/8938产品概述&#xff1a; Audio Precision 2722 音频分析仪是 Audio Precision 屡获殊荣的 PC 控制音频分析仪的旗舰型号&#xff0c;长期以来一直是音频设备设计和测试的全球公认标准。功能齐全的 SYS-2722 提供了测试转换器技术最新进展所需的无与伦比的失真和噪声…

NoSQL概述

NoSQL概述 目录 一、为什么用NoSQL 二、什么是NoSQL 三、经典应用分析 四、N o S Q L 数 据 模 型 简 介 五、NoSQL四大分类 六、CAP BASE 一、为什么用NoSQL 1、单机MySQL的美好年代 在90年代&#xff0c;一个网站的访问量一般不大&#xff0c;用单个数据库完全可以轻松应…

Linux离线安装python3(源码编译)

1、下载python包 下载python3.9.6的源码包 python下载 下载后&#xff0c;解压&#xff0c;目录如下&#xff1a; -rw-------. 1 root root 1454 Aug 26 2023 anaconda-ks.cfg -rw-r--r--. 1 root root 25640094 Apr 4 21:52 Python-3.9.6.tgz drwxrwxr…

搭建电商购物独立站抓取主流电商产品数据的方法:工具+电商数据采集API接口

分享一个抓取数据产品的方法&#xff0c;也是别人给我说的。 想做一个联盟产品相关的网站&#xff0c;然后需要采集电商网站的产品。咨询大佬告诉我&#xff0c;大量级电商商品数据的采集可以接入专业的电商数据采集API接口&#xff0c;也可以用webscrsper&#xff0c;于是乎就…

秒懂Springboot之如何使用logback做日志脱敏和截取

[版权申明] 非商业目的注明出处可自由转载 出自&#xff1a;shusheng007 文章目录 前言日志logback原理实现原理方案 技术总结总结源码 前言 日志的重要性无需多言&#xff0c;而数据的安全性亦不用赘述&#xff0c;但不幸的是它两常常产生矛盾。要便利就会牺牲安全&#xff0…

【MySQL】如何判断一个数据库是否出问题

在实际的应用中&#xff0c;其实大多数是主从结构。而采用主备&#xff0c;一般都需要一定的费用。 对于主备&#xff0c;如果主机故障&#xff0c;那么只需要直接将流量打到备机就可以&#xff0c;但是对于一主多从&#xff0c;还需要将从库连接到主库上。 对于切换的操作&a…

阿里云无影云电脑具体价格_4核8G和8核16G配置99元一年

2024年阿里云无影云电脑具体价格99元一年起&#xff0c;配置可选4核8G和8核16G&#xff0c;使用时长可选800小时和1800小时&#xff0c;目前有四款无影云电脑可以享受优惠价格&#xff0c;阿里云服务器网aliyunfuwuqi.com整理2024年无影云电脑详细配置和优惠价格表&#xff0c;…

ARMv8/Armv9架构中cacheable属性的介绍

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; 思考&#xff1a;在页表的Descriptors中的Lower attributes中的AttrIndx中指向的MAIR_EL1寄存器中有配置cacheable属性, 在TCR_EL1寄存器中有cacheable属性位ORGN0、IRGN0、ORGN1…

每日五道java面试题之ZooKeeper篇(三)

目录&#xff1a; 第一题. 会话管理第二题. 服务器角色第三题. Zookeeper 下 Server 工作状态第四题. 数据同步第五题. zookeeper 是如何保证事务的顺序一致性的&#xff1f; 第一题. 会话管理 分桶策略&#xff1a;将类似的会话放在同一区块中进行管理&#xff0c;以便于 Zoo…

C语言第四十弹---预处理(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 预处理 1、#和## 1.1 #运算符 1.2、##运算符 2、命名约定 3、#undef 4、命令行定义 5、条件编译 6、头文件的包含 6.1、头文件被包含的方式 6.1.1、本地…

蓝桥杯-冶炼金属(二分求最大最小)

P9240 [蓝桥杯 2023 省 B] 冶炼金属 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 二分做法&#xff1a; #include<bits/stdc.h> using namespace std; #define int long long const int N 1e410; int n,a,b; int v[N],cnt[N]; int check(int x){for(int i1;i<n;i…

硬件-1、体系架构

cpu 处理器 arm处理器的七种工作模式 arm寄存器 两张图是一样的&#xff0c;r0---r12是通用寄存器。其他寄存器可参考图一&#xff0c;cpu架构。 程序状态寄存器psr&#xff08;cpsr/spsr&#xff09; 程序异常处理 理解示例 当使用swi&#xff08;软中断指令&#xff09;指令…

RabbitMQ3.13.x之十_流过滤的内部结构设计与实现

RabbitMQ3.13.x之十_流过滤的内部结构设计与实现 文章目录 RabbitMQ3.13.x之十_流过滤的内部结构设计与实现1. 概念1. 消息发布2. 消息消费 2. 流的结构1. 在代理端进行过滤2. 客户端筛选3. JavaAPI示例4. 流过滤配置5. AMQP上的流过滤6. 总结 3. 相关链接 1. 概念 流过滤的思…