金豺家族_智能优化算法及其MATLAB实例

金豺家族_智能优化算法及其MATLAB实例金豺优化算法(Goldenjackaloptimization,GJO)是一种新的全局优化算法,该算法的灵感来自于金豺的合作狩猎行为

金豺优化算法(Golden jackal optimization,GJO)是一种新的全局优化算法,该算法的灵感来自于金豺的合作狩猎行为。该成果于2022年发表在知名SCI期刊Expert Systems with Applications上。目前谷歌学术上查询被引173次。

d0d27cead6c5270a71f22666cf1db9e6.png

GJO算法通过种群位置初始化、确定雌雄金豺对位置、搜索猎物阶段和包围攻击猎物阶段四个主要操作模拟了金豺合作狩猎的行为,最后选取最优解。

算法原理

(1)种群位置初始化

每一只猎物的位置随机分布在搜索空间上,每个个体的相对位置的数学模型如下式表示:

其中,  表示第i只猎物在第j维空间的位置,  和  分别表示第  维空间的上边界和下边界,random( )为[0,1]内的随机数。最终形成的猎物种群位置矩阵如下:

其中,m为猎物种群的大小,n为搜索空间的总维度。

(2)确定雌雄金豺对位置

根据猎物种群位置矩阵以及特定的适应度函数计算适应度矩阵,位置具有最优适应度的猎物记为雄性金豺,位置记为  ,适应度记为  ;位置具有次优适应度的记为雌性金豺,位置记为  ,适应度记为   。

(3)搜索猎物阶段

在搜索猎物阶段,雄性金豺对于猎物种群中每个个体的相对位置的数学模型如下式表示:

雌性金豺对于猎物种群中每个个体的相对位置如下:

其中,t为当前迭代的次数,  表示第t次迭代时第  个猎物的位置,  表示第  次迭代时雄性金豺的位置,  表示第  次迭代时雌性金豺的位置。  为逃跑能量,数学模型如下式表示:

其中,  为初始逃跑能量;  为一个系数,用来递减逃跑能量  ;  为总迭代次数;  为常数,取值为1.5。  随着迭代次数的变化,由1.5逐渐减小至0;  为[-1,1]内的随机值。

(4)包围攻击猎物阶段

在包围攻击猎物阶段,雄性金豺对于猎物种群中每个个体的相对位置如下:

雌性金豺对于猎物种群中每个个体的相对位置如下:

结果展示

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

08741fddf1952a290e1bd5c2b6448c76.png

b4474fbe16427d7af96b7f898fb61289.png

eb0a6b187461e18f3c5d6b875ed299f3.png

2191061280d510a2cb39b2dfa84b387d.png

 MATLAB核心代码

% 金豺优化算法(GJO)
function [Male_Jackal_score,Male_Jackal_pos,Convergence_curve]=GJO(SearchAgents_no,Max_iter,lb,ub,dim,fobj)
%% initialize Golden jackal pair
Male_Jackal_pos=zeros(1,dim);
Male_Jackal_score=inf; 
Female_Jackal_pos=zeros(1,dim);  
Female_Jackal_score=inf; 


%% Initialize the positions of search agents
Positions=initialization(SearchAgents_no,dim,ub,lb);


Convergence_curve=zeros(1,Max_iter);


l=0;% Loop counter


% Main loop
while l<Max_iter
        for i=1:size(Positions,1)  


           % boundary checking
            Flag4ub=Positions(i,:)>ub;
            Flag4lb=Positions(i,:)<lb;
            Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;               


            % Calculate objective function for each search agent
            fitness=fobj(Positions(i,:));


            % Update Male Jackal 
            if fitness<Male_Jackal_score 
                Male_Jackal_score=fitness; 
                Male_Jackal_pos=Positions(i,:);
            end  
             if fitness>Male_Jackal_score && fitness<Female_Jackal_score 
                Female_Jackal_score=fitness; 
                Female_Jackal_pos=Positions(i,:);
            end
        end

参考文献

[1] Chopra N, Ansari M M. Golden jackal optimization: A novel nature-inspired optimizer for engineering applications[J]. Expert Systems with Applications, 2022, 198: 116924.

[2] 李伟彦,董宝良,王凯. 基于金豺优化算法的云计算资源调度研究[J]. 电子设计工程,2023

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

今天的文章金豺家族_智能优化算法及其MATLAB实例分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/86581.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注