群体智能优化算法--烟花算法(附优化参数的通用代码)

2023-10-29

        烟花算法是由北京大学谭营教授提出了烟花算法。这是一种既简单又具有较强优化能力的算法。根据烟花爆炸的原理,每个烟花爆炸之后会选择最好的烟花作为下一次爆炸的烟花。而且在多个烟花爆炸的同时,每个烟花都是相互独立的,寻找最优爆炸烟花只在自身本身爆炸范围内寻找。该算法的鲁棒性体现在自身算法的特点上。适应度值的不同,会导致爆炸半径及产生烟火的数量不同,每个烟花个体之间是相互独立又是相互交流的,非常便捷。

一、烟花算法组成

爆炸烟花:烟花爆炸产生火花。在此过程中,主要包括了爆炸强度、爆炸幅度、位移操作三种操作。

变异烟花:具有高斯变异的特性的烟花。主要是高斯变异操作。

映射规则:当越界时重新映射操作即对超出范围在边界上的火花进行处理。

在映射规则中,主要由镜面反射规则、模运算规则、随机映射规则这三种方法进行映射。

选择策略:将下一代优秀的个体选取出来。主要包括基于距离的选择策略。

 

 烟花算法的描述:

2.1爆炸算子

烟花的爆炸半径、产生的火花数量公式如下: 

                              

 

        其中, Ymin作为当前烟花群体中最好个体的适应度值, Ymax作为当前烟花群体中最差个体的适应度值。 R和S代表着爆炸半径的调节和爆炸火花数目;作为分数, 以避免出现坟墓为0的情况。为了均衡起见,好的烟花个体不能产生较多火花,差的烟花个体不能产生较少火花,针对这一问题,对爆炸火花作了相应的处理:

 

 在上式中,根据求解应用的实际问题不同,ab作为取整函数对所取的数值是相异的,在这里当作常数处理。

       

2.2变异操作

根据下列方法产生爆炸火花。

 

 上式中A是一个常量(调节爆炸半径)。

 在上式中,当前的迭代次数用t表示,调节核心烟花爆炸半径用变量Ca和Cr来进行调节,表示半径的增大与减小。 Xb代表新建的最优的火花个体, Xcf表示核心烟花。

(2)根据所述方法产生变异火花。

 

 

2.3映射规则

映射规则处理超出边界的火花:

2.4选择策略

在这一部分中,我们要对优秀的个体进行选取,我们会选用精英选择策略的方法选择出下一代,并进行逐代传递。我们会从烟花群体和爆炸的火花中来进行选取。选择出来的N个个体就是最优的个体,将这些给下一代,然后在这些范围内,能将适应度值最小的作为最优的个体,对于剩下的N-1个个体采用随机选择策略。

2.5烟花算法的特点

基本的烟花算法具有以下几个特点。下面对这几个特点进行说明。

(1)多样性。首先是算子的不同,由于在爆炸的过程中,会产生烟花变异,所以烟花算子有两种,第一种是爆炸算子,第二种是高斯变异算子。它的多样性表现

现在,烟花的适应度值不同,所以爆炸半径,数量也都不尽相同,这也就保证了烟花的多样性,每个爆炸算子的适应度值不同,在同一个幅度范围内。

(2)爆发性。爆发性作为烟花算法特有的优点,烟花算法每迭代一次,就会爆炸一次,产生不同的火花,同时可以进行多点爆炸,这说明烟花算法具有爆发性。

(3)简单性。是由于烟花进行爆炸时,每个进行爆炸的烟花都是根据自己的特性进行爆炸,对于信息的交互是互不影响,也只有在自己的范围内进行。这就是其简单性的由来,因此具有简单性。

(4)分布式。由于其简单性,并且并行烟花可以进行多点同时爆炸,所以信息是通过相互作用而进行交流的,具有并行的特点。

(5)扩充性。由于烟花算法中烟花的爆炸半径不同,烟花数量肯定也不同,因此数量的增加对其不会产生影响,当然减少数量也对其不会有影响。因而系统的可扩充性很强。

烟花算法优化参数的通用代码如下:

https://download.csdn.net/download/liwenjie0/20833087

 

 

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

群体智能优化算法--烟花算法(附优化参数的通用代码) 的相关文章

