基于自适应t分布的麻雀搜索算法-附代码
基于自适应t分布的麻雀搜索算法
1.自适应t分布策略
t分布又称学生分布,含有参数自由度n,它的曲线形态与自由度n的大小有关,n的值越小,其曲线越平坦,曲线中间越低,曲线双侧尾部翘得越高。高斯分布,柯西分布与t分布的对比图如下:
对麻雀位置利用自适应t分布进行更新如下式所示:
x
i
t
=
x
i
+
x
i
∗
t
(
i
t
e
r
)
(1)
x_i^t = x_i + x_i*t(iter)\tag{1}
xit=xi+xi∗t(iter)(1)
式中,
x
i
t
x_i^t
xit为变异后的麻雀位置;
x
i
x_i
xi为第i个麻雀个体的位置;
t
(
i
t
e
r
)
t(iter)
t(iter)为以算法的迭代次数为参数自由度的t分布。该式充分利用了当前种群信息,以迭代次数t作为自由度参数,前期t较小类似柯西变异具有较强的全局搜索能力,后期t较大类似高斯变异具有较强的局部搜索能力。从而提高算法的搜索能力。
2.基于自适应t分布策略的麻雀搜索算法
基础麻雀算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108830958
该改进主要是麻雀更新后,利用自适应t分布对麻雀位置更新,麻雀的选择采用随机选择的方式,对比更新前后麻雀,如果更优则替代之前的麻雀。
算法流程
Step1: 初始化种群,迭代次数,初始化捕食者和加入者比列。
Step2:计算适应度值,并排序。
Step3:麻雀更新捕食者位置。
Step4:麻雀更新加入者位置。
Step5:麻雀更新警戒者位置。
Step6:计算适应度值并更新麻雀位置。
Step7: 如果rand<p,则根据式(1)进行自适应t分布变异。
Step8:计算适应度值并更新麻雀位置。
Step9:是否满足停止条件,满足则退出,输出结果,否则,重复执行Step2-8;
3.算法结果:
4.Matlab
5.Python
相关文章
- Java项目毕业设计:基于springboot+vue的电影视频网站系统「建议收藏」
- JeecgBoot 3.3.0 版本发布,基于代码生成器的企业级低代码平台
- 基于Appium实现UI遍历工具(六)代码实现篇(下)
- R语言中基于混合数据抽样(MIDAS)回归的HAR-RV模型预测GDP增长|附代码数据
- Python基于粒子群优化的投资组合优化研究|附代码数据
- C#-VsCode如何运行C#代码
- 一个用基于Java语言编写的词法分析器代码的自动生成程序,模仿lex程序的需求应用设计 DokymeLex
- 代码墙
- 简单而高效:Linux 代码阅读工具介绍(linux代码阅读工具)
- Oracle过程异常机制:构建安全可靠的代码(oracle过程异常处理)
- 黑客可通过行李标签代码轻松“解锁”旅客的航班和身份信息
- 基于Redis的计数器实现代码讲解(redis计数器代码)
- 从网上搜到的phpwind0day的代码
- 在ASP.NET中重写URL的代码
- Python文件操作技巧(Fileoperation)实例代码分析
- struts2+spring+hibernate分页代码[比较多]
- 合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
- javascript基于正则表达式的文本框验证代码
- Js小数验证函数代码(基于正则)
- asp.net中使用repeater和PageDataSource搭配实现分页代码
- asp.net图标提取以及图标转换的实例代码
- PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
- 网站基于flash实现的Banner图切换效果代码
- 基于C#实现的端口扫描器实例代码