智能优化算法:阿基米德优化算法 -附代码

智能优化算法:阿基米德优化算法


摘要:Archimedes optimization algorithm(AOA)称为阿基米德优化算法是于2020年提出的。受启发于有趣的物理定律阿基米德原理。它模仿了向上施加在物体上的浮力原理,物体部分或完全浸入流体中,浮力与被置换流体的重量成正比。

1.算法原理

AOA是一种基于种群的算法。在所提出的方法中,群体个体是浸没对象。与其他基于种群的元启发式算法一样,AOA也以具有随机体积、密度和加速度的对象(候选解)的初始种群开始搜索过程。在此阶段,每个对象也将使用其在流体中的随机位置进行初始化。在评估初始种群的适应度后,AOA在迭代开始,直到满足终止条件。在每次迭代中,AOA都会更新每个对象的密度和体积。对象的加速度根据其与任何其他相邻对象碰撞的情况进行更新。更新的密度、体积、加速度确定对象的新位置。

1)初始化: 使用初始化所有对象的位置由公式(1)。
O i = l b i + r a n d ∗ ( u b i − l b i ) , i = 1 , 2 , . . , N (1) O_i=lb_i+rand*(ub_i-lb_i),i=1,2,..,N \tag{1} Oi=lbi+rand(ubilbi),i=1,2,..,N(1)
初始化每个第 i i i个对象的体积( v o l vol vol)和密度( d e n den den)由公式(2)。
{ d e n i = r a n d v o l i = r a n d (2) \begin{cases} den_i=rand \\ vol_i=rand \end{cases}\tag{2} {deni=randvoli=rand(2)
最后,使用式(3)初始化第 i i i个对象的加速度( a c c acc acc)。
a c c i = l b i + r a n d ∗ ( u b i − l b i ) (3) acc_i=lb_i+rand*(ub_i-lb_i)\tag{3} acci=lbi+rand(ubilbi)(3)
其中ub,lb为变量的上下边界。

评估初始总体并选择具有最佳适应度值的对象 x b e s t , d e n b e s t , a c c b e s t x_{best},den_{best},acc_{best} xbest,denbest,accbest

2).更新密度及体积见式(4)。
{ d e n i t + 1 = d e n i t + r a n d ∗ ( d e n b e s t − d e n i t ) v o l i t + 1 = v o l i t + r a n d ∗ ( v o l b e s t − v o l i t ) (4) \begin{cases} den^{t+1}_i=den_i^t+rand*(den_{best}-den_i^t)\\ vol_i^{t+1}=vol_i^t+rand*(vol_{best}-vol_i^t) \end{cases}\tag{4} {denit+1=denit+rand(denbestdenit)volit+1=volit+rand(volbestvolit)(4)

3).计算转移算子与密度因子

起初,物体之间发生碰撞,经过一段时间后,物体试图达到平衡状态。这是在AOA中通过传输运算符 T F TF TF实现的,该运算符将搜索从探索转换为利用,使用(5)定义:
T F = e x p ( t − t m a x t m a x ) (5) TF=exp(\frac{t-t_{max}}{t_{max}})\tag{5} TF=exp(tmaxttmax)(5)

同样,密度递减因子 d d d也有助于AOA进行全局到局部搜索。它随着时间的推移而减少,使用(6)定义:
d t + 1 = e x p ( t − t m a x t m a x ) − t t m a x (6) d^{t+1}=exp(\frac{t-t_{max}}{t_{max}})-\frac{t}{t_{max}}\tag{6} dt+1=exp(tmaxttmax)tmaxt(6)
4)探索阶段(对象之间发生碰撞)

T F ≤ 0.5 TF\leq 0.5 TF0.5,对象之间发生碰撞,选择一个随机材质并 m r mr mr使用(7)更新迭 t + 1 t+1 t+1代时的对象的加速度:

a c c i t + 1 = d e n m r + v o l m r ∗ a c c m r d e n i t + 1 ∗ v o l i t + 1 (7) acc_i^{t+1}=\frac{den_{mr}+vol_{mr}*acc_{mr}}{den_i^{t+1}*vol_i^{t+1}}\tag{7} accit+1=denit+1volit+1denmr+volmraccmr(7)

值得一提的是, T F ≤ 0.5 TF\leq0.5 TF0.5确保在三分之一的迭代中进行探索。 T F > 0.5 TF>0.5 TF>0.5时将进行勘探开发行为。

5)开发阶段(对象之间无碰撞)

T F > 0.5 TF>0.5 TF>0.5,使用(8)更新 t + 1 t+1 t+1迭代时的对象的加速度:

a c c i t + 1 = d e n b e s t + v o l b e s t ∗ a c c b e s t d e n i t + 1 ∗ v o l i t + 1 (8) acc_i^{t+1}=\frac{den_{best}+vol_{best}*acc_{best}}{den_i^{t+1}*vol_i^{t+1}}\tag{8} accit+1=denit+1volit+1denbest+volbestaccbest(8)
(6) 归一化加速度使用(9)计算变化百分比。

