【智能算法】金枪鱼群优化算法(TSO)原理及实现

在这里插入图片描述

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.代码展示
    • 4.参考文献


1.背景

2021年,Xie等人受到自然界中金枪鱼狩猎行为启发,提出了金枪鱼优化算法(Tuna swarm optimization,TSO)。

2.算法原理

2.1算法思想

TSO模拟了金枪鱼觅食行为,主要分为螺旋式觅食和抛物线觅食两种方式。

2.2算法过程

螺旋式觅食

当目标难以锁定时,金枪鱼就会以密集的螺旋式阵型进行追捕。在追捕猎物的同时,金枪鱼群之间还会交换信息,实现相邻个体之间的信息共享。位置更新:
X i t + 1 = { c 1 ( X b e s t t + β ∣ X b e s t t − X i t ∣ ) + c 2 X i t , i = 1 c 1 ( X b e s t t + β ∣ X b e s t t − X i t ∣ ) + c 2 X i − 1 t , i = 2 , 3 , ⋯ , N (1) X_i^{t+1}=\begin{cases}\quad c_1\left(X_\mathrm{best}^t+\beta\left|X_\mathrm{best}^t-X_i^t\right|\right)+c_2X_i^t,\quad i=1\\c_1\left(X_\mathrm{best}^t+\beta\left|X_\mathrm{best}^t-X_i^t\right|\right)+c_2X_{i-1}^t,\quad i=2,3,\cdots,N\end{cases}\tag{1} Xit+1={c1(Xbestt+βXbesttXit)+c2Xit,i=1c1(Xbestt+βXbesttXit)+c2Xi1t,i=2,3,,N(1)
c1,c2为权重系数,表述为:
c 1 = a + ( 1 − a ) t t m a x c 2 = ( 1 − a ) − ( 1 − a ) t t m a x β = e b l cos ⁡ ( 2 π b ) l = e 3 cos ⁡ ( ( ( t max ⁡ + 1 / t ) − 1 ) π ) (2) c_{1}=a+(1-a)\frac{t}{t_{\mathrm{max}}}\\ c_{2}=(1-a)-(1-a)\frac{t}{t_{\mathrm{max}}}\\ \beta=\mathrm{e}^{bl}\cos(2\pi b)\\ l=\mathrm{e}^{3\cos(((t_{\max}+1/t)-1)\pi)}\tag{2} c1=a+(1a)tmaxtc2=(1a)(1a)tmaxtβ=eblcos(2πb)l=e3cos(((tmax+1/t)1)π)(2)

当最优个体无法找到食物时,在搜索空间中随机生成一个坐标:
X i t + 1 = { c 1 ( X r a n d t + β ∣ X r a n d t − X i t ∣ ) + c 2 X i t , i = 1 c 1 ( X r a n d t + β ∣ X r a n d t − X i t ∣ ) + c 2 X i − 1 t , i = 2 , 3 , ⋯ , N (3) X_i^{t+1}=\begin{cases}c_1\left(X_{\mathrm{rand}}^t+\beta\left|X_{\mathrm{rand}}^t-X_i^t\right|\right)+c_2X_i^t,i=1\\c_1\left(X_{\mathrm{rand}}^t+\beta\left|X_{\mathrm{rand}}^t-X_i^t\right|\right)+c_2X_{i-1}^t,i=2,3,\cdots,N\end{cases}\tag{3} Xit+1={c1(Xrandt+βXrandtXit)+c2Xit,i=1c1(Xrandt+βXrandtXit)+c2Xi1t,i=2,3,,N(3)

抛物线型觅食:

金枪鱼两种觅食方法交替使用,以提高金枪鱼捕获食物的概率假,设这两种方法随机选择概率为50%:
X i t + 1 = { X b e s t t + r a n d ( X b e s t t − X i t ) + T F ⋅ p 2 ( X b e s t t − X i t ) , i f r a n d < 0.5 T F ⋅ p 2 X i t , i f r a n d ⩾ 0.5 , (4) X_i^{t+1}=\begin{cases}X_\mathrm{best}^t+rand\left(X_\mathrm{best}^t-X_i^t\right)+TF\cdot p^2\left(X_\mathrm{best}^t-X_i^t\right),\quad ifrand<0.5\\TF\cdot p^2X_i^t,\quad if rand\geqslant0.5\end{cases},\tag{4} Xit+1={Xbestt+rand(XbesttXit)+TFp2(XbesttXit),ifrand<0.5TFp2Xit,ifrand0.5,(4)
参数p表述为:
p = ( 1 − t t max ⁡ ) ( t / t max ⁡ ) (5) p=(1-\frac{t}{t_{\max}})^{(t/t_{\max})}\tag{5} p=(1tmaxt)(t/tmax)(5)

流程图

在这里插入图片描述

伪代码
在这里插入图片描述

3.代码展示

在这里插入图片描述

4.参考文献

[1] Xie L, Han T, Zhou H, et al. Tuna swarm optimization: a novel swarm-based metaheuristic algorithm for global optimization[J]. Computational intelligence and Neuroscience, 2021, 2021: 1-22.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/589839.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

选数异或(DP)

题目描述 给定一个长度为 n 的数列 A1, A2, , An 和一个非负整数 x&#xff0c;给定 m 次查询, 每次询问能否从某个区间 [l,r] 中选择两个数使得他们的异或等于 x 。 输入格式 输入的第一行包含三个整数 n, m, x 。 第二行包含 n 个整数 A1, A2, , An 。 接下来 m 行…

【Java基础】Java基础知识整合

文章目录 1. 转义字符2. 变量2.1 字符串与整型相加2.2 byte和short的区别2.3 float和double的区别2.4 char类型2.5 boolean类型2.6 自动类型转换及运算2.7 强制类型转换2.8 String的转换2.9 除法运算2.10 取模规则 3. 自增4. 逻辑运算符5. 赋值运算 6. 三元运算符&#xff1a;7…

FreeRTOS中断管理以及实验

FreeRTOS中断管理以及实验 继续记录学习FreeRTOS的博客&#xff0c;参照正点原子FreeRTOS的视频。 ARM Cortex-M 使用了 8 位宽的寄存器来配置中断的优先等级&#xff0c;这个寄存器就是中断优先级配置寄存器 &#xff0c; STM32寄存器中并且这个寄存器只使用[7:4]&#xff0c…

HCIP实验--5

实验要求&#xff1a; 实现过程&#xff1a; &#xff08;一&#xff09;配置IP地址&#xff1a; AR1: [AR1]int g0/0/0 [AR1-GigabitEthernet0/0/0]ip add 200.1.1.1 24 Apr 3 2024 19:25:38-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interf…

实体机双系统安装

实体机双系统安装 第一步&#xff1a;下载openKylin镜像 前往官网下载x86_64的镜像&#xff08;https://www.openkylin.top/downloads/628-cn.html&#xff09; tips&#xff1a;下载完镜像文件后&#xff0c;请先检查文件MD5值是否和官网上的一致&#xff0c;如果不一致请重…

WebKit简介

1、简介&#xff08;WebKit&#xff09; WebKit 是一个开源的浏览器引擎&#xff0c;最初由苹果公司基于KHTML&#xff08;K Desktop Environment的HTML渲染引擎&#xff09;开发&#xff0c;并广泛应用于Safari浏览器&#xff0c;后来也被其他多款浏览器和应用采用。WebKit负…

算法练习—day1

title: 算法练习—day1 date: 2024-04-03 21:49:55 tags: 算法 categories:LeetCode typora-root-url: 算法练习—day1 网址&#xff1a;https://red568.github.io 704. 二分查找 题目&#xff1a; 题目分析&#xff1a; 左右指针分别为[left,right]&#xff0c;每次都取中…

由平行公设的不同而来三种几何学浅谈

由平行公设的不同而来三种几何学浅谈 欧几里德的《几何原本》 欧几里德的《几何原本》一开始就给出了23个定义&#xff0c;5个公设&#xff0c;5个公理。 23个定义(部分)&#xff1a; 点是没有部分的东西。 线是没有宽度的长度。 线的端点是点。 直线是各点都在同一方向上…

vue快速入门(三)差值表达式

注释很详细&#xff0c;直接上代码 上一篇 新增内容 插值表达式基本用法插值表达式常用公式 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wid…

知识产权与标准化

根据希赛相关视频课程汇总整理而成&#xff0c;是个人软考的复习笔记&#xff0c;仅供参考 知识产权概述 知识产权类型&#xff1a; ①著作权&#xff08;版权、文学产权&#xff09; ② 工业产权&#xff08;产业产权&#xff09; 知识产权的特点&#xff1a; 无形性、独占性…

Android Studio 打开Local Changes界面

在编写代码的过程中&#xff0c;经常要回顾本地仓库做了那些修改。打开Local Changes界面&#xff0c;能做到一目了然&#xff0c;不用再去使用git命令查看。 File->Settings->Version control->Commit 把Use non-modal commit interface 选项 取消勾选 即可

复现带积分柱状图+多个分类注释

Original research: Tumor microenvironment evaluation promotes precise checkpoint immunotherapy of advanced gastric cancer - PMC (nih.gov) 补充文件位置:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8356190/bin/jitc-2021-002467supp001.xlsx 原图 该图展示了样…

新手使用GIT上传本地项目到Github(个人笔记)

亲测下面的文章很有用处。 1. 初次使用git上传代码到github远程仓库 - 知乎 (zhihu.com) 2. 使用Git时出现refusing to merge unrelated histories的解决办法 - 知乎

台湾花莲地震已致4死97伤,地震时刻,你需要知道的一切

近日&#xff0c;台湾花莲县海域发生了一次强震&#xff0c;引发了广泛关注。据中国地震台网测定&#xff0c;这次地震的震级高达7.3级&#xff0c;震源深度为12公里&#xff0c;造成了台湾全岛范围内的震感&#xff0c;以及福建、广东等地的明显震感。在这样的紧急情况下&…

终端测试cuda.is_available是true,但是在运行代码时返回的却是false该如何解决?

在运行一个程序的时候出现了这样一个报错、 RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_locationtorch.device(cpu) to map your…

vue3+elementPlus:实现数字滚动效果(用于大屏可视化)

自行封装注册一个公共组件 案例一&#xff1a; //成功案例&#xff1a; //NumberScroll.vue /* 数字滚动特效组件 NumberScroll */<template><span class"number-scroll-grow"><spanref"numberScroll":data-time"time"class&qu…

【C++入门】初识C++

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

【QT入门】 自定义标题栏界面qss美化+按钮功能实现

往期回顾&#xff1a; 【QT入门】 鼠标按下和移动事件实现无边框窗口拖动-CSDN博客【QT入门】 设计实现无边框窗口拉伸的公用类-CSDN博客【QT入门】对无边框窗口自定义标题栏并实现拖动和拉伸效果-CSDN博客 【QT入门】 自定义标题栏界面qss美化按钮功能实现 一、最终效果 二、…

硬件工程师职责与核心技能有哪些?

作为一个优秀的硬件工程师&#xff0c;必须要具备优秀的职业技能。那么&#xff0c;有些刚入行的工程师及在校的学生经常会问到&#xff1a;硬件工程师需要哪些核心技能&#xff1f;要回答这个问题&#xff0c;首先要明白硬件工程师的职责&#xff0c;然后才能知道核心技能要求…

java回溯算法笔记

回溯算法综述 回溯用于解决你层for循环嵌套问题&#xff0c;且不剪枝的回溯完全等于暴力搜索。 回溯算法模板https://blog.csdn.net/m0_73065928/article/details/137062099?spm1001.2014.3001.5501 组合问题&#xff08;startindex避免使用重复元素&#xff09; “不含重复…