【智能算法】囊状虫群算法(TSA)原理及实现

在这里插入图片描述

目录

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


1.背景

2020年,S Kaur等人受到囊状虫群自然行为启发,提出了囊状虫群算法(Tunicate Swarm Algorithm, TSA)。

在这里插入图片描述
在这里插入图片描述

2.算法原理

2.1算法思想

TSA模拟了囊状虫群在导航和觅食过程中的喷射推进和群体行为,群体行为会更新其他搜索代理关于最优解的位置。

在这里插入图片描述

2.2算法过程

冲突避免

为了避免个体之间的冲突,A 表示计算新的个体位置:
A ⃗ = G ⃗ M ⃗ G ⃗ = c 2 + c 3 − F ⃗ F ⃗ = 2 ⋅ c 1 (1) \begin{aligned}&\vec{A}=\frac{\vec{G}}{\vec{M}}\\&\vec{G}=c_{2}+c_{3}-\vec{F}\\&\vec{F}=2\cdot c_{1}\end{aligned}\tag{1} A =M G G =c2+c3F F =2c1(1)

其中,G代表重力,F代表洋流驱动力,M代表个体间相互作用力:
M ⃗ = [ P m i n + c 1 ⋅ P m a x − P m i n ] (2) \vec{M}=\begin{bmatrix}P_{min}+c_1\cdot P_{max}-P_{min}\end{bmatrix}\tag{2} M =[Pmin+c1PmaxPmin](2)

向最优领域个体移动

P D ⃗ = ∣ F S ⃗ − r a n d ⋅ P p ( x ) ⃗ ∣ (3) \vec{PD}=\mid\vec{FS}-r_{and}\cdot\vec{P_{p}(x)}\mid \tag{3} PD =∣FS randPp(x) (3)
其中,FS代表食物位置(最优适应度)。

位置收敛

