改进沙猫群优化算法(ISCSO)-附代码

改进沙猫群优化算法(ISCSO)


摘要:对沙猫群优化算法进行改进。在改进的沙猫群优化算法中,利用混沌映射的均匀性初始化种群以提高种群多样性;通过融合互利共生和莱维飞行策略减少局部最优解的消极影响,提高算法的收敛速度和精度。

1.沙猫群优化算法

基础沙猫群优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/126624550

2. 改进沙猫群优化算法

2.1 混沌映射初始化

混沌映射 [ 12 ] { }^{[12]} [12] 具有良好的随机性、规律性和遍 历性, 不但能使得种群具有良好的多样性, 也能使 得算法在全局搜索能力、收敛速度、收敛精度上都 有所提高。改进公式如下:
C k + 1 = { C k / a , 0 ⩽ C k ⩽ a ( 1 − C k ) / ( 1 − a ) , a ⩽ C k ⩽ 1 ( 7 ) P o s → i d = l b + ( u b − l b ) × C i d   ( 8 ) \begin{aligned} C_{k+1}= & \begin{cases}C_k / a, & 0 \leqslant C_k \leqslant a \\ \left(1-C_k\right) /(1-a), & a \leqslant C_k \leqslant 1\end{cases} (7)\\ & \overrightarrow{\mathrm{Pos}}_{i d}=l b+(u b-l b) \times C_{i d}\ (8) \end{aligned} Ck+1={ Ck/a,(1Ck)/(1a),0CkaaCk1(7)Pos id=lb+(ublb)×Cid (8)
的位置; u b u b ub l b l b lb 表示种群的搜索范围; C i d C_{i d} Cid 表示由 式(7)产生的混沌序列。

2.2 引入互利共生策略

沙猫群优化算法在攻击猎物时,会通过轮盘赌法随机选择角度来靠近猎物进行攻击。但这样的攻击方式随机性较大,也易于陷入局部最优,互利共生策略 通过加强个体与最优个体的信息交流,可以消除沙猫攻击猎物时的消极影响,提高沙猫的寻优精度和收敛速度。改进公式如下:
P o s → n e w = P o s → b c + ( P o s → b c − b f × R M V ) (9) \overrightarrow{\mathrm{Pos}}_{new}=\overrightarrow{\mathrm{Pos}}_{bc}+(\overrightarrow{\mathrm{Pos}}_{bc}-bf\times R_{MV})\tag{9} Pos new=Pos bc+(Pos bcbf×RMV)(9)

R M V = ( P o s → b c + P o s → r n d ) / 2 (10) R_{MV}=(\overrightarrow{\mathrm{Pos}}_{bc}+\overrightarrow{\mathrm{Pos}}_{rnd})/2 \tag{10} RMV=(Pos bc+Pos rnd)/2(10)

P o s → n e w \overrightarrow{\mathrm{Pos}}_{new} Pos new为更新后的位置; P o s → r n d \overrightarrow{\mathrm{Pos}}_{\mathrm{rnd}} Pos rnd 为随机个体的位置; P o s → b c \overrightarrow{\mathrm{Pos}}_{\mathrm{bc}} Pos bc 为最优个体的位置; b f b f bf 表示利益因子, 随机选择 1 或 2 , 表示可能部分受益或全部受益;
R M V R_{M V} RMV 表示最优个体与随机个体的信息交流。

2.3 引入莱维飞行策略

沙猫群优化算法在搜索猎物和攻击猎物时, 都是通过随机角度进行的, 导致算法会遗漏部分 较优的解, 降低收玫精度。为了增强搜索的周密 性, 消除局部最优解的消极影响, 本算法引入莱维 飞行策略 [ 13 ] { }^{[13]} [13], 既加强了算法的局部搜索能力,又 能保证算法在全局搜索时具有良好的周密性。改 进公式如下:
P o s → n e w = P o s → b c + ∣ P o s → b c − P o s → L e v y ∣ l c o s ( 2 π l ) (11) \overrightarrow{\mathrm{Pos}}_{new} = \overrightarrow{\mathrm{Pos}}_{bc}+|\overrightarrow{\mathrm{Pos}}_{bc}-\overrightarrow{\mathrm{Pos}}_{Levy}|lcos(2\pi l)\tag{11} Pos new=Pos bc+Pos bcPos Levylcos(2πl)(11)

P o s → L e v y = μ ∣ α ∣ 1 / β ( P o s → r n d − P o s → b c ) (12) \overrightarrow{\mathrm{Pos}}_{Levy}=\frac{\mu}{|\alpha|^{1/\beta}}(\overrightarrow{\mathrm{Pos}}_{rnd}-\overrightarrow{\mathrm{Pos}}_{bc})\tag{12} Pos Levy=α1/βμ(Pos rndPos bc)(12)

σ μ = { Γ ( 1 + β ) sin ⁡ ( π β 2 ) Γ [ ( 1 + β ) 2 ] β ⋅ 2 β − 1 2 } (13) \begin{aligned} & \sigma_\mu=\left\{\frac{\Gamma(1+\beta) \sin \left(\frac{\pi \beta}{2}\right)}{\Gamma\left[\frac{(1+\beta)}{2}\right] \beta \cdot 2^{\frac{\beta-1}{2}}}\right\} \\ & \end{aligned}\tag{13} σμ= Γ[2(1+β)]β22β1Γ(1+β)sin(2πβ) (13)
P o s → n e w \overrightarrow{\mathrm{Pos}}_{new} Pos new为更新后的位置; P o s → L e v y \overrightarrow{P o s}_{\mathrm{Levy}} Pos Levy 表示莱维飞行位置; l l l ( 0 , 1 ) (0,1) (0,1) 的随机数; P o s → r n d \overrightarrow{\mathrm{Pos}}_{\mathrm{rnd}} Pos rnd 表示随机个体的位置; μ \mu μ 是服从 μ ∼ N ( 0 , σ μ 2 ) \mu \sim N\left(0, \sigma_\mu^2\right) μN(0,σμ2) 的随机数, 其中 Γ \Gamma Γ 为伽马函数, β \beta β ( 0 , 2 ) (0,2) (0,2) 的随机数。

3.实验结果

在这里插入图片描述

4.参考文献

[1]贾鹤鸣,李永超,游进华等.改进沙猫群优化算法的机器人路径规划[J].福建工程学院学报,2023,21(01):72-77.

5.Matlab代码

6.Python代码

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/130494672
今日推荐