1 简介

针对蝴蝶优化算法(BOA)容易陷入局部最优和收敛性差等问题,提出一种多策略改进的蝴蝶优化算法(MSBOA).首先引入余弦相似度位置调整策略,通过旋转变化算子和伸缩变换算子进行位置更新,从而有效地保持BOA的种群多样性;其次引入动态切换概率,来平衡BOA局部阶段和全局阶段的转换;最后增加混合惯性权重策略,以提高BOA的收敛速度.使用16个基准测试函数,Wilcoxon检验以及部分CEC2014函数来验证MSBOA的有效性和鲁棒性.仿真实验结果表明,与BOA和其他改进策略BOA及其他群智能算法相比,MSBOA在收敛精度和收敛速度上有明显的提升.

【智能优化算法】基于混合策略改进的蝴蝶优化算法(MSBOA)求解单目标优化问题matlab代码_优化算法

【智能优化算法】基于混合策略改进的蝴蝶优化算法(MSBOA)求解单目标优化问题matlab代码_最优解_02

【智能优化算法】基于混合策略改进的蝴蝶优化算法(MSBOA)求解单目标优化问题matlab代码_最优解_03

【智能优化算法】基于混合策略改进的蝴蝶优化算法(MSBOA)求解单目标优化问题matlab代码_优化算法_04

2 部分代码


          
          
function [fmin, best_pos, Curve] = BOA(X, N, Max_iter, lb, ub, dim, fobj)
%% BOA参数
p = 0.8; % 开关概率
power_exponent = 0.1;
sensory_modality = 0.01;
for i = 1:N
fitness(i) = fobj(X(i, :));
end
% 最优解
[fmin, I] = min(fitness);
best_pos = X(I, :);
S = X;
%% 迭代
for t = 1:Max_iter
for i = 1:N
% 计算与目标函数相关的每只蝴蝶的香味
Fnew = fobj(S(i, :));
FP = (sensory_modality*(Fnew^power_exponent));
% 全局或局部搜索
if rand < p
dis = rand * rand * best_pos - X(i, :); % Eq. (2) in paper
S(i, :) = X(i, :)+dis*FP;
else
% 在附近随机找蝴蝶
epsilon = rand;
JK = randperm(N);
dis = epsilon*epsilon*X(JK(1), :)-X(JK(2), :);
S(i, :) = X(i, :)+dis*FP; % Eq. (3) in paper
end
% 边界处理
S(i, :) = simplebounds(S(i, :), lb, ub);
% 新的个体适应度值
Fnew = fobj(S(i, :)); % Fnew represents new fitness values
% If fitness improves (better Xutions found), update then
if Fnew <= fitness(i)
X(i, :) = S(i, :);
fitness(i) = Fnew;
end
% 更新当前全局最优解
if Fnew <= fmin
best_pos = S(i, :);
fmin = Fnew;
end
end
Curve(t) = fmin;
% 更新感觉因子
sensory_modality = sensory_modality_NEW(sensory_modality, Max_iter);
disp(['BOA: At iteration ', num2str(t), ' ,the best fitness is ', num2str(Curve(t))]);
end
%% 边界限制函数
function s = simplebounds(s, Lb, Ub)
s = max(s, Lb);
s = min(s, Ub);
end
function y=sensory_modality_NEW(x, Ngen)
y = x+(0.025/(x*Ngen));
end
end
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.

3 仿真结果

【智能优化算法】基于混合策略改进的蝴蝶优化算法(MSBOA)求解单目标优化问题matlab代码_最优解_05

【智能优化算法】基于混合策略改进的蝴蝶优化算法(MSBOA)求解单目标优化问题matlab代码_优化算法_06

4 参考文献

[1]陈俊, 何庆. 基于余弦相似度的改进蝴蝶优化算法[J]. 计算机应用, 2021, 41(9):10.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【智能优化算法】基于混合策略改进的蝴蝶优化算法(MSBOA)求解单目标优化问题matlab代码_最优解_07