智能优化算法:蝠鲼觅食优化算法 - 附代码
智能优化算法:蝠鲼觅食优化算法
文章目录
- 智能优化算法:蝠鲼觅食优化算法
- 1.算法原理
- 1.1 链式觅食
- 1.2 螺旋觅食
- 1.3 翻滚觅食
- 2.实验结果
- 3.参考文献
- 4.Matlab代码
摘要:蝠鲼觅食优化 (Manta ray foraging optimization,
MRFO)是由 Zhao 等,在 2019 年提出的新型智能仿生群体算法。具有寻优能力强,收敛快的特点。
1.算法原理
该算法是模仿蝠鲼在海洋中的觅食过程,针对不同捕食策略进行数学建模,对蝠鲼个体位置更新的方式进行数学描述,从而实现在复杂解空间中对最优解的搜索。由于位置更新方式的独特性,MRFO 的求解精度与鲁棒性相比于传统群体智能仿生算法也有显著的提升。MRFO 可描述为 3 种觅食行为,包括链式觅食、螺旋觅食以及翻滚觅食。
1.1 链式觅食
链式捕食过程中,蝠鲼种群从头到尾排成一条捕食链。蝠鲼个体下一位置的移动方向与步长是由当前最优解与前一个体位置共同决定。该种位置更新方式数学模型如下:
xid(t+1)={xid(t)+r(xbestd(t)−xid(t))+α(xbestd−xid(t)),i=1xid(t)+r(xi−1d(t)−xid(t))+α(xbestd−xid(t)),i=2,3,...,N(1)x_i^d(t+1)=\begin{cases} x_i^d(t) + r(x_{best}^d(t)-x_i^d(t))+\alpha(x_{best}^d - x_i^d(t)),i=1\\ x_i^d(t) + r(x_{i-1}^d(t)-x_i^d(t))+\alpha(x_{best}^d - x_i^d(t)),i=2,3,...,N \end{cases}\tag{1} xid(t+1)={xid(t)+r(xbestd(t)−xid(t))+α(xbestd−xid(t)),i=1xid(t)+r(xi−1d(t)−xid(t))+α(xbestd−xid(t)),i=2,3,...,N(1)
α=2r∣log(r)∣(2)\alpha = 2r\sqrt{|log(r)|}\tag{2} α=2r∣log(r)∣(2)
式中,xid(t)x_i^d(t)xid(t)表示第 ttt 代、第 iii 个个体在 ddd 维上的位置;r表示在[0,1]上均匀分布的随机数; xbestd(t)x_{best}^d(t)xbestd(t)表示第 ttt 代最优个体在第 ddd 维上的位置;NNN表示个体数量。
1.2 螺旋觅食
当蝠鲼个体发现某猎物之后,其会采用螺旋的方式向其靠近。MRFO 中蝠鲼个体由于链式捕食方式的存在,其在向当前解螺旋移动的过程中,同样还受到前一个个体的影响。该种位置更新方式数学模型如下:
当t/T>randt/T>randt/T>rand,描述蝠鲼螺旋状运动的数学方程可以定义为:
xid(t+1)={xbestd(t)+r(xbestd(t)−xid(t))+β(xbestd−xid(t)),i=1xbestd(t)+r(xi−1d(t)−xid(t))+β(xbestd−xid(t)),i=2,3,...,N(3)x_i^d(t+1)=\begin{cases} x_{best}^d(t) + r(x_{best}^d(t)-x_i^d(t))+\beta(x_{best}^d - x_i^d(t)),i=1\\ x_{best}^d(t) + r(x_{i-1}^d(t)-x_i^d(t))+\beta(x_{best}^d - x_i^d(t)),i=2,3,...,N \end{cases} \tag{3} xid(t+1)={xbestd(t)+r(xbestd(t)−xid(t))+β(xbestd−xid(t)),i=1xbestd(t)+r(xi−1d(t)−xid(t))+β(xbestd−xid(t)),i=2,3,...,N(3)
β=2er1T−i+1Tsin(2πr1)(4)\beta = 2e^{r_1\frac{T-i+1}{T}}sin(2\pi r_1)\tag{4} β=2er1TT−i+1sin(2πr1)(4)
中,TTT 为迭代总次数;r1r_1r1 在[0,1]上均匀分布随机数。当
t/T≤randt/T\leq randt/T≤rand,描述蝠鲼螺旋状运动的数学方程可以定义为:
xid(t+1)={xrandd(t)+r(xrandd(t)−xid(t))+β(xrandd−xid(t)),i=1xrandd(t)+r(xi−1d(t)−xid(t))+β(xrandd−xid(t)),i=2,3,...,N(5)x_i^d(t+1)=\begin{cases} x_{rand}^d(t) + r(x_{rand}^d(t)-x_i^d(t))+\beta(x_{rand}^d - x_i^d(t)),i=1\\ x_{rand}^d(t) + r(x_{i-1}^d(t)-x_i^d(t))+\beta(x_{rand}^d - x_i^d(t)),i=2,3,...,N \end{cases} \tag{5} xid(t+1)={xrandd(t)+r(xrandd(t)−xid(t))+β(xrandd−xid(t)),i=1xrandd(t)+r(xi−1d(t)−xid(t))+β(xrandd−xid(t)),i=2,3,...,N(5)
xrandd=Lbd+r(Ubd−Lbd)(6)x_{rand}^d = Lb^d+r(Ub^d-Lb^d)\tag{6} xrandd=Lbd+r(Ubd−Lbd)(6)
xrandd(t)x_{rand}^d(t)xrandd(t)表示第ttt代、第ddd维的随机位置。Ubd,LbdUb^d,Lb^dUbd,Lbd表示变量取值上、下界。
1.3 翻滚觅食
在翻滚捕食中,蝠鲼个体以当前最优解作为翻滚支点,翻滚至与其当前位置成镜像关系的另一侧。其数学模型表达如下:
xid(t+1)=xid(t)+S(r2xbestd−r3xid(t)),i=1,2,...,N(7)x_i^d(t+1) = x_i^d(t)+S(r_2x_{best}^d-r_3x_i^d(t)),i=1,2,...,N \tag{7} xid(t+1)=xid(t)+S(r2xbestd−r3xid(t)),i=1,2,...,N(7)
S=2(7)S = 2\tag{7} S=2(7)
中,r2r_2r2 和r3r_3r3都是在[0,1]上均匀分布的随机数。
算法流程
step1.设定算参数,初始化种群
step2. 计算适应度值
step3.判断rand<0.5。如果成立,则执行螺旋觅食。如果不成立则执行链式觅食。
step4.计算适应度值,更新最优位置
step5.执行翻滚觅食,更新位置
step6.计算适应度值,更新最优位置
step7.判断是否满足结束条件,如果满足则输出最优值,否则重复执行step2-step7.
2.实验结果
3.参考文献
[1]李璟楠,乐美龙.多种群蝠鲼觅食优化求解多跑道机场航班排序[J].航空计算技术,2020,50(06):47-51.
[1]Zhao Weiguo,Zhang Zhenxing,Wang Liying. Manta Ray Foraging Optimization:An Effective Bio-inspired Optimizer for Engineering Applications[J]. Engineering Applications of Artificial Intelligence,2020,87:103300.
4.Matlab代码
个人资料介绍
智能优化算法:蝠鲼觅食优化算法 - 附代码相关推荐
- 【优化求解】基于蝠鲼觅食优化算法MRFO求解最优目标matlab源码
1 简介 蝠鲼觅食优化 (Manta ray foraging optimization,MRFO)是由 Zhao 等,在 2019 年提出的新型智能仿生群体算法. 2 部分代码 %_________ ...
- 基于蝠鲼觅食优化算法的无线传感器网络覆盖优化
文章目录 一.理论基础 1.节点覆盖模型 2.蝠鲼觅食优化算法(MRFO) (1)链式觅食 (2)旋风式觅食 (3)筋斗式觅食 二.仿真实验与分析 1.函数测试与数值分析 2.MRFO优化WSN覆盖 ...
- 基于粒子群算法优化的Elman神经网络数据预测-附代码
基于粒子群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于粒子群算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...
- 基于布谷鸟算法优化的Elman神经网络数据预测-附代码
基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...
- 基于鲸鱼算法优化的Elman神经网络数据预测-附代码
基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...
- 基于海鸥算法优化的Elman神经网络数据预测-附代码
基于海鸥算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于海鸥算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...
- 蝠鲼觅食优化(MRFO)-Matlab代码
注:网上有关蝠鲼觅食优化算法的原理介绍很多,但是没有付源码.即使有源码的文章,也是付费 才能得到源码.违背共享自由的学术精神.在这里我将把蝠鲼觅食优化(MRFO)算法的源码公开. 希望大家关注点赞 - ...
- 基于遗传算法优化的Elman神经网络数据预测-附代码
基于遗传算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于遗传算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...
- python 随机森林调参_Python机器学习实践:随机森林算法训练及调参-附代码
原标题:Python机器学习实践:随机森林算法训练及调参-附代码 文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 博客园 作者 | 战争热诚 ...
- 基于蜣螂优化的Elman神经网络数据预测-附代码
基于蜣螂算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于蜣螂算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...
最新文章
- RDKit | 通过Lipinski规则了解如何在RDKit中处理描述符
- LeetCode Add Two Numbers II(栈)
- 日常工作部门及体系相关单词
- ado filter 多条记录_车里能开直播 行车记录仪十大隐藏设置
- 开发者们看过来,8ms开发工具平台给大家送福利了!只要你来,肯定有你感兴趣的,3.6-3.10日,只要在8ms平台上创建项目,就有机会白嫖彩屏开发板哦
- VTK:图表之AdjacentVertexIterator
- 征战蓝桥 —— 2014年第五届 —— C/C++A组第3题——神奇算式
- 信息学奥赛C++语言:陶陶摘苹果
- ES与传统数据库的比较
- 详细设计的工具——程序流程图
- 2022-2028年中国铝合金行业市场运营格局及前景战略分析报告
- windows server 2008 R2 怎么集成USB3.0驱动
- 电源管理(2) - loongson cpufreq
- HTML的学习---为了python爬虫网页
- photoshop图层锁无法解开编辑不能新建图层很多功能灰色不能操作 原因新建时选了RGB32位。选8或16位才能新建图层
- 完美解决:ERROR: the following packages/stacks could not have their rosdep keys resolvedto system depend
- javascript 中的纯函数
- termux使用教程python-利用Termux超级终端在手机上运行Python开发环境
- Linux操作系统语言转换
- 警惕苏宁电器分期(招行信用卡)陷阱!!
热门文章
- java中的位操作系统_Java中的按位运算操作
- python判断文件后缀_python判断文件夹内是否存在指定后缀文件的实例
- 猜数字游戏python程序_【自学编程】python 小游戏—猜数字
- redis数据类型-set集合
- 谷粒商城:16.商城业务 — 首页
- Javascript:ES6模块化开发报错:Uncaught SyntaxError: Cannot use import statement outside a module
- HTML:表单学习笔记
- Guava学习笔记(四):复写的Object常用方法
- VSCode搭建vue前端开发工程的配置文件-launch.json
- C++第一次试水写cstring类