2024年JCR1区新算法:角蜥蜴优化(HLOA),MATLAB代码免费获取

本文介绍了一种新型的HornedLizardOptimizerAlgorithm(HLOA),模仿角蜥蜴的隐藏和防御策略进行搜索优化,具有强大的进化能力和快速搜索性能。算法包括隐藏、皮肤颜色变化、喷血防御和移动逃避等策略,展示了在人工智能领域的应用潜力。
摘要由CSDN通过智能技术生成

角蜥蜴优化算法(Horned lizard optimizer algorithmHLOA)是一种新型群智能优化算法,该算法在数学上模拟了角蜥蜴隐密,皮肤变黑或变亮,血液喷射和移动-逃跑等生物行为,在隐蔽行为中,蜥蜴通过变成半透明来改变自己的颜色,以避免被捕食者发现。该算法具有进化能力强、搜索速度快、寻优能力强的特点。该成果于2024年发表在知名SCI期刊JCR1区Artificial Intelligence Review上。

c7f58561ba7525fe595f47d2db28d0ca.png

HLOA算法灵感来自于有角蜥蜴爬行动物如何隐藏和保护自己免受捕食者的攻击。

角蜥蜴可以使皮肤变亮或变暗,这取决于它是否需要减少或增加其太阳能热增益。皮肤变暗或变亮策略通过包括影响这些皮肤颜色变化的刺激激素黑素细胞速率(MHS)来建模。此外,移动规避策略也被数学描述。角蜥蜴的射血防御机制,被描述为一个抛射运动。这些策略平衡了解决方案空间上局部和全局搜索的开发和探索机制。

4fc60fac6fe75acff75e1066ebc21aca.png

1、算法原理

策略1:隐藏行为

隐化是指生物体通过模仿环境的特征,如颜色和纹理,甚至变成半透明,使捕食者或猎物难以发现或识别它们,从而与周围环境融为一体的过程。在Lab系统中,L表示光度,a和b*为色坐标,公式如下:

在LCh系统中,L表示亮度,C表示色彩强度,h*表示色相角(一种角度测量)。直角坐标到极坐标的变换如式所示:

C *和h值分别对应色度(或饱和度)和色调。h为色相角,取值范围为0°~ 360°。逆公式如下:

设有序对(a∗p, b∗q)和(a∗r, b∗s)是任意两种颜色,且p≠q≠r≠s。因此,任意两种新颜色,例如colorVar1和colorVar2,都可以通过如下的算术运算得到,如下式所示:

这些颜色可以用一个方程表示,如下所示:

用反比形式表示为:

色相满足HP≠hq≠hr≠hs,色度c1≠c2。最后对c1和c2进行因式分解,如下式所示。

下面是包含色坐标算术运算的方程:

Мах

式中为第代在解搜索空间中的新搜索代理位置(角蜥),为第代的最佳搜索代理;、、、是1到搜索agent最大数之间生成的整数随机数,;,,,分别为选择的第、、、个搜索代理;Max_iter表示最大迭代次数(代)。

策略2:皮肤变黑或变亮

角蜥蜴的皮肤可以变浅或变暗,这取决于它是否需要减少或增加太阳热增益,角蜥皮肤的颜色变亮由下式表示:

皮肤变黑策略的公式如下:

其中Light1和Light2是Lightening1(0值)和Lightening2(0.4046661值)之间生成的随机数。类似地,Dark1和Dark2是在Darkening1(0.5440510值)和Darkening2(1值)之间生成的随机数。

此外,对于两个方程,和→分别是找到的最好和最差的搜索代理。R1、r2、r3、r4是1到搜索agent最大数之间生成的整数随机数,R1≠r2≠r3≠r4;,,,是选择的第r1, r2, r3, r4个搜索代理。

策略3:喷血

蜥蜴通过从眼睛里喷射血液来抵御敌人,喷血防御机制可以表示为抛射运动。

14f7674c592db3378d27be0b7560b41c.png

在水平方向上,血液的喷射描述了均匀的线运动,因此其运动方程将由下式给出:

在垂直方向上,血液的喷射描述了均匀加速的直线运动,如下所示:

血液喷射矢量方程、位置和速度由方程表示。分别由下式所示:

最后,轨迹可以表示如下:

Мах

