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


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

    摘要:侏儒猫鼬优化算法(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\{

    XiCF phi  rand [XiM] if φi+1>φiXi+CF phi  rand [XiM] else " role="presentation">XiCF phi  rand [XiM] if φi+1>φiXi+CF phi  rand [XiM] else 
    \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代码

  • 相关阅读:
    lua基础之位操作
    Redis面试篇
    一个工作薄中快速新建多个数据表
    yolov5训练flash芯片引脚
    Redis实战篇(四)分布式锁
    端到端图像压缩《Checkerboard Context Model for Efficient Learned Image Compression》
    PLL时钟约束
    交换机端口汇聚详解
    pom的配置策略
    【GAN】pix2pix算法的数据集制作
  • 原文地址:https://blog.csdn.net/u011835903/article/details/127455123