• 多策略协同改进的阿基米德优化算法及其应用(Matlab代码实现)


     🍒🍒🍒欢迎关注🌈🌈🌈

    📝个人主页:我爱Matlab


    👍点赞➕评论➕收藏 == 养成习惯(一键三连)🌻🌻🌻

    🍌希望大家多多支持🍓~一起加油 🤗

    💬语录:将来的我一定会感谢现在奋斗的自己!

    🍁🥬🕒摘要🕒🥬🍁

    本文提出一种混沌阿基米德优化算法(CAOA)。采用混沌理论来提高基本算法的性能。所提出的方法使用混沌映射来更新具有最小成本函数的特定优化问题的候选解。

    阿基米德优化算法(AOA)是2020年Hashim等人提出的新型元启发式算法,该算法通过模仿完全或部分浸没在流体中的物体发生碰撞时所受浮力的关系,在迭代过程中不断调整个体密度、体积和加速度,从而使个体达到平衡状态,适应度值优的个体引导种群收敛到最优位置,达到寻优的目的。与传统的优化算法相比,元启发式算法具有控制参数少、易于实现、随机性大和适应性强等特点。然而,AOA同其他元启发式算法相似,存在全局搜索性能差、求解精度低和易陷入局部最优等缺陷。

    ✨🔎⚡运行结果⚡🔎✨

     

     

    💂♨️👨‍🎓Matlab代码👨‍🎓♨️💂

    clear;
    close all;
    clc;

    nPop=100;
    Maxit=20;
    nVar=2; %% number of optimization parameters
    C1=2;C2=6; C3=1;C4=2; u=.9;l=.1;   %%% The paramters of the algorithm


    %%%% Initialization

    lb=-4.5*ones(1,nVar); %%% same search area for different parameters
    ub=4.5*ones(1,nVar);

    % lb=[0*ones(1,D-1),0.000001]; %% different search area for each parameter
    % ub=[5*ones(1,D-1),0.5];

    for i=1:nPop
        X(i,:)=lb+rand(1,nVar).*(ub-lb);
        Y(i)=cost(X(i,:));
        den(i,:)=rand(1,nVar); 
        vol(i,:)=rand(1,nVar);
        acc(i,:)=lb+rand(1,nVar).*(ub-lb);
    end

    [Scorebest, Score_index] = min(Y);
    Xbest = X(Score_index,:);
    den_best=den(Score_index,:);
    vol_best=vol(Score_index,:);
    acc_best=acc(Score_index,:);
    acc_norm=acc;

    chnum=1;  %%% selection of chaotic map  chnum=1,...,10
    chstart=0.65;  %%% starting point for chaotic map
    chmap=ch_map(chnum,chstart,Maxit);


    for it = 1:Maxit
        
        TF(it)=exp(((it-Maxit)/(Maxit)))+(-0.2+0.4*chmap(it));  %%%% TF + chaotic_value
        
    %     TF(t)=exp(((t-Maxit)/(Maxit))); %%%% Basic algorithm


        if TF(it)>1
            TF(it)=1;
        end
        d=exp((Maxit-it)/Maxit)-(it/Maxit); 
        acc=acc_norm;
        r=rand();
        for i=1:nPop
            den(i,:)=den(i,:)+r*(den_best-den(i,:));   
            vol(i,:)=vol(i,:)+r*(vol_best-vol(i,:));
            if TF(it) < 0.45     
                mr=randi(nPop);
                acc_temp(i,:)=(den(mr,:)+(vol(mr,:).*acc(mr,:)))./(rand*den(i,:).*vol(i,:));   
            else
                acc_temp(i,:)=(den_best+(vol_best.*acc_best))./(rand*den(i,:).*vol(i,:));   
            end
        end

    📜📢🌈参考文献🌈📢📜

    [1]罗仕杭,何庆.融合Sin混沌和分段权值的阿基米德优化算法[J].计算机工程与应用,2022,58(14):63-72.

  • 相关阅读:
    idea修改颜色
    【网页前端】CSS的基本样式边框、布局、字体
    一次性生物反应器袋充气压力更安全、精密和快速的控制方法
    Java升级:JDK 9新特性全面解析“
    线段树区间查改(懒标记+代码细节)
    使用构建缓存优化 Docker 镜像构建
    MindSpore,易用性提升的思考与实践
    springcloud 项目扫描不到mybatics的xml文件;
    [附源码]Python计算机毕业设计Django面向高校活动聚App
    详解为什么v-if和v-for不能同时使用
  • 原文地址:https://blog.csdn.net/m0_73907476/article/details/127999080