智能算法之浣熊优化算法(COA),原理公式详解,附matlab代码

这篇具有很好参考价值的文章主要介绍了智能算法之浣熊优化算法(COA),原理公式详解,附matlab代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

长鼻浣熊优化算法(Coati Optimization AlgorithmCOA)是一种新型元启发式优化算法,该算法是受浣熊狩猎行为启发而提出的,具有进化能力强、搜索速度快、寻优能力强的特点。该成果于2023年发表在知名SCI期刊Knowledge-Based Systems上。目前谷歌学术上查询被引94次。

先说一下:这个算法的寻优效果是真的好,值得研究一下!且算法较新,是一个值得改进的算法!

coa优化

COA算法通过种群初始化、鬣蜥的狩猎和攻击策略、逃离捕食者的过程,三个主要操作模拟了浣熊狩猎行为,最后选取最优解。

算法原理

(1)初始化种群

首先在寻优空间里随机初始化种群: 

式中:  为个体;  为寻优下边界;  为寻优上边界;r[0,1]之间的随机数。

(2)鬣蜥的狩猎和攻击策略(探索阶段)

在这一策略中,一群浣熊爬上树去够一只鬣蜥并吓唬它。其他几只浣熊在树下等待,直到鬣蜥摔倒在地。鬣蜥落地后,浣熊攻击并猎杀它。这种策略导致浣熊移动到搜索空间的不同位置,进而表明COA优化算法在解决问题空间的全局搜索中具有探索能力。

COA算法中,假设种群中最好成员的位置是鬣蜥的位置。也有人假设,一半的浣熊爬上树,另一半等待鬣蜥掉到地上。因此,位置的数学模拟为: 式中:  为第i个浣熊在第  个维度的新位置;    之间的随机数;  为鬣蜥在第  个维度的位置,实际上是指最佳成员的位置;  为从集合{1,2}中随机选取的一个数;  为浣熊的数量;[N/2]为不超过[N/2]的最大整数;  为决策变量个数。

鬣蜥倒地后,被放置在搜索空间中的随机位置。基于这个随机位置,地面上的浣熊在搜索空间中移动。这一步通过两个公式进行模拟。  式中:  为鬣蜥在第  个维度在地上的位置。 其他 式中:  为第  维下鬣蜥落到地面后的目标函数值;  为第  维下第  个浣熊的目标函数值。如果更新后的个体更优,则更新当前个体;否则保持原状。 其他 式中:  为第  个浣熊在新位置的目标函数值;  为第  个浣熊在之前位置的目标函数值。

(3)逃离捕食者的过程(剥削阶段)

该阶段是基于浣熊遇到捕食者和逃离捕食者时的自然行为进行数学建模的。当捕食者攻击浣熊时,浣熊会逃离它的位置。浣熊在这个策略上的举动导致其处于接近当前位置的安全位置。这表明了COA算法在本地搜索中的开发能力。

为了模拟这种行为,基于下列等式在每个浣熊所在的位置附近生成一个随机位置。  式中:  为第  个决策变量的局部下界,  为第  个决策变量的局部上界,  为迭代次数;  为最大迭代次数。

 式中:  为第  个浣熊在第  个维度的新位置。如果更新后的个体更优则更新当前个体,否则保持原状。 其他  结果展示

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

coa优化

coa优化

coa优化

coa优化

coa优化

 MATLAB核心代码

