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函数集为例,进行结果展示:

ec1ff2a4364b4b18e3cf5df0aae1338e.png

ec7c96aba53f98a588e0e63959cf679d.png

26b98d8da64289617139e9cff0741959.png

81317c27c9bf54bf952315f769749bdd.png

b2395d40e1e39f5d1fef14273450ccb4.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_no
     J(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 solutions
   ES=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<ES
                    znew(pp,j)=z(pp,j)+sr*( trex_pos(pp,j)*tr-Target(1,j)*rand()*pr);    %sucess
                else
                    znew(pp,j)=z(pp,j)*rand();
                end       
        end
        Jnew(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);
        end
        end
      znew1=z(1,:);
    end
    Convergence_curve1(t)=min(J);  %Update the convergence curve
 p(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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淘个代码_

不想刀我的可以选择爱我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值