【群智能算法改进】一种改进的算术优化算法 改进算术优化算法 改进AOA[1]【Matlab代码#37】
更新时间:2024-06-18 21:14:09
算术优化算法是一类基于数学运算和搜索策略的智能优化算法,旨在解决优化问题。该算法通常用于求解连续优化问题,例如数学规划、函数优化和参数优化等。
算术优化算法的基本思想是通过模拟数学运算和搜索过程,逐步调整优化问题的解向更优的方向。算法通常维护一组候选解,并使用数学运算(如加法、减法、乘法、除法等)和搜索操作(如移动、变异、交叉等)对候选解进行更新和改进。通过迭代的方式,算法逐渐收敛到问题的最优解或近似最优解。
2.1 随机概率因子
在原始AOA算法中,概率因子MOP是一个非常重要的系数,它可以随着迭代从1非线性递减到0,它的公式如下:
M
O
P
=
1
?
(
t
T
)
1
/
α
MOP=1-(\frac{t}{T})^{1/\alpha}
MOP=1?(Tt?)1/α
在原始AOA程序中,
α
\alpha
α被设置为定值5,这样的固定取值的方式容易使得寻优过程陷入局部最优,从而影响算法整体的寻优性能。因此,本文将
α
\alpha
α修改为如下的一个随机参数,范围在[-1,9]之间:
α
=
10
?
r
a
n
d
?
1
\alpha =10*rand-1
α=10?rand?1
修改之后的RMOP参数会在原始MOP参数附近做随机移动,这在一定程度上提高了算法逃出局部最优的能力。
下面给出了改进后的RMOP参数和MOP参数的迭代过程对比:
2.2 强制切换机制
在原始AOA算法中,除法和乘法操作对应着上面图中的公式8,而减法和加法操作对应着上面图中的公式10,这也是为什么该算法叫算术优化算法。
在原始AOA算法中,MOA参数扮演着十分重要的角色,它用于平衡算法的探索和开发能力,探索行为由除法和乘法公式来负责,而开发行为由减法和加法负责。在原始AOA算法中,MOA参数并不能反映算法目前适用于哪种更新公式,因此将其与随机数rand来比较从而决策出进行公式8还是公式10的方式并不妥。
本文提出了一种改进的RMOA参数来替代原先的MOA参数,公式如下:
R
M
O
A
=
t
a
n
h
∣
r
a
n
d
×
(
F
(
i
)
?
b
F
F
(
i
)
+
b
F
)
∣
RMOA=tanh\left | rand imes (\frac{F(i)-bF}{F(i)+bF} ) \right |
RMOA=tanh
?rand×(F(i)+bFF(i)?bF?)
?
同时,考虑到这样的方式仍然可能陷入局部最优,所以为每个个体配置了一个计数器,如果连续迭代多次,都未能找到更优的解,就100%执行探索行为(即除法和乘法操作),而不执行开发行为(即减法和加法操作)。
可以获取完整代码资源。