2025年3月一区SCI-梦境优化算法Dream Optimization Algorithm-附Matlab免费代码

引言

本期介绍了一种新的受人类做梦行为启发的求解优化问题的元启发式算法-梦境优化算法Dream Optimization Algorithm ,DOA,梦具有部分记忆保留、遗忘和逻辑自组织等特征,与元启发式算法中的优化过程有很强的相似性。该算法于2025年3月最新发表在中科院1区SCI期刊 Computer Methods in Applied Mechanics and Engineering。

图片

参考文献

[1] Yifan Lang, Yuelin Gao. Dream Optimization Algorithm (DOA): A novel metaheuristic optimization algorithm inspired by human dreams and its applications to real-world engineering problems. Computer Methods in Applied Mechanics and Engineering. https://doi.org/10.1016/j.cma.2024.117718.

Matlab代码下载

微信搜索并关注-优化算法侠(英文名:Swarm-Opti),或扫描下方二维码关注,以算法名字搜索历史文章即可下载。

function [fbest,sbest,fbest_history] = DOA(pop,T,lb,ub,D,fobj);
% 关注微信公众号:优化算法侠
%pop stands for population size
%T represents the maximum number of population iteration
%lb represents the lower bound of the search space
%ub represents the upper bound of the search space
%D represents the dimension of the problem
%fobj represents the objective function
lb=lb.*ones(1,D);   
ub=ub.*ones(1,D);                            %Ensure that the dimensions of the upper and lower bounds match the dimensionality of the problem
x =initialization(pop,D,ub,lb);              %Initialize the population
SELECT=1:pop;                                      
sbest=ones(1,D);                             %sbest is the current optimal solution
sbestd=ones(5,D);                            %sbestd represents the current optimal solution for each of the 5 groups
fbest=inf;                                   %fbest is the current optimal value
fbestd=ones(5,1);                            %fbestd represents the current optimal value for each of the 5 groups
fbest_history=ones(1,T);                     %fbest_history is a vector composed of the best values of each generation
for i = 1:5
      fbestd(i)=fbest;
end   
              
for i=1:(9*T/10)                                               %Exploration phase
      for m=1:5                                                %Divide into 5 groups       
         k=randi([ceil(D/8/m),ceil(D/3/m)]);            
         for j=(((m-1)/5*pop)+1) : (m/5*pop)                 
                     if (fobj(x(j,:)) <fbestd(m))
                      sbestd(m,:)=x(j,:);                         
                      fbestd(m)=fobj(x(j,:));                  %Update the optimal value and solution for each group
                     end
         end
          for j=(((m-1)/5*pop)+1) : (m/5*pop)
           x(j,:)=sbestd(m,:);                                  %Memory strategy
           in=randperm(D,k);        
           if rand<0.9
               for h=1:k
                   x(j,in(h))=x(j,in(h))+(rand*(ub(in(h))-lb(in(h)))+lb(in(h)))*(cos((1*i+T/10)*pi/T)+1)/2;      %Forgetting and supplementation strategy
                if (x(j,in(h))>ub(in(h))) | (x(j,in(h))<lb(in(h)))   
                    if D>15                                      %The boundary handling method when the problem dimensionality>15
                     select=SELECT;     
                     select(j)=[];
                     sel=select(randi(pop-1));                             
                     x(j,in(h))=x(sel,in(h)); 
                    else                                          %The boundary handling method when the problem dimensionality<=15
                     x(j,in(h))=rand*(ub(in(h))-lb(in(h)))+lb(in(h));                
                    end  
                 end
               end
            else
               for h=1:k                       
                   x(j,in(h))=x(randi(pop),in(h));                                      
               end
             end
          end     
            if (fbestd(m)<fbest)            %Update the optimal value and solution for the entire population
               fbest=fbestd(m);
               sbest=sbestd(m,:);
            end
      end                                               
