混合策略改进的蝴蝶优化算法-附代码
  yOv1KlRBtRV9 2023年11月02日 49 0


混合策略改进的蝴蝶优化算法


文章目录

  • 混合策略改进的蝴蝶优化算法
  • 1.蝴蝶优化算法
  • 2. 改进蝴蝶优化算法
  • 2.1 混沌映射初始化
  • 2.2 融合改进正弦余弦算法的局部搜索
  • 2.3 自适应权重系数
  • 2.4 逐维变异策略
  • 3.实验结果
  • 4.参考文献
  • 5.Matlab代码
  • 6.Python代码



摘要:针对蝴蝶优化算法存在的求解精度低、易陷入局部最优等缺陷,提出混合策略改进的蝴蝶优化算法。首先,利用Circle映射初始化蝴蝶个体的位置,增加初始个体的多样性;其次,在局部搜索阶段利用动态切换概率控制改进正弦余弦算法与蝴蝶优化算法的转换,充分利用少量的蝴蝶个体,增强算法的局部开发能力;然后,在全局和局部位置更新处引入自适应余切权重系数,控制蝴蝶个体下一代的移动方向和距离,提高算法的收敛速度和精度;最后,引入逐维变异策略,对全局最优位置变异,引导种群向最优位置进化,避免陷入局部最优。

1.蝴蝶优化算法

2. 改进蝴蝶优化算法

2.1 混沌映射初始化

蝴蝶优化算法是在搜索空间中随机初始化种群的位置,
但是利用这种随机化方式生成初始种群, 有可能会导致蝴蝶 个体的位置分布不均匀。考虑到混沌具有随机性、非周期性 等特点, 可以利用混沌序列对蝴蝶个体位置进行初始化。目 前存在多种不同的混沌映射 [14], 主要有 Logistic 映射、 Chebyshev 映射、Tent 映射、Circle 映射等。而利用 Circle 映 射初始化种群的方法在智能优化算法中还很少被使用, 因此 本文采用 Circle 映射初始化蝴蝶个体位置, 先利用 Circle 映 射关系将变量映射到混沌变量空间内, 然后再将产生的混沌 变量通过线性变换映射到需要优化的解空间, Circle 映射具 体表达式如下:
混合策略改进的蝴蝶优化算法-附代码_算法
其中, 混合策略改进的蝴蝶优化算法-附代码_人工智能_02

2.2 融合改进正弦余弦算法的局部搜索

混合策略改进的蝴蝶优化算法-附代码_初始化_03 算法在局部搜索过程中, 由于蝴蝶个体移动的范围 较小, 容易陷入局部最优。而 混合策略改进的蝴蝶优化算法-附代码_算法_04 算法具有较强的全局探测 能力和局部开发能力, 因此在 BOA 算法的局部搜索阶段中 融入 SCA 算法, 可以使局部搜索过程中少量的蝴蝶个体得到 充分地利用, 并且指引蝴蝶个体向目标位置移动, 增强算法 的局部开发能力。若切换概率设为常数, 不利于平衡 混合策略改进的蝴蝶优化算法-附代码_算法_04 算 法和 BOA 算法的局部开发能力, 因此本文利用一个随迭代 次数自适应变化、函数范围变化较小、前期变化较慢后期变 化较快的切换概率来控制在局部搜索阶段使用哪种位置更新 方式, 在算法局部寻优的前期能够充分利用局部范围内的个 体, 在局部寻优的后期能够快速地收玫到最优个体, 切换概 率 混合策略改进的蝴蝶优化算法-附代码_优化算法_06 的计算公式如下:
混合策略改进的蝴蝶优化算法-附代码_搜索_07
其中 混合策略改进的蝴蝶优化算法-附代码_优化算法_08iter 分别为当前迭代代数和最大迭代次数。当 rand 混合策略改进的蝴蝶优化算法-附代码_人工智能_09 时, 算法采用正弦余弦算法进行位置更新操作, 反之, 算法采用 混合策略改进的蝴蝶优化算法-附代码_初始化_03 算法原来的局部位置更新公式, 这里的 rand 并不是 混合策略改进的蝴蝶优化算法-附代码_初始化_11 之间的随机数, 其范围为 混合策略改进的蝴蝶优化算法-附代码_初始化_12
混合策略改进的蝴蝶优化算法-附代码_初始化_13 节可知, 在 SCA 算法中, 转换参数 混合策略改进的蝴蝶优化算法-附代码_搜索_14 发挥着关键 作用, 正弦与余弦的范围通过式(5)自适应的改变, 从而平衡 算法的全局搜索和局部开采。但是这种线性递减的方式使算法容易陷入局部最优, 因此提出一种非线性单调递减的凸函 数作为转换参数来更好地平衡全局搜索和局部开发。改进后 的转换参数公式如下:
混合策略改进的蝴蝶优化算法-附代码_初始化_15
其中 混合策略改进的蝴蝶优化算法-附代码_算法_16 为常数, 取值为 混合策略改进的蝴蝶优化算法-附代码_搜索_17 为调节因子, 经过多次实验证 明, 当 混合策略改进的蝴蝶优化算法-附代码_算法_18 时, 实验结果为最优。与式 混合策略改进的蝴蝶优化算法-附代码_搜索_19 的线性递减方式 不同, 式(8)在算法迭代前期 混合策略改进的蝴蝶优化算法-附代码_搜索_14 下降缓慢, 可以更好地利用 混合策略改进的蝴蝶优化算法-附代码_初始化_03 算法局部搜索阶段的蝴蝶个体; 迭代后期 混合策略改进的蝴蝶优化算法-附代码_搜索_14 下降快速, 可以指引蝴蝶个体尽快向目标值移动。改进后的正弦余弦算 法位置更新公式如下:
混合策略改进的蝴蝶优化算法-附代码_人工智能_23
其中 混合策略改进的蝴蝶优化算法-附代码_初始化_24 表示第 混合策略改进的蝴蝶优化算法-附代码_算法_25 次迭代中在种群内部随机选择的第 混合策略改进的蝴蝶优化算法-附代码_优化算法_26 个个 体在第 混合策略改进的蝴蝶优化算法-附代码_搜索_27

