算术优化算法(AOA)
1) 算法简介
-
算术优化算法(Arithmetic Optimization Algorithm, AOA)是一种根据算术操作符的分布特性实现全局寻优的元启发式优化算法。
-
乘除运算提高位置更新的全局分散性
-
加减运算提高位置更新在局部区域的精确性
-
-
于2021年由Abualigah等人提出
-
具有收敛速度快,精度高等特点
2) 理论基础
-
算法分三步
-
通过数学优化器加速函数选择优化策略
-
探索阶段:利用乘法策略与除法策略进行全局搜索,提高解的分散性,增强算法的全局寻优与克服早熟收敛能力,实现全局探索寻优。
-
开发阶段:利用加法策略与减法策略降低解的分散性,有利于种群在局部范围内充分开发,加强算法的局部寻优能力。
-
-
数学优化加速函数MOA(用于搜索阶段选择策略)r1为0-1随机数
-
r1>MOA时,执行探索阶段
-
r1<MOA时,执行开发阶段
$$
MOA(t)=Min+t\times (\frac{Max-Min}{T})
$$其中Max和Min为加速函数的最大和最小值,取1和0.2.
-
2-a) 探索阶段
-
通过乘除法全局搜索,产生r2也为0-1随机数
-
r2>0.5执行乘法
-
r2<=0.5执行除法
-
-
位置更新公式:
-
其中$\mu$是调整搜索过程的控制参数,取0.499,$\epsilon$为很小的数,防止分母为0,MOP是数学优化器概率。
2-b) 开发阶段
-
通过加减法进行局部开发,位置更新公式:
3) Matlab代码
-
算法函数
AOA.m
:
1 | function [Best_FF,Best_P,Conv_curve]=AOA(N,M_Iter,LB,UB,Dim,F_obj) |
-
初始化函数
initialization.m
1 | function X=initialization(N,Dim,UB,LB) |
4) 改进与应用
目前已经有很多改进AOA算法的相关研究,以及提供了测试函数的数据和实际的应用场景,这里可以详见[4].
参考资料:
[1] 智能优化算法之算术优化算法
[2] Abualigah L , Diabat A , Mirjalili S , et al. The Arithmetic Optimization Algorithm[J]. Computer Methods in Applied Mechanics and Engineering, 2021, 376:113609.
[3] 算术优化算法AOA
[4] 兰周新,何庆.多策略融合算术优化算法及其工程优化[J].计算机应用研究,2022,39(03):758-763.DOI:10.19734/j.issn.1001-3695.2021.09.0358.