鲸鱼优化算法论文【matlab代码与仿真】

2023-11-16

一、算法流程

通过回声定位并相互传递探寻猎物信息。研究表明,鲸鱼大脑的某些区域与人类相似,有一种叫做梭形细胞的共同细胞,这些细胞负责人类的判断、情感和社会行为,这种细胞的数量是成年人的两倍,事实证明,鲸鱼可以像人类一样思考、学习、判断、交流,甚至产生情绪化。

座头鲸是最大的古鲸之一,一头成年座头鲸几乎有一辆校车那么大。他们喜欢的猎物是接近海面的磷虾和小型鱼群,在捕猎的过程中相互合作对猎物进行围捕,座头鲸的捕食行为被称为泡泡网觅食法[36],如图 2.1 所示。捕食的过程是沿着圆形或“9”形路径,吐出独特的气泡来完成,是一种独特的行为。在 2011 年之前,这一行为仅仅是基于在地表的观察进行研究,后来 Goldbogen 等人[37]利用传感器展开了深入的研究,他们捕获了 9 头座头鲸的 300 个标签衍生的泡泡网进食事件。研究人员发现两种与气泡有关的动作,将其命名为“上升螺旋”和“双环”。

算法原理

算法流程

WOA算法步骤如下:

Step1.初始化鲸鱼的种群位置X,和参数a ,A,l , p ,t和最大迭代次数Tmax iStep2.计算群体中每个鲸鱼个体的适应度值,记录当前最优解;

Step3.当p<0.5且|4<1时,按照更新位置,否则随机搜索猎物,按照式更新鲸鱼位置;如果p≥0.5,采用气泡网捕食机制,鲸鱼按照式(2.4)更新鲸鱼位置;

Step4.更新全局最优位置,全局最优解;

Step5.判断是否满足算法终止条件,如果是,算法结束;否则转到Step2继续进行位置寻优;

Step6.输出最优位置Xz,和适应度值。

二、代码与仿真

function [sx, sy] = sampleFunction(x, coeff, density)

[~,n] = size(x);
n=n-1;

[~,m] = size(coeff);

sx = [];
sy = [];

for i = 1:n
    for j = 0:density
        cur_x = x(i)+(x(i+1)-x(i))/density*j;
        cur_y = 0;
        for k = 1:m
            cur_y = cur_y*cur_x+coeff(i,m-k+1);
        end
        sx = [sx cur_x];
        sy = [sy cur_y];
    end
end

end

n = 10;
fprintf("n = %d\n", n);
x = (0:n)*2/n-1;
y = f(x);

hold on;

sx = (0:100)*2/100-1;
sy = f(sx);
plot(sx, sy);

coeff_lagrange = myLagrangeInterp(x, y);
% disp(coeff_lagrange);
[sx, sy] = sampleFunction([-1, 1], coeff_lagrange, 100);
plot(sx, sy);
fprintf("Lagrange error: %f\n", compute_error(sx,sy))

coeff_linear = myLinearInterp(x, y);
% disp(coeff_linear);
[sx, sy] = sampleFunction(x, coeff_linear, 10);
plot(sx, sy);
fprintf("Linear error: %f\n", compute_error(sx,sy))

coeff_spline = mySplineInterp(x, y);
% disp(coeff_spline);
[sx, sy] = sampleFunction(x, coeff_spline, 10);
plot(sx, sy);
fprintf("Spline error: %f\n", compute_error(sx,sy))

xlabel('x');
ylabel('y');
lgd = legend('f(x)', 'L_{n}(x)', 'I_h(x)', 'S_3(x)');
lgd.Location = 'southeast';

function y=f(x)
    y = 1./(1+25*x.^2);
end

function d = compute_error(sx, sy)
y = f(sx);
d = max(y-sy);
end
 

仿真结果

结果

算法结果

最优线路

博主简介:本人擅长数据处理、建模仿真、程序设计、论文写作与指导,项目与课题经验交流。个人博客:kelaboshi.com。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

鲸鱼优化算法论文【matlab代码与仿真】 的相关文章

  • canvas画布组件

    代码编写 在画布上添加各种几何图形 from tkinter import root Tk 设置主窗口区的背景顔色以区别画布区的顔色 root config bg 8DB6cD root title 基于tk的canvas几何图形 root
  • 附录2 高斯分布与马氏距离

    给定随机变量 xi i 1 N x i i 1

