智能优化算法:侏儒猫鼬优化算法-附代码

智能优化算法:侏儒猫鼬优化算法

摘要:侏儒猫鼬优化算法(Dwarf Mongoose Optimization,DMO)是由是由 Jeffrey O. Agushaka 等于2022 年提出的一种群体智能优化算法。其灵感来源于侏儒猫鼬的群体觅食行为。

1.侏儒猫鼬优化算法

DMO 算法是模拟侏儒猫鼬半游牧式生活的一种元启发式算法。侏儒猫鼬通常生活在一个母系社会的家族群体中,主要有觅食、侦察和保姆三种社会职能。侏儒猫鼬以集体觅食和侦察而闻名,由雌性首领引导种群进行食物源的搜寻。一旦满足保姆交换条件,即
当阿尔法组未能寻找到合适的食物时,将交换阿尔法组和保姆组的成员,且阿尔法组同时进行觅食和寻找睡眠丘。

1.1 阿尔法组

1.1.1 雌性首领的产生

雌性首领在阿尔法组中产生, 阿尔法组中每个雌 性个体成为首领的概率为 α \alpha α, 计算公式如下:
α = f i t i ∑ i = 1 N f i t i (1) \alpha=\frac{f i t_i}{\sum_{i=1}^N f i t_i} \tag{1} α=i=1Nfitifiti(1)
其中 f i t i f i t_i fiti 是第 i i i 个个体的适应度, N N N 是侏儒猫䶃种群中个 体的总数。阿尔法组的个体数量为 n ′ , b s n^{\prime}, b s n,bs 为保姆的数量。

1.1.2 阿尔法组成员觅食

阿尔法组成员将共行并进行受食, 食物源的候选 位置由式 ( 2 ) 给出:
X i + 1 = X i +  phi  ×  peep  × ( X i − X rand  ) (2) X_{i+1}=X_i+\text { phi } \times \text { peep } \times\left(X_i-X_{\text {rand }}\right)\tag{2} Xi+1=Xi+ phi × peep ×(XiXrand )(2)
其中 X i + 1 X_{i+1} Xi+1 是找到的食物源新位置, X i X_i Xi 为雌性首领的当 前位置, phi 是均匀分布在 [ − 1 , 1 ] [-1,1] [1,1] 之间的随机数, 本文 peep 选取为 2 , X rand  2, X_{\text {rand }} 2,Xrand  是阿尔法组中的随机个体。

1.2 保姆交换条件

保姆交换条件是用于重置阿尔法组和保姆组中的 猫舀个体。当阿尔法组成员末能搜寻到合适的食物时, 认为阿尔法组成员能力不足, 将交换阿尔法组和保姆 组的成员。交换条件满足后, 阿尔法组将同时进行受 食和寻找睡眠丘, 计算公式如下:
X b = l b +  rand  ∗ ( u b − l b ) (3) X_b=l b+\text { rand } *(u b-l b)\tag{3} Xb=lb+ rand (ublb)(3)
其中 X b X_b Xb 为交换后个体的新位置, u b u b ub l b l b lb 分别为搜索 空间的上界和下界, rand 是 0 到 1 之间的随机数。

保姆交换后的觅食行为由公式 (2) 实现。睡眠丘 是猫䶂休息的场所, 而猫䶂不会回到之前的睡眠丘, 这种生活模式能够避免搜索区域被过度开发的问题。 新搜寻到的睡眠丘的数学模型如下:
X s m = { X i − C F ∗  phi  ∗  rand  ∗ [ X i − M ⃗ ]  if  φ i + 1 > φ i X i + C F ∗  phi  ∗  rand  ∗ [ X i − M ⃗ ]  else  } (4) X_{s m}=\left\{\begin{array}{lcc} X_i-C F * \text { phi } * \text { rand } *\left[X_i-\vec{M}\right] & \text { if } & \varphi_{i+1}>\varphi_i \\ X_i+C F * \text { phi } * \text { rand } *\left[X_i-\vec{M}\right] & \text { else } \end{array}\right\}\tag{4} Xsm= XiCF phi  rand [XiM ]Xi+CF phi  rand [XiM ] if  else φi+1>φi (4)
其中 X s m X_{s m} Xsm 为新的睡眠丘的位置, M ⃗ \vec{M} M 是决定猫晲移动到 新睡眠丘的方向向量, φ \varphi φ 是睡眠丘的平均值, 计算公 式如下:
M ⃗ = ∑ i = 1 N X i × s m i X i (5) \vec{M}=\sum_{i=1}^N \frac{X_i \times s m_i}{X_i}\tag{5} M =i=1NXiXi×smi(5)

φ = ∑ i = 1 N s m i n (6) \varphi=\frac{\sum_{i=1}^N s m_i}{n}\tag{6} φ=ni=1Nsmi(6)
其中 s m i s m_i smi 代表睡眠丘值:
s m i = f i t i + 1 − f i t i max ⁡ { ∣ f i t i + 1 , f i t i ∣ } (7) s m_i=\frac{f i t_{i+1}-f i t_i}{\max \left\{\left|f i t_{i+1}, f i t_i\right|\right\}} \tag{7} smi=max{fiti+1,fiti}fiti+1fiti(7)
C F C F CF 表示猫晲种群移动能力的参数, 它会随着迭 代次数线性递减, 计算公式如下:
C F = ( 1 − t T ) ( 2 t T ) (8) C F=\left(1-\frac{t}{T}\right)^{\left(2 \frac{t}{T}\right)}\tag{8} CF=(1Tt)(2Tt)(8)
其中 t t t 为当前迭代次数, T T T 为最大迭代次数。

3.实验结果

请添加图片描述

4.参考文献

[1] AGUSHAKA J O, EZUGWU A E, ABUALIGAH L.Dwarf mongoose optimization algorithm[J].Computer methods in applied mechanics and engineering, 2022,391(2022): 114570.

[1]贾鹤鸣,陈丽珍,力尚龙,刘庆鑫,吴迪,卢程浩.透镜成像反向学习的精英池侏儒猫鼬优化算法[J/OL].计算机工程与应用:1-12[2022-10-21].http://kns.cnki.net/kcms/detail/11.2127.TP.20221019.1554.014.html

5.Matlab代码

6.python代码

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值