斑马优化算法,MATLAB代码免费获取

斑马优化算法(Zebra Optimization Algorithm,ZOA)是一种受自然启发的群智能优化算法。在觅食过程中,一只先锋斑马为其他斑马开辟了觅食的道路。因此,斑马群中的其他斑马在这个先锋斑马的引导下在平原上移动。斑马对付捕食者的第一个策略是以之字形运动模式逃跑。然而,有时候它们会聚集在一起,试图迷惑或吓唬捕食者。这两种类型的智能斑马行为的数学建模是所提出的ZOA设计的基本灵感。

0c0c845ffe92b86191a2e78a8ed0358d.png

该成果于2022年发表在计算机领域三区期刊IEEE Access上,目前在谷歌学术上被引率111次。

cfdbcb8466d33674689705e18b725e4c.png

ZOA模拟了斑马的觅食行为和它们对捕食者攻击的防御策略。描述了ZOA步骤,然后进行数学建模。

1、算法原理

(1)初始化

ZOA是一个基于种群的优化器,斑马是其种群的成员。从数学的角度来看,每个斑马都是问题的候选解决方案以及斑马在问题搜索空间中的平原。每个斑马在搜索空间中的位置决定了决策变量的值。因此,作为ZOA成员的每个斑马都可以使用向量建模,而该向量的元素表示问题变量的值。斑马的数量可以用一个矩阵进行数学建模。斑马在搜索空间中的初始位置是随机分配的。ZOA总体矩阵在以下公式指定。

其中X是斑马种群,Xi是第i个斑马,xi,j是第i个斑马提出的第j个问题变量的值,N是种群成员(斑马)的数量,m是决策变量的数量。

每个斑马线表示优化问题的候选解决方案。因此,目标函数可以根据问题变量的每个斑马线的建议值进行评估。使用以下公式将目标函数获得的值指定为向量。

其中F是目标函数值的向量,Fi是针对第i个斑马获得的目标函数值。比较目标函数的值可以有效地分析其相应候选解决方案的质量,并确定给定问题的最佳候选解决方案。在极小化问题中,目标函数值最小的斑马线是最佳候选解。相反,在最大化问题中,目标函数值最高的斑马线是最佳候选解。由于在每次迭代中,斑马的位置以及目标函数的值都要更新,因此必须在每次迭代中识别最佳候选解。

斑马在野外的两种自然行为已经被用来更新ZOA成员。这两种行为包括(i)觅食和(ii)防御捕食者的策略。因此,在每次迭代中,ZOA群体的成员在两个不同的阶段更新。

(2)觅食行为

在第一阶段,种群成员更新的基础上,斑马行为的模拟时,寻找饲料。斑马的主要食物主要是草和莎草,但如果它们最喜欢的食物很少,它们也可能吃芽,水果,树皮,根和叶子。根据植被的质量和可用性,斑马可能会花费60- 80%的时间进食。在斑马中,有一种斑马叫做平原斑马,它是一种先锋食草动物,通过吞食上层和营养较少的草的树冠,为其他需要更短和更有营养的草的物种提供了条件。在ZOA中,种群中最好的成员被认为是先驱斑马,并带领其他种群成员在搜索空间中找到自己的位置。因此,可以使用以下公式对斑马在觅食阶段的位置进行数学建模。

3a137b6da6a666e4a1cce3edc26feae8.png

其中,Xnew,P1 i是基于第一阶段的第i个斑马的新状态,Xnew,P1 i,j是其第j个维度值,Fnew,P1 i是其目标函数值,PZ是作为最佳成员的先锋斑马,PZj是其第j个维度,r是区间[0,1]中的随机数,I = round(1 + rand),其中rand是区间[0,1]中的随机数。因此,I ∈ {1,2},如果参数I = 2,则人口流动的变化要大得多。

(3)防御捕食者的策略

在第二阶段,模拟斑马的防御策略对捕食者的攻击,更新ZOA的人口成员在搜索空间中的位置。斑马的主要捕食者是狮子;然而,它们受到猎豹,豹子,野狗,棕色土狼和斑点土狼的威胁。鳄鱼是斑马的另一种捕食者,当它们接近水。斑马的防御策略因捕食者而异。斑马对狮子攻击的防御策略是以之字形模式和随机的侧向转向运动逃跑。斑马对较小的捕食者的攻击更具攻击性,如鬣狗和狗,它们通过聚集来迷惑和吓唬猎人。在ZOA设计中,假设以下两种情况之一以相同的概率发生:

(i)狮子攻击斑马,斑马选择逃跑策略;(ii)其他捕食者攻击斑马,斑马选择进攻策略。在第一种策略中,当斑马被狮子攻击时,斑马在它们所处的情况附近逃离狮子的攻击。因此,在数学上,该策略可以使用下式中的模式S1来建模。在第二种策略中,当其他捕食者攻击其中一只斑马时,斑马群中的其他斑马会向被攻击的斑马移动,并试图通过建立防御结构来吓唬和迷惑捕食者。斑马的这种策略使用下式中的模式S2进行数学建模。在更新斑马的位置时,如果斑马的新位置在该新位置中具有更好的目标函数值,则该新位置被接受。使用以下公式对该更新条件进行建模。

90fe307cb9a5d5937bdb8270107193ea.png

