ToB企服应用市场:ToB评测及商务社交产业平台

标题: Matlab|混合战略改进的蝴蝶优化算法 [打印本页]

作者: 用户国营    时间: 2024-6-11 10:00
标题: Matlab|混合战略改进的蝴蝶优化算法
目次

1 主要内容
2 部分代码
3 程序结果
4 下载链接


主要内容

程序主要对蝴蝶算法(BOA)举行改进,参考文献《基于改进蝴蝶优化算法的冗余机器人逆活动学求解》,有如下改进战略:




1.1 改进详细模型





改进惯性权重方法比较常见,不同的非线性函数能够得到不同的优化方法,程序中采用sin函数构造惯性权重的进化曲线,固然大家在编程过程中也可以采用其他非线性函数,如Sigmoid函数(见下图),乃至可以用分段方式提高算法的创新性。



   转自《一种改进惯性权重的混沌粒子群优化算法》—谷晓琳  部分代码

  1. function [fmin,best_pos,Convergence_curve]=IBOA(n,N_iter,Lb,Ub,dim,fobj)
  2. p=0.8; % probabibility switch,开关概率
  3. power_exponent=0.1; % 幂指数
  4. sensory_modality=0.01; % 感觉因子
  5. %Initialize the positions of search agents
  6. % Sol=initialization(n,dim,Ub,Lb);
  7. % ★★改进1:反向学习种群初始化★★
  8. Sol_forward=initialization_for(n,dim,Ub,Lb);
  9. Sol_backward=initialization_back(Sol_forward,n,dim,Ub,Lb);
  10. Sol_all=[Sol_forward;Sol_backward];
  11. for i = 1:2*n
  12.     Sol_all_fitness(i)=fobj(Sol_all(i,:));
  13. end
  14. [~,sorted_indexes]=sort(Sol_all_fitness);
  15. for i = 1:n
  16.     Sol(i,:)=Sol_all(sorted_indexes(i),:);
  17. end
  18. for i=1:n
  19.     Fitness(i)=fobj(Sol(i,:));
  20. end
  21. % Find the current best_pos
  22. [fmin,I]=min(Fitness);
  23. best_pos=Sol(I,:);
  24. S=Sol;
  25. % Start the iterations -- Butterfly Optimization Algorithm
  26. for t=1:N_iter
  27.         
  28.         for i=1:n% Loop over all butterflies/solutions
  29.          
  30.           %Calculate fragrance of each butterfly which is correlated with objective function,计算与目标函数相关的每只蝴蝶的香味
  31.           Fnew=fobj(S(i,:));
  32.           FP=(sensory_modality*(Fnew^power_exponent)); % 每只蝴蝶的香味
  33.           %Global or local search
  34.           if rand
复制代码
2:全局搜刮阶段引入柯西变异★★ ori_value = rand(1,dim);
程序结果

混合战略改进蝴蝶算法提供了23种测试函数,可以通过main程序修改测试函数,程序Get_Functions_detailsPRO有具体每个测试函数的公式,下面得到F2和F5两种测试函数下的原始算法和改进算法收敛性对比。
测试函数F2:





测试函数F5:




4 下载链接


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4