一种改进的蝴蝶优化算法-附代码
  yOv1KlRBtRV9 2023年11月02日 240 0


一种改进的蝴蝶优化算法


文章目录

  • 一种改进的蝴蝶优化算法
  • 1.蝴蝶优化算法
  • 2. 改进蝴蝶优化算法
  • 2.1 差分进化算法
  • 2.2 精英策略
  • 3.实验结果
  • 4.参考文献
  • 5.Matlab代码
  • 6.Python代码



摘要:本文针对基本的蝴蝶优化算法存在收敛速度慢、精度低和易陷入局部最优等缺陷,提出一种改进的蝴蝶优化算法.首先通过实验分析参数对算法的影响,其次融入差分进化策略和精英策略。

1.蝴蝶优化算法

2. 改进蝴蝶优化算法

2.1 差分进化算法

差分进化算法是 Storn 和 Price 在 1995 年首次提出的优化方法, 该算法是一类基于群体 的自适应全局优化算法, 与遗传算法非常类似, 它整个进化过程包括变异、交叉和选择.
变异操作: 在每一次迭代中其变异过程是通过在种群中选择 3 个不同的个体, 通过式 (6) 产生新的个体:
一种改进的蝴蝶优化算法-附代码_概率论
其中, 一种改进的蝴蝶优化算法-附代码_算法_02 控制变异的概率. 交叉操作: 新个体 一种改进的蝴蝶优化算法-附代码_机器学习_03 与当前个体 一种改进的蝴蝶优化算法-附代码_机器学习_04 通过式 (7) 交叉操作形成个体 一种改进的蝴蝶优化算法-附代码_差分_05.
一种改进的蝴蝶优化算法-附代码_差分_06
其中, 一种改进的蝴蝶优化算法-附代码_优化算法_07 之间的交叉率, rand 为 一种改进的蝴蝶优化算法-附代码_差分_08 之间的随机数. 选择操作: 经过变异和交叉生成的个体 一种改进的蝴蝶优化算法-附代码_优化算法_09 和目标个体 一种改进的蝴蝶优化算法-附代码_机器学习_04 通过式 (8) 更新种群.
一种改进的蝴蝶优化算法-附代码_概率论_11

2.2 精英策略

在最优解附近产生符合正态分布的随机数. 使用如下式 (9):
一种改进的蝴蝶优化算法-附代码_机器学习_12
式 (9) 中 best 为当前最优解, 一种改进的蝴蝶优化算法-附代码_算法_13

一种改进的蝴蝶优化算法-附代码_优化算法_14 没有充分利用种群个体之间的交互信息. 针对 BOA 的不足, 再结合差分进化算法 和精英策略的优势形成 IBOA, 具体实施的伪代码如下:
步骤 1 初始化各参数及种群空间并求解当前空间最优值 fmin 及最优解 best.
步骤 2 for 一种改进的蝴蝶优化算法-附代码_算法_15 : Ngen
for 一种改进的蝴蝶优化算法-附代码_机器学习_16 表示种群数目 一种改进的蝴蝶优化算法-附代码_差分_17
利用式 (1) 计算 一种改进的蝴蝶优化算法-附代码_优化算法_18
If rand 一种改进的蝴蝶优化算法-附代码_差分_19 表示全局和局部之间的概率转换 一种改进的蝴蝶优化算法-附代码_差分_17
利用公式 (2) 计算 一种改进的蝴蝶优化算法-附代码_算法_21
else
利用公式 (3) 计算 一种改进的蝴蝶优化算法-附代码_算法_21
end
计算 Fnew, if Fnew 一种改进的蝴蝶优化算法-附代码_机器学习_23 fmin, 则替换原来的最优值 fmin 及最最优解 best.
融入差分进化算法

重新计算 Fnew, if Fnew 一种改进的蝴蝶优化算法-附代码_机器学习_23 fmin, 则替换原来的最优值 fmin 及最最优解 best. 利用式 (9) 进行局部搜索
重新计算 Fnew, if Fnew 一种改进的蝴蝶优化算法-附代码_机器学习_23 fmin, 则替换原来的最优值 fmin 及最最优解 best. 利用公式 (4) 调整变量 c
end
end
步骤 3 输出最优值 fmin 及最最优解 best.

3.实验结果

一种改进的蝴蝶优化算法-附代码_机器学习_26

4.参考文献

[1]谢聪,封宇.一种改进的蝴蝶优化算法[J].数学的实践与认识,2020,50(13):105-115.

5.Matlab代码

6.Python代码


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
yOv1KlRBtRV9