一种引入过渡阶段和高斯变异的改进算术优化算法(TGAOA)
文章目录
- 一种引入过渡阶段和高斯变异的改进算术优化算法(TGAOA)
- 1.算术优化算法
- 2. 改进算术优化算法
- 2.1 重构数学加速优化器 MOA
- 2.2 新策略的引入
- 2.3 具有一致性的高斯变异策略
- 2.4具有一致性的高斯变异策略
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.Python代码
摘要:针对算术优化算法收敛精度低、易陷入局部最优等问题,提出了一种改进的过渡高斯算术优化算法,该算法将新的非线性过渡阶段与改进的高斯变异策略相结合。 首先,为了更好地从勘探阶段的高离散度策略过渡到开发阶段的低离散度策略,提出过渡阶段策略,并通过比较三种曲线实验重构数学优化加速函数。其次,引入具有算术优化算法特性的高斯变异策略和边界函数策略,加强算法跳出局部区域的能力。
1.算术优化算法
基础算术优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/119785544
2. 改进算术优化算法
2.1 重构数学加速优化器 MOA
选择余弦函数作为数学优化 的加速函数, 以实现相对最优的勘探过程、过渡 过程和开发过程。余弦函数的选择使得算法在求 解问题时更具通用性。具体公式如等式 1 所示。
M
O
A
=
{
1
2
cos
(
3
π
×
t
2
×
M
−
Iter
)
+
1
2
0
<
t
≤
2
3
M
−
Iter
0
2
3
M
−
Iter
<
t
≤
M
−
Iter
}
(6)
M O A=\left\{\begin{array}{c} \frac{1}{2} \cos \left(\frac{3 \pi \times t}{2 \times M_{-} \text {Iter }}\right)+\frac{1}{2} \quad 0<t \leq \frac{2}{3} M_{-} \text {Iter } \\ 0 \quad \frac{2}{3} M_{-} \text {Iter }<t \leq M_{-} \text {Iter } \end{array}\right\}\tag{6}
MOA={21cos(2×M−Iter 3π×t)+210<t≤32M−Iter 032M−Iter <t≤M−Iter }(6)
M O B = { 1 2 cos ( 3 π × t 2 × M − Iter ) + 1 2 1 3 M − Iter < t ≤ M − Iter 0 0 < t ≤ 1 3 M − Iter } (8) M O B=\left\{\begin{array}{c} \frac{1}{2} \cos \left(\frac{3 \pi \times t}{2 \times M_{-} \text {Iter }}\right)+\frac{1}{2} \quad \frac{1}{3} M_{-} \text {Iter }<t \leq M_{-} \text {Iter } \\ 0 \quad 0<t \leq\frac{1}{3} M_{-} \text {Iter } \end{array}\right\}\tag{8} MOB={21cos(2×M−Iter 3π×t)+2131M−Iter <t≤M−Iter 00<t≤31M−Iter }(8)
2.2 新策略的引入
S
S
A
\mathrm{SSA}
SSA在过渡阶段的更新公式设计中, 由于原
A
O
A
\mathrm{AOA}
AOA 采用了对所有个体均选择历史最优位置进行更新 的更新策略, 忽略了当前个体位置向量对优化过 程的重大影响。因此, 新公式引入了当前个体位 置。在此基础上, 过渡阶段还加入当前所有个体 的平均位置, 在算法迭代初期, 个体分布较为分 散, 平均位置与最优位置距离较远, 有利于勘探 阶段的执行, 随着算法的迭代, 这个距离会逐渐 减小逐渐收玫, 有利于开发阶段的执行。最终用 以平衡原始
A
O
A
\mathrm{AOA}
AOA 的勘探和开发阶段的过渡更新公 式如下:
x
i
,
j
(
t
+
1
)
=
best
(
x
j
)
+
2
×
M
O
P
×
(
x
temp
−
x
mean
)
(8)
x_{i, j}(t+1)=\operatorname{best}\left(x_j\right)+2 \times M O P \times\left(x_{\text {temp }}-x_{\text {mean }}\right)\tag{8}
xi,j(t+1)=best(xj)+2×MOP×(xtemp −xmean )(8)
其中,
x
temp
x_{\text {temp }}
xtemp 表示当前个体位置,
x
mean
x_{\text {mean }}
xmean 表示当前所有个体的平均位置。
2.3 具有一致性的高斯变异策略
高斯变异策略因其优异的随机性在其他算法 中跳出局部最优有较多的应用, 本文在基本高斯 变异的基础上, 提出了一种与算术优化算法具有 一致性的高斯变异策略,公式见(9)。
x
pause
=
{
2
⋅
M
O
P
⋅
Gauss
×
x
i
,
j
r
4
≤
0.5
2
⋅
M
O
P
⋅
Gauss
+
x
i
,
j
r
4
>
0.5
}
(9)
x_{\text {pause }}=\left\{\begin{array}{ll} 2 \cdot M O P \cdot \text { Gauss } \times x_{i, j} & r_4 \leq 0.5 \\ 2 \cdot M O P \cdot \text { Gauss }+x_{i, j} & r_4>0.5 \end{array}\right\}\tag{9}
xpause ={2⋅MOP⋅ Gauss ×xi,j2⋅MOP⋅ Gauss +xi,jr4≤0.5r4>0.5}(9)
其中
M
O
P
M O P
MOP 为原始
A
O
A
\mathrm{AOA}
AOA 算法的参数见公式(4)。 Gauss 表示服从标准正态的高斯函数。
r
4
r_4
r4 表示区 间为
[
0
,
1
]
[0,1]
[0,1] 的随机数。
x
pause
x_{\text {pause }}
xpause 表示策略更新后生成的 解。
2.4具有一致性的高斯变异策略
本文提出的新的高斯变异策略很好地解决了算法陷入局部最优的问题, 但是高斯变异策略可 能会使得个体每个维度朝着不同的方向更新, 这 有时会导致解空间区域较大的目标函数跳出局部 失效。因此本文还提出了一种与算术优化算法具 有一致性的边界函数变异策略, 该策略不仅解决 了所提出的新高斯变异策略存在的问题, 还能够 更好地帮助算法解决跳出局部最优问题, 公式如 等式(10)。
X
pause
=
{
(
U
B
−
L
B
)
⋅
rand
(
)
×
x
i
,
j
r
4
≤
0.5
(
U
B
−
L
B
)
⋅
rand
(
)
+
x
i
,
j
r
4
>
0.5
}
(10)
X_{\text {pause }}=\left\{\begin{array}{ll} (U B-L B) \cdot \operatorname{rand}() \times x_{i, j} & r_4 \leq 0.5 \\ (U B-L B) \cdot \operatorname{rand}()+x_{i, j} & r_4>0.5 \end{array}\right\} \tag{10}
Xpause ={(UB−LB)⋅rand()×xi,j(UB−LB)⋅rand()+xi,jr4≤0.5r4>0.5}(10)
其中解空间的上界和下界由
U
B
U B
UB 和
L
B
L B
LB 表示, 而 0 和 1 之间的随机整数由
rand
(
O
\operatorname{rand}\left(\mathrm{O}\right.
rand(O 表示。
X
pause
X_{\text {pause }}
Xpause 表 示策略变化后生成的解决方案。
3.实验结果
4.参考文献
[1]张伟,李世港,齐明楚,周徐虎,宋燕.一种引入过渡阶段和高斯变异的改进算术优化算法[J/OL].小型微型计算机系统:1-12[2023-04-23].http://kns.cnki.net/kcms/detail/21.1106.TP.20230413.1731.019.html