码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 基于交叉算子和非均匀变异算子的飞蛾扑火优化算法-附代码


    基于交叉算子和非均匀变异算子的飞蛾扑火优化算法

    文章目录

    • 基于交叉算子和非均匀变异算子的飞蛾扑火优化算法
      • 1.飞蛾扑火优化算法
      • 2. 改进飞蛾扑火优化算法
        • 2.1 交叉算子
        • 2.2 非均匀变异算子
      • 3.实验结果
      • 4.参考文献
      • 5.Matlab代码
      • 6.Python代码

    摘要:针对飞蛾扑火优化算法收敛速度慢以及计算后期易收敛到局部最优解的问题,提出了一种基于遗传算法交叉算子和非均匀变异算子的改进方法。该方法在飞蛾围绕火焰飞行的计算过程中,采用交叉算子和变异算子对火焰位置进行扰动以生成新的火焰,当新火焰的适应度值优于原火焰时则替换原火焰,以提高算法的随机性,防止算法过快陷入局部最优解。

    1.飞蛾扑火优化算法

    基础飞蛾扑火优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107764895

    2. 改进飞蛾扑火优化算法

    2.1 交叉算子

    改进方案使用的交叉算子类似于均匀交叉算 子。但不同的是依次针对火焰矩阵的每一维随机 选择 k k k 对火焰进行交叉运算, 每次交叉运算将火焰 对应维度的元素互换并重新计算适应度值, 当新火 焰的适应度值优于原火焰时则替代原火焰, 从而使 其有一定概率跳出局部最优解。交叉运算具体流 程如图 1 所示。其中, d d d 表示火焰位置的维度。 k k k 为常数, 表示进行 k k k 次交叉互换。

    请添加图片描述

    2.2 非均匀变异算子

    本文选择非均匀变异算子对火焰位置进行扰动,以使火焰在求解初期能在较大范围内搜索并在后期对局部区域进行精细搜索。非均匀算子可表 示如下:
    f i , j t + 1 = { f i , j t + Δ ( t , U max ⁡ j − f i , j t ) , r < 0.5 f i , j t − Δ ( t , f i , j t − U min ⁡ j ) , r ≥ 0.5 (5) f_{i, j}^{t+1}=

    {fi,jt+Δ(t,Umaxj−fi,jt),r<0.5fi,jt−Δ(t,fi,jt−Uminj),r≥0.5" role="presentation">⎧⎩⎨⎪⎪fti,j+Δ(t,Ujmax−fti,j),fti,j−Δ(t,fti,j−Ujmin),r<0.5r≥0.5{fi,jt+Δ(t,Umaxj−fi,jt),r<0.5fi,jt−Δ(t,fi,jt−Uminj),r≥0.5
    \tag{5} fi,jt+1​={fi,jt​+Δ(t,Umaxj​−fi,jt​),fi,jt​−Δ(t,fi,jt​−Uminj​),​r<0.5r≥0.5​(5)
    其中, f i , j f_{i, j} fi,j​ 表示火焰矩阵中第 i i i 个火焰第 j j j 维的元 素。 t t t 为当前迭代次数。 U max  U_{\text {max }} Umax ​ 和 U min  U_{\text {min }} Umin ​ 分别表示搜 索空间每一维度的最大值和最小值。 r r r 为区间 [ 0 , 1 ] [0,1] [0,1] 之间的随机数。 Δ ( t , y ) \Delta(t, y) Δ(t,y) 可表示如下:
    Δ ( t , y ) = y ⋅ ( 1 − r ( 1 − t T ) b ) (6) \Delta(t, y)=y \cdot\left(1-r^{\left(1-\frac{t}{T}\right)^{b}}\right) \tag{6} Δ(t,y)=y⋅(1−r(1−Tt​)b)(6)
    其中, T T T 为最大迭代次数, b b b 为决定非均匀度的参 数。在使用非均匀变异算子对火焰位置进行扰动 时, 依次针对每个火焰随机选择 k k k 个维度进行扰 动, 每次扰动产生的新火焰优于原火焰时则替换原 火焰。变异运算流程如图 2 所示。其中, n n n 表示火 焰总数量。 k k k 为常数, 表示进行 k k k 次位置扰动。

    请添加图片描述

    3.实验结果

    请添加图片描述

    4.参考文献

    [1]张保东,张亚楠,郭黎明,江进礼,赵严振.基于交叉算子和非均匀变异算子的飞蛾扑火优化算法[J].计算机与数字工程,2020,48(11):2622-2627.

    5.Matlab代码

    6.Python代码

  • 相关阅读:
    小谈设计模式(15)—观察者模式
    第7讲 SQL语言之复杂查询与视图
    通过CRM软件系统赢得销售机会的五大原则
    【区块链 | Oracle】预言机 Oracle 的原理和实现
    webpack定制化 加载与插件[css加载器、html插件、image打包配置、babel代码兼容、vue加载器及配置]
    凌雄科技打造DaaS模式,IT设备产业链由内而外嬗变升级
    vmware 16增加硬盘容量并在Ubuntu 18.04上边格式化并挂载
    基于Web的大众汽车租赁系统设计与实现-计算机毕业设计源码+LW文档
    内行人都在用的服装连锁店管理系统,到底有什么优势?
    基于JAVA门诊预约挂号系统计算机毕业设计源码+数据库+lw文档+系统+部署
  • 原文地址:https://blog.csdn.net/u011835903/article/details/126450371
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号