智能优化算法:原子轨道搜索算法-附代码

智能优化算法:原子轨道搜索算法


摘要:原子轨道搜索算法(Atomic orbital search, AOS),是于2021年提出的一种新型智能优化算法,该算法主要是基于量子力学的一些原理以及量子的原子模型行为,来进行寻优,具有寻优能力强,收敛速度快等特点。

1.算法原理

原子轨道搜索算法中,每个候选解的初始化,采用在搜索空间内随机初始化的方式。
x i j ( 0 ) = x i , min ⁡ j + rand ⁡ ⋅ ( x i , max ⁡ j − x i , min ⁡ j ) , { i = 1 , 2 , ⋯   , m j = 1 , 2 , ⋯   , d (1) x_{i}^{j}(0)=x_{i, \min }^{j}+\operatorname{rand} \cdot\left(x_{i, \max }^{j}-x_{i, \min }^{j}\right), \quad\left\{\begin{array}{l} i=1,2, \cdots, m \\ j=1,2, \cdots, d \end{array}\right. \tag{1} xij(0)=xi,minj+rand(xi,maxjxi,minj),{i=1,2,,mj=1,2,,d(1)
其中, x i j ( 0 ) x_{i}^{j}(0) xij(0)表示候选解的初始位置; x i , min ⁡ j x_{i, \min }^{j} xi,minj x i , max ⁡ j x_{i, \max}^{j} xi,maxj是第 i i i个候选解的第 j j j个决策变量的最小和最大界限; r a n d rand rand是[0,1]范围内的均匀分布随机向量。

根据提供的基于量子的原子模型的详细信息,每个电子都有一个能量状态,在数学模型中被视为候选解的目标函数值。具有更好目标函数值的候选解代表具有更低能级的电子,而具有更高能级的电子在具有更差目标函数值的候选解的数学模型中被考虑。向量方程用于包含不同候选解(电子)的目标函数值(能级),如下所示:
E = [ E 1 E 2 ⋮ E i ⋮ E m ] , i = 1 , 2 , ⋯   , m (2) E=\left[\begin{array}{c} E_{1} \\ E_{2} \\ \vdots \\ E_{i} \\ \vdots \\ E_{m} \end{array}\right], i=1,2, \cdots, m\tag{2} E=E1E2EiEm,i=1,2,,m(2)
其中, E E E是目标函数值的向量, E i E_i Ei是第 i i i个候选解的能级, m m m是搜索空间(电子云)内候选解(电子)的数量。

因此每个候选解,以及每个候选解对应的能量密度(即适应度值),可以用如下表达式表达:
X k = [ X 1 k X 2 k ⋮ X i k ⋮ X p k ] = [ 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 p 1 x p 2 ⋯ x p j ⋯ x p d ] , { i = 1 , 2 , ⋯   , p j = 1 , 2 , ⋯   , d k = 1 , 2 , ⋯   , n (3) X^{k}=\left[\begin{array}{c} X_{1}^{k} \\ X_{2}^{k} \\ \vdots \\ X_{i}^{k} \\ \vdots \\ X_{p}^{k} \end{array}\right]=\left[\begin{array}{cccccc} x_{1}^{1} & x_{1}^{2} & \cdots & x_{1}^{j} & \cdots & x_{1}^{d} \\ x_{2}^{1} & x_{2}^{2} & \cdots & x_{2}^{j} & \cdots & x_{2}^{d} \\ \vdots & \vdots & & \vdots & \ddots & \vdots \\ x_{i}^{1} & x_{i}^{2} & \cdots & x_{i}^{j} & \cdots & x_{i}^{d} \\ \vdots & \vdots & & \vdots & \ddots & \vdots \\ x_{p}^{1} & x_{p}^{2} & \cdots & x_{p}^{j} & \cdots & x_{p}^{d} \end{array}\right],\left\{\begin{array}{l} i=1,2, \cdots, p \\ j=1,2, \cdots, d \\ k=1,2, \cdots, n \end{array}\right. \tag{3} Xk=X1kX2kXikXpk=x11x21xi1xp1x12x22xi2xp2x1jx2jxijxpjx1dx2dxidxpd,i=1,2,,pj=1,2,,dk=1,2,,n(3)

E k = [ E 1 k E 2 k ⋮ E i k ⋮ E p k ] , { i = 1 , 2 , ⋯   , p k = 1 , 2 , ⋯   , n (4) E^{k}=\left[\begin{array}{c} E_{1}^{k} \\ E_{2}^{k} \\ \vdots \\ E_{i}^{k} \\ \vdots \\ E_{p}^{k} \end{array}\right],\left\{\begin{array}{l} i=1,2, \cdots, p \\ k=1,2, \cdots, n \end{array}\right. \tag{4} Ek=E1kE2kEikEpk,{i=1,2,,pk=1,2,,n(4)

其中, X i k X_i^k Xik是第 k k k个虚拟层中的第 i i i个候选解, n n n是虚拟创建的最大层数, p p p是第 k k k个虚拟层中的候选解总数, d d d是问题维度, E i k E_i^k Eik是第 k k k个虚拟层中第 i i i个候选解的目标函数值。

在每个虚层中具有最佳目标函数值的候选解被视为每个虚层中具有最低能级的电子( L E k LE^k LEk)。此外,在所有候选解之间具有最佳目标函数值的候选解被认为是原子中具有最低能级( L E LE LE)的电子。通过考虑所选择的层中所有候选解的位置和目标函数值的平均值,来确定每个所考虑的虚层中候选解的结合状态和结合能。该目的的数学方程如下:
B S k = ∑ i = 1 p X i k p , { i = 1 , 2 , ⋯   , p k = 1 , 2 , ⋯   , n (5) B S^{k}=\frac{\sum_{i=1}^{p} X_{i}^{k}}{p},\left\{\begin{array}{l} i=1,2, \cdots, p \\ k=1,2, \cdots, n \end{array}\right. \tag{5} BSk=pi=1pXik,{i=1,2,,pk=1,2,,n(5)

B E = ∑ i = 1 m E i m , i = 1 , 2 , ⋯   , m (6) B E=\frac{\sum_{i=1}^{m} E_{i}}{m}, i=1,2, \cdots, m \tag{6} BE=mi=1mEi,i=1,2,,m(6)

其中, B S BS BS B E BE BE是原子的结合态和结合能; X i X_i Xi E i E_i Ei是第 i i i个候选解在原子中的位置和目标函数值。

为了从数学上表示光子对原子核周围电子的作用,在 (0,1)范围内为每个电子生成一个均匀分布的随机数( ϕ \phi ϕ)。此外,光子速率( P R PR PR)被确定为代表考虑光子对电子作用的概率的参数。如果每个电子的随机生成数( ϕ \phi ϕ)大于 P R PR PR,光子对电子的作用是可能的,因此根据光子的发射和吸收来考虑原子核周围不同层之间的电子运动。在这方面,将每个假想层中的每个候选解( X i k X_i^k Xik)的能级( E i k E_i^k Eik)与该层的结合能( B E k BE^k BEk)进行比较,以决定光子的发射和吸收。如果特定层中的候选解高于该层的结合能( E i k ≥ B E k E_i^k\geq BE^k EikBEk),考虑了光子的发射。在这个过程中,候选解倾向于发射具有 β \beta β γ \gamma γ能量的光子,以便同时达到原子的结合态( B E BE BE)和原子中具有最低能级( L E LE LE)的电子态。该过程中候选解的位置更新过程的数学方程如下:
X i + 1 k = X i k + α i × ( β i × L E − γ i × B S ) k , { i = 1 , 2 , ⋯   , p k = 1 , 2 , ⋯   , n (7) X_{i+1}^{k}=X_{i}^{k}+\frac{\alpha_{i} \times\left(\beta_{i} \times L E-\gamma_{i} \times B S\right)}{k},\left\{\begin{array}{l} i=1,2, \cdots, p \\ k=1,2, \cdots, n \end{array}\right. \tag{7} Xi+1k=Xik+kαi×(βi×LEγi×BS),{i=1,2,,pk=1,2,,n(7)
其中, X i k X_i^k Xik X i + 1 k X_{i+1}^k Xi+1k是第 k k k层第 i i i个候选解的当前和未来位置; L E LE LE是原子中能级最低的候选解; B S BS BS是原子的结合态; α i , β i , γ i \alpha_i ,\beta_i, \gamma_i αi,βi,γi 是包含随机生成的数的向量,这些数均匀分布在 (0,1)中,用于确定释放的能量。

如果特定层中候选解的能级低于该层的结合能( E i k < B E k E_i^k<BE^k Eik<BEk),则考虑光子的吸收。在此过程中,候选解倾向于吸收具有 β \beta β γ \gamma γ能量的光子,以便同时达到层的结合态( B S k BS^k BSk)和所考虑层内具有最低能级( L E k LE^k LEk)的电子态。该过程中候选解的位置更新过程的数学方程如下:
X i + 1 k = X i k + α i × ( β i × L E k − γ i × B S k ) , { i = 1 , 2 , ⋯   , p k = 1 , 2 , ⋯   , n (8) X_{i+1}^{k}=X_{i}^{k}+\alpha_{i} \times\left(\beta_{i} \times L E^{k}-\gamma_{i} \times B S^{k}\right),\left\{\begin{array}{l} i=1,2, \cdots, p \\ k=1,2, \cdots, n \end{array}\right. \tag{8} Xi+1k=Xik+αi×(βi×LEkγi×BSk),{i=1,2,,pk=1,2,,n(8)
其中, X i k X_i^k Xik X i + 1 k X_{i+1}^k Xi+1k是第 k k k层第 i i i个候选解的当前和未来位置; L E k LE^k LEk是第 k k k层最低能级的候选解; B S k BS^k BSk是第 k k k层的结合态; α i , β i , γ i \alpha_i ,\beta_i, \gamma_i αi,βi,γi 是包含随机生成的数的向量,这些数均匀分布在 (0,1)中,用于确定释放的能量。如果每个电子的随机生成数( ϕ \phi ϕ)小于 P R PR PR( ϕ < P R \phi<PR ϕ<PR),光子对电子的作用是不可能的,因此电子在原子核周围不同层之间的运动是基于一些其他作用来考虑的,例如与粒子或磁场的相互作用,这也会导致能量的吸收或发射。在这种情况下,基于这些影响的候选解的位置更新过程考虑如下:
X i + 1 k = X i k + r i , { i = 1 , 2 , ⋯   , p k = 1 , 2 , ⋯   , n (9) X_{i+1}^{k}=X_{i}^{k}+r_{i},\left\{\begin{array}{l} i=1,2, \cdots, p \\ k=1,2, \cdots, n \end{array}\right.\tag{9} Xi+1k=Xik+ri,{i=1,2,,pk=1,2,,n(9)
其中, X i k X_i^k Xik X i + 1 k X_{i+1}^k Xi+1k是第 k k k层第 i i i个候选解的当前和未来位置; r 1 r_1 r1是包含随机生成的、均匀分布在(0,1)范围内的数的向量。

整个算法的流程图如下:
请添加图片描述

2.实验结果

请添加图片描述

3.参考文献

[1] Azizi M . Atomic Orbital Search: A Novel Metaheuristic Algorithm[J]. Applied Mathematical Modelling, 2021, 93(1).

4.Matlab

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值