2.3 自适应权重系数

根据 BOA 算法原理可知, 蝴蝶个体利用当前位置和当 前最优个体位置/随机蝴蝶个体位置来进行位置更新, 然而, 无论是在算法的全局搜索阶段还是局部搜索阶段, 这些个体 的位置都没得到充分的利用。因此本文在 BOA 算法的全局 搜索和局部搜索阶段共同引入一种随迭代次数变化的自适应 权重 混合策略改进的蝴蝶优化算法-附代码_算法_28, 使三种个体位置信息都能够得到充分地利用, 同 时控制当前蝴蝶个体的移动方向和移动距离, 从而提高算法 寻优精度和收敛速度。自适应权重 混合策略改进的蝴蝶优化算法-附代码_算法_28 的数学表达式如下:
混合策略改进的蝴蝶优化算法-附代码_优化算法_30
其中, 混合策略改进的蝴蝶优化算法-附代码_算法_31 。因此, BOA 算法引入自适应权重系数后全局 搜索阶段的位置更新公式为
混合策略改进的蝴蝶优化算法-附代码_优化算法_32
局部搜索阶段的位置更新为
混合策略改进的蝴蝶优化算法-附代码_优化算法_33

2.4 逐维变异策略

BOA 算法同其他智能优化算法一样存在易陷入局部最 优这一缺点, 经分析可知, 主要是由于算法没有充分利用最 优个体的引导作用, 因此本文通过对最优个体进行变异, 提 高种群多样性的同时指引种群向最优个体位置进化, 避免算 法陷入局部最优。同时为了克服在高维情况下存在的维间干 扰问题, 本文对最优个体位置采用逐维变异策略, 有效避免 各维度之间信息的互相干扰。本文引入了文献 [15]中张超提 出的 混合策略改进的蝴蝶优化算法-附代码_初始化_34-分布变异算子对最优个体位置进行扰动, 该 混合策略改进的蝴蝶优化算法-附代码_初始化_34-分布变 异算子的自由度参数会跟随迭代次数的变化而变化, 逐维变 异策略具体定义如下。

设搜索空间为 混合策略改进的蝴蝶优化算法-附代码_搜索_27 维, 当前最优解 混合策略改进的蝴蝶优化算法-附代码_人工智能_37, 那么当前最优解逐维变异得到的新解 混合策略改进的蝴蝶优化算法-附代码_人工智能_38 计 算方式如下:

混合策略改进的蝴蝶优化算法-附代码_搜索_39

其中 混合策略改进的蝴蝶优化算法-附代码_算法_25 为当前迭代次数, 混合策略改进的蝴蝶优化算法-附代码_优化算法_41 是自由度参数为 混合策略改进的蝴蝶优化算法-附代码_算法_25混合策略改进的蝴蝶优化算法-附代码_初始化_34-分布, 混合策略改进的蝴蝶优化算法-附代码_初始化_44混合策略改进的蝴蝶优化算法-附代码_算法_45 分布在第 混合策略改进的蝴蝶优化算法-附代码_搜索_27 维时生成的随机数。

因为无法直接判断变异后得到的新位置是否优于原位置, 所以本文利用了贪婪原则来判断是否接受新位置代替原最优 位置。通过使用贪婪原则, 引导种群更好地向最优个体位置 进化, 更好地提高算法的收敛速度。

混合策略改进的蝴蝶优化算法-附代码_初始化_47

3.实验结果

混合策略改进的蝴蝶优化算法-附代码_初始化_48

4.参考文献

[1]宁杰琼,何庆.混合策略改进的蝴蝶优化算法[J/OL].计算机应用研究:1-7[2021-04-29].https://doi.org/10.19734/j.issn.1001-3695.2020.06.0171.

5.Matlab代码

6.Python代码


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

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

暂无评论

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