全局优化的蝴蝶优化算法-附代码
  yOv1KlRBtRV9 2023年11月02日 91 0


全局优化的蝴蝶优化算法


文章目录

  • 全局优化的蝴蝶优化算法
  • 1.蝴蝶优化算法
  • 2. 改进蝴蝶优化算法
  • 2.1 limit 阈值
  • 2.2 单纯形法
  • 2.3正弦余弦指引机制
  • 3.实验结果
  • 4.参考文献
  • 5.Matlab代码
  • 6.Python代码



摘要:针对基本蝴蝶优化算法中存在的易陷入局部最优值、收敛速度慢等问题,提出一种全局优化的蝴蝶算法,引入limit阈值来限定蝴蝶优化算法陷入局部最优解的次数,从而改变算法易陷入早熟的问题,结合单纯形策略优化迭代后期位置较差的蝴蝶使种群能够较快地找到全局最优解;将正弦余弦算法作为局部算子融入BOA中,改善迭代后期种群多样性下降的缺陷,加快算法跳出局部最优。

1.蝴蝶优化算法

2. 改进蝴蝶优化算法

2.1 limit 阈值

本文参考人工蜂群算法 全局优化的蝴蝶优化算法-附代码_算法 中侦察蜂阶段引入了观察可行 解的停滞次数 limit 阈值从而跳出局部最优, 较快地寻得全局 最优解的思想, 引入 limit 阈值来克服算法易陷入局部最优问 题。limit 阈值机制是在预先设定极限值 (limit) 的条件下,通过 观察可行解的停滞次数是否达到 limit 值来进行循环迭代, 若 在 limit 代中某个个体的位置没有改变, 则抛育当前解, 重新生 成下一个解进行下一代的进化。
通过分析基本 BOA 可知, 随着算法迭代次数的增加, 蝴蝶 个体将逐渐向适应度较优的个体飞行从而使得种群分布缩小, 种群的多样性呈现下降趋势, 导致算法陷入局部最优。因此引 入 limit 阈值来限定蝴蝶优化算法陷入局部最优解的次数, 从 而改变算法易陷入早熟的问题。阈值 limit 的取值会影响算法 寻优能力, 若取值过大则对算法改进甚微; 反之, 取值过小则会 导致算法的局部开发能力被减弱, 且算法更新频繁。通过多次 测试, 本文将阈值 limit 设定为 60 时效果比较好。

2.2 单纯形法

具体过程如下:
a) 评价蝴蝶种群中所有个体, 从中选出最优的蝴蝶 全局优化的蝴蝶优化算法-附代码_机器学习_02 和 次优的蝴蝶 全局优化的蝴蝶优化算法-附代码_优化算法_03, 设 全局优化的蝴蝶优化算法-附代码_优化算法_04 是要被抛弃的蝴蝶, 全局优化的蝴蝶优化算法-附代码_迭代_05全局优化的蝴蝶优化算法-附代码_优化算法_04 的适应度 值分别是 全局优化的蝴蝶优化算法-附代码_机器学习_07全局优化的蝴蝶优化算法-附代码_人工智能_08
b) 计算出 全局优化的蝴蝶优化算法-附代码_机器学习_02全局优化的蝴蝶优化算法-附代码_优化算法_03 的中点, 记为 全局优化的蝴蝶优化算法-附代码_人工智能_11
全局优化的蝴蝶优化算法-附代码_迭代_12
c) 执行反射操作。
全局优化的蝴蝶优化算法-附代码_迭代_13
其中: 全局优化的蝴蝶优化算法-附代码_算法_14 是根据 全局优化的蝴蝶优化算法-附代码_优化算法_04 得到的反射点; 全局优化的蝴蝶优化算法-附代码_迭代_16 是反射系数, 通常取 1 。
d) 若 全局优化的蝴蝶优化算法-附代码_算法_17, 则进行扩张操作, 得到扩张点 全局优化的蝴蝶优化算法-附代码_迭代_18
全局优化的蝴蝶优化算法-附代码_人工智能_19
其中:扩张系数 全局优化的蝴蝶优化算法-附代码_算法_20 。若 全局优化的蝴蝶优化算法-附代码_算法_21, 就用 全局优化的蝴蝶优化算法-附代码_迭代_18 替换 全局优化的蝴蝶优化算法-附代码_优化算法_04, 否则 用 全局优化的蝴蝶优化算法-附代码_算法_14 替换 全局优化的蝴蝶优化算法-附代码_优化算法_04
e) 若 全局优化的蝴蝶优化算法-附代码_优化算法_26, 进行压缩操作, 得到压缩点 全局优化的蝴蝶优化算法-附代码_迭代_27
全局优化的蝴蝶优化算法-附代码_机器学习_28
其中: 全局优化的蝴蝶优化算法-附代码_迭代_29 。若 全局优化的蝴蝶优化算法-附代码_迭代_30, 则用压缩点 全局优化的蝴蝶优化算法-附代码_迭代_27 替换 全局优化的蝴蝶优化算法-附代码_优化算法_04
f) 若 全局优化的蝴蝶优化算法-附代码_算法_33, 进行收缩。
全局优化的蝴蝶优化算法-附代码_算法_34
其中: 全局优化的蝴蝶优化算法-附代码_优化算法_35 是收缩点; 收缩系数 全局优化的蝴蝶优化算法-附代码_优化算法_36 则用 全局优化的蝴蝶优化算法-附代码_优化算法_35 替 换 全局优化的蝴蝶优化算法-附代码_优化算法_04, 否则用 全局优化的蝴蝶优化算法-附代码_算法_14 替换 全局优化的蝴蝶优化算法-附代码_优化算法_04