随机推荐

  • 深度学习优化器

    1 什么是优化器 优化器用来寻找模型的最优解 2 常见优化器 2 1 批量梯度下降法BGD Batch Gradient Descent 2 1 1 BGD表示 BGD 采用整个训练集的数据来计算 cost function 对参数的梯度
  • Vue技术 Object.defineProperty

    Object defineProperty 是JavaScript中的一个内置方法 用于定义或修改对象的属性 它接受三个参数 对象 属性名 以及一个属性描述符对象 属性描述符对象有两种形式 数据描述符和访问描述符 数据描述符用于定义普通属性
  • 【蓝桥杯】Java组必备API类 --快速读写实现方法 及输入输出的巧妙处理

    输入和输出 输入 Scanner s new Scanner System in 声明一个从控制台中读入数据的对象 int x s nextInt double x s nextDouble String x s next 无法读入空格 S
  • 统计和——前缀和

    题目大概 给定一个长度为n的整数数组和一个整数k 你需要找到该数组中和为k的连续子数组的个数 测试样例 输入 5 3 1 1 2 1 1 输出 2 思路1 利用for循环暴力枚举子数组 并且求和 计数 时间复杂度为O n 3 如果数据大于了
  • 毕设系列 - stm32机器视觉的口罩佩戴检测系统 - 单片机 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 设计原理 5 部分核心代码 6 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉
  • 桶排序 (详细图解)

    一 桶排序 桶排序 Bucket sort 或所谓的箱排序 是一个排序算法 工作的原理是将数组分到有限数量的桶里 每个桶再个别排序 有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序 最后依次把各个桶中的记录列出来记得到有序序列
  • 攻防世界web之ics-06

    打开网址 四处点击 点到报表中心 跳转新页面 查看源码也没有什么特别的 发现URL栏有 id 1 以为是sql注入 但是并不是 查看大佬的wp 发现这题采用brupsuite爆破 先将抓到的包放到Intruder 然后将id设为变量 然后把
  • WEB自动化测试面试题及答案大全

    1 Selenium是否支持桌面应用软件的自动化测试 Selenium不支持桌面软件的自动化测试 Selenium是根据网页元素的属性才定位元素 而其他桌面软件自动化测试工具是根据桌面元素的位置来定位元素 当然现在也有根据桌面元素的属性来定
  • type_traits

    概述 type traits提供了丰富的编译期间计算 查询 判断 转换和选择的帮助类 其被定义在 include
  • React-50:setState

    对象形式 也是最经常用到的 import React Component from react export default class Demo extends Component state count 0 add gt 对象式的set
  • 计算机网络学习笔记四、http和https

    http和https 从本篇文章开始总结http协议相关的知识点 http协议相关的内容可以分为四个部分 HTTP报文 HTTP请求 HTTP发展历史 HTTPS 1 HTTP报文 HTTP全称Hyper Text Transfer Pro
  • 数据库连接出错?

    数据库连接为什么会出错呢 NO suitable driver found for jdbc 问题源有3 1 连接的url的格式有错 Connection conn DriverManager getConnection jdbc sqls
  • 30个 JS 实用技巧总结,助你提升工作效率

    英文 https javascript plainenglish io 35 javascript short hands coding methodologies 28ea2d7d0a5e 翻译 杨小二 我是Rakshit Shah 我在
  • 【Java】JDK 1.8新特性

    Lambda 表达式 在没有 Lambda 表达式的时候 在 Java 中只能使用匿名内部类代替 Lambda 表达式 以下面的代码为例 查看 Lambda 表达式的使用 匿名内部类方式排序 List
  • c语言输入输出函数printf与scanf的用法格式

    c语言输入输出函数printf与scanf的用法格式 格式化规则例如 5 4f等类似问题的说明 Turbo C2 0 标准库提供了两个控制台格式化输入 输出函数printf 和scanf 这两个函数可以在标准输入输出设备上以各种不同的格式读
  • SAP LSMW日志信息如何导出到Excel里?

    SAP LSMW日志信息如何导出到Excel里 在SAP系统中 数据迁移LSMW运行的日志 是可以下载到本地Excel文件里的 方式如下所示 双击某个会话 点击打印机图标 就可以导出到Excel文件里了 输入文件名 指定文件保存的目录 完
  • 送书

    今天是周三 又到了给大家送书的时刻啦 这次给大家带来的是 OpenCV图像处理入门与实践 文末查看送书规则 简介 OpenCV 是一个开源的计算机视觉库 可以实现计算机视觉算法 本书从 OpenCV 用 Python 实现的基础语法讲起 逐
  • C51定时器和计数器 timer and counter

    代码 include
  • Seven Different Linux/BSD Firewalls Reviewed

    Seven Different Linux BSD Firewalls Reviewed Firewall November 14th 2007 Did you know more than 500 million computers in
  • 鲸鱼优化算法论文【matlab代码与仿真】

    一 算法流程 通过回声定位并相互传递探寻猎物信息 研究表明 鲸鱼大脑的某些区域与人类相似 有一种叫做梭形细胞的共同细胞 这些细胞负责人类的判断 情感和社会行为 这种细胞的数量是成年人的两倍 事实证明 鲸鱼可以像人类一样思考 学习 判断 交流