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

2023-11-14

精英反向与二次插值改进的黏菌算法


摘要:针对基本黏菌算法(Slime Mould Algorithm,SMA)易陷入局部最优值、收敛精度较低和收敛速度较慢的问题,提出精英反向学习与二次插值改进的黏菌算法(Improved Slime Mould Algorithm,ISMA)。精英反向学习策略有利于提高黏菌种群多样性和种群质量,提升算法全局寻优性能与收敛精度;利用二次插值生成新的黏菌个体,并用适应度评估更新全局最优解,有利于增强算法局部开发能力,减少算法收敛时间,使算法跳出局部极值。

1.黏菌算法

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

2.改进黏菌算法

2.1 精英反向学习机制

在 2015 年, Tizhoosh ⁡ [ 8 ] \operatorname{Tizhoosh}^{[8]} Tizhoosh[8] 提出了反向学习的方法 (Opposition-Based Learning, OBL), 其研究指出反向解比当 前解逼近最优解的概率高一半, 该方法可以有效增加算法种 群的多样性和质量。反向学习方法先求当前解的反向解, 再 从当前解和反向解中选取最优解且更新个体。
定义 1 反向解[9]。设在 D D D 维搜索空间中当前种群的一 个可行解为 X = ( x 1 , x 2 , … , x D ) ( x j ∈ [ a j , b j ] ) X=\left(x_1, x_2, \ldots, x_D\right)\left(x_j \in\left[a_j, b_j\right]\right) X=(x1,x2,,xD)(xj[aj,bj]), 其反向解为 X ˉ = ( x 1 , ‾ , x 2 ‾ , … , x D ‾ ) \bar{X}=\left(\overline{x_1,}, \overline{x_2}, \ldots, \overline{x_D}\right) Xˉ=(x1,,x2,,xD), 其中 x j ‾ = r ( a j + b j ) − x j , r \overline{x_j}=r\left(a_j+b_j\right)-x_j, r xj=r(aj+bj)xj,r 是区间 [ 0 , 1 ] [0,1] [0,1] 上的随机数字。 针对反向学习存在其生成的反向解有可能比当前的搜索 空间更难搜索到最优值的问题, 精英反反向学习 (Elite Opposition-Based Learning, EOBL)被提出, 这一机制同样已经 成功应用于多种算法的优化。何庆等[10]采用 EBOL 方法初始 化种群, 增加了蜻蜓算法的种群多样性; 方旭阳等[11]引入 E B O L \mathrm{EBOL} EBOL 优化正余弦算法, 避免个体斍目地向当前学习; EBOL 机制利用精英个体相对普通个体而言携带更多有效信息的优 势, 首先通过种群中精英个体形成反向种群, 再从反向种群 和当前种群中选取优秀个体构成新的种群, EBOL 机制对增 加种群多样性和提高种群质量有良好的效果。
定义 2 精英反向解[10]。设当前种群中的普通个体的极 值点作为种群中 的精英个体 , X i , j E = ( X i , 1 E , X i , 2 E , … , X i , D E ) X_{i, j}^E=\left(X_{i, 1}^E, X_{i, 2}^E, \ldots, X_{i, D}^E\right) Xi,jE=(Xi,1E,Xi,2E,,Xi,DE) 其反向解定义为:

KaTeX parse error: \tag works only in display equations
其中, δ \delta δ 是区间 [0,1]上的随机值, X i , j E ∈ [ l b j , u b j ] , l b j = min ⁡ ( X i , j ) X_{i, j}^E \in\left[l b_j, u b_j\right], \quad l b_j=\min \left(X_{i, j}\right) Xi,jE[lbj,ubj],lbj=min(Xi,j), u b j = max ⁡ ( X i , j ) , l b j u b_j=\max \left(X_{i, j}\right), l b_j ubj=max(Xi,j),lbj u b j u b_j ubj 分别为动态边界的下界和上界, 动态 边界解决了固定边界难以保存搜索经验的问题, 有利于减少 算法的寻优时间。如果 X i , j E ‾ \overline{X_{i, j}^E} Xi,jE 超过边界, 利用随机生成的方式将 其重置, 重置方程如下:
X i , j E ‾ = rand ⁡ ( l b j + u b j ) (6) \overline{X_{i, j}^E}=\operatorname{rand}\left(l b_j+u b_j\right)\tag{6} Xi,jE=rand(lbj+ubj)(6)

2.2 二次插值方法