function[Best_score,Best_pos,COA_curve]=COA(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 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
    
    %%
        for i=1:SearchAgents/2
            
            %% Phase1: Hunting and attacking strategy on iguana (Exploration Phase)
            iguana=Xbest;
            I=round(1+rand(1,1));


            X_P1(i,:)=X(i,:)+rand(1,1) .* (iguana-I.*X(i,:)); % Eq. (4)
            X_P1(i,:) = max(X_P1(i,:),lowerbound);X_P1(i,:) = min(X_P1(i,:),upperbound);
            
            % update position based on Eq (7)
            L=X_P1(i,:);
            F_P1(i)=fitness(L);
            if(F_P1(i)<fit(i))
                X(i,:) = X_P1(i,:);
                fit(i) = F_P1(i);
            end


        end
        %%


        for i=1+SearchAgents/2 :SearchAgents


            iguana=lowerbound+rand.*(upperbound-lowerbound); %Eq(5)
            L=iguana;
            F_HL=fitness(L);
            I=round(1+rand(1,1));
            
            if fit(i)> F_HL
                X_P1(i,:)=X(i,:)+rand(1,1) .* (iguana-I.*X(i,:)); % Eq. (6)
            else
                X_P1(i,:)=X(i,:)+rand(1,1) .* (X(i,:)-iguana); % Eq. (6)
            end
            X_P1(i,:) = max(X_P1(i,:),lowerbound);X_P1(i,:) = min(X_P1(i,:),upperbound);
            
            % update position based on Eq (7)
            L=X_P1(i,:);
            F_P1(i)=fitness(L);
            if(F_P1(i)<fit(i))
                X(i,:) = X_P1(i,:);
                fit(i) = F_P1(i);
            end
        end
        %% END Phase1: Hunting and attacking strategy on iguana (Exploration Phase)
        
        %%
        
        %% Phase2: The process of escaping from predators (Exploitation Phase)
        for i=1:SearchAgents
            LO_LOCAL=lowerbound/t;% Eq(9)
            HI_LOCAL=upperbound/t;% Eq(10)
            X_P2(i,:)=X(i,:)+(1-2*rand).* (LO_LOCAL+rand(1,1) .* (HI_LOCAL-LO_LOCAL)); % Eq. (8)
            X_P2(i,:) = max(X_P2(i,:),LO_LOCAL);X_P2(i,:) = min(X_P2(i,:),HI_LOCAL);  
            % update position based on Eq (11)
            L=X_P2(i,:);
            F_P2(i)=fitness(L);
            if(F_P2(i)<fit(i))
                X(i,:) = X_P2(i,:);
                fit(i) = F_P2(i);
            end
            
        end
        %% END Phase2: The process of escaping from predators (Exploitation Phase)
    


    best_so_far(t)=fbest;
    average(t) = mean (fit);
    
end
Best_score=fbest;
Best_pos=Xbest;
COA_curve=best_so_far;
end

参考文献

[1] Dehghani Mohammad, Montazeri Zeinab, Trojovská Eva, Trojovský Pavel. Coati Optimization Algorithm: A new bio-inspired metaheuristic algorithm for solving optimization problems[J]. Knowledge-Based Systems,2023,259.

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

TGDM990文章来源地址https://www.toymoban.com/news/detail-784835.html

到了这里,关于智能算法之浣熊优化算法(COA),原理公式详解,附matlab代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MATLAB源码-第168期】基于matlab的布谷鸟优化算法(COA)机器人栅格路径规划,输出做短路径图和适应度曲线。

    布谷鸟优化算法(Cuckoo Optimization Algorithm, COA)是一种启发式搜索算法,其设计灵感源自于布谷鸟的独特生活习性,尤其是它们的寄生繁殖行为。该算法通过模拟布谷鸟在自然界中的行为特点,为解决各种复杂的优化问题提供了一种新颖的方法。从算法提出至今,COA因其高效性

    2024年04月08日
    浏览(89)
  • 人工智能 Agent 简介:核心原理 / 数学公式 / 实现算法 / 代码实例

    人工智能Agent(AI Agent)是一个自动化的系统,它可以感知其环境并根据其感知进行决策以实现特定的目标。这些Agent可以是简单的程序,如搜索引擎的爬虫,也可以是复杂的系统,如自动驾驶汽车。AI Agent的主要目标是通过学习和优化来提高其性能。 AI Agent的实现原理主要基

    2024年02月12日
    浏览(57)
  • 深度学习之详解常见梯度算法(概念、公式、原理、算法实现过程)

    目录 前言 一、如何实现梯度下降? 二、梯度计算 三、常见的梯度公式及梯度算法 常见的梯度公式: 1.标量对向量的梯度: 2. 标量对矩阵的梯度: 3. 向量对标量的梯度: 常见梯度算法: 四、常见梯度算法实现  1、批量梯度下降算法实现函数 2、随机梯度下降算法实现函数

    2024年04月15日
    浏览(44)
  • 智能优化算法——灰狼优化算法(Python&Matlab实现)

    目录 1 灰狼优化算法基本思想 2 灰狼捕食猎物过程 2.1 社会等级分层 2.2 包围猎物 2.3 狩猎 2.4 攻击猎物 2.5 寻找猎物 3 实现步骤及程序框图 3.1 步骤 3.2 程序框图 4 Python代码实现 5 Matlab实现 灰狼优化算法是一种群智能优化算法,它的独特之处在于 一小部分 拥有绝对话语权的灰

    2024年02月15日
    浏览(59)
  • Matlab群体智能优化算法之鹈鹕优化算法(POA)

    Pelican Optimization Algorithm: A Novel Nature-Inspired Algorithm for Engineering Applications 参考文献:Trojovský P, Dehghani M. Pelican Optimization Algorithm: A Novel Nature-Inspired Algorithm for Engineering Applications[J]. Sensors, 2022, 22(3): 855. 注:仅记录学习,如有侵权,联系删除。 The behavior and strategy of pelicans when

    2023年04月08日
    浏览(43)
  • MATLAB智能优化算法 - 粒子群算法及MATLAB实例仿真

    粒子群算法来源于鸟类集体活动的规律性,进而利用群体智能建立简化模型。它模拟的是鸟类的觅食行为,将求解问题的空间比作鸟类飞行的时间,每只鸟抽象成没有体积和质量的粒子,来表征一个问题的可行解。 粒子群算法首先在给定的解空间中随机初始化粒子群,待优化

    2023年04月17日
    浏览(305)
  • 智能优化算法——哈里鹰算法(Matlab实现)

    目录 1 算法简介 2 算法数学模型 2.1.全局探索阶段 2.2 过渡阶段 2.3.局部开采阶段 3 求解步骤与程序框图 3.1 步骤 3.2 程序框图  4 matlab代码及结果 4.1 代码 4.2 结果  哈里斯鹰算法(Harris Hawks Optimization,HHO),是由Ali Asghar Heidari和Seyedali Mrjaili于2019年提出的一种新型仿生智能优化算

    2024年02月13日
    浏览(47)
  • 【Matlab】智能优化算法_遗传算法GA

    遗传算法(Genetic Algorithm,简称GA)是一种基于生物进化理论的优化算法,由John Holland于20世纪70年代初提出。它通过模拟自然选择和遗传机制,利用群体中个体之间的遗传信息交流和变异来搜索问题的解空间。 遗传算法的设计灵感来源于达尔文的进化论。达尔文提出,自然界

    2024年02月16日
    浏览(57)
  • Matlab之智能优化算法函数调用

    目录 1.句柄函数 2.遗传算法 3.粒子群算法 4.模拟退火 1.句柄函数         句柄函数即我们要求的目标函数,以下三种算法的调用仅是求解最小值,若要求目标函数的最大值,可在返回结果中加负号。 句柄函数图像:                          画图代码: 2.遗传算

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包