2023年优化算法之之霸王龙优化算法(TROA),原理公式详解,附matlab代码

霸王龙优化算法(Tyrannosaurus optimization,TROA)是一种新的仿生优化算法,该算法模拟霸王龙的狩猎行为,具有搜索速度快等优势。该成果于2023年发表在知名SCI期刊e-Prime-Advances in Electrical Engineering, Electronics and Energy上。

TROA算法通过位置初始化、狩猎和追逐、选择阶段三个主要操作模拟了霸王龙的狩猎行为,最后选取最优解。

算法原理

(1)种群位置初始化

TROA是一种基于种群的算法,它在搜索空间中随机生成猎物数量。设Xx为猎物的位置或位置,在上下限范围内随机生成,其数学模型如下式表示: 

 式中,Xi =[x1, x2··xn]为猎物位置,i=1,2··n,其中,n为维数,np为种群数,dim为搜索空间维数,ub为上限,lb为下限。

(2)狩猎和追逐

霸王龙的捕猎是让幼崽追逐和捕捉猎物,所以当霸王龙捕食时,它会进行随机捕食,捕食动作的数学模型如下式表示: 

 其中,Er为到达分散猎物的估计,sr为狩猎成功率,在[0.1,1]之间。如果成功率为0,则表示猎物已经逃脱,狩猎失败,猎物的位置需要相应更新。目标是猎物相对霸王龙位置的最小位置,霸王龙的奔跑速度是tr。

(3)选择阶段

选择过程取决于猎物的位置,即目标猎物当前的位置和之前的位置。如果霸王龙捕猎失败,猎物的位置就变成零。

  其中,  为初始随机猎物位置的适应度函数,  为更新猎物位置的适应度函数。

结果展示

以为CEC2005函数集为例,进行结果展示:

c955b04523c1f2c03afe30eb0a42e396.png

e8f6631ec0425cff655685af50d5622e.png

789bcdea489610f2514e28f98f33e54a.png

6f5ceaf68502043073505b2e40c469b1.png

b421a7c07d79f1a1a679cdddd3a961ab.png

 MATLAB核心代码

% 霸王龙优化算法
function [Jnew,J,znew,Convergence_curve1,Positions,p,JJ]=TROA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,sr,tr,pr)
Leader_score=inf;
trex_pos=ones(SearchAgents_no,dim);
%             initial position of prey
Positions=initialization(SearchAgents_no,dim,ub,lb);
z=Positions;t=1;                         % starting iteration                 
walk=[0.046 0.06];
run=0.3;
for p=1:SearchAgents_noJ(p,1) = fobj(z(p,:));
end[~,indx] = min(J);
Target(:,:) = z(indx,:);
JJ=min(J);while t<Max_iteration+1  %Main loop %Update the Position of solutionsES=randn*(1-(t/Max_iteration));   % Probability Ratio of hunting sucess of the prey [-1 to 1]for pp=1:SearchAgents_no for j=1:dim 
%            hunting of the prey            Rnd=floor(rand()*SearchAgents_no)+1;if rand<ESznew(pp,j)=z(pp,j)+sr*( trex_pos(pp,j)*tr-Target(1,j)*rand()*pr);    %sucesselseznew(pp,j)=z(pp,j)*rand();end       endJnew(pp,:)=fobj(znew(pp,:));for j=1:dim %-----------selection-----------if J(pp,1)>Jnew(pp)z(pp,:)=znew(pp,:); J(pp,1)=Jnew(pp);
% updation of target[~,indx] =min(J);Target = z(indx,:);else Target(1,j)=zeros;J(pp,1)=J(pp);endendznew1=z(1,:);endConvergence_curve1(t)=min(J);  %Update the convergence curvep(t)= znew1(1,1);t=t+1;end
end

参考文献

[1] Sahu V S D M, Samal P, Panigrahi C K. Tyrannosaurus optimization algorithm: A new nature-inspired meta-heuristic algorithm for solving optimal control problems[J]. e-Prime-Advances in Electrical Engineering, Electronics and Energy, 2023, 5: 100243.

完整代码获取方式:后台回复关键字:TGDM880

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

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

相关文章

Android跨进程通信,IPC,RPC,Binder系统,C语言应用层调用

