1.摘要
本研究提出了一种改进的正弦余弦算法,名为基于多试验向量的正弦余弦算法(MTV-SCA)。这一方法通过调整三个控制参数和采用多种搜索策略,有效解决了传统正弦余弦算法(SCA)容易陷入局部最优、探索与开发不平衡以及精度不足的问题。MTV-SCA采用四种不同的搜索策略,平衡了探索与开发的关系,避免了在优化过程中过早收敛。
2.正弦余弦算法SCA 原理
3.MTV-SCA
MTV-SCA通过引入多试验向量(MTV)方法,强化了SCA的单一搜索策略。MTV方法允许定义多种不同的搜索策略,每种策略旨在实现特定的目标,并在整个搜索过程中进行协作。
在决定SC-TVP和Pool-TVP子群体的大小时,关键是要考量在经过指定迭代次数(nIter)后,解决方案的改进数量。这里,改进率(ImpRate)是指在过去nIter迭代中解决方案适应度提高的比例与总的函数评估次数的比值:
ImpRate
S
C
−
T
V
P
=
N
ImprovedsolutionsbySC-TVP
N
S
C
−
T
V
P
×
N
F
E
s
ImpRate
Pool-TVP
=
N
ImprovedsolutionsbyPool-TVP
N
Pool-TVP
×
N
F
E
s
\begin{array}{l}\text { ImpRate }_{S C-T V P}=\frac{N_{\text {ImprovedsolutionsbySC-TVP }}}{N_{S C-T V P} \times N_{F E s}} \\\text { ImpRate }_{\text {Pool-TVP }}=\frac{N_{\text {ImprovedsolutionsbyPool-TVP }}}{N_{\text {Pool-TVP }} \times N_{F E s}}\end{array}
ImpRate SC−TVP=NSC−TVP×NFEsNImprovedsolutionsbySC-TVP ImpRate Pool-TVP =NPool-TVP ×NFEsNImprovedsolutionsbyPool-TVP
正弦余弦试验向量生产者(SC-TVP)在每次迭代t中,为SC-TVP子群体XSCi的第i个解生成一个候选解:
C
S
C
i
t
+
1
=
{
X
S
C
i
t
+
r
1
×
sin
(
r
2
)
×
∣
r
3
×
P
t
−
X
S
C
i
t
∣
,
r
4
<
0.5
X
S
C
i
t
+
r
1
×
cos
(
r
2
)
×
∣
r
3
×
P
t
−
X
S
C
i
t
∣
,
r
4
≥
0.5
\left.CSC_i^{t+1}=\left\{\begin{array}{l}XSC_i^t+r_1\times\sin(r_2)\times\left|r_3\times P^t-XSC_i^t\right|,r_4<0.5\\XSC_i^t+r_1\times\cos(r_2)\times\left|r_3\times P^t-XSC_i^t\right|,r_4\geq0.5\end{array}\right.\right.
CSCit+1={XSCit+r1×sin(r2)×∣r3×Pt−XSCit∣,r4<0.5XSCit+r1×cos(r2)×∣r3×Pt−XSCit∣,r4≥0.5
Pool-TVP的池试验向量生产者是一个包含多种试验向量生产者(S1-TVP、S2-TVP、S3-TVP和S4-TVP)的集合,这些生产者利用各种正弦和余弦函数作为搜索策略的控制参数。例如,S1-TVP专注于在探索和开发之间保持平衡,防止算法陷入局部最优;S2-TVP则更强调探索能力;S3-TVP平衡探索与开发;而S4-TVP则旨在平衡探索与开发,避免过早收敛。
Pool-TVP采用随机分配机制在每次迭代中分配解决方案,确保各子群体得到均衡的处理。此外,S1-TVP利用群体中最佳解的信息及两个随机选取的解之间的差异来生成候选解,并通过特定的函数调整来优化搜索方向和区域,力求在探索和开发之间达到最佳平衡:
V
S
1
i
t
+
1
=
P
′
+
C
h
e
b
y
s
h
e
v
(
t
)
×
(
X
r
1
′
−
X
r
2
′
)
+
r
a
n
d
×
(
X
r
3
′
−
X
r
4
′
)
VS1_{i}^{t+1}=P^{\prime}+Chebyshev(t)\times\begin{pmatrix}X'_{r1}-X'_{r2}\end{pmatrix}+rand\times(X'_{r3}-X'_{r4})
VS1it+1=P′+Chebyshev(t)×(Xr1′−Xr2′)+rand×(Xr3′−Xr4′)
其中, Pt 是到目前为止最好的解决方案,而 Xt_r1、Xt_r2、Xt_r3 和 Xt_r4 是从当前人口 X 中随机选择的解决方案。Chebyshev函数允许算法更有效地探索搜索空间:
C
h
e
b
y
s
h
e
v
(
t
+
1
)
=
cos
(
t
×
c
o
s
−
1
(
C
h
e
b
y
s
h
e
v
(
t
)
)
)
Chebyshev(t+1)=\cos(t\times cos^{-1}(Chebyshev(t)))
Chebyshev(t+1)=cos(t×cos−1(Chebyshev(t)))
流程图
伪代码
4.结果展示
CEC2005
5.参考文献
[1] Nadimi-Shahraki M H, Taghian S, Javaheri D, et al. MTV-SCA: multi-trial vector-based sine cosine algorithm[J]. Cluster Computing, 2024: 1-45.