其中xi(t + 1)是新的搜索代理位置(角蜥蜴)在第t+1代的解搜索空间中,xbest(t)是找到的最佳搜索代理,当前搜索代理是xi(t),Max_iter表示迭代的最大次数,t是当前迭代,g是重力加速度。

策略4:移动以逃

在这种策略中,角蜥蜴在环境中随机快速移动以逃避捕食者。在这个过程中,xbest(t)会在解搜索空间中产生位移(全局运动)。

其中xi(t+1)是第t+1代的解搜索空间中的新搜索代理位置(有角蜥蜴),xbest(t)是第t代的最佳搜索代理,walk是在-1和1之间生成的随机数,nk是从标准柯西分布生成的随机数,平均值和nk分别设置为0和1。xi(t)是第t代中当前的第i个搜索代理。

策略5:促黑素细胞激素比率

角蜥蜴可以使皮肤变亮或变暗,这取决于它是否需要减少或增加其太阳能热增益。在角蜥蜴皮肤上观察到的颜色的快速变化可以归因于温度对黑素细胞刺激激素(MSH)的影响。角蜥蜴的黑色素细胞比率值定义为以下等式:


2、结果展示

57ed12e6b5b62b0181b783703366c729.png 93e5ef295be1c292fc0dfa2051d25c86.png 8585f2e7a6145178c718bae8eb2a84a9.png ec02e9fc9d1b3440fb6decbb95b569a9.png 90703e69b710a05fd373b670c012ab34.png

3、MATLAB核心代码

%% 淘个代码 %%
% 微信公众号搜索:淘个代码,获取更多代码
% 角蜥蜴优化算法(HLOA)
function [vMin,theBestVct,Convergence_curve]=HLOA(SearchAgents_no,Max_iter,lb,ub,dim,fobj)
Positions=initialization(SearchAgents_no,dim,ub,lb);
 for i=1:size(Positions,1)
      Fitness(i)=fobj(Positions(i,:)); % get fitness     
 end
 [vMin minIdx]= min(Fitness);  % the min fitness value vMin and the position minIdx
theBestVct= Positions(minIdx,:);  % the best vector 
[vMax maxIdx]= max(Fitness); % the max fitness value vMax and the position maxIdx
Convergence_curve=zeros(1,Max_iter);
Convergence_curve(1)= vMin;
alphaMelanophore= alpha_melanophore(Fitness,vMin,vMax);
t=0;% Loop counter
% Main 
for t=1:Max_iter  
   for r=1:SearchAgents_no
     if( 0.5 < rand)   % se mimetiza 
             v(r,:)= mimicry(theBestVct, Positions, Max_iter, SearchAgents_no, t);
     else
            if(mod(t,2))
                v(r,:)= shootBloodstream(theBestVct, Positions(r,:), Max_iter,t); 
            else
                v(r,:)= randomWalk(theBestVct,Positions(r,:));
            end
     end   
      Positions(maxIdx,:)= Skin_darkening_or_lightening(theBestVct, Positions, SearchAgents_no);
     if (alphaMelanophore(r) <= 0.3)
         v(r,:)= remplaceSearchAgent(theBestVct, Positions,SearchAgents_no);
    end        
     %
     % Return back the search agents that go beyond the boundaries of the search space
      v(r,:)=checkBoundaries(v(r,:), lb, ub);
     % Evaluate new solutions
     Fnew= fobj(v(r,:));
     % Update if the solution improves
     if Fnew <= Fitness(r);
        Positions(r,:)= v(r,:);
        Fitness(r)= Fnew;
     end
     if Fnew <= vMin
         theBestVct= v(r,:);
         vMin= Fnew;
     end 
   end
   %update max and alpha-melanophore
   [vMax maxIdx]= max(Fitness);
  alphaMelanophore = alpha_melanophore(Fitness,vMin,vMax);
   Convergence_curve(t)= vMin; 
 end
%***********************************[End HLOA Algorithm]

参考文献

Peraza-Vázquez H, Peña-Delgado A, Merino-Treviño M, et al. A novel metaheuristic inspired by horned lizard defense tactics[J]. Artificial Intelligence Review, 2024, 57(3): 59.

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

TGDM866

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

淘个代码_

不想刀我的可以选择爱我

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

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

打赏作者

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

抵扣说明:

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

余额充值