文章目录

  • 一、理论基础
    • 1、黏菌算法
      • (1)接近食物
      • (2)包裹食物
      • (3)获取食物
    • 2、SMA算法伪代码
  • 二、仿真实验与分析
  • 三、参考文献

一、理论基础

1、黏菌算法

黏菌算法(Slime Mould Algorithm, SMA)是根据黏菌的规食行为得到的一种优化算法。黏菌在规食过程中发现食物时,会有振荡收缩的特性。同时,在多个食物源之间会形成粗细不一的静脉网络,并且静脉网络的粗细与食物源的质量有关。此外,黏菌在获取食物源时,仍会有一定的概率对未知区域进行搜索。
黏菌主要有三种行为:接近食物、包裹食物和获取食物。

(1)接近食物

为了将黏菌的趋近行为建模为一个数学方程,提出了以下规则来模拟黏菌的收缩模式:X(t+1)={Xb(t)+vb×(W×XA(t)−XB(t)),r<pvc×X(t),r≥p(1)X(t+1)=\begin{dcases}X_b(t)+vb×(W×X_A(t)-X_B(t)),r<p\\vc×X(t),\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\,\,\,\,\,r≥p\end{dcases}\tag{1}X(t+1)={Xb​(t)+vb×(W×XA​(t)−XB​(t)),r<pvc×X(t),r≥p​(1)其中,vbvbvb为[−a,a][-a,a][−a,a]之间的随机数,vcvcvc是在[−1,1][-1,1][−1,1]之间振荡并最终趋于零的参数,ttt为当前迭代次数,Xb(t)X_b(t)Xb​(t)表示目前适应度最优的个体位置,X(t)X(t)X(t)表示当前黏菌个体的位置,XA(t)X_A(t)XA​(t)和XB(t)X_B(t)XB​(t)为两个随机个体位置,WWW表示黏菌的权重系数。
控制参数ppp、参数vbvbvb、参数aaa与权重系数WWW的更新公式如下:p=tanh⁡∣S(i)−DF∣(2)p=\tanh|S(i)-DF|\tag{2}p=tanh∣S(i)−DF∣(2)其中,i∈1,2,⋯,ni\in1,2,\cdots,ni∈1,2,⋯,n,S(i)S(i)S(i)表示第iii个黏菌个体的适应度值,DFDFDF为当前取得的最优适应度值。vb=[−a,a](3)vb=[-a,a]\tag{3}vb=[−a,a](3)a=arctanh(−(tT)+1)(4)a=\text{arctanh}(-\left(\frac tT\right)+1)\tag{4}a=arctanh(−(Tt​)+1)(4)W(SmellIndex(i))={1+r⋅log(bF−S(i)bF−wF+1),condition1−r⋅log(bF−S(i)bF−wF+1),others(5)W(SmellIndex(i))=\begin{dcases}1+r\cdot log\left(\frac{bF-S(i)}{bF-wF}+1\right),\quad condition\\1-r\cdot log\left(\frac{bF-S(i)}{bF-wF}+1\right),\quad others\end{dcases}\tag{5}W(SmellIndex(i))=⎩⎪⎪⎨⎪⎪⎧​1+r⋅log(bF−wFbF−S(i)​+1),condition1−r⋅log(bF−wFbF−S(i)​+1),others​(5)SmellIndex=sort(S)(6)SmellIndex=sort(S)\tag{6}SmellIndex=sort(S)(6)其中,conditionconditioncondition表示种群中适应度排在前一半个体,othersothersothers表示剩下的个体,rrr表示[0,1][0,1][0,1]之间的随机数,bFbFbF表示当前迭代获取的最佳适应度值,wFwFwF表示当前迭代最差适应度值。SmellIndex(i)SmellIndex(i)SmellIndex(i)为适应度值序列(求极小值问题为递增序列)。

(2)包裹食物

黏菌个体的位置更新公式如下:X(t+1)={rand⋅(UB−LB)+LB,rand<zXb(t)+vb×(W×XA(t)−XB(t)),r<pvc×X(t),r≥p(7)X(t+1)=\begin{dcases}rand\cdot(UB-LB)+LB,\quad\quad \quad \quad \,rand<z\\X_b(t)+vb×(W×X_A(t)-X_B(t)),r<p\\vc×X(t),\quad \quad\quad \quad \quad\quad \quad\quad \quad \quad \,\,\,\,\,r≥p\end{dcases}\tag{7}X(t+1)=⎩⎪⎨⎪⎧​rand⋅(UB−LB)+LB,rand<zXb​(t)+vb×(W×XA​(t)−XB​(t)),r<pvc×X(t),r≥p​(7)其中,UBUBUB与LBLBLB为上下界,randrandrand为均匀分布在0到1之间的随机数,zzz为自定义参数(值为0.03)。

(3)获取食物

vbvbvb的值在[−a,a][-a,a][−a,a]之间随机振荡,并且随着迭代次数的增加逐渐接近零。vcvcvc的值在[−1,1][-1,1][−1,1]之间振荡,最终趋于零,计算公式如下:vc=[−b,b](8)vc=[-b,b]\tag{8}vc=[−b,b](8)b=1−t/T(9)b=1-t/T\tag{9}b=1−t/T(9)vbvbvb和vcvcvc随迭代次数的变化情况如图1所示,vbvbvb和vcvcvc之间的协同作用模拟了黏菌的选择行为。

图1 vb和vc的变化情况

2、SMA算法伪代码

图2 SMA算法伪代码

二、仿真实验与分析

将SMA算法与GWO、SCA和WOA算法进行对比,以文献[1]中30维的F1~F5为例。种群规模设置为N=30N=30N=30,最大迭代次数T=1000T=1000T=1000,每个算法独立运算30次。
结果显示如下:

函数:F1
GWO:best: 0,worst:0,mean:0,std:0
SCA:best: 1.2074e-07,worst:0.78621,mean:0.064539,std:0.18886
WOA:best: 7.9181e-169,worst:3.2697e-149,mean:1.148e-150,std:5.9669e-150
SMA:best: 0,worst:0,mean:0,std:0
函数:F2
GWO:best: 2.0369e-315,worst:1.2641e-189,mean:4.2135e-191,std:0
SCA:best: 9.6861e-08,worst:7.9582e-05,mean:9.8167e-06,std:1.5905e-05
WOA:best: 9.0857e-114,worst:6.2747e-104,mean:4.2066e-105,std:1.3224e-104
SMA:best: 0,worst:1.4897e-193,mean:4.9658e-195,std:0
函数:F3
GWO:best: 0,worst:0,mean:0,std:0
SCA:best: 28.0204,worst:12658.1217,mean:3151.4432,std:2934.3648
WOA:best: 754.6686,worst:42890.8096,mean:22061.4708,std:11158.2669
SMA:best: 0,worst:0,mean:0,std:0
函数:F4
GWO:best: 0,worst:3.2301e-181,mean:1.0767e-182,std:0
SCA:best: 1.479,worst:45.1446,mean:17.743,std:11.2051
WOA:best: 0.50087,worst:88.8509,mean:45.5944,std:30.4244
SMA:best: 0,worst:1.0959e-180,mean:3.6529e-182,std:0
函数:F5
GWO:best: 0.002612,worst:27.6362,mean:5.7737,std:10.8871
SCA:best: 28.0899,worst:3588.5641,mean:261.7717,std:718.9743
WOA:best: 26.5473,worst:28.5326,mean:27.1689,std:0.46015
SMA:best: 0.0010161,worst:27.287,mean:5.6596,std:10.9604

结果表明,SMA算法具有良好的鲁棒性以及寻优精度。

三、参考文献

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

基于黏菌算法的函数寻优算法相关推荐

  1. 《MATLAB智能算法30个案例》:第2章 基于遗传算法和非线性规划的函数寻优算法

    <MATLAB智能算法30个案例>:第2章 基于遗传算法和非线性规划的函数寻优算法 1. 前言 2. MATLAB 仿真示例一 3. MATLAB 仿真示例二 4. MATLAB 仿真示例 ...

  2. 基于蚁群算法的函数寻优算法

    文章目录 一.理论基础 二.案例背景 1.问题描述 2.解题思路及步骤 三.MATLAB程序实现 1.清空环境变量 2.初始化参数 3.构建解空间和目标函数 4.迭代寻优 5.结果显示 6.绘图 四. ...

  3. 基于沙猫群优化算法的函数寻优算法

    文章目录 一.理论基础 1.沙猫群优化算法 (1)初始化种群 (2)搜索猎物(探索) (3)攻击猎物(开发) (4)探索和开发 2.SCSO算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基 ...

  4. 基于改进正弦余弦算法的函数寻优算法

    文章目录 一.理论基础 1.基本正弦余弦算法 2.改进正弦余弦算法 (1)基于双曲正弦调节因子和动态余弦波权重的位置更新 (2)基于拉普拉斯分布和高斯分布的动态混合变异 二.算法流程图 三.仿真实验与 ...

  5. 基于蜉蝣优化算法的函数寻优算法

    文章目录 一.理论基础 1.蜉蝣优化算法 (1)雄性蜉蝣的更新 (2)雌性蜉蝣的更新 (3)蜉蝣的交配过程 2.MA算法伪代码 二.仿真实验与结果分析 1.函数测试与数值分析 2.WSN三维覆盖优化 ...

  6. 基于金豺优化算法的函数寻优算法

    文章目录 一.理论基础 1.金豺优化算法 (1)搜索空间公式 (2)探索阶段或搜索猎物 (3)开发阶段或围捕和突袭猎物 (4)从探索转向开发 2.GJO伪代码 二.仿真实验与结果分析 三.参考文献 一 ...

  7. 基于果蝇优化算法的函数寻优算法

    文章目录 一.理论基础 二.算法步骤 1.启发 2.方向和距离 3.气味浓度判断值 4.适应度评估 5.寻找最优个体 6.飞行 7.迭代优化 三.案例背景 问题描述 四.MATLAB程序实现 1.清空 ...

  8. 基于蜂鸟优化算法的函数寻优算法

    文章目录 一.理论基础 1.自搜索阶段 2.引导搜索阶段 3.HOA伪代码 二.仿真实验与分析 三.参考文献 一.理论基础 蜂鸟优化算法(Hummingbirds optimization algor ...

  9. 基于藤壶交配优化算法的函数寻优算法

    文章目录 一.理论基础 1.藤壶交配优化算法 1.1 哈迪-温伯格(Hardy-Weinberg)法则 1.2 BMO 1.2.1 初始化 1.2.2 选择过程 1.2.3 繁殖 2.BMO算法伪代码 ...

最新文章

  1. [Android问答] 开发环境问题集锦
  2. Servlet和HTTP请求协议-学习笔记02【Servlet_体系结构与urlpartten配置、HTTP请求协议】
  3. python 从入门到跑路
  4. scada系统集成_MES/MOM与WMS系统集成应用案例-系统接口、交互数据分析
  5. 生产环境mysql主主同步主键冲突处理
  6. 软件测试成熟度与自动化测试
  7. ROST情感分析的语法规则_从词法分析角度聊 Go 代码组成
  8. C# 使用VS建立数据库并使用
  9. n1进入recovery模式_斐讯N1盒子刷机救砖教程
  10. QLabel setText 标红 加粗
  11. mac 更新13.1后使用AccessClient.app 闪退
  12. 软件测试面试题:请详细介绍一下各种测试类型的含义?
  13. 在本地调试移动设备上的页面——神器weinre介绍
  14. 实用!!服务器监测邮箱报警
  15. 163相册批量下载程序
  16. 计算机替代手工记账的影响,计算机记账替代手工记账的条件
  17. 整理的AD/2000技巧
  18. seu校园网简易自动登陆教程
  19. java中集合的基础知识_javaSE基础知识之集合类
  20. 丹麦奥尔堡大学计算机系博士,关于选拔博士研究生攻读上海大学-丹麦奥尔堡大学双博士学位的通知...

热门文章

  1. ProE4.0鼠标产品造型建模与结构设计视频教程
  2. mongodb的部分索引和稀疏索引
  3. 互联网早报:吉利李书福布局手机业务:新公司落地武汉,定位高端智能手机
  4. Revit SDK 官方下载地址(不定期更新)
  5. 计算机excelsumif的公式,excel中sumif函数的几种常见用法
  6. 【工具】audacity提示声音设备出错
  7. 小学创客课程教学设计
  8. 视频怎么转音频mp3,其实非常简单
  9. HTC Wildfire S|A510e刷机步骤
  10. 对超级大的图像做模板匹配