混沌精英黏菌算法-附代码

混沌精英黏菌算法


摘要:为进一步提高标准黏菌算法的收敛速度和求解精度,采用 Tent 混沌映射丰富种群多样性,同时引入精英反向学习策略扩大搜索范围。

1.黏菌算法

基础黏菌算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/113710762

2.改进黏菌算法

2.1 混沌初始化

采用 Tent 混沌映射在 SMA 算法迭代初期进行种群初始化,使得个体位置均匀分布在搜索空间内, 有助于提高算法求解 效率。Tent 混池映射的数学表达式为
X n + 1 = { 2 X n , 0 ⩽ X n < 1 2 2 ( 1 − X n ) , 1 2 ⩽ X n ⩽ 1 , n = 0 , 1 , 2 , ⋯   (10) X_{n+1}=\left\{\begin{array}{ll} 2 X_n, & 0 \leqslant X_n<\frac{1}{2} \\ 2\left(1-X_n\right), & \frac{1}{2} \leqslant X_n \leqslant 1 \end{array}, n=0,1,2, \cdots\right. \tag{10} Xn+1={ 2Xn,2(1Xn),0Xn<2121Xn1,n=0,1,2,(10)
式(10)中: n n n 表示映射次数; X n X_n Xn 表示第 n n n 次映射函 数值。

2.2 精英反向学习策略

反向学习策略(opposition-based learning, OBL) 是由 Tizhoosh [ 19 ] { }^{[19]} [19] 于 2005 年提出一种优化机制, 其主 要原理是针对当前可行解, 同时计算和评估其反向 解, 从中选取较优的解作为下一代个体 [ 20 ] { }^{[20]} [20] 。精英反 向学习 (elite opposition-based learning, EOBL) 在前 者基础上利用精英个体比一般个体包括更加丰富 的有效信息和反向种群来增加种群多样性 [ 21 ] { }^{[21]} [21], 扩大 搜索空间; 通讨引入 EOBL 策略能够有效增强算法 的全局搜索能力, 进一步提高算法的寻优性能。假 设当前黏窗种群中精英个体(即当前最优解)为 X i j = ( X i , 1 , X i , 2 , ⋯ X i , D ) X_{i j}=\left(X_{i, 1}, X_{i, 2}, \cdots X_{i, D}\right) Xij=(Xi,1,Xi,2,Xi,D), 其中 D D D 为优化问题的空间 维度, 则其精英反向解 X i j ∗ = ( X i , 1 ∗ , X i , 2 ∗ , ⋯   , X i , D ∗ ) X_{i j}^*=\left(X_{i, 1}^*, X_{i, 2}^*, \cdots, X_{i, D}^*\right) Xij=(Xi,1,Xi,2,,Xi,D) 可 以定义为
X i , j ∗ = α ( L B j + U B j ) − X i , j , j = 1 , 2 , ⋯   , D (11) X_{i, j}^*=\alpha\left(\mathrm{LB}_j+\mathrm{UB}_j\right)-X_{i, j}, \quad j=1,2, \cdots, D \tag{11} Xi,j=α(LBj+UBj)Xi,j,j=1,2,,D(11)
式 (11) 中: X i , j X_{i, j} Xi,j 为第 j j j 维个体的数值; α \alpha α 为区间 [ 0 , 1 ] [0,1] [0,1] 内服从正态分布的随机数; ( L B j , U B j ) \left(\mathrm{LB}_j, \mathrm{UB}_j\right) (LBj,UBj) 表示第 j j j 维搜 索空间的动态边界, 其定义为
L B j = min ⁡ ( X i , j ) ( 12 ) \mathrm{LB}_j=\min \left(X_{i, j}\right) (12) LBj=min(Xi,j)(12)
U B j = max ⁡ ( X i , j ) ( 13 ) \mathrm{UB}_j=\max \left(X_{i, j}\right) (13) UBj=max(Xi,j)(13)
式中: min ⁡ ( X i , j ) 、 max ⁡ ( X i , j ) \min \left(X_{i, j}\right) 、 \max \left(X_{i, j}\right) min(Xi,j)max(Xi,j) 分别为第 j j j 维个体的最小 值和最大值。
当生成的反向解超出 ( L B j , U B j ) \left(\mathrm{LB}_j, \mathrm{UB}_j\right) (LBj,UBj) 边界范眷时, 使用随机生成的方法进行越界重置, 具体描述为
X i , j ∗ = rand ⁡ ( L B j , U B j ) ( 14 ) X_{i, j}^*=\operatorname{rand}\left(\mathrm{LB}_j, \mathrm{UB}_j\right)(14) Xi,j=rand(LBj,UBj)(14)
综合上述, 改进的混池精英秥菌算法 (chaotic elite slime mould algorithm, CESMA) 可以利用伪代 码表述其执行流程,如表 1 所示。

请添加图片描述

3.实验结果

请添加图片描述

4.参考文献

[1]肖亚宁,孙雪,李三平,姚金言.基于混沌精英黏菌算法的无刷直流电机转速控制[J].科学技术与工程,2021,21(28):12130-12138.

5.Matlab代码

6.python代码

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/127194196