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

文章目录

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

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

1.黏菌算法

基础黏菌算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/113710762

2.改进黏菌算法

2.1 自适应可调节反馈因子

在 SMA 中,反馈因子 v c 用来描述食物浓度与黏菌质量之间的反馈关系,其值从 1 线性下降到 0,这种线性下降的反馈因子并不能准确地描述实际情况下质量和浓度之间的反馈关系,可能会导致算法收敛速度慢等问题。因此,本文引入一种自适应可调节的反馈因子:在算法迭代前期,黏菌个体大范围感受食物浓度,此时食物浓度低,应该加快反馈因子的下降速度,减弱反馈关系,有利于提高算法全局搜索能力;在算法迭代后期,食物浓度高,此时应该保持较为平稳的反馈系数,有利于个体局部探索最高的食物浓度(最优解)。此外,加入下降速率调节因子 k,可以自动调节反馈因子下降速度,自适应可调节的反馈因子数学模型描述如公式 7 所示:
v c = ( e ( t max ⁡ − t ) / t max ⁡ − 1 ⋅ 1 e − 1 ) k (7) v_c=\left(e^{\left(t_{\max }-t\right) / t_{\max }-1} \cdot \frac{1}{e-1}\right)^k \tag{7} vc​=(e(tmax​−t)/tmax​−1⋅e−11​)k(7)
式中, t t t 为当前迭代次数, t max ⁡ t_{\max } tmax​ 为最大迭代次数, k k k 是调 节因子。

2.2 算数交叉算子

