找回密码
 立即注册
查看: 342|回复: 0

优化算法(三)——算术优化算法

[复制链接]
发表于 2022-3-11 21:40 | 显示全部楼层 |阅读模式
再次开张啦,今天给大家带来的是由Mirjalili教授合作开发的算数优化算法(Arithmetic Optimization Algorithm, AOA)[1],该算法于2021年提出并发表于 Comput. Methods Appl. Mech. Eng.。AOA算法结构简单、参数较少且易于实现,它的搜索过程主要受基本数学运算符控制,即乘法(M“×”),除法(D“÷”),减法(S“-”)和加法(A“ +”))。下面直上干货!!
1. 算法介绍

      算数优化算法用于解决优化问题。 首先,AOA通过创建多个初始随机候选解决方案,通常以创建一组矩阵来实现,如Eq(1):


     优化通常分为探索和开发两个阶段,在AOA算法完成初始化后,首先将进入探索阶段,在探索阶段前将先计算Math Optimizer Accelerated(MOA)用于探索阶段,MOA由下公式获取Eq(2):




     根据算术运算符,使用除法(D)运算符或乘法(M)运算符的数学计算可得到高分布的值或决策,这些有助于算法的探索机制,使用乘法(M)或除法(D)作为AOA的探索机制,可以通过在解空间中多次迭代探索中找到尽可能的近似最优解,从而为后续优化阶段(开发阶段)得到更有希望的最优解提供了可能。MO P数学优化器,MOP(C_Iter)表示第t次迭代的函数值其公式如下Eq(4):


其中,C_Iter表示当前迭代,而M_Iter表示最大迭代次数, 是是一个敏感参数(sensitive parameter),定义了迭代过程中的开发精度,在本文中
     根据算术运算符,使用减法(S)或加法(A)进行的数学计算可以获得高密度的结果,当然,此结果与利用搜索机制有关。 但是,与乘法(M)和除法(D)算子不同,加法(A)和减法(S)算子可以由其低分散性而可以轻松地接近目标,以此可以利用加法(A)和减法(S)算子作为AOA的开发阶段,从而得到更有优势的解,开发阶段公式如下:


2. 源代码

       AOA源代码传送门:https://seyedalimirjalili.com/aoa


3. 算法改进

     值得一提,AOA的相关改进再原文文章处有所提及:


 此外,可以提出所提出的 AOA 的其他改进版本来分别解决具有二元、离散和多目标的优化问题。Levy 飞行中断突变和对立学习(OBL)可以与 AOA 相结合以提高其性能。AOA 算法可以在优化领域与其他随机组件混合(hybrid),包括局部搜索或全局搜索方法,以提高其性能。原文作者已经说的非常全面,我也试测过Levy 飞行改进,确实比原算法有很大的提升。
4. 引用

[1]Abualigah, L.; Diabat, A.; Mirjalili, S.; Abd Elaziz, M.; Gandomi, A.H. The Arithmetic Optimization Algorithm. Comput. Methods Appl. Mech. Eng. 2021, 376, 113609. https://doi.org/10.1016/j.cma.2020.113609.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-22 17:25 , Processed in 0.091347 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表