黏菌优化算法SMA(学习笔记_07)

1. 定理

  • 根据黏菌个体的振荡捕食行为提出。

  • 黏菌(通过黏菌静脉)可以根据空气中食物气味的浓度来接近食物。

    • 高:生物振荡越强,黏菌静脉宽度增大,该区域聚集更多黏菌。

    • 低:黏菌转向探索其他区域。

2. 参数

  • vc :反馈因子,描述食物浓度与黏菌质量之间的反馈关系。

    • [-1,1]之间的随机数,随迭代次数的增加逐渐趋于0

    • vc ∈ [-b,b],b = 1−t/T

    • t:当前迭代次数,T:最大迭代次数

  • vb : [-a,a]之间的随机数,随迭代次数的增加逐渐趋于0

    • a = arctanh(−(t/T)+1)

  • p :控制参数,p = tanh∣S(i)−DF∣

    • S(i): 当前迭代第i个个体的适应度值

    • DF: 当前最佳适应度值

  • z : z = 0.03; %包裹食物时全局搜索的概率因子

3. 算法流程

  1. 初始化种群, 当前迭代次数it = 1

  2. while it <= iter_max

    1. 接近食物(气味指数)

    2. 包裹食物

    3. 获取食物

  3. end

  4. 输出结果

4. 详细流程

  1. 接近食物(气味指数)

    1. 计算每个黏菌的适应度值,S( )

    2. 对当前种群的适应度值进行排序(求最小值时升序,求最大值时降序),SmellIndex( )

    3. 记录黏菌个体的最佳适应度值DF及最佳位置

  2. 包裹食物

    1. 更新参数a,b

      1. a = arctanh(−(t/T)+1)

      2. b=1−t/T

    2. 计算每个黏菌个体的适应度权重

      黏菌个体适应度权重公式如下:img

      bF :当前迭代最佳适应度值wF: 当前迭代最差适应度值,r :[0,1]随机数

    3. 更新黏菌个体的位置(产生下一代种群)

      黏菌个体位置更新公式如下:

      img

      ub: 自变量上限,lb:自变量下限,vc = [-b,b]随机数,vb:[-a,a]随机数,A.B:随机选择的当前迭代中的两个个体的位置。

  3. 获取食物

    1. 记录最佳适应度值DF

    2. 迭代次数 it = it + 1;

5. 适应度函数

6. 参考文献

[1] Shimin Li, Huiling Chen, Mingjing Wang, Ali Asghar Heidari, Seyedali Mirjalili. Slime mould algorithm: A new method for stochastic optimization[J]. Future Generation Computer Systems, 2020, 111: 300-323.

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值