文章目录 Android跨进程通信&#xff0c;IPC&#xff0c;RPC&#xff0c;Binder系统&#xff0c;C语言应用层调用&#xff08;&#xff09;1.概念2.流程3.bctest.c3.1 注册服务&#xff0c;打开binder驱动3.2 获取服务 4.binder_call Android跨进程通信&#xff0c;IPC&#xf…

【uniapp】使用扫码插件,解决uni.scanCode扫码效率低的问题

1. 背景 uniapp 中自带的二维码扫描的 API 是 uni.scanCode&#xff0c;但有如下问题&#xff1a; 二维码扫描的效率不高&#xff0c;有些需要扫2秒左右 较小或模糊的一些二维码无法识别出来&#xff0c;多次扫同样的一个码可能出现扫码失败的情况 受环境影响大&#xff0c…

语聚AI:无代码开发的API连接新选择,助力电商平台客户服务提升

无代码开发&#xff1a;语聚AI的新选择 在企业运营中&#xff0c;客户服务扮演着重要的角色。然而&#xff0c;许多企业在日常的客服管理中面临着重复咨询、人工接待成本高、缺乏知识库支持以及客服渠道分散等问题。如何提高客服的效率和质量&#xff0c;成为了企业急需解决的…

PP-YOLOE: An evolved version of YOLO(2022.12)

文章目录 Abstract1. Introduction2. Method2.1. A Brief Review of PP-YOLOv22.2. Improvement of PP-YOLOEAnchor-freeBackbone and NeckTask Alignment Learning (TAL)Efficient Task-aligned Head (ET-head) 3.Experiment4. Conclusion 原文链接 源代码 Abstract 在本报告…

oracle21c安装报错【[INS-32014] 指定的 Oracle 基目录位置XXX无效】

一.问题 [INS-32014] 指定的 Oracle 基目录位置XXX无效 二.解决办法 安装包的文件放置不可以在中文字文件夹下面&#xff0c;改为英文【soft】,就可以成功安装完成了&#xff01;

微信小程序动态生成表单来啦!你再也不需要手写表单了!

dc-vant-form 由于我们在小程序上涉及到数据采集业务&#xff0c;需要经常使用表单&#xff0c;微信小程序的表单使用起来非常麻烦&#xff0c;数据和表单是分离的&#xff0c;每个输入框都需要做数据处理才能实现响应式数据&#xff0c;所以我开发了dc-vant-form&#xff0c;…

JAVAEE 初阶 多线程基础(一)

多线程基础 一.线程的概念二.为什么要有线程三.进程和线程的区别和关系四.JAVA的线程和操作系统线程的关系五.第一个多线程程序1.继承Thread类 一.线程的概念 一个线程就是一个 “执行流”. 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 “同时” 执行着多份代码 同…

C++类与对象(1)—初步认识

目录 一、面向过程和面向对象 二、类 1、定义 2、类的两种定义方式 3、访问限定符 4、命名规范化 5、类的实例化 6、计算类对象的大小 7、存储方式 三、this指针 1、定义 2、存储位置 3、辨析 四、封装好处 一、面向过程和面向对象 C语言是面向过程的&#xf…

算法设计与分析 | 分治棋盘

题目 在一个2^k * 2^k个方格组成的棋盘中&#xff0c;恰有一个方格与其他方格不同&#xff0c;称该方格为一特殊方格&#xff0c;且称该棋盘为一特殊棋盘。在棋盘覆盖问题中&#xff0c;要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格&#xff0…

解锁OpenAI潜力:OpenAI 全面解析与最佳实践

该项目是由OpenAI公司提供的一个大型代码库&#xff0c;其中包含了各类与OpenAI API相关的代码示例和最佳实践。 此项目名为OpenAI Cookbook&#xff0c;目的是为了帮助使用者更有效地利用OpenAI API&#xff0c;将其应用于自己的工作和生活中。具体来说&#xff0c;可以解决一…

【数字人】7、GeneFace++ | 使用声音驱动的面部运动系数作为 condition 来指导 NeRF 重建说话头

文章目录 一、背景二、相关工作2.1 唇形同步的 audio-to-motion2.2 真实人像渲染 三、方法3.1 对 GeneFace 的继承3.2 GeneFace 的结构3.2.1 Pitch-Aware Audio-to-Motion Transform3.2.2 Landmark Locally Linear Embedding3.2.3 Instant Motion-to-Video Rendering 四、效果 …