改进交叉算子的自适应人工蜂群黏菌算法


文章目录

  • 改进交叉算子的自适应人工蜂群黏菌算法
  • 1.黏菌算法
  • 2.改进黏菌算法
  • 2.1 自适应可调节反馈因子
  • 2.2 算数交叉算子
  • 2.3 改进的人工蜂群搜索策略
  • 3.实验结果
  • 4.参考文献
  • 5.Matlab代码
  • 6.python代码



摘要:针对黏菌算法存在的收敛速度慢,易陷入局部最小值的问题,提出了一种改进交叉算子的自适应人工蜂群黏菌算法(ISMA)。为了提高算法收敛速度,引入自适应可调节的反馈因子和改进的交叉算子;考虑到人工蜂群算法强大的搜索能力,引入改进的人工蜂群搜索策略,提高算法跳出局部最小值的能力。

1.黏菌算法

2.改进黏菌算法

2.1 自适应可调节反馈因子

在 SMA 中,反馈因子 v c 用来描述食物浓度与黏菌质量之间的反馈关系,其值从 1 线性下降到 0,这种线性下降的反馈因子并不能准确地描述实际情况下质量和浓度之间的反馈关系,可能会导致算法收敛速度慢等问题。因此,本文引入一种自适应可调节的反馈因子:在算法迭代前期,黏菌个体大范围感受食物浓度,此时食物浓度低,应该加快反馈因子的下降速度,减弱反馈关系,有利于提高算法全局搜索能力;在算法迭代后期,食物浓度高,此时应该保持较为平稳的反馈系数,有利于个体局部探索最高的食物浓度(最优解)。此外,加入下降速率调节因子 k,可以自动调节反馈因子下降速度,自适应可调节的反馈因子数学模型描述如公式 7 所示:
改进交叉算子的自适应人工蜂群黏菌算法-附代码_机器学习
式中, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_人工智能_02 为当前迭代次数, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_交叉算子_03 为最大迭代次数, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_人工智能_04

2.2 算数交叉算子

交叉算子是遗传算法中三个关键算子之一, 通过交 换两个父代的位置信息产生新的个体, 新的个体继承了 父代的有效信息。本文为了加快 SMA 的收玫速度, 引入 改进的算数交叉算子更新个体位置, 即以一定的概率 改进交叉算子的自适应人工蜂群黏菌算法-附代码_机器学习_05 让当前个体与种群最优个体进行交叉操作。交叉算子数 学模型如公式 8 所示:
改进交叉算子的自适应人工蜂群黏菌算法-附代码_交叉算子_06
式中, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_人工智能_02 为当前迭代次数, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_自适应_08改进交叉算子的自适应人工蜂群黏菌算法-附代码_人工智能_09 分别为交叉产生的 两个子代个体位置, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_人工智能_10 为当前个体位置, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_交叉算子_11 为当前种 群最优个体位置, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_12 为取值 改进交叉算子的自适应人工蜂群黏菌算法-附代码_机器学习_13

由公式 8 可知, 子代主要由父代和参数 改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_12 确定, 其 中参数 改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_12 控制子代从两个父代获取信息的比例, 为了使 子代获取更多优秀父代的基因, 并保持种群多样性, 本 文改进了原始的随机参数, 引入用拉普拉斯系数 改进交叉算子的自适应人工蜂群黏菌算法-附代码_交叉算子_16 控制 的参数 改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_12 。改进后的控制参数 改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_12 数学模型描述如公式 9 所示:
改进交叉算子的自适应人工蜂群黏菌算法-附代码_交叉算子_19
式中, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_人工智能_20改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_21 为拉普拉斯系数, 其中 改进交叉算子的自适应人工蜂群黏菌算法-附代码_人工智能_20 取自然数, 控制 位置, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_自适应_23 控制尺度, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_24 为取值 改进交叉算子的自适应人工蜂群黏菌算法-附代码_自适应_25 的随机数。由公式 9 可知, 改进后的参数 改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_12 通过引入系数 改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_21 调节父代与子代 的距离, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_21 越小子代越靠近父代, 种群多样性越高, 同 时, 在拉普拉斯系数 改进交叉算子的自适应人工蜂群黏菌算法-附代码_人工智能_20改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_21

2.3 改进的人工蜂群搜索策略

人工蜂群算法 (Artificial Bee Colony Algorithm, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_机器学习_31 是由 Karaboga 等人于 2006 年提出的一种智能优 化算法, 该算法通过模拟自然界蜂群的采蜜行为实现对 复杂优化问题的处理, 在复杂多峰函数寻优上具有良好 的性能, 拥有强大的探索能力。针对 SMA 易早熟收敛的 问题, 本文引入人工蜂群搜索策略并做出改进, 基本人 工蜂群搜索策略数学模型描述如公式 10 所示:
改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_32
式中, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_自适应_33 为产生的候选解, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_自适应_34 为当前个体, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_35 为随机个 体, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_人工智能_04改进交叉算子的自适应人工蜂群黏菌算法-附代码_机器学习_37 为随机参数, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_机器学习_38为固定值, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_自适应_39 表示维度, 且 改进交叉算子的自适应人工蜂群黏菌算法-附代码_人工智能_04 不等于 改进交叉算子的自适应人工蜂群黏菌算法-附代码_人工智能_41 为取值 改进交叉算子的自适应人工蜂群黏菌算法-附代码_自适应_42 的随机数。由公式 10 可知, 候选解由随机选取两个个体 进行差分操作产生。
虽然人工蜂群搜索策略在搜索能力上有着很大的优 势, 但是其开发能力不强, 因此本文引入一种新的搜索 策略, 在人工蜂群强大搜索能力的基础上加入全局最优 位置引导, 从而提高其开发能力, 改进策略数学模型描 述如公式 11 所示:
改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_43
式中, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_44 为取值 改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_45 的随机数, 改进交叉算子的自适应人工蜂群黏菌算法-附代码_机器学习_46

改进交叉算子的自适应人工蜂群黏菌算法-附代码_交叉算子_47

3.实验结果

改进交叉算子的自适应人工蜂群黏菌算法-附代码_算法_48

4.参考文献

[1]刘成汉,何庆.改进交叉算子的自适应人工蜂群黏菌算法[J/OL].小型微型计算机系统:1-8[2021-11-27].http://kns.cnki.net/kcms/detail/21.1106.TP.20211114.1427.002.html.

5.Matlab代码

6.python代码