群体智能优化算法之鹈鹕优化算法(POA)

鹈鹕优化算法(Pelican Optimization Algorithm)

1、POA灵感

2、详细分析POA

3、POA流程图和伪代码

4、结果图

5、部分代码

1、POA灵感

鹈鹕的食物主要是鱼,很少吃青蛙、海龟和甲壳类动物;如果它很饿,它甚至会吃海鲜[27]。鹈鹕经常合作狩猎。鹈鹕在确定猎物的位置后,从10-20米的高度俯冲向猎物。当然,有些物种也会下降到海拔较低的地方捕食。然后他们在水面上展开翅膀,迫使鱼去浅水区,这样他们就可以很容易地抓住他们的鱼。在捕鱼时,大量的水进入鹈鹕的喙部,在吞咽鱼之前头部向前移动以排出多余的水。鹈鹕在狩猎时的行为和策略是一个智能的过程,使这些鸟成为熟练的猎人。

2、详细分析POA

在基于种群的算法中,每个种群成员代表一个候选解。每个种群成员根据其在搜索空间中的位置提出优化问题变量的值。最初,根据问题的下界和上界,对种群成员进行随机初始化。

第一阶段:向猎物移动(探索阶段)

在第一阶段,鹈鹕确定猎物的位置,然后向这个确定的区域移动。对这种鹈鹕策略进行建模,可以对搜索空间进行扫描,并使所提出的POA在发现搜索空间的不同区域时具有探索能力。

POA的重点在于猎物的位置是在搜索空间中随机生成的。这增加了POA在精确搜索问题解决空间时的探索能力。上述概念和鹈鹕向猎物移动的策略在数学上模拟如式(4)所示。

在建议的POA中,如果目标函数的值在该位置得到改善,则接受鹈鹕的新位置。在这种类型的更新中,它被称为有效更新,算法被防止移动到非最优区域。这个过程用公式(5)建模

第二阶段:水面展翅(开发阶段)

在第二阶段,鹈鹕到达水面后,它们在水面上展开翅膀,将鱼向上移动,然后将猎物收集到喉咙袋中。这种策略导致更多的鱼在攻击区域被鹈鹕捕获。

对鹈鹕的这种行为进行建模,可以使所提出的POA收敛到狩猎区域的更好点。该过程提高了局部搜索能力的POA能力。从数学的角度来看,算法必须检查鹈鹕位置附近的点,以收敛到更好的解。公式(6)对鹈鹕在捕猎过程中的这种行为进行了数学模拟

在这一阶段,还使用有效更新来接受或拒绝新的鹈鹕位置,其模型如式(7)所示。

在基于第一阶段和第二阶段更新了所有种群成员之后,基于种群的新状态和目标函数的值,将更新到目前为止的最佳候选解。算法进入下一次迭代,重复根据式(4)-(7)提出的POA的不同步骤,直到完成执行。最后,将算法迭代得到的最佳候选解作为给定问题的准最优解。

3、POA流程图和伪代码

下面是POA的流程图和伪代码:

4、结果图

结果图

5、部分代码        

for t=1:Max_iterations
    %% update the best condidate solution
    [best , location]=min(fit);
    if t==1
        Xbest=X(location,:);                                           % Optimal location
        fbest=best;                                           % The optimization objective function
    elseif best<fbest
        fbest=best;
        Xbest=X(location,:);
    end
    
    %% UPDATE location of food
    
    X_FOOD=[];
    k=randperm(SearchAgents,1);
    X_FOOD=X(k,:);
    F_FOOD=fit(k);
    
    %%
    for i=1:SearchAgents
        
        %% PHASE 1: Moving towards prey (exploration phase)
        I=round(1+rand(1,1));
        if fit(i)> F_FOOD
            X_new=X(i,:)+ rand(1,1).*(X_FOOD-I.* X(i,:)); %Eq(4)
        else
            X_new=X(i,:)+ rand(1,1).*(X(i,:)-1.*X_FOOD); %Eq(4)
        end
        X_new= max(X_new,lowerbound);X_new = min(X_new,upperbound);
        
        % Updating X_i using (5)
        f_new = fitness(X_new);
        if f_new <= fit (i)
            X(i,:) = X_new;
            fit (i)=f_new;
        end
        %% END PHASE 1: Moving towards prey (exploration phase)
        
     

参考文献:Trojovský, Pavel, and Mohammad Dehghani. "Pelican optimization algorithm: A novel nature-inspired algorithm for engineering applications." Sensors 22.3 (2022): 855.

  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值