基于晶体结构算法的函数寻优算法

一、理论基础

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=Cr1Cr2CriCrn=x11x21xi1xn1x12x22xi2xn2x1jx2jxijxnjx1dx2dxidxnd,{ 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,maxjxi,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表示。
为了更新候选解在搜索空间中的位置,考虑了基本格原理,其中确定了以下四种更新过程:

  1. 简易隔室: 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)
  2. 包含最优晶体的隔室: 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)
  3. 包含平均晶体的隔室: 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)
  4. 包含最优晶体和平均晶体的隔室: 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所示。
在这里插入图片描述

图1 CryStAl算法伪代码

二、仿真实验与结果分析

将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.

猜你喜欢

转载自blog.csdn.net/weixin_43821559/article/details/124097312