【群智能算法改进】一种改进的蝴蝶优化算法 改进蝴蝶优化算法 改进BOA[1]【Matlab代码#35】

文章目录

    • 【`获取资源`请见文章第5节:资源获取】
    • 1. 原始蝴蝶优化算法
    • 2. 改进蝴蝶优化算法
      • 2.1 动态转换概率策略
      • 2.2 最优邻域扰动策略
      • 2.3 随机惯性权重策略
    • 3. 部分代码展示
    • 4. 仿真结果展示
    • 5. 资源获取
    • 6. 参考文献


获取资源请见文章第5节:资源获取】


1. 原始蝴蝶优化算法

蝴蝶优化算法BOA是一种受启发于蝴蝶种群活动的最新群体智能优化算法,已经广泛应 用 在WSNs定 位、空气质量预警、工程优化、特征选择和云计算调度等领域。但基本BOA算法依然存在寻优精度低、收敛速度慢的不足,尤其在解决高维复杂问题时,算法的寻优稳定性、跳离局部最优能力的适应性依然还可以进一步提升性能。
【群智能算法改进】一种改进的蝴蝶优化算法 改进蝴蝶优化算法 改进BOA[1]【Matlab代码#35】_第1张图片
【群智能算法改进】一种改进的蝴蝶优化算法 改进蝴蝶优化算法 改进BOA[1]【Matlab代码#35】_第2张图片

2. 改进蝴蝶优化算法

2.1 动态转换概率策略

在原始BOA算法中,蝴蝶个体不管是在全局搜索还是局部开发阶段都是基于转换概率p值决定的,通常来说,这是一个人为设置设定的固定值,这就使得算法后期的收敛速度得不到保证。因此,本文将转换概率p调整为一个动态变化的值,从而提高算法后期的收敛速度。
在这里插入图片描述

2.2 最优邻域扰动策略

在BOA算法中,蝴蝶进入全局搜索阶段时,其位置更新方式决定了所有蝴蝶会朝着最优蝴蝶所在位置方向飞去,这就容易导致蝴蝶种群的多样性
降低,因此,在全局搜索阶段,需要对最优位置进行邻域扰动,加强对邻域空间的搜索,确保能够跳出局部最优。最优邻域扰动策略公式为:
在这里插入图片描述

2.3 随机惯性权重策略

在BOA算法中,蝴蝶进入局部搜索阶段后,虽是随机搜索,但仍主要是受前一位置影响且影响程度保持不变,这就容易导致在后期易容陷入局部最优,因此,在局部搜索阶段,需要通过随机惯性权重来改变前一位置对当前位置更新的影响。本文设计的随机惯性权重计算公式为:
在这里插入图片描述
从而可以将局部搜索阶段中蝴蝶的位置更新方式调整为:
在这里插入图片描述

3. 部分代码展示

p=0.8; % probabibility switch,开关概率
power_exponent=0.1; % 幂指数
sensory_modality=0.01; % 感觉因子

%Initialize the positions of search agents
Sol=initialization(n,dim,Ub,Lb);

for i=1:n
    Fitness(i)=fobj(Sol(i,:));
end

% Find the current best_pos
[fmin,I]=min(Fitness);
best_pos=Sol(I,:);
S=Sol; 

% Start the iterations -- Butterfly Optimization Algorithm 
for t=1:N_iter       
% ★★改进1:动态转换概率策略★★
p=0.6-0.1*((N_iter-t)/N_iter);

4. 仿真结果展示

【群智能算法改进】一种改进的蝴蝶优化算法 改进蝴蝶优化算法 改进BOA[1]【Matlab代码#35】_第3张图片
【群智能算法改进】一种改进的蝴蝶优化算法 改进蝴蝶优化算法 改进BOA[1]【Matlab代码#35】_第4张图片
【群智能算法改进】一种改进的蝴蝶优化算法 改进蝴蝶优化算法 改进BOA[1]【Matlab代码#35】_第5张图片

【群智能算法改进】一种改进的蝴蝶优化算法 改进蝴蝶优化算法 改进BOA[1]【Matlab代码#35】_第6张图片

5. 资源获取

可以获取完整代码资源。

6. 参考文献

改进蝴蝶优化算法及其在冗余机械臂逆运动学求解中的应用,孟广双,高德东。

你可能感兴趣的:(Matlab,#群智能算法改进,matlab,算法,人工智能)