囊状虫群个体向最优个体收敛:
P p ( x ) ⃗ = { F S ⃗ + A ⃗ ⋅ P D ⃗ , if r a n d ≥ 0.5 F S ⃗ − A ⃗ ⋅ P D ⃗ , if r a n d < 0.5 (4) \vec{P_p(x)}=\begin{cases} \vec{FS}+\vec{A}\cdot\vec{PD},&\text{if}r_{and}\geq0.5\\ \vec{FS}-\vec{A}\cdot\vec{PD},&\text{if}r_{and}<0.5\end{cases}\tag{4} Pp(x) ={FS +A PD ,FS A PD ,ifrand0.5ifrand<0.5(4)

种群行为

模拟囊状虫群体行为,保存前两个最优解,并根据最优个体位置更新其他搜索个体的位置:
P p ( x + 1 ⃗ ) = P p ( x ) ⃗ + P p ( x + 1 ⃗ ) 2 + c 1 (5) P_{p}(\vec{x+1})=\frac{\vec{P_{p}(x)}+P_{p}(\vec{x+1})}{2+c_{1}}\tag{5} Pp(x+1 )=2+c1Pp(x) +Pp(x+1 )(5)
在这里插入图片描述

伪代码

在这里插入图片描述

3.结果展示

使用测试框架,测试TSA性能 一键run.m

  • 【智能算法】省时方便,智能算法统计指标——一键运行~

CEC2017-F14

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Kaur S, Awasthi L K, Sangal A L, et al. Tunicate Swarm Algorithm: A new bio-inspired based metaheuristic paradigm for global optimization[J]. Engineering Applications of Artificial Intelligence, 2020, 90: 103541.

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

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

相关文章

VTK----VTK数据结构详解3(代码篇)

上篇文章&#xff08;VTK----VTK数据结构详解&#xff08;计算机篇&#xff09;-CSDN博客&#xff09;从计算机数据结构&#xff08;数组、链表等&#xff09;的角度对数据数组、数据对象、数据属性的实现原理进行了说明&#xff0c;下面从代码的层面详细说明它们的使用及相关实…

nginx 交叉编译,启动报错nginx: [emerg] getgrnam(“nogroup“) failed 的原因和解决办法

目录 一、错误提示 nginx: [emerg] getgrnam("nogroup") failed二、解决办法三、测试 一、错误提示 nginx: [emerg] getgrnam(“nogroup”) failed nginx 交叉编译&#xff0c;在开发板上启动报错 nginx: [emerg] getgrnam("nogroup") failed二、解决办法…

TiDB系列之:TiCDC使用Changefeed完成数据同步任务

TiDB系列之:TiCDC使用Changefeed完成数据同步任务 一、Changefeed二、Changefeed 状态流转三、操作Changefeed四、cdc cli管理同步任务1.创建同步任务2.查询同步任务列表3.查询特定同步任务4.停止同步任务5.恢复同步任务6.删除同步任务7.更新同步任务配置8.管理同步子任务处理…

“npm error code ELSPROBLEMS“问题解决

在使用vite创建vue项目后&#xff0c;进入项目目录执行&#xff1a; npm ls出现如下报错&#xff1a; npm error code ELSPROBLEMS npm error missing: vitejs/plugin-vue^5.0.4, required by cmds0.0.0 npm error missing: vite^5.2.0, required by cmds0.0.0 npm error mis…

笔记本硬盘坏了怎么把数据弄出来 笔记本硬盘数据恢复一般需要多少钱

现在办公基本都离不开笔记本电脑&#xff0c;就连学生写作业也大多是都在电脑上完成。硬盘作为电脑存储的重要组成部分&#xff0c;承载着存储文件和各类软件的重任。如果硬盘出现故障&#xff0c;基本上这台电脑就无法正常工作&#xff0c;同时我们可能面临丢失很多重要的数据…

npm镜像切换

npm镜像切换 1, 修改 下载仓库为淘宝镜像 npm config set registry http://registry.npm.taobao.org/ 2, 如果要发布自己的镜像需要修改回来 npm config set registry https://registry.npmjs.org/ 3, 安装cnpm npm install -g cnpm --registryhttps://registry.npm.taob…

Go的json序列化与反序列化(Marshal与Unmarshal)

参考博客&#xff1a;Go的json序列化&#xff1a;Marshal与Unmarshal-CSDN博客

电气设备绝缘的高电压试验(二)——高电压的测量

本篇为本科课程《高电压工程基础》的笔记。 本篇为这一单元的第二篇笔记。上一篇传送门。 稳态高电压的测量 稳态高电压主要指的是工频交流高压和直流高压。高压测量系统常常含有转换装置、转换装置到试验品之间的引线、接地连线、低压测量回路和测量仪表等。 实验室测量方…

【python】语言学习笔记--用来记录总结

请问以下变量哪些是tuple类型&#xff1a; a ()b (1)c [2]d (3,)e (4,5,6)answer在Python中&#xff0c;元组&#xff08;tuple&#xff09;是由逗号分隔的一组值组成的有序序列&#xff0c;通常用圆括号括起来。让我们逐个检查变量&#xff0c;看哪些是元组类型&#xff…

【UE5.1 C++】提升编译速度

步骤 1. 在“C:\Users\用户\AppData\Roaming\Unreal Engine\UnrealBuildTool”目录下找到“BuildConfiguration.xml”文件 打开“BuildConfiguration.xml”&#xff0c;添加如下部分内容 <?xml version"1.0" encoding"utf-8" ?> <Configuratio…

7-41 图的删边操作

请编写程序对给定的有向图删除若干条边。有向图中包含n个顶点,编号为0至n-1。 输入格式: 输入第一行为两个正整数n和e,分别表示图的顶点数和边数,其中n不超过20000,e不超过1000。接下来e行表示每条边的信息,每行为3个非负整数a、b、c,其中a和b表示该边的端点编号,c表示…

JavaSE字节缓冲流

欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 请回答1024的博客 关于博主&#xff1a; 我是 请回答1024&#xff0c;一个追求数学与计算的边界、时间与空间的平衡&#xff0c;0与1的延伸的后端开发者。 博客特色&#xff1a; 在我的博客中&a…

探索 VisionOS:从 Model3D 开始

终于从 VisionOS 的窗口 SwiftUI 应用程序转向尝试使用 RealityKit。这篇文章记录了学习它的基础知识Model3D和如何使用它的旅程。 寻找模型 最初对创建 3D Pokdex 概念验证感到很兴奋,但在检查了 Sketchfab 和 TurboSquid 等网站后找不到符合需求的皮卡丘模型时,遇到了障碍…

面试的时间地点(南京坦道)工程化问题比较少,通用性问题表较多

1.前端的选型 2.前端的$nicktick&#xff08;&#xff09; 3.前端的媒体查询 4.前端的 VUE 高级用法 我的回答{ web端视图层的渲染原理 } 5.前端的数组&#xff0c;异步处理 我的回答{ 回了&#xff0c;最笨的方法。 es6的set&#xff08;&#xff09;&#xff1b; 参数是&…

中移在线ChinaMobile系统单机和分布式应用的登录校验解决方案

单机的Tomcat应用登录校验&#xff1a; 用户首次登录成功后&#xff0c;服务端会创建一个Session会话&#xff0c;客户端会生成一个sessionid&#xff0c;客户端会把sessionid保存到cookie里&#xff0c;每次请求都携带这个sessionid&#xff0c;服务端通过校验来判断是拦截还是…

Vuforia AR篇(四)— AR虚拟按钮

目录 前言一、创建虚拟按钮二、创建脚本三、效果 前言 在当今互联网和移动设备普及的背景下&#xff0c;**增强现实&#xff08;AR&#xff09;**技术正迅速成为连接现实世界与数字信息的重要桥梁。AR虚拟按钮作为这一技术的创新应用&#xff0c;不仅提供了一种全新的用户交互…

mac上安装Tomcat

1. 简介 Tomcat 是一个开源的 Java 服务器&#xff0c;它实现了 Java Servlet、JavaServer Pages&#xff08;JSP&#xff09;和Java WebSocket 技术。Tomcat 是 Apache 软件基金会的一个项目&#xff0c;是一个轻量级、高性能的 Web 容器。作为一个 Web 服务器&#xff0c;To…

go设计模式之抽象工厂模式

抽象工厂模式 提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们具体的类。 工厂方法模式通过引入工厂等级结构&#xff0c;解决了简单工厂模式中工厂类职责太重的问题&#xff0c;但由于工厂方法模式中的每个工厂只生产一类产品&#xff0c;可能会导致…

Angular创建项目

Angular创建项目 文章目录 Angular创建项目1. 创建项目1.1 直接安装1.2 跳过npm i安装 2. 运行程序 1. 创建项目 ng new 项目名称 1.1 直接安装 ng new angulardemo --同时会安装依赖包&#xff0c;执行的命令就是npm i 1.2 跳过npm i安装 ng new angulardemo --skip-inst…

Pytorch 的实际应用 学习笔记

一. 模型的下载 weights为false时则为没有提前经过训练的模型&#xff0c;为true时则经过了提前训练 vgg16_false torchvision.models.vgg16(weightsFalse) vgg16_true torchvision.models.vgg16(weightsTrue) 打印 二. 模型的修改 &#xff08;1&#xff09;添加操作 …