黏菌优化算法SMA(学习笔记_07)
2022/1/24 14:04:17
本文主要是介绍黏菌优化算法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. 算法流程
-
初始化种群, 当前迭代次数it = 1
-
while it <= iter_max
-
接近食物(气味指数)
-
计算每个黏菌的适应度值,S( )
-
对当前种群的适应度值进行排序(求最小值时升序,求最大值时降序),SI( )
-
记录黏菌个体的最佳适应度值DF及最佳位置
-
-
包裹食物
-
更新参数a,b
1. a = arctanh(−(t/T)+1)
2. b=1−t/T -
计算每个黏菌个体的适应度权重
黏菌个体适应度权重公式如下:
bF :当前迭代最佳适应度值,wF: 当前迭代最差适应度值,r :[0,1]随机数
-
更新黏菌个体的位置(产生下一代种群)
黏菌个体位置更新公式如下:ub: 自变量上限,lb:自变量下限,vc = [-b,b]随机数,vb:[-a,a]随机数,A.B:随机选择的当前迭代中的两个个体的位置。
-
-
获取食物
-
记录最佳适应度值DF
-
迭代次数 it = it + 1;
-
-
-
end
-
输出结果
4. 适应度函数
5. 参考文献
[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.
这篇关于黏菌优化算法SMA(学习笔记_07)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22[开源]10.3K+ Star!轻量强大的开源运维平台,超赞!
- 2024-11-21Flutter基础教程:新手入门指南
- 2024-11-21Flutter跨平台教程:新手入门详解
- 2024-11-21Flutter跨平台教程:新手入门与实践指南
- 2024-11-21Flutter列表组件教程:初学者指南
- 2024-11-21Flutter列表组件教程:新手入门指南
- 2024-11-21Flutter入门教程:初学者必看指南
- 2024-11-21Flutter入门教程:从零开始的Flutter开发指南
- 2024-11-21Flutter升级教程:新手必读的升级指南
- 2024-11-21Flutter升级教程:轻松掌握Flutter版本更新