随机推荐

  • 我的世界ess服务器信息,我的世界ess指令怎么用 ess指令大全及用法详解

    我的世界ess指令都有哪些 作为风靡全球的沙盒游戏 我的世界带给玩家太多的乐趣 为了能更方便的游戏 ess指令能帮助我们更好的游戏 很多新手玩家刚接触就被搞晕了 这么多的指令看起来有些复杂 下面就由小编给大家带来 我的世界ess指令都有哪些
  • mybatis进行批量插入 返回批量插入主键ID 插入不成功等问题

    这篇博文讲的是批量插入的例子 dao层框架用的mybatis 最一开始我的批量插入其实是个伪批量 是类似吧很多条insert into语句 直接拼成一条 然后直接运行 发现这样的效率真的是十分低 我做测试时285条数据 插入一次需要10S多
  • uniapp添加.gitignore以及不生效解决办法

    一 第一次新建 gitignore 首先进入项目 命令行新建 gitignore文件 touch gitignore 然后编辑器打开 进入到项目中新建的 gitignore 文件 复制粘贴以下 node modules project un
  • C++实现鼠标点击其他程序

    1 主要是SendInput函数 代码如下 初始化 INPUT input 0 input type INPUT MOUSE dx dy代表的是进行点击的坐标 下面显示的是 950 150 input mi dx static cast
  • 【Proteus仿真】555组成的多谐振荡器电路

    Proteus仿真 555组成的多谐振荡器电路 Proteus仿真演示 多谐振荡器电路 多谐振荡器电路是一种矩形波产生电路 属于数字电路 三极管不工作在放大线性区 这种电路不需要外加触发信号便能连续地 周期性地自行产生矩形脉冲 该脉冲是由基
  • Stable Diffusion:ChatGPT与AI绘画,引领艺术的未来

    人工智能 AI 的快速发展正在为各个领域带来革命性的变化 其中包括艺术与创意领域 AI绘画是一种将人工智能技术与艺术创作相结合的新兴范式 通过深度学习和生成对抗网络 GAN 等技术 AI绘画可以生成各种富有创意和想象力的艺术作品 本文将探讨
  • python - __str__ 和 __repr__

    内建函数str 和repr representation 表达 表示 或反引号操作符 可以方便地以字符串的方式获取对象的内容 类型 数值属性等信息 str 函数得到的字符串可读性好 故被print调用 而repr 函数得到的字符串通常可以用
  • Docker+docker-compose+nginx部署已有项目

    项目背景 在异地服务器拷docker相关项目到新的服务器 具体操作 1 新服务器安装好docker 2 新服务器安装好docker compose 3 从老服务器拷贝镜像到新服务器 4 新服务器导入镜像 5 构建项目地址挂载目录 找到doc
  • 用U盘作启动盘装Windows10系统整套流程 纯净版(不用其他乱七八糟的软件)(macOS适用)

    简介 本人的电脑是MacBook Air 2014年版的 因为内存小而且文件杂乱 所以一下子都给格式化了 但是要用Mac自带的恢复系统的话需要连接校园网 连接校园网又需要打开网页输入账号和密码 我们学校的校园网是这样的 所以只能用U盘作为格
  • gqrx编译过程记录

    gqrx编译过程记录 目标 环境 编译 下载源代码 建立编译位置 修改CMakefile txt中的模块 编译安装 运行界面 没有更多 目标 在ubuntun 20 04桌面版编译gqrx 通过USRP 205mini实现收音机功能 环境
  • 【解决】docker容器怎么使用宿主机的IPv6地址

    在IPv4时代 我们对外访问都是端口映射 都没有公网IP 但是在IPv6时大家都有公网IP 可能需要容器地址和主机地址一致 可以在docker run时使用参数 network host 则此容器网络和宿主机一致 docker run ne
  • AQS详解

    AQS详解 文章目录 AQS详解 AQS简单介绍 AQS原理 AQS原理概览 AQS对资源的共享方式 AQS定义两种资源共享方式 Exclusive 独占 Share 共享 AQS底层使用了模板方法模式 Semaphore 信号量 Coun
  • 浅谈可重入锁

    一 可重入锁 递归锁 1 概念 同一个线程在外层方法获取锁的时候 再进入该线程的内层方法会自动获取锁 前提是 锁对象是同一个对象 不是因为之前已经获取过还没有释放而阻塞 2 java中的ReentrantLock和synchronied都是
  • 关于Gdi+和GdiplusStartup

    GDI 实际上是一组类的定义 封装了gdi 的几乎所有API 当然使用方法就要从这些 例子 里边寻找了 本文正是尝试用GDI 写一个纯SDK的程序 语言自然是我最喜欢的语言WIN32ASM 这个程序很简单 就是用GDI 画了一条直线 算是抛
  • HCIA-FusionCompute华为企业级虚拟化

    一 云计算 按需付费 集中资源对外提供服务 1 云本身没有资源 云是资源整合者 整合底层的所有计算机资源 cpu 内存 磁盘等 云计算是一种模型 它可以实现随时随地 随需应变地从可配置计算资源共享池中获取所需的资源 例如 网络 服务器 存储
  • BigDecimal 问题小结

    BigDecimal 加法 add 函数 乘法multiply 函数 除法divide 函数 绝对值abs 函数 减法subtract 函数 ROUND CEILING 向正无穷方向舍入 ROUND DOWN 向零方向舍入 ROUND FL
  • 【Redis】新增数据结构

    BitMap位图 Redis提供了Bitmaps这个 数据类型 可以实现对位的操作 1 Bitmaps本身不是一种数据类型 实际上它就是字符串 key value 但是它可以对字符串的位进行操作 2 Bitmaps单独提供了一套命令 所以在
  • RabbitMQ与SpringBoot整合实战

    SpringBoot整合RabbitMQ SpringBoot与RabbitMQ集成非常筒単 不需要做任何的额外设置只需要两步即可 step1 引入相关依赖 spring boot starter amqp step2 対applicati
  • PyTorch-02梯度下降Gradient Descent、回归案例、手写数字识别案例

    PyTorch 02梯度下降Gradient Descent 回归案例 手写数字识别案例 了解梯度下降 梯度下降是深度学习的精髓 整个deep learning是靠梯度下降所支撑的 可以求解一个非常难的函数 使用的方法就是梯度下降算法 求一
  • 群体智能优化算法--烟花算法(附优化参数的通用代码)

    烟花算法是由北京大学谭营教授提出了烟花算法 这是一种既简单又具有较强优化能力的算法 根据烟花爆炸的原理 每个烟花爆炸之后会选择最好的烟花作为下一次爆炸的烟花 而且在多个烟花爆炸的同时 每个烟花都是相互独立的 寻找最优爆炸烟花只在自身本身爆炸