交叉算子是遗传算法中三个关键算子之一, 通过交 换两个父代的位置信息产生新的个体, 新的个体继承了 父代的有效信息。本文为了加快 SMA 的收玫速度, 引入 改进的算数交叉算子更新个体位置, 即以一定的概率 P t P_t Pt​ 让当前个体与种群最优个体进行交叉操作。交叉算子数 学模型如公式 8 所示:
{ X A 1 ( t + 1 ) = L ⋅ X A ( t ) + ( 1 − L ) ⋅ X best  ( t ) X A 2 ( t + 1 ) = L ⋅ X best  ( t ) + ( 1 − L ) ⋅ X A ( t ) (8) \left\{\begin{array}{l} X_{A 1}(t+1)=L \cdot X_A(t)+(1-L) \cdot X_{\text {best }}(t) \\ X_{A 2}(t+1)=L \cdot X_{\text {best }}(t)+(1-L) \cdot X_A(t) \end{array}\right.\tag{8} {XA1​(t+1)=L⋅XA​(t)+(1−L)⋅Xbest ​(t)XA2​(t+1)=L⋅Xbest ​(t)+(1−L)⋅XA​(t)​(8)
式中, t t t 为当前迭代次数, X A I X_{A I} XAI​ 和 X A 2 X_{A 2} XA2​ 分别为交叉产生的 两个子代个体位置, X A X_A XA​ 为当前个体位置, X b e s t X_{b e s t} Xbest​ 为当前种 群最优个体位置, L L L 为取值 ( 0 , 1 ) (0,1) (0,1) 的随机参数。

由公式 8 可知, 子代主要由父代和参数 L L L 确定, 其 中参数 L L L 控制子代从两个父代获取信息的比例, 为了使 子代获取更多优秀父代的基因, 并保持种群多样性, 本 文改进了原始的随机参数, 引入用拉普拉斯系数 [ 13 ] { }^{[13]} [13] 控制 的参数 L L L 。改进后的控制参数 L L L 数学模型描述如公式 9 所示:
L = { μ − λ ⋅ log ⁡ e ( r ) , r ≤ 1 2 μ + λ ⋅ log ⁡ e ( r ) , r > 1 2 (9) L=\left\{\begin{array}{l} \mu-\lambda \cdot \log _e(r), r \leq \frac{1}{2} \\ \mu+\lambda \cdot \log _e(r), r>\frac{1}{2} \end{array}\right. \tag{9} L={μ−λ⋅loge​(r),r≤21​μ+λ⋅loge​(r),r>21​​(9)
式中, μ \mu μ 和 λ \lambda λ 为拉普拉斯系数, 其中 μ \mu μ 取自然数, 控制 位置, λ > 0 \lambda>0 λ>0 控制尺度, r r r 为取值 [ 0 , 1 ] [0,1] [0,1] 的随机数。由公式 9 可知, 改进后的参数 L L L 通过引入系数 λ \lambda λ 调节父代与子代 的距离, λ \lambda λ 越小子代越靠近父代, 种群多样性越高, 同 时, 在拉普拉斯系数 μ \mu μ 和 λ \lambda λ 的共同调节下, 子代能选择 性获得更多优秀父代的位置信息。

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

人工蜂群算法 (Artificial Bee Colony Algorithm, A B C ) [ 14 ] \mathrm{ABC})^{[14]} ABC)[14] 是由 Karaboga 等人于 2006 年提出的一种智能优 化算法, 该算法通过模拟自然界蜂群的采蜜行为实现对 复杂优化问题的处理, 在复杂多峰函数寻优上具有良好 的性能, 拥有强大的探索能力。针对 SMA 易早熟收敛的 问题, 本文引入人工蜂群搜索策略并做出改进, 基本人 工蜂群搜索策略数学模型描述如公式 10 所示:
Z i , j = x i , j + ϕ i , j ( x i , j − x k , j ) ( 10 ) Z_{i, j}=x_{i, j}+\phi_{i, j}\left(x_{i, j}-x_{k, j}\right)(10) Zi,j​=xi,j​+ϕi,j​(xi,j​−xk,j​)(10)
式中, Z i , j Z_{i, j} Zi,j​ 为产生的候选解, x i , j x_{i, j} xi,j​ 为当前个体, x k , j x_{k, j} xk,j​ 为随机个 体, k k k 和 j j j 为随机参数, k ∈ { 0 , 1 , … , M } , j ∈ { 1 , 2 , … , d } , M k \in\{0,1, \ldots, M\}, \mathrm{j} \in\{1,2, \ldots, d\}, M k∈{0,1,…,M},j∈{1,2,…,d},M为固定值, d d d 表示维度, 且 k k k 不等于 i , ϕ i , j i, \phi_{i, j} i,ϕi,j​ 为取值 [ − 1 , 1 ] [-1,1] [−1,1] 的随机数。由公式 10 可知, 候选解由随机选取两个个体 进行差分操作产生。
虽然人工蜂群搜索策略在搜索能力上有着很大的优 势, 但是其开发能力不强, 因此本文引入一种新的搜索 策略, 在人工蜂群强大搜索能力的基础上加入全局最优 位置引导, 从而提高其开发能力, 改进策略数学模型描 述如公式 11 所示:
Z i , j = x i , j + ϕ i , j ( x i , j − x k , j ) + Ω i , j ( p g , j − x i , j ) (11) \begin{gathered} Z_{i, j}=x_{i, j}+\phi_{i, j}\left(x_{i, j}-x_{k, j}\right)+ \Omega_{i, j}\left(p_{g, j}-x_{i, j}\right) \end{gathered}\tag{11} Zi,j​=xi,j​+ϕi,j​(xi,j​−xk,j​)+Ωi,j​(pg,j​−xi,j​)​(11)
式中, Ω \Omega Ω 为取值 [ 0 , 1.5 ] [0,1.5] [0,1.5] 的随机数, p g p_g pg​ 为全局最优位置。

3.实验结果

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代码

改进交叉算子的自适应人工蜂群黏菌算法-附代码相关推荐

  1. 精英反向与二次插值改进的黏菌算法-附代码

    精英反向与二次插值改进的黏菌算法 文章目录 精英反向与二次插值改进的黏菌算法 1.黏菌算法 2.改进黏菌算法 2.1 精英反向学习机制 2.2 二次插值方法 3.实验结果 4.参考文献 5.Matla ...

  2. 柯西变异和自适应权重优化的蝴蝶算法-附代码

    融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法 文章目录 融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 柯西变异 2.2 自适应权重 2.3动态 ...

  3. 具有随机分形自适应搜索策略的蚁狮优化算法-附代码

    具有随机分形自适应搜索策略的蚁狮优化算法 文章目录 具有随机分形自适应搜索策略的蚁狮优化算法 1.蚁狮优化算法 2. 改进蚁狮优化算法 2.1 蚂蚁随机分形搜索方程 2.2 蚁狮自适应搜索方程 3.实 ...

  4. 具有自适应搜索策略的灰狼优化算法-附代码

    具有自适应搜索策略的灰狼优化算法 文章目录 具有自适应搜索策略的灰狼优化算法 1.灰狼优化算法 2. 改进灰狼优化算法 2.1 自适应调整策略 2. 2 跳出局部最优策略 2.3 最优学习搜索方程 3 ...

  5. 智能优化算法:人工大猩猩部队优化算法-附代码

    智能优化算法:人工大猩猩部队优化算法 文章目录 智能优化算法:人工大猩猩部队优化算法 1.算法原理 1.1勘探阶段 1.2 开发阶段 1.2.1 跟随银背大猩猩 1.2.2 竞争成年雌性 2.实验结果 ...

  6. 黏菌算法(Slime Mould Algorithm,SMA)

    文章目录 1 算法思想 2 算法步骤 3 求函数最值(Python实现) 4 算法进阶 直接改进SMA 融合别的智能优化算法来改进SMA SMA及其改进的应用 1 算法思想 黏菌算法由李世民等人发表于 ...

  7. 基于自适应反向学习的黏菌算法

    文章目录 一.理论基础 1.黏菌算法 2.自适应反向学习黏菌算法 (1)反向学习 (2)自适应决策策略 (3)AOSMA算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基础 1.黏菌算法 请 ...

  8. 介绍一种新的群智能算法---黏菌算法

    一种新的群智能算法-黏菌算法 介绍一种新的群智能算法-黏菌算法 近些年群智能算法由于其效率较高,使用方便的优点引起了广大科研者的关注与兴趣.最近看文献,温州大学的李世民(现在去复旦读研究生了)提出了一 ...

  9. 基于黏菌算法的函数寻优算法

    文章目录 一.理论基础 1.黏菌算法 (1)接近食物 (2)包裹食物 (3)获取食物 2.SMA算法伪代码 二.仿真实验与分析 三.参考文献 一.理论基础 1.黏菌算法 黏菌算法(Slime Moul ...

最新文章

  1. 取子字符串的两种情形的解决办法(c#)
  2. java中xml怎样配置_如何通过XML方式配置并实现Mybatis
  3. VisNetic MailServer 常见问题
  4. 2015蓝桥杯省赛---java---C---9(打印大X)
  5. Java实现学生管理系统(完整代码)
  6. Tableau中的行级数据安全性——第2部分
  7. 键盘上ALT键的妙用
  8. 中国酒精炉行业市场供需与战略研究报告
  9. 体重 年龄 性别 身高 预测鞋码_孩子身高低于同龄人就说明发育迟缓?这个简单公式可以算出来...
  10. 微信公众号发送模板消息
  11. 常见快速搜索算法图解
  12. 快速幂算法(全网最详细地带你从零开始一步一步优化)
  13. k8s安装prometheus+grafana(第二弹:prometheus-operator)
  14. Android—Surface,BufferQueue
  15. NLP入门学习3——句法分析(基于LTP4)
  16. Linux、git和github的故事
  17. Win32 OpenGL 编程(1)Win32下的OpenGL编程必须步骤
  18. 小重山·斯卡波罗集市
  19. JAVA 开发中常用的工具有哪些?
  20. ElasticSearch之——Java操作ES实例(基于ES-2.3.0)

热门文章

  1. 正则表达式split匹配多种例如 “】”,“,”两种(页面级中英文切换方案)...
  2. Java单元测试使用mock【转载】
  3. 计算机网络学习笔记第一章(概述) 超详细整理
  4. 未来制造业的厂内智能物流是这样吗?
  5. 微信小程序云开发用户身份登录_微信小程序云开发实现授信注册登录?
  6. 数据结构与算法:1.链表结构
  7. select max
  8. 将1~100的数字放到10*10的表格中
  9. codeforces #35D
  10. 【JS数据结构】线性结构——栈结构