一、理论基础
1、晶体结构算法
晶体结构算法(Crystal Structure Algorithm, CryStAl)由伊朗的Siamak Talatahari等人于2021年提出,该算法的主要灵感来源于从点阵点添加基形成晶体结构的基本原理。
在该模型中,优化算法的每个候选解都被视为空间中的一个单晶。为了进行迭代优化,首先随机确定一些晶体进行初始化。
C
r
=
[
C
r
1
C
r
2
⋮
C
r
i
⋮
C
r
n
]
=
[
x
1
1
x
1
2
⋯
x
1
j
⋯
x
1
d
x
2
1
x
2
2
⋯
x
2
j
⋯
x
2
d
⋮
⋮
⋮
⋱
⋮
x
i
1
x
i
2
⋯
x
i
j
⋯
x
i
d
⋮
⋮
⋮
⋱
⋮
x
n
1
x
n
2
⋯
x
n
j
⋯
x
n
d
]
,
{
i
=
1
,
2
,
⋯
,
n
j
=
1
,
2
,
⋯
,
d
(1)
Cr=\begin{bmatrix}Cr_1\\Cr_2\\\vdots\\Cr_i\\\vdots\\Cr_n\end{bmatrix}=\begin{bmatrix} x_1^1 & x_1^2 & \cdots & x_1^j & \cdots & x_1^d \\x_2^1 & x_2^2 & \cdots & x_2^j & \cdots & x_2^d \\\vdots & \vdots & & \vdots & \ddots & \vdots \\x_i^1 & x_i^2 & \cdots & x_i^j & \cdots & x_i^d \\ \vdots & \vdots & & \vdots & \ddots & \vdots \\ x_n^1 & x_n^2 & \cdots & x_n^j & \cdots & x_n^d \end{bmatrix},\,\,\begin{dcases}i=1,2,\cdots,n\\j=1,2,\cdots,d\end{dcases}\tag{1}
Cr=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡Cr1Cr2⋮Cri⋮Crn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡x11x21⋮xi1⋮xn1x12x22⋮xi2⋮xn2⋯⋯⋯⋯x1jx2j⋮xij⋮xnj⋯⋯⋱⋯⋱⋯x1dx2d⋮xid⋮xnd⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤,{i=1,2,⋯,nj=1,2,⋯,d(1)其中,
n
n
n是晶体(候选解)的数量,
d
d
d是问题的维度。这些晶体的初始位置在搜索空间中随机确定,如下所示:
x
i
j
(
0
)
=
x
i
,
min
j
+
ξ
(
x
i
,
max
j
−
x
i
,
min
j
)
,
{
i
=
1
,
2
,
⋯
,
n
j
=
1
,
2
,
⋯
,
d
(2)
x_i^j(0)=x_{i,\min}^j+\xi(x_{i,\max}^j-x_{i,\min}^j),\,\,\begin{dcases}i=1,2,\cdots,n\\j=1,2,\cdots,d\end{dcases}\tag{2}
xij(0)=xi,minj+ξ(xi,maxj−xi,minj),{i=1,2,⋯,nj=1,2,⋯,d(2)其中,
x
i
j
(
0
)
x_i^j(0)
xij(0)确定晶体的初始位置;
x
i
,
min
j
x_{i,\min}^j
xi,minj和
x
i
,
max
j
x_{i,\max}^j
xi,maxj分别是第
i
i
i个候选解的第
j
j
j个决策变量的最小和最大允许值;
ξ
\xi
ξ是一个
[
0
,
1
]
[0,1]
[0,1]区间内的随机数。
根据晶体学中的“基”概念,角上的所有晶体都被视为主晶体
C
r
m
a
i
n
Cr_{main}
Crmain,通过考虑初始生成的晶体(候选解)随机确定。应该注意的是,每个步骤的随机选择过程是通过省略当前
C
r
Cr
Cr来确定的。具有最佳配置的晶体被确定为
C
r
b
Cr_b
Crb,而随机选择的晶体的平均值用
F
c
F_c
Fc表示。
为了更新候选解在搜索空间中的位置,考虑了基本格原理,其中确定了以下四种更新过程:
- 简易隔室: C r n e w = C r o l d + r C r m a i n (3) Cr_{new}=Cr_{old}+rCr_{main}\tag{3} Crnew=Crold+rCrmain(3)
- 包含最优晶体的隔室: C r n e w = C r o l d + r 1 C r m a i n + r 2 C r b (4) Cr_{new}=Cr_{old}+r_1Cr_{main}+r_2Cr_b\tag{4} Crnew=Crold+r1Crmain+r2Crb(4)
- 包含平均晶体的隔室: C r n e w = C r o l d + r 1 C r m a i n + r 2 F c (5) Cr_{new}=Cr_{old}+r_1Cr_{main}+r_2F_c\tag{5} Crnew=Crold+r1Crmain+r2Fc(5)
- 包含最优晶体和平均晶体的隔室: C r n e w = C r o l d + r 1 C r m a i n + r 2 C r b + r 3 F c (6) Cr_{new}=Cr_{old}+r_1Cr_{main}+r_2Cr_b+r_3F_c\tag{6} Crnew=Crold+r1Crmain+r2Crb+r3Fc(6)其中,在上述四个等式中, C r n e w Cr_{new} Crnew是新位置, C r o l d Cr_{old} Crold是旧位置, r r r、 r 1 r_1 r1、 r 2 r_2 r2和 r 3 r_3 r3均为 [ − 1 , 1 ] [-1,1] [−1,1]的随机数。
值得一提的是,作为元启发式算法的两个关键特征,探索和开发在该算法中得到了保证,通过式(4)到式(7)同时进行局部和全局搜索。为了处理违反变量边界条件的解变量 x i j x_i^j xij,定义了一个flag,其中对于变量范围外的 x i j x_i^j xij,flag命令违反变量的边界改变。终止标准是基于最大迭代次数考虑的,其中优化过程在固定的迭代次数后终止。
2、CryStAl伪代码
CryStAl伪代码如图1所示。
二、仿真实验与结果分析
将CryStAl与SSA、MFO、MVO和SCA进行对比,以常用23个测试函数的F1、F2(单峰函数/30维)、F9、F10(多峰函数/30维)、F18、F19(固定维度多峰函数/2维、3维)为例,实验设置种群规模为50,最大迭代次数为1000,每种算法独立运算30次,结果显示如下:
函数:F1
SSA:最差值: 1.1521e-08,最优值:6.5816e-09,平均值:9.1439e-09,标准差:1.5234e-09,秩和检验:3.0199e-11
MFO:最差值: 10000,最优值:3.4669e-06,平均值:2333.3334,标准差:4301.8307,秩和检验:3.0199e-11
MVO:最差值: 0.30711,最优值:0.088964,平均值:0.19896,标准差:0.051538,秩和检验:3.0199e-11
SCA:最差值: 0.020153,最优值:9.1494e-09,平均值:0.0022384,标准差:0.0045475,秩和检验:3.0199e-11
CryStAl:最差值: 1.4154e-21,最优值:3.9076e-33,平均值:8.1479e-23,标准差:2.6898e-22,秩和检验:1
函数:F2
SSA:最差值: 2.2252,最优值:0.00024429,平均值:0.429,标准差:0.56186,秩和检验:3.0199e-11
MFO:最差值: 80,最优值:7.2456e-05,平均值:30.0001,标准差:21.9717,秩和检验:3.0199e-11
MVO:最差值: 0.88101,最优值:0.15069,平均值:0.29942,标准差:0.13562,秩和检验:3.0199e-11
SCA:最差值: 2.0238e-05,最优值:8.236e-09,平均值:3.2206e-06,标准差:5.6825e-06,秩和检验:3.0199e-11
CryStAl:最差值: 7.5549e-11,最优值:1.2467e-17,平均值:1.4583e-11,标准差:2.2825e-11,秩和检验:1
函数:F9
SSA:最差值: 98.5006,最优值:13.9294,平均值:53.4955,标准差:17.3332,秩和检验:1.2118e-12
MFO:最差值: 251.1547,最优值:77.6065,平均值:158.1764,标准差:36.4213,秩和检验:1.2118e-12
MVO:最差值: 226.9633,最优值:64.7372,平均值:126.9481,标准差:40.9522,秩和检验:1.2118e-12
SCA:最差值: 52.3055,最优值:1.2428e-06,平均值:8.1638,标准差:16.7671,秩和检验:1.2118e-12
CryStAl:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
函数:F10
SSA:最差值: 3.9825,最优值:2.1058e-05,平均值:1.7234,标准差:0.93524,秩和检验:2.9991e-11
MFO:最差值: 19.963,最优值:0.0014421,平均值:13.294,标准差:8.2212,秩和检验:2.9991e-11
MVO:最差值: 1.9301,最优值:0.11851,平均值:0.74551,标准差:0.63754,秩和检验:2.9991e-11
SCA:最差值: 20.2654,最优值:6.6981e-06,平均值:14.0588,标准差:8.8633,秩和检验:2.9991e-11
CryStAl:最差值: 1.2563e-11,最优值:8.8818e-16,平均值:8.7047e-13,标准差:2.3078e-12,秩和检验:1
函数:F18
SSA:最差值: 3,最优值:3,平均值:3,标准差:1.0603e-13,秩和检验:3.0142e-11
MFO:最差值: 3,最优值:3,平均值:3,标准差:1.4019e-15,秩和检验:2.5046e-11
MVO:最差值: 3,最优值:3,平均值:3,标准差:3.7556e-07,秩和检验:3.0199e-11
SCA:最差值: 3,最优值:3,平均值:3,标准差:7.9049e-06,秩和检验:6.2828e-06
CryStAl:最差值: 3.0002,最优值:3,平均值:3,标准差:4.2419e-05,秩和检验:1
函数:F19
SSA:最差值: -3.8628,最优值:-3.8628,平均值:-3.8628,标准差:8.4614e-15,秩和检验:3.0029e-11
MFO:最差值: -3.8628,最优值:-3.8628,平均值:-3.8628,标准差:2.7101e-15,秩和检验:1.2118e-12
MVO:最差值: -3.8628,最优值:-3.8628,平均值:-3.8628,标准差:3.7259e-07,秩和检验:3.0199e-11
SCA:最差值: -3.8531,最优值:-3.8622,平均值:-3.8558,标准差:0.002796,秩和检验:3.0199e-11
CryStAl:最差值: -3.8625,最优值:-3.8628,平均值:-3.8627,标准差:6.4015e-05,秩和检验:1
实验结果表明:CryStAl算法在大多数情况下优于其他元启发式算法。
三、参考文献
[1] S. Talatahari, M. Azizi, M. Tolouei, et al. Crystal Structure Algorithm (CryStAl): A Metaheuristic Optimization Method[J]. IEEE Access, 2021, 9: 71244-71261.