二次揷值(Quadratic Interpolation, QI)是一种局部搜索算 子, 它使用曲线来拟合二次函数的形状, 以获得的曲线极值 点近似函数最优解。这种局部搜索方法对优化算法有较大的 参考价值, 已经成功应用于多种算法的优化。Sun 等人 [ 12 ] { }^{[12]} [12] 提 出了二次揷值改进的鲸鱼优化算法, 廖列法等人 [ 13 ] { }^{[13]} [13] 提出二次 揷值改进的天牛须算法, 王秋萍等人 [ 14 ] { }^{[14]} [14] 提出了二次揷值改进 的飞蛾火焰算法; 实验结果表明, 二次揷值作为局部搜索算 子应用到元启发算法中, 可以有效地增强所应用算法的局部 搜索能力。
假设 X X X Y Y Y D D D 维问题中种群的两个随机位置, 其中, X = ( x 1 , x 2 , … , x D ) , Y = ( y 1 , y 2 , … , y D ) X=\left(x_1, x_2, \ldots, x_D\right) , Y=\left(y_1, y_2, \ldots, y_D\right) X=(x1,x2,,xD)Y=(y1,y2,,yD), 当前全局最优位置为 Z = ( z 1 , z 2 , … , z D ) , X 、 Y 、 Z Z=\left(z_1, z_2, \ldots, z_D\right), X 、 Y 、 Z Z=(z1,z2,,zD),XYZ 的适应度值分别 F ( X ) 、 F ( Y ) 、 F ( Z ) F(X) 、 F(Y) 、 F(Z) F(X)F(Y)F(Z), 则二次揷值方法根 据以下公式更新位置形成新个体 X ˉ = ( x 1 ‾ , x 2 ‾ , … , x D ‾ ) \bar{X}=\left(\overline{x_1}, \overline{x_2}, \ldots, \overline{x_D}\right) Xˉ=(x1,x2,,xD) :
x q = ( z q 2 − y q 2 ) × F ( X ) + ( x q 2 − z q 2 ) × F ( Y ) + ( y q 2 − x q 2 ) × F ( Z ) 2 [ ( z q − y q ) × F ( X ) + ( x q − z q ) × F ( Y ) + ( y q − x q ) × F ( Z ) ] (7) x_q=\frac{\left(z_q^2-y_q^2\right) \times F(X)+\left(x_q^2-z_q^2\right) \times F(Y)+\left(y_q^2-x_q^2\right) \times F(Z)}{2\left[\left(z_q-y_q\right) \times F(X)+\left(x_q-z_q\right) \times F(Y)+\left(y_q-x_q\right) \times F(Z)\right]} \tag{7} xq=2[(zqyq)×F(X)+(xqzq)×F(Y)+(yqxq)×F(Z)](zq2yq2)×F(X)+(xq2zq2)×F(Y)+(yq2xq2)×F(Z)(7)
其中 q = 1 , 2 , … , D q=1,2, \ldots, D q=1,2,,D

请添加图片描述

3.实验结果

请添加图片描述

4.参考文献

[1]郭雨鑫,刘升,张磊,黄倩.精英反向与二次插值改进的黏菌算法[J/OL].计算机应用研究:1-7[2021-11-10].https://doi.org/10.19734/j.issn.1001-3695.2021.02.0175.

5.Matlab代码

6.python代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

精英反向与二次插值改进的黏菌算法-附代码 的相关文章