a c c i − n o r m t + 1 = u ∗ a c c i t + 1 − m i n ( a c c ) m a x ( a c c ) − m i n ( a c c ) + l (9) acc_{i-norm}^{t+1}=u*\frac{acc_i^{t+1}-min(acc)}{max(acc)-min(acc)}+l \tag{9} accinormt+1=umax(acc)min(acc)accit+1min(acc)+l(9)
(7)对象位置更新

T F ≤ 0.5 TF\leq 0.5 TF0.5,第 i i i t + 1 t+1 t+1迭代时对象位置更新使用(10):

x i t + 1 = x i t + C 1 ∗ r a n d ∗ a c c i − n o r m t + 1 ∗ d ∗ ( x r a n d − x i t ) (10) x_i^{t+1}=x_i^t+C1*rand*acc_{i-norm}^{t+1}*d*(x_{rand}-x_i^t)\tag{10} xit+1=xit+C1randaccinormt+1d(xrandxit)(10)
T F > 0.5 TF>0.5 TF>0.5,第 i i i t + 1 t+1 t+1迭代时对象位置更新使用(11):

x i t + 1 = x b e s t t + F ∗ C 2 ∗ r a n d ∗ a c c i − n o r m t + 1 ∗ d ∗ ( T ∗ x b e s t − x i t ) (11) x_i^{t+1}=x_{best}^t+F*C2*rand*acc_{i-norm}^{t+1}*d*(T*x_{best}-x_i^t)\tag{11} xit+1=xbestt+FC2randaccinormt+1d(Txbestxit)(11)
其中: F = { + 1 , i f   P < 0.5 − 1 , i f P ≥ 0.5 F = \begin{cases}+1,if\,P<0.5\\-1,if P\geq0.5\end{cases} F={+1,ifP<0.51,ifP0.5, T = C 3 ∗ T F T=C3*TF T=C3TF, P = 2 r a n d − C 4 P=2rand-C4 P=2randC4

2.算法流程

Step1: 初始化算法参数:种群数量,最大迭代次数及C1至C4。

Step2:根据公式(1)-(3)分别初始化对象,体积,密度,并评估适应度函数值,确定初始最优解和最优位置。

Step3:更新密度及体积根据式(4)。

Step4:根据公式(5)和(6)更新转移算子与密度因子。

Step5:若 T F ≤ 0.5 TF\leq0.5 TF0.5,更新对象位置用式(8)(9)(10)。否则更新对象位置用式(8)(9)(11)。

Step6:判断是否满足迭代停止条件,满足则退出,输出最优结果,否则,重复执行Step2-6;

3.算法结果

请添加图片描述

4.参考文献

[1] Hashim, Fatma A., Kashif Hussain, Essam H. Houssein, Mai S. Mabrouk, and Walid Al-Atabany. “Archimedes optimization algorithm: a new metaheuristic algorithm for solving optimization problems.” Applied Intelligence (2020): 1-21.

5.Matlab代码

改进算法:

名称参考文献
融合Sin混沌和分段权值的阿基米德优化算法(SAOA)[1]罗仕杭,何庆.融合Sin混沌和分段权值的阿基米德优化算法[J/OL].计算机工程与应用:1-12[2021-10-12].http://kns.cnki.net/kcms/detail/11.2127.TP.20210913.1319.012.html.
基于黄金莱维引导机制的阿基米德优化算法(MSAOA)[1]陈俊,何庆,李守玉.基于黄金莱维引导机制的阿基米德优化算法[J].计算机应用,2022,42(09):2807-2815.
基于自适应反馈调节因子的阿基米德优化算法(IAOA)[1]陈俊,何庆,李守玉.基于自适应反馈调节因子的阿基米德优化算法[J].计算机科学,2022,49(08):237-246.

6.python代码

改进算法

名称参考文献
融合Sin混沌和分段权值的阿基米德优化算法(SAOA)[1]罗仕杭,何庆.融合Sin混沌和分段权值的阿基米德优化算法[J/OL].计算机工程与应用:1-12[2021-10-12].http://kns.cnki.net/kcms/detail/11.2127.TP.20210913.1319.012.html.
基于黄金莱维引导机制的阿基米德优化算法(MSAOA)[1]陈俊,何庆,李守玉.基于黄金莱维引导机制的阿基米德优化算法[J].计算机应用,2022,42(09):2807-2815.
基于自适应反馈调节因子的阿基米德优化算法(IAOA)[1]陈俊,何庆,李守玉.基于自适应反馈调节因子的阿基米德优化算法[J].计算机科学,2022,49(08):237-246.
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智能算法研学社(Jack旭)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值