码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 基于阶梯式Tent混沌和模拟退火的樽海鞘群算法


    文章目录

    • 一、理论基础
      • 1、樽海鞘群算法
      • 2、基于阶梯式Tent混沌的模拟退火樽海鞘群算法
        • (1)Tent混沌映射序列
        • (2)“阶梯式”惯性权值
        • (3)模拟退火算法
        • (4)STSA-SSA算法实现步骤
    • 二、仿真实验与结果分析
    • 三、参考文献

    一、理论基础

    1、樽海鞘群算法

    请参考这里。

    2、基于阶梯式Tent混沌的模拟退火樽海鞘群算法

    (1)Tent混沌映射序列

    请参考这里。

    (2)“阶梯式”惯性权值

    针对SSA算法容易陷入局部最优的缺陷,本文提出“阶梯式”惯性权值调整策略,惯性权值在算法前期取固定最大值用于提高算法的全局探索能力,在算法后期取固定最小值用来提高算法的局部开发能力,其表达式为: x j i = 1 2 ( x j i + ω ( t ) x j i − 1 ) (1) x_j^i=\frac12\left(x_j^i+\omega(t)x_j^{i-1}\right)\tag{1} xji​=21​(xji​+ω(t)xji−1​)(1) ω ( t ) = { ω max ⁡ , t / T max ⁡ ≤ λ ω min ⁡ ,   t / T max ⁡ > λ (2) \omega(t)=

    \begin{dcases}\omega_{\max},\quad t/T_{\max}\leq\lambda\\[2ex]\omega_{\min},\quad\, t/T_{\max}>\lambda\end{dcases}" role="presentation" style="position: relative;">\begin{dcases}\omega_{\max},\quad t/T_{\max}\leq\lambda\\[2ex]\omega_{\min},\quad\, t/T_{\max}>\lambda\end{dcases}\begin{dcases}\omega_{\max},\quad t/T_{\max}\leq\lambda\\[2ex]\omega_{\min},\quad\, t/T_{\max}>\lambda\end{dcases}
    \tag{2} ω(t)=⎩ ⎨ ⎧​ωmax​,t/Tmax​≤λωmin​,t/Tmax​>λ​(2)其中, ω max ⁡ \omega_{\max} ωmax​为最大惯性权值, ω min ⁡ \omega_{\min} ωmin​为到最小惯性权值, t t t为当前迭代次数, T max ⁡ T_{\max} Tmax​为最大迭代次数。 λ ∈ ( 0 , 1 ) \lambda\in(0,1) λ∈(0,1)表示迭代前期时间占整个周期的比例:取 λ > 0.5 \lambda>0.5 λ>0.5时,算法前期分配了更多的时间比例进行全局搜索,进而扩大寻优范围;取 λ > 0.5 \lambda>0.5 λ>0.5时,算法后期占用更多的时间进行局部开发,进而寻求更高的收敛精度。这样,通过调整 λ \lambda λ,可有效地兼顾算法的全局探索能力和局部开发能力。通过多次尝试 ( 0 , 1 ) (0,1) (0,1)范围内不同的 λ \lambda λ的取值,观察对比寻优效果,最终确定 λ \lambda λ的取值。

    (3)模拟退火算法

    模拟退火算法的特点为在一定的概率情况下保留劣质群体,增加种群的多样性,在一定程度上提高了跳出局部最优的能力。在全局寻优方面,本文采取模拟退火算法与SSA算法结合的方式,在SSA算法求出食物源位置之后再进行模拟退火处理,对食物源位置进行调整,其接受劣质群体概率的公式为: P = { 1 , f new ( X j ) < f ( X j ) exp ⁡ ( − ( f new ( X j ) − f ( X j ) ) / T ) ,   f new ( X j ) ≥ f ( X j ) (3) P=

    \begin{dcases}1,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad f_{\text{new}}(X_j)<f(X_j)\\[2ex]\exp\left(-\left(f_{\text{new}}(X_j)- f(X_j)\right)/T\right),\quad\, f_{\text{new}}(X_j)\geq f(X_j)\end{dcases}" role="presentation" style="position: relative;">\begin{dcases}1,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad f_{\text{new}}(X_j)\begin{dcases}1,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad f_{\text{new}}(X_j)\tag{3} P=⎩ ⎨ ⎧​1,fnew​(Xj​)<f(Xj​)exp(−(fnew​(Xj​)−f(Xj​))/T),fnew​(Xj​)≥f(Xj​)​(3)其中, f new ( X j ) f_{\text{new}}(X_j) fnew​(Xj​)是模拟退火阶段产生的新种群中第 j j j个樽海鞘个体的适应度值, T T T表示第 j j j次迭代温度, f new ( X j ) f_{\text{new}}(X_j) fnew​(Xj​)的值越小,表示适应度值越好,当 f new ( X j ) < f ( X j ) f_{\text{new}}(X_j)fnew​(Xj​)<f(Xj​)时,完全接受 f new ( X j f_{\text{new}}(X_j fnew​(Xj​(替换概率 P P P为1),否则以概率 P P P接受劣质解 X j X_j Xj​。引入模拟退火算法后的SSA算法,在食物源位置周围范围内初始化新的种群,以一定概率下接受劣质解来更新食物源位置,增加了领导者和追随者个体的多样性。

    (4)STSA-SSA算法实现步骤

    改进的SSA算法(STSA-SSA)具体实现步骤如下:
    (1)设置算法参数并初始化种群:种群个数 N N N,最大迭代次数 T max ⁡ T_{\max} Tmax​,可调参数 λ \lambda λ,惯性权值 ω max ⁡ \omega_{\max} ωmax​和 ω min ⁡ \omega_{\min} ωmin​;引入Tent混沌映射序列初始化种群,生成一个 N × d N\times d N×d维的矩阵。
    (2)计算适应度值:计算每个樽海鞘个体的适应度值,选取适应度值最小的个体位置作为食物源位置。
    (3)领导者和追随者位置更新:选取一半的樽海鞘个体更新领导者位置,可调参数 λ \lambda λ的变化,选定不同的惯性权值根据式(1)更新追随者位置。
    (4)食物源位置更新:根据更新后的樽海鞘群个体计算适应度值,若小于原食物源位置的适应度值,则更新食物源位置。
    (5)引入模拟退火算法:在原食物源位置周围随机产生一个新的种群,计算新种群个体的适应度值 .若新种群中樽海鞘个体适应度值小于食物源适应度值,则更新食物源位置,否则以式(3)中的概率 P P P接受新种群中樽海鞘个体的位置,进行退温操作 t = t × 0.99 t=t\times0.99 t=t×0.99,记录下整个迭代过程中适应度值最小的食物源位置及其适应度值。
    (6)若当前迭代次数小于最大迭代次数,重复步骤3~5的迭代过程,直到达到设定的精度要求或最大迭代次数,输出最优个体位置及其适应度值。

    二、仿真实验与结果分析

    将STSA-SSA与MVO、MFO和SSA进行对比,以文献[1]中表1和表2的F1、F2、F3(单峰函数/30维)、F10、F11、F12(多峰函数/30维)为例,实验设置种群规模为100,最大迭代次数为1000,每种算法独立运算30次,结果显示如下:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    函数:F1
    MVO:最差值: 0.16708, 最优值: 0.029536, 平均值: 0.10159, 标准差: 0.025637
    MFO:最差值: 10000, 最优值: 2.6301e-06, 平均值: 1333.3333, 标准差: 3457.459
    SSA:最差值: 9.5666e-09, 最优值: 4.4115e-09, 平均值: 6.5361e-09, 标准差: 1.4628e-09
    STSA-SSA:最差值: 2.6884e-92, 最优值: 1.2088e-98, 平均值: 9.0129e-94, 标准差: 4.9075e-93
    函数:F2
    MVO:最差值: 0.035861, 最优值: 0.006563, 平均值: 0.011629, 标准差: 0.0055055
    MFO:最差值: 1.2383e-18, 最优值: 4.235e-21, 平均值: 2.3603e-19, 标准差: 3.1721e-19
    SSA:最差值: 1.5893e-05, 最优值: 4.4389e-06, 平均值: 6.5287e-06, 标准差: 2.214e-06
    STSA-SSA:最差值: 8.9203e-15, 最优值: 4.6592e-21, 平均值: 3.6398e-16, 标准差: 1.6493e-15
    函数:F3
    MVO:最差值: 15.0338, 最优值: 1.855, 平均值: 6.0894, 标准差: 2.7983
    MFO:最差值: 38335.8903, 最优值: 171.7988, 平均值: 17000.3493, 标准差: 10693.5973
    SSA:最差值: 4.8528, 最优值: 0.0021096, 平均值: 1.1182, 标准差: 1.2449
    STSA-SSA:最差值: 5.045e-97, 最优值: 1.4767e-98, 平均值: 8.6227e-98, 标准差: 9.4178e-98
    函数:F10
    MVO:最差值: 0.050032, 最优值: 0.0044728, 平均值: 0.025348, 标准差: 0.012522
    MFO:最差值: 5.4708, 最优值: 9.2939e-08, 平均值: 0.31057, 标准差: 1.1632
    SSA:最差值: 0.049064, 最优值: 3.2022e-10, 平均值: 0.0082862, 标准差: 0.01157
    STSA-SSA:最差值: 6.1288e-09, 最优值: 0, 平均值: 3.3234e-10, 标准差: 1.2586e-09
    函数:F11
    MVO:最差值: 2.7289, 最优值: 0.0017116, 平均值: 1.0302, 标准差: 0.93786
    MFO:最差值: 1.7121, 最优值: 3.5278e-06, 平均值: 0.18911, 标准差: 0.35454
    SSA:最差值: 10.749, 最优值: 6.4423e-11, 平均值: 3.3794, 标准差: 2.7545
    STSA-SSA:最差值: 1.9876e-10, 最优值: 7.5058e-11, 平均值: 1.157e-10, 标准差: 2.9888e-11
    函数:F12
    MVO:最差值: 0.019505, 最优值: 0.0013189, 平均值: 0.006964, 标准差: 0.0058636
    MFO:最差值: 1.5975, 最优值: 1.0127e-06, 平均值: 0.058764, 标准差: 0.29075
    SSA:最差值: 0.021024, 最优值: 7.8156e-11, 平均值: 0.0068636, 标准差: 0.007149
    STSA-SSA:最差值: 2.9661, 最优值: 8.1418e-11, 平均值: 0.39841, 标准差: 1.0244
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    实验结果表明:对于单峰和多峰测试函数,改进后的樽海鞘群算法具有更快的收敛速度和更强的全局寻优能力。

    三、参考文献

    [1] 周鹏, 董朝轶, 陈晓艳, 等. 基于阶梯式Tent混沌和模拟退火的樽海鞘群算法[J]. 电子学报, 2021, 49(9): 1724-1735.

  • 相关阅读:
    基于ssm+vue+uniapp的电影交流平台小程序
    基于Taro + React 实现微信小程序半圆滑块组件、半圆进度条、弧形进度条、半圆滑行轨道(附源码)
    【优化布局】基于遗传算法实现风电场集电系统优化附matlab代码
    你知道网关 架构是如何演进?
    webrtc-stream编译报错记录
    多列等高实现
    《开箱元宇宙》:认识香港麦当劳通过 The Sandbox McNuggets Land 的 Web3 成功经验
    ASO优化之关于iOS的A/B测试
    Spark RDD编程模型及算子介绍(一)
    图论05-【无权无向】-图的广度优先BFS遍历-路径问题/检测环/二分图/最短路径问题
  • 原文地址:https://blog.csdn.net/weixin_43821559/article/details/126867877
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | 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号