其中Xnew,P2,i是基于第二阶段的第i个斑马的新状态,Xnew,P2,i,j是其第j个维度值,Fnew,P2,i是其目标函数值,t是迭代轮廓,T是迭代的最大次数,R是等于0.01的常数,Ps是在区间[0,1]中随机生成的两个策略中选择一个的概率,AZ是被攻击斑马的状态,AZj是其第j维值。

对应的伪代码流程如下图所示

8b0ee87bc2f18653d35b2c3eac04ee20.png

对应的算法流程如下图所示

3e9823161da9537aee0fc5bbe11e8b35.png

2、结果展示

0bb12629fe5c08ead3a237923c986eee.png

890f027b5d409514bd1e601e2e2285df.png

1bd3bfc03f881ec86711d25abd218933.png

3、MATLAB核心代码

%% 淘个代码 %%
% 微信公众号搜索:淘个代码,获取更多代码
% 斑马优化算法(ZOA)
%%% Designed and Developed by Eva Trojovská1, Mohammad Dehghani1, and Pavel Trojovský1* %%%
function[Best_score,Best_pos,ZOA_curve]=ZOA(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness)
lowerbound=ones(1,dimension).*(lowerbound);                              % Lower limit for variables
upperbound=ones(1,dimension).*(upperbound);                              % Upper limit for variables

%% INITIALIZATION
for i=1:dimension
    X(:,i) = lowerbound(i)+rand(SearchAgents,1).*(upperbound(i) - lowerbound(i));                          % Initial population
end

for i =1:SearchAgents
    L=X(i,:);
    fit(i)=fitness(L);
end
%%

for t=1:Max_iterations
    %% update the global best (fbest)
    [best , location]=min(fit);
    if t==1
        PZ=X(location,:);                                           % Optimal location
        fbest=best;                                           % The optimization objective function
    elseif best<fbest
        fbest=best;
        PZ=X(location,:);
    end
    
    %% PHASE1: Foraging Behaviour
    for i=1:SearchAgents
        
        I=round(1+rand);
        X_newP1=X(i,:)+ rand(1,dimension).*(PZ-I.* X(i,:)); %Eq(3)
        X_newP1= max(X_newP1,lowerbound);X_newP1 = min(X_newP1,upperbound);
        
        
        % Updating X_i using (5)
        f_newP1 = fitness(X_newP1);
        if f_newP1 <= fit (i)
            X(i,:) = X_newP1;
            fit (i)=f_newP1;
        end

    end
    %% End Phase 1: Foraging Behaviour
    
    %% PHASE2: defense strategies against predators
    Ps=rand;
    k=randperm(SearchAgents,1);
    AZ=X(k,:);% attacked zebra
    
    for i=1:SearchAgents
        
        if Ps<0.5
            %% S1: the lion attacks the zebra and thus the zebra chooses an escape strategy
            R=0.1;
            X_newP2= X(i,:)+ R*(2*rand(1,dimension)-1)*(1-t/Max_iterations).*X(i,:);% Eq.(5) S1
            X_newP2= max(X_newP2,lowerbound);X_newP2 = min(X_newP2,upperbound);
      
        else
            %% S2: other predators attack the zebra and the zebra will choose the offensive strategy
            
            I=round(1+rand(1,1));
            X_newP2=X(i,:)+ rand(1,dimension).*(AZ-I.* X(i,:)); %Eq(5) S2
            X_newP2= max(X_newP2,lowerbound);X_newP2 = min(X_newP2,upperbound);
             
        end
        
        f_newP2 = fitness(X_newP2); %Eq (6)
        if f_newP2 <= fit (i)
            X(i,:) = X_newP2;
            fit (i)=f_newP2;
        end

    end %
    %%
    %%
    
    best_so_far(t)=fbest;
    average(t) = mean (fit);
    
end %t=1:Max_iterations
Best_score=fbest;
Best_pos=PZ;
ZOA_curve=best_so_far;
end

参考文献

[1]Trojovská E, Dehghani M, Trojovský P. Zebra optimization algorithm: A new bio-inspired optimization algorithm for solving optimization algorithm[J]. IEEE Access, 2022, 10: 49445-49473.

完整代码获取

后台回复关键词:

TGDM166

  • 28
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
斑马优化算法Zebra Optimization AlgorithmZOA)是一种基于斑马行为的优化算法,于2022年提出。该算法通过模拟斑马的觅食行为和针对捕食者的防御策略来进行寻优。斑马优化算法具有寻优能力强、收敛速度快等特点。\[2\] 关于斑马优化算法Matlab代码,你可以在引用\[1\]中的文章中找到并进行下载。该文章的标题是《Zebra Optimization Algorithm: A New Bio-Inspired Optimization Algorithm for Solving Optimization Algorithm》,发表在IEEE Access上。\[1\]中提供了详细的算法描述和实验结果,可以帮助你更好地理解和应用斑马优化算法。 #### 引用[.reference_title] - *1* [智能优化算法-斑马优化算法Zebra Optimization Algorithm(附matlab代码)](https://blog.csdn.net/weixin_44028734/article/details/131129042)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [智能优化算法斑马优化算法-附代码](https://blog.csdn.net/u011835903/article/details/130565746)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

今天吃饺子

不想刀我的可以选择爱我

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

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

打赏作者

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

抵扣说明:

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

余额充值