智能优化算法:袋獾优化算法-附代码

news2025/4/5 3:49:16

智能优化算法:袋獾优化算法

文章目录

  • 智能优化算法:袋獾优化算法
    • 1. 袋獾优化算法
      • 1.1 初始化
      • 1.2 策略一:以腐肉为食(探索阶段)
    • 2.实验结果
    • 3.参考文献
    • 4.Matlab

摘要:袋獾优化算法(Tasmanian Devil Optimization(TDO)),是于2022年提出的一种基于袋獾行为的优化算法,该算法通过模拟袋獾猎食行为来进行寻优,具有寻优能力强,收敛速度快等特点

1. 袋獾优化算法

1.1 初始化

与其他优化算法类似,在寻优空间里随机初始化种群:
x i , j = l b j + r ⋅ ( u b j − l b j ) (2) x_{i, j}=l b_j+r \cdot\left(u b_j-l b_j\right) \tag{2} xi,j=lbj+r(ubjlbj)(2)
其中 x i , j x_{i,j} xi,j为个体, l b j lb_j lbj为寻优下边界, u b j ub_j ubj为寻优上边界, r r r为[0,1]之间的随机数。

1.2 策略一:以腐肉为食(探索阶段)

有时袋獾更喜欢在该地区以腐肉为食,而不是狩猎。袋獾周围生活着其他食肉动物,它们捕食大型猎物,但无法将其全部吃掉。此外,在袋獾到来之前,这些动物可能无法从猎物身上充分进食。在这种情况下,袋獾更喜欢以这些腐肉为食。袋獾在扫描栖息地区域以识别腐肉时的行为类似于在解决问题空间中的算法搜索过程。这种袋獾策略实际上展示了TDO探索在扫描搜索空间的不同区域以识别原始最佳区域方面的力量。

袋獾吃尸体策略中表达的概念是使用(3)到(5)进行数学建模的。在TDO设计中,对于每个袋獾,其他种群成员在搜索空间中的位置被假设为腐肉位置。在(3)中模拟随机选择其中一种情况,从而选择第k个种群成员作为第i个袋獾的目标腐肉。因此,k必须从1到N中随机选择,而相反的是i。
C i = X k , i = 1 , 2 , … , N , k ∈ { 1 , 2 , … , N ∣ k ≠ i } (3) C_i=X_k, \quad i=1,2, \ldots, N, k \in\{1,2, \ldots, N \mid k \neq i\} \tag{3} Ci=Xk,i=1,2,,N,k{1,2,,Nk=i}(3)
其中 C i C_i Ci是选中的腐肉。