2.3正弦余弦指引机制

本文引入正弦与余弦算法 全局优化的蝴蝶优化算法-附代码_迭代_41, 在算法的迭代后期, 让所有 的蝴蝶个体进行正弦余弦操作, 来优化蝴蝶个体进行位置更 新。具体的操作方式为

全局优化的蝴蝶优化算法-附代码_机器学习_42

其中含有四个参数 全局优化的蝴蝶优化算法-附代码_优化算法_43 决定在下一次迭代第 全局优化的蝴蝶优化算法-附代码_人工智能_44 个 个体的位置更新方向, 全局优化的蝴蝶优化算法-附代码_迭代_45 的范围影响着搜索空间的范围, 全局优化的蝴蝶优化算法-附代码_优化算法_46 全局优化的蝴蝶优化算法-附代码_算法_47, 迭代次数的变化会缩小蝴蝶个体的搜索范围, 有 效地保证了算法的收敛性, 使其最终收敛到一个最优值, 全局优化的蝴蝶优化算法-附代码_迭代_16 是 一个常数, 本文中 全局优化的蝴蝶优化算法-附代码_人工智能_49全局优化的蝴蝶优化算法-附代码_迭代_50 的随机数, 它决定下一次 迭代中个体的移动距离; 全局优化的蝴蝶优化算法-附代码_迭代_51 是随机权重, 取值为 全局优化的蝴蝶优化算法-附代码_迭代_52 时, 全局优化的蝴蝶优化算法-附代码_人工智能_53 对下一代迭代中个体的位置更新具有明显的影响, 否则 没有影响效果; 全局优化的蝴蝶优化算法-附代码_优化算法_54全局优化的蝴蝶优化算法-附代码_优化算法_55 产生的一个随机数, 全局优化的蝴蝶优化算法-附代码_优化算法_54 决定蝴蝶个 体的位置更新方式是正弦还是余弦操作。

在蝴蝶进行局部寻优时, 引入正弦余弦算法进行个体位置 更新操作,这种位置更新策略可以改善蝴蝶个体与最优个体之 间的信息交流机制, 避免寻优个体的斍目性, 克服算法在迭代后 期容易陷入局部最优的缺陷。在这个过程中, 参数 全局优化的蝴蝶优化算法-附代码_优化算法_57 可以 有效地控制搜索的距离和方向。正弦操作能够有效地保证全局 寻优得到潜在的最优解, 来减少余弦搜索的斍目性, 降低个体陷 入局部最优的可能性; 余弦操作可以促进迭代后期的局部搜索 能力, 进一步弥补迭代后期寻优速度下降的问题, 有效地保证了 寻优的效率。正余双弦相互作用, 共同提高算法的寻优性能。

全局优化的蝴蝶优化算法-附代码_人工智能_58

3.实验结果

全局优化的蝴蝶优化算法-附代码_优化算法_59

4.参考文献

[1]高文欣,刘升,肖子雅,于建芳.全局优化的蝴蝶优化算法[J].计算机应用研究,2020,37(10):2966-2970.

5.Matlab代码

6.Python代码


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

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

暂无评论

推荐阅读
  I7LiCMSIjWYz   2023年11月02日   46   0   0 人工智能区块链
yOv1KlRBtRV9