1.摘要
Jaya算法是一种简单结构的新型元启发式优化算法,主要依赖种群大小和终止条件进行优化。针对其可能在复杂优化问题中易陷入局部最优的问题,本文提出了增强Jaya算法(EJAYA),通过引入局部吸引子进行局部开发和利用历史种群数据进行全局探索以增强其全局搜索能力。EJAYA不需对初始参数进行细微调整,能有效逃离局部最优,并通过实验在多个测试函数和实际工程问题上验证了其优化性能。
2.JAYA算法原理
3.增强JAYA算法 EJAYA
JAYA算法通过特定公式执行局部和全局的搜索策略,但存在两个主要缺点:一是只使用当前最优和最差个体决定搜索方向,容易使整个种群陷入局部最优;二是绝对值符号对于保持种群多样性至关重要,但在工程问题中该符号可能失效,增加了算法过早收敛的风险。
为解决这些问题,提出了增强JAYA算法(EJAYA),该算法通过更充分地利用种群信息来增强全局搜索能力,实现更有效的全局优化。
局部开发策略
为了降低绝对值符号带来的潜在风险,EJAYA算法的局部开发策略通过设定的上下局部吸引点进行设计。其中,上层局部吸引点是一个参数,用于描述位于当前最佳解和当前平均解之间的解决方案。这种设计帮助EJAYA更有效地进行局部搜索,避免因固定的搜索方向而陷入局部最优:
P
u
=
λ
3
×
x
B
e
s
t
+
(
1
−
λ
3
)
×
M
P_{\mathrm{u}}=\lambda_{3}\times x_{\mathrm{Best}}+(1-\lambda_{3})\times M
Pu=λ3×xBest+(1−λ3)×M
其中,
M
M
M为种群质心位置:
M
=
1
N
∑
i
=
1
N
x
i
M=\frac1N\sum_{i=1}^{N}x_{i}
M=N1i=1∑Nxi
下层局部吸引点,这个参数用于表示当前最差解和当前平均解之间的解决方案:
P
1
=
λ
4
×
x
W
o
r
s
t
+
(
1
−
λ
4
)
×
M
P_1=\lambda_4\times x_{\mathrm{Worst}}+(1-\lambda_4)\times\boldsymbol{M}
P1=λ4×xWorst+(1−λ4)×M
根据确定的上下层吸引点,EJAYA的局部开发策略可表示为:
v
i
=
x
i
+
λ
5
×
(
P
u
−
x
i
)
−
λ
6
×
(
P
1
−
x
i
)
v_i=x_i+\lambda_5\times(P_{\mathrm{u}}-x_i)-\lambda_6\times(P_1-x_i)
vi=xi+λ5×(Pu−xi)−λ6×(P1−xi)
全局探索策略
为了增强JAYA算法的全球探索能力,EJAYA算法引入了一种新的全局探索策略,灵感来自回溯搜索算法。该策略的核心是利用历史种群和当前种群之间的差分向量进行搜索,因为这些差分向量比同一代种群内的差分向量覆盖了更广的搜索空间。
为了实现这个策略,EJAYA首先通过随机选择方法生成历史种群,然后利用随机洗牌函数对历史种群的个体进行重新排序:
X
o
l
d
=
permuting
(
X
o
l
d
)
X_{\mathrm{old}}=\text{permuting}\left(X_{\mathrm{old}}\right)
Xold=permuting(Xold)
EJAYA的全局勘探策略:
v
i
=
x
i
+
κ
×
(
x
o
l
d
,
i
−
x
i
)
v_{i}=x_{i}+\kappa\times(x_{\mathrm{old},i}-x_{i})
vi=xi+κ×(xold,i−xi)
伪代码
4.结果展示
5.参考文献
[1] Zhang Y, Chi A, Mirjalili S. Enhanced Jaya algorithm: A simple but efficient optimization method for constrained engineering design problems[J]. Knowledge-Based Systems, 2021, 233: 107555.