基于选定的腐肉,袋獾在搜索空间中的新位置被计算出来。在该策略中的袋獾运动模拟中,如果腐肉的目标函数值更好,塔斯马尼亚恶魔就会向腐肉移动,否则就会远离腐肉。袋獾运动策略在(4)中进行了模拟。在第一策略的最后一步中,在计算袋獾的新位置后,如果目标函数的值在这个新位置更好,则接受这个位置,否则,塔斯马尼亚恶魔将保持在其先前的位置。此更新步骤在(5)中进行了建模。
x i , j n e w , S 1 = { x i , j + r ⋅ ( c i , j − I ⋅ x i , j ) , F C i < F i x i , j + r ⋅ ( x i , j − c i , j ) ,  otherwise  (4) x_{i, j}^{n e w, S 1}= \begin{cases}x_{i, j}+r \cdot\left(c_{i, j}-I \cdot x_{i, j}\right), & F_{C_i}<F_i \\ x_{i, j}+r \cdot\left(x_{i, j}-c_{i, j}\right), & \text { otherwise }\end{cases} \tag{4} xi,jnew,S1={xi,j+r(ci,jIxi,j),xi,j+r(xi,jci,j),FCi<Fi otherwise (4)

X i = { X i n e w , S 1 , F i new  , S 1 < F i X i ,  otherwise  (5) X_i= \begin{cases}X_i^{n e w, S 1}, & F_i^{\text {new }, S 1}<F_i \\ X_i, & \text { otherwise }\end{cases} \tag{5} Xi={Xinew,S1,Xi,Finew ,S1<Fi otherwise (5)

其中r 为[0,1]之间的随机数,I 为属于{1,2}的随机值。

1.3 策略二:以猎物为食(开发阶段)

袋獾的第二个进食策略是捕食猎物。袋獾在攻击过程中的行为有两个阶段。在第一阶段,它通过扫描该区域,选择猎物并攻击它。然后,在第二阶段,在接近猎物后,它追赶猎物,阻止它并开始进食。第一阶段的建模类似于第一策略的建模,即胴体的选择。因此,使用(6)至(8)对猎物选择和攻击的第一阶段进行建模。在第二种策略中,当更新了第i0个袋獾,其他种群成员的位置被假设为猎物的位置。第k0个种群成员被随机选择为猎物,而k是介于1到N和相反i之间的自然随机数。猎物选择过程在(6)中模拟。
P i = X k , i = 1 , 2 , … , N , k ∈ { 1 , 2 , … , N ∣ k ≠ i } (6) P_i=X_k, \quad i=1,2, \ldots, N, k \in\{1,2, \ldots, N \mid k \neq i\} \tag{6} Pi=Xk,i=1,2,,N,k{1,2,,Nk=i}(6)
其中 P i P_i Pi是选中的猎物。

在确定了猎物的位置后,袋獾会被计算出一个新的位置。在计算这个新位置时,如果所选猎物的目标函数值更好,袋獾就会向它移动,否则它就会远离这个位置。该过程的建模如(7)所示。如果为袋獾计算的新位置提高了目标函数的值,那么它将取代以前的位置。第二种策略的这一步骤在(8)中进行了建模。
x i , j new  , S 2 = { x i , j + r ⋅ ( p i , j − I ⋅ x i , j ) , F P i < F i x i , j + r ⋅ ( x i , j − p i , j ) ,  otherwise  (7) x_{i, j}^{\text {new }, S 2}= \begin{cases}x_{i, j}+r \cdot\left(p_{i, j}-I \cdot x_{i, j}\right), & F_{P_i}<F_i \\ x_{i, j}+r \cdot\left(x_{i, j}-p_{i, j}\right), & \text { otherwise }\end{cases}\tag{7} xi,jnew ,S2={xi,j+r(pi,jIxi,j),xi,j+r(xi,jpi,j),FPi<Fi otherwise (7)

X i = { X i n e w , S 2 , F i new  , S 2 < F i X i ,  otherwise  (8) X_i= \begin{cases}X_i^{n e w, S 2}, & F_i^{\text {new }, S 2}<F_i \\ X_i, & \text { otherwise }\end{cases} \tag{8} Xi={Xinew,S2,Xi,Finew ,S2<Fi otherwise (8)

这种策略与第一种策略的主要区别在于第二阶段和猎物追逐的模拟。在攻击地点附近追逐猎物类似于搜索空间的局部搜索。这种袋獾的行为实际上证明了TDO有能力利用它来收敛到更好的候选解决方案。为了模拟这种追逐过程,袋獾在被袭击地点附近跟踪猎物。猎物追逐阶段由袋獾使用(9)至(11)进行建模。在这个阶段,袋獾的位置被认为是猎物追逐过程发生的社区的中心。这个邻域的半径表示袋獾跟随猎物的范围,可以使用(9)计算。因此,可以基于该邻域中的追逐过程来计算袋獾的新位置,这在(10)中进行了数学模拟。如果新计算的位置为目标函数提供了比其先前位置更好的值,则袋獾可以接受。在(11)中模拟了袋獾的位置更新过程。
R = 0.01 ( 1 − t T ) , (9) R=0.01\left(1-\frac{t}{T}\right), \tag{9} R=0.01(1Tt),(9)

x i , j n e w = x i , j + ( 2 r − 1 ) ⋅ R ⋅ x i , j (10) x_{i, j}^{n e w}=x_{i, j}+(2 r-1) \cdot R \cdot x_{i, j} \tag{10} xi,jnew=xi,j+(2r1)Rxi,j(10)

X i = { X i n e w , F i new  < F i X i ,  otherwise  (11) X_i= \begin{cases}X_i^{n e w}, & F_i^{\text {new }}<F_i \\ X_i, & \text { otherwise }\end{cases} \tag{11} Xi={Xinew,Xi,Finew <Fi otherwise (11)

其中t 为迭代次数, T为最大迭代次数。

算法流程图如下:

在这里插入图片描述

2.实验结果

在这里插入图片描述

3.参考文献

[1] M. Dehghani, Š. Hubálovský and P. Trojovský, “Tasmanian Devil Optimization: A New Bio-Inspired Optimization Algorithm for Solving Optimization Algorithm,” in IEEE Access, vol. 10, pp. 19599-19620, 2022, doi: 10.1109/ACCESS.2022.3151641.

4.Matlab

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

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

相关文章

MyBatis官方文档学习笔记(一)

本笔记根据mybatis官方文档顺序学习&#xff0c;根据本笔记可快速掌握mybatis的使用。 1 快速开始 1.1 快速开始 1.1.1 安装 使用MyBatis之前必须要安装mybatis-x.x.x.jar驱动文件到类路径中&#xff0c;如果使用的是Maven工程&#xff0c;则只需要导入下面的依赖即可&…

Java集合-Java集合基础

目录 讲一讲Java集合吧 集合的使用 为什么要使用集合&#xff1f; 如何选用集合? Collection Collection与Collections的区别是什么&#xff1f; Collections.sort和Arrays.sort的实现原理 为何Collection不从Cloneable和Serializable接口继承&#xff1f; 线程安全集…

面向开发人员的 ChatGPT 提示语教程中文版

面向开发人员的 ChatGPT 提示语教程中文版 1. 指南1-1. 提示的指南1-2. 配置1-3. 提示语原则原则 1: 写出清晰而具体的指示技巧 1: 使用分隔符来清楚地表明输入的不同部分技巧 2: 要求提供结构化的输出技巧 3: 要求模型检查条件是否得到满足技巧 4: "少许样本"提示 原…

新魔百盒M304A_增强版2+16G_S905系列_UWE5621DS_卡刷/线刷固件包-当贝桌面

新魔百盒M304A_增强版216G_S905系列_UWE5621DS_卡刷&#xff0f;线刷固件包-当贝桌面 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内…

第三十九章 Unity 图像 (Image) UI

本章节&#xff0c;我们介绍一下“Image”UI元素&#xff0c;首先我们创建一个新场景“SampleScene2.unity”。然后我们点击菜单栏“GameObjec”->“UI”->“Image”&#xff0c;如下所示 我们将其放置到了中间位置&#xff0c;检视面板中的参数如下 默认情况下&#xf…

python基础-内置高阶函数map/reduce/filter函数的使用

一、map Python内置函数&#xff0c;用法及说明如下&#xff1a; class map(object):"""map(func, *iterables) --> map objectMake an iterator that computes the function using arguments fromeach of the iterables. Stops when the shortest iterab…

工控机All In One——篇1,pve安装(必读)

工控机All In One——篇1&#xff0c;pve安装 1、背景 满足家庭一机多用&#xff0c;同时满足软路由&#xff08;主旁路由&#xff09;、远程控制、NAS&#xff08;个人存储&#xff09;等功能 2、准备 硬件 1、J4125工控机 2、一个usb分线器 3、鼠标键盘 4、带HDMI或VGA接…

2022 年全国硕士研究生入学统一考试英语(一)试题

2022年全国硕士研究生入学统一考试英语&#xff08;一&#xff09;试题 SectionⅠUse of English Directions: Read the following text. Choose the best word(s) for each numbered blank and mark A, B, C or D on the ANSWER SHEET. (10 points) The idea that plants have…

论文解析-基于 Unity3D 游戏人工智能的研究与应用

1.重写 AgentAction 方法 1.1 重写 AgentAction 方法 这段代码是一个重写了 AgentAction 方法的方法。以下是对每行代码解释&#xff1a; ①public override void AgentAction(float[] vectorAction) 这行代码声明了一个公共的、重写了父类的 AgentAction 方法的方法。它接受…

【力扣-225】用队列实现栈

&#x1f58a;作者 : D. Star. &#x1f4d8;专栏 : 数据结构 &#x1f606;今日小tips : 有些家里可能会有两个同样名字的 WiFi&#xff0c;而其中一个名字的最后有个 5G&#xff0c;那么&#xff0c;这个 5G 和常说的 5G 信号是一回事吗&#xff1f;并不是&#xff0c;无线路…

研报精选230507

目录 【行业230507山西证券】煤炭行业周报&#xff1a;港口煤价趋稳&#xff0c;静待经济信心恢复与迎峰度夏双至 【行业230507山西证券】农业行业周报&#xff1a;建议逢低布局经营稳健和低PB的养殖股 【行业230507头豹研究院】2023年中国无源物联网行业词条报告 【个股230507…

运算放大器 - 笔记 02 -恒流源

恒流源 / 电流源 一、方案一二、方案二三、方案三四、方案四 前言&#xff1a;最近在学习运放&#xff0c;三极管&#xff0c;二极管&#xff0c;场效应管等器件的组合电路。捡起了以前的模电知识&#xff0c;写下笔记&#xff0c;以防再度忘记。 本文使用Multisim仿真软件进行…

MySQL---约束(主键约束,自增长约束,非空约束,唯一约束,默认约束、零填充约束)

1. 主键约束 MySQL主键约束是一个列或者多个列的组合&#xff0c;其值能唯一地标识表中的每一行,方便在RDBMS中 尽快的找到某一行。 主键约束相当于 唯一约束 非空约束 的组合&#xff0c;主键约束列不允许重复&#xff0c;也不允许出现空值。 每个表最多只允许一个主键 …

Linux 挂载磁盘教程,Linux系统分区及磁盘挂载

Linux 挂载磁盘教程&#xff0c;Linux系统分区及磁盘挂载 说明&#xff1a;以下教程是以未安装任何程序及无数据的数据盘基础上编写 如已安装程序或数据盘含有数据切勿使用此教程 本文中的磁盘/dev/sdb为笔者测试服务器上的命名&#xff0c;在您的服务器中可能是/dev/xdb、/dev…

【C++入门】引用

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

npm私有库(nexus)-安装nexus

注&#xff1a;安装 nexus(需要先安装 Java jdk) 1、上传软件包到服务器并解压 链接&#xff1a;https://pan.baidu.com/s/1NgpIbTaH4xV-HceyTUuxVA 提取码&#xff1a;vs51 tar -xvf nexus-3.19.1-01-unix.tar.gz 2、修改默认端口&#xff0c;并开启端口 firewall-cmd --pe…

windows和Linux系统配置静态ip方法

为什么要配置静态IP 配置静态IP地址可以确保设备始终具有相同的IP地址&#xff0c;这对于需要远程访问、网络管理和安全性很重要。与动态IP地址不同&#xff0c;静态IP地址不会随着时间而改变&#xff0c;因此它允许管理员轻松地识别特定设备并在网络上进行更精细的控制。另外…

02- 目标检测基础知识及优化思路汇总 (目标检测)

要点&#xff1a; 参考综述&#xff1a;深度学习目标检测最全综述 - 爱码网参考表达&#xff1a;https://www.cnblogs.com/xjxy/p/13588772.html 一 发展历程 分类网络是目标检测的基础&#xff0c;必须熟练掌握。 1.1 传统算法 V.J Detector 19年前&#xff0c;P. Viola 和 …

操作系统——文件管理

0.关注博主有更多知识 操作系统入门知识合集 目录 9.1文件系统概念 思考题&#xff1a; 9.2文件的物理结构 思考题&#xff1a; 9.3文件存储和目录 9.1文件系统概念 文件的定义&#xff1a; 文件是计算机信息存取的一种重要组织形式&#xff0c;文件由若干信息项有序构…

多项式时间验证与NP完全性

多项式时间的验证 对语言的“验证”算法&#xff1a; 验证与求解花费时间一样长&#xff1a;最短路径问题的一个实例的证书很容易能在多项式时间内被验证。实际上最短路径问题本身可以在多项式时间内求解。因此&#xff0c;根据指定的证书来验证与从头开始求解这个问题的时间…