fbest_history(i)=fbest;                                                                  
end
for i=((9*T/10)+1):T                        %Exploitation phase
      for p=1 : pop                     
          if (fobj(x(p,:)) <fbest)          %Update the optimal value and solution for the entire population
          sbest=x(p,:);
          fbest=fobj(x(p,:));
          end                                                                                             
      end                               
    for j=1:pop
        fitness(j,:)=fobj(x(j,:));
        km=max(2,ceil(D/3));
        k=randi([2,km]);
        x(j,:)=sbest;
        in=randperm(D,k); 
        for h=1:k
            x(j,in(h))=x(j,in(h))+(rand*(ub(in(h))-lb(in(h)))+lb(in(h)))*(cos((i)*pi/T)+1)/2;     %Forgetting and supplementation strategy              
            if (x(j,in(h))>ub(in(h))) | (x(j,in(h))<lb(in(h)))   
                if D>15                                      %The boundary handling method when the problem dimensionality>15
                select=SELECT;     
                select(j)=[];
                sel=select(randi(pop-1));                             
                x(j,in(h))=x(sel,in(h)); 
                else                                          %The boundary handling method when the problem dimensionality<=15
                   x(j,in(h))=rand*(ub(in(h))-lb(in(h)))+lb(in(h));                
                end  
            end
        end
      end
fbest_history(i)=fbest;                                                                  
end          
end

2025年3月一区SCI-梦境优化算法Dream Optimization Algorithm-附Matlab免费代码

点击链接跳转:

375种群优化算法免费下载-matlab

https://mp.weixin.qq.com/s/AsFTBmaZ8UOgES9TQuL0Kg?token=1339859150&lang=zh_CN

求解cec测试函数-matlab 

cec2017测试函数使用教程及matlab代码免费下载

cec2018测试函使用教程及matlab代码免费下载

cec2019测试函使用教程及matlab代码免费下载

cec2020测试函使用教程及matlab代码免费下载

cec2021测试函使用教程及matlab代码免费下载

cec2022测试函使用教程及matlab代码免费下载
绘制cec2017/018/2019/2020/2021/2022函数的三维图像教程,SO EASY!

215种群智能优化算法python库

Amazing!Python版215种群智能优化算法icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=1&sn=6b439e55b37b6482b8d3831ca85f1d55&chksm=c12be0c8f65c69de71ad51d3b736b871ff52f8646e90624f95dd32b024dfaad369d654aaf8fc#rd

解决12工程设计优化问题-matlab

略微出手,工程设计问题(12)(附Matlab代码)icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485052&idx=1&sn=80e5573c1c005ee5640e44935044ee35&chksm=c12bea79f65c636fc73758b4f4893502bd89cbd1c5d15d7db15e8b5c94eeae40450439d44944&token=681266555&lang=zh_CN#rd

求解11种cec测试函数-python

【选择自由,免费下载】215种优化算法求解11种cec测试函数-python代码icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=2&sn=eea8fb04dc507ab9119e2c97c03ca2f6&chksm=c12be0c8f65c69decd6c8109f6b997986bf58725fdbbd7ab03752cb6f61aacdb5a2dc7fec762#rd

解决30种工程设计优化问题-python

【一码解决】215种优化算法求解30个现实世界的工程设计优化问题,让你的论文增色10倍(附Python代码)icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=3&sn=ea6d26ae7cb651e5c368f4c73ade228e&chksm=c12be0c8f65c69de739af72d9793838f59ab77bfee36bc2c204f96e2a9e5c6d87dfbbbae698e#rd

仅需一行,可改进所有优化算法:21种混沌映射方法-混沌初始化(附matlab代码)

用于改进所有优化算法:21种混沌映射方法-混沌初始化(附matlab代码)21种混沌映射方法-混沌初始化,适用于所有优化算法icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486215&idx=2&sn=58f1a69175b0d6431a4c7cdfa114b84d&chksm=c12be702f65c6e14e6bd1ddc33b9cec74991d93303c325853049b7e4afd09039b13083fa79c5&token=25423484&lang=zh_CN#rd

【有经典,有最新】24种信号分解方法(附matlab代码) 

沙场大点兵:24种信号分解方法(附matlab代码)icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486001&idx=1&sn=a87c24cb401017a78a90bd1b1439fcb0&chksm=c12be634f65c6f22368b7229a59ac5ef330b89d710c826dbfd1a1c34a02b1dd7e909c7f40d79&token=25423484&lang=zh_CN#rd

 【分类新范式】27种一维数据转换成二维图像的方法-matlab代码

沙场大点兵:27种一维数据转换成二维图像的方法-matlab代码icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486260&idx=1&sn=81b1970cb89364c0289ccdfb403e5388&chksm=c12be731f65c6e273a85456326b503b7f35d9f035405050932ff1926e0b1bfa8076b1bc2d1f2&token=25423484&lang=zh_CN#rd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值