【智能算法】囊状虫群算法(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.hqwc.cn/news/652027.html

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

相关文章

SpringBoot中多数据源灵活切换解决方案

本篇内容介绍了“SpringBoot中如何使用Dynamic Datasource配置多数据源”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 源码地址/文档说明 功能特性: 支持 数据源分组…

拌合楼管理系统(十六)c#如何实现点击同时启动两个窗体,并且窗体全部关闭后才退出程序

前言&#xff1a; 好长时间没有再写博文了&#xff0c;最近项目有个需求&#xff0c;无人值守程序需要一个client端&#xff0c;主要实现两个功能&#xff0c;一个是显示安装的四个监控的画面&#xff0c;一个是显示地磅称重数量和车牌列表等一些信息。今天主要解决如何显示两个…

架构师系统-Docker(五)-镜像仓库

镜像仓库管理 docker仓库&#xff0c;用来管理镜像 主要分为公共仓库和私人仓库&#xff0c;下面介绍了公共仓库Docker Hub、私人仓库Registry和harbor DockerHUb仓库管理 什么是DockerHUb 保存和分发镜像的最直接方法就是使用 Docker Hub Docker Hub 是 Docker 公司维护的公…

Unreal Engine创建Plugin

打开UE工程&#xff0c;点击编辑&#xff0c;选择插件 点击“新插件”按钮&#xff0c;选择“空白选项”填入插件名字"MultiPlayerPlugin"&#xff0c;填入插件作者、描述&#xff0c;点击“创建插件”按钮打开C工程&#xff0c;即可看到插件目录&#xff0c;编译C工…

ShardingSphere 5.x 系列【25】 数据分片原理之 SQL 解析

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列ShardingSphere 版本 5.4.0 源码地址:https://gitee.com/pearl-organization/study-sharding-sphere-demo 文章目录 1. 分片执行流程1.1 Simple Push Down1.2 SQL Federation2. SQL 解析2.1 解析…

【003_音频开发_基础篇_Linux进程通信(20种你了解几种?)】

003_音频开发_基础篇_Linux进程通信&#xff08;20种你了解几种&#xff1f;) 文章目录 003_音频开发_基础篇_Linux进程通信&#xff08;20种你了解几种&#xff1f;)创作背景Linux 进程通信类型fork() 函数fork() 输出 2 次fork() 输出 8 次fork() 返回值fork() 创建子进程 方…

RDD编程初级实践

参考链接 spark入门实战系列--8MLlib spark 实战_mob6454cc68310b的技术博客_51CTO博客https://blog.51cto.com/u_16099212/7454034 Spark和Hadoop的安装-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/138021948?spm1001.2014.3001.5501 1. spark-shell…

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

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

C#基础之冒泡排序

排序初探 文章目录 冒泡排序1、概念2、冒泡排序的基本原理3、代码实现思考1 随机数冒泡排序思考2 函数实现排序 冒泡排序 1、概念 将一组无序的记录序列调整为有序的记录序列&#xff08;升、降序&#xff09; 2、冒泡排序的基本原理 两两相邻&#xff0c;不停比较&#x…

海外仓精细化管理方法:ABC库存分析,大幅提升仓库有效利用率

ABC分析是海外仓管理的一种比较有效的方法&#xff0c;主要是帮助评估库存产品对仓库的价值量大小。这是一种根据需求、成本和风险数据等因素综合进行的评估&#xff0c;通过评估&#xff0c;仓管员可以更有效的组织和安排仓库产品&#xff0c;提升仓库的有效利用率&#xff0c…

微信小程序:11.本地生活小程序制作

开发工具&#xff1a; 微信开发者工具apifox进行创先Mock 项目初始化 新建小程序项目输入ID选择不使用云开发&#xff0c;js传统模版在project.private.config中setting配置项中配置checkinalidKey&#xff1a;false 梳理项目结构 因为该项目有三个tabbar所以我们要创建三…

交换排序-冒泡排序 快速排序

目录 3.1 冒泡排序 3.2 快速排序 Hoare版本快速排序 挖坑法快速排序 前后指针法快速排序 快速排序优化-三数取中法 快速排序非递归 3.1 冒泡排序 思想&#xff1a;升序情况下&#xff1a;左边大于右边就进行交换&#xff0c;每一次把最大的放在最后一位。 void Swap(int…