随机推荐

  • Mmdetection训练笔记

    1 imgs per gpu表示一块gpu训练的图片数量 imgs per gpu的值会影响终端输出的显示 比如 如果你有一块GPU 训练集有4000张 imgs per gpu设为2的话 终端的输出可能是Epoch 1 50 2000 另
  • 从Vue2到Vue3【五】——新的组件(Fragment、Teleport、Suspense)

    系列文章目录 内容 链接 从Vue2到Vue3 零 Vue3简介 从Vue2到Vue3 一 Composition API 第一章 从Vue2到Vue3 二 Composition API 第二章 从Vue2到Vue3 三 Composit
  • 前端缓存区别记录 SessionStorage和LocalStorage详解

    LocalStorage和SessionStorage之间的主要区别在于浏览器窗口和选项卡之间的数据共享方式不同 LocalStorage可跨浏览器窗口和选项卡间共享 就是说如果在多个选项卡和窗口中打开了一个应用程序 而一旦在其中一个选项卡
  • spi个人笔记

    spi是全双工通讯 收发同时进行 这句话怎么理解 如上图所示 主机产生一组时钟信号 并通过mosi输出8位数据 这个时候 虽然从机没有返回数据 持续低电平 但是因为是 收发同步 所以此时主机已经采集了此次的miso数据 就是说 无论你的目的
  • 【upload-labs 第四关通关攻略】

    一 类型 无法上传php等多种类型 选择 htaccess配置文件 二 htaccess内容 注意 不能命名 就叫 htaccess
  • Java手写数组和案例拓展

    Java手写数组和案例拓展 1 Mermanid代码绘制的思维导图解释实现思路原理 mermaid svg HoH3kyfEhPDhcUh4 font family trebuchet ms verdana arial sans serif
  • js发布——订阅模式的通用实现及取消订阅

    h1 发布 订阅模式的通用实现 h1 p javaScript作为一门解释执行的语言 给对象添加动态职责是理所当然的 所以我们将发布 订阅的功能提取出来 放在一个单独的对象内 p
  • Javascript创建对象的几种方式及优劣

    1 字面量方式 var obj name tom age 20 career network getName function return this name alert obj getName 这种方式适合创建单个对象 2 创建Obje
  • HttpCanary使用指南——各种神奇的插件

    HttpCanary更多资料 点我 作为目前Android平台最强大的抓包工具 HttpCanary从设计之初就规划了插件功能 2 6 0版本之前称为 模组 基于NetBare框架的虚拟网关 拦截器设计 HttpCanary可以实现非常多的
  • 2020春秋招聘图像处理 人工智能方向 各大厂面试常见题整理一(附答案)(阿里腾讯华为字节)

    因为本人近期也要紧临毕业 面临招聘面试 所以整体别人公开的面经 做一个整理 并且加上自己认为的答案 欢迎各位读者对答案进行指正和交流 深度残差的作用 直观上 深度加深 出现梯度消失和梯度爆炸的问题 在论文中 出现了一个奇怪的现象 就是56层
  • Hive命令的使用

    命令行界面 Command Line Interface CLI 是Hive交互最常见也是最方便的方式 在命令行界面可以执行Hive支持的觉大多数功能 如查询 创建等 hive e 有时 并不需要一直打开命令行界面 也就是说执行完查询后立刻
  • Vue-ref用法

    用ref操作模版中的dom元素 1 在模版中 声明ref名称 div ref引用Dom节点 div 2 用法 change this refs chagneBack style color red 用ref操作组件 1 在组件引用中声明re
  • Redis 汇总

    Redis 0 声明 1 概述 1 1 Redis是什么 1 2 Redis优缺点 1 3 为什么要用 Redis 为什么要用缓存 1 4 Redis为什么这么快 2 常用数据结构 2 1 String 应用场景 2 2 List 应用场景
  • Jetpack Compose多平台用于Android和IOS

    JetBrains和外部开源贡献者已经努力工作了几年时间来开发Compose Multiplatform 并最近发布了适用于iOS的Alpha版本 自然地 我们对其功能进行了测试 并决定通过使用该框架在iOS上运行我们的Dribbble复制
  • Matlab中求数据概率分布的方法

    一 问题描述 对已有的一些列数据进行分析 想得到该数据的分布和统计特性 如概率密度函数 概率分布 累计概率密度等等 例如 已有一段时间的声音测量数据 求该数据的分布特性 并给出噪声的95 置信区间统计参数以表征该声音监测数据的总体水平 二
  • HTTP响应的结构是怎么样的?

    HTTP响应由三部分组成 状态行 响应头 响应正文 状态行 包括协议版本的Version 状态码 Status Code 回应短语 响应头 包括搭建服务器的软件 发送响应的时间 回应数据的格式等信息 响应正文 就是响应的具体数据 HTTP请
  • PROJ.4学习——初识PROJ

    PROJ 4介绍 初始认识 前言 PROJ是一个通用的坐标转换软件 它将地理空间坐标从一个坐标系转换为另一个坐标系 这包括地图投影和大地坐标变换 PROJ包含命令行应用程序 可以方便地从文本文件或直接从用户输入转换坐标 除了命令行实用程序之
  • eclipse安装教程(2021最新版)超级易懂到吐血

    第一步 下载JDK 下载地址 http www oracle com technetwork java javase downloads index html 第二步 根据自己电脑的系统 选择相应的版本x64代表64位 x86代表32位 点
  • 螺杆真空泵安装流程图_螺杆式真空泵基本知识送给刚入行的新朋友

    螺杆式真空泵是容积式真空泵中的新兴成员 出现于上世纪90年代前后 发展较晚 但作为一种理想干泵 螺杆式真空泵在面世后获得了快速发展 现在就跟小编去了解一下它的基本知识吧 一 螺杆式真空泵特点 螺杆式真空泵脱胎于螺杆式压缩机与螺杆液体输送泵
  • 精英反向与二次插值改进的黏菌算法-附代码

    精英反向与二次插值改进的黏菌算法 文章目录 精英反向与二次插值改进的黏菌算法 1 黏菌算法 2 改进黏菌算法 2 1 精英反向学习机制 2 2 二次插值方法 3 实验结果 4 参考文献 5 Matlab代码 6 python代码 摘要 针对