文章目录
- 【`获取资源`请见文章第5节:资源获取】
- 1. 原始蝴蝶优化算法
- 2. 改进蝴蝶优化算法
- 2.1 动态转换概率策略
- 2.2 最优邻域扰动策略
- 2.3 随机惯性权重策略
- 3. 部分代码展示
- 4. 仿真结果展示
- 5. 资源获取
- 6. 参考文献
【获取资源
请见文章第5节:资源获取】
1. 原始蝴蝶优化算法
蝴蝶优化算法BOA是一种受启发于蝴蝶种群活动的最新群体智能优化算法,已经广泛应 用 在WSNs定 位、空气质量预警、工程优化、特征选择和云计算调度等领域。但基本BOA算法依然存在寻优精度低、收敛速度慢的不足,尤其在解决高维复杂问题时,算法的寻优稳定性、跳离局部最优能力的适应性依然还可以进一步提升性能。
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. 仿真结果展示
5. 资源获取
可以获取完整代码资源。
6. 参考文献
改进蝴蝶优化算法及其在冗余机械臂逆运动学求解中的应用,孟广双,高德东。