文章目录

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

一、理论基础

1、樽海鞘群算法

请参考这里。

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

(1)Tent混沌映射序列

请参考这里。

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

针对SSA算法容易陷入局部最优的缺陷,本文提出“阶梯式”惯性权值调整策略,惯性权值在算法前期取固定最大值用于提高算法的全局探索能力,在算法后期取固定最小值用来提高算法的局部开发能力,其表达式为:xji=12(xji+ω(t)xji−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/Tmax⁡≤λωmin⁡,t/Tmax⁡>λ(2)\omega(t)=\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​为到最小惯性权值,ttt为当前迭代次数,Tmax⁡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,fnew(Xj)<f(Xj)exp⁡(−(fnew(Xj)−f(Xj))/T),fnew(Xj)≥f(Xj)(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}\tag{3}P=⎩⎨⎧​1,fnew​(Xj​)<f(Xj​)exp(−(fnew​(Xj​)−f(Xj​))/T),fnew​(Xj​)≥f(Xj​)​(3)其中,fnew(Xj)f_{\text{new}}(X_j)fnew​(Xj​)是模拟退火阶段产生的新种群中第jjj个樽海鞘个体的适应度值,TTT表示第jjj次迭代温度,fnew(Xj)f_{\text{new}}(X_j)fnew​(Xj​)的值越小,表示适应度值越好,当fnew(Xj)<f(Xj)f_{\text{new}}(X_j)<f(X_j)fnew​(Xj​)<f(Xj​)时,完全接受fnew(Xjf_{\text{new}}(X_jfnew​(Xj​(替换概率PPP为1),否则以概率PPP接受劣质解XjX_jXj​。引入模拟退火算法后的SSA算法,在食物源位置周围范围内初始化新的种群,以一定概率下接受劣质解来更新食物源位置,增加了领导者和追随者个体的多样性。

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

改进的SSA算法(STSA-SSA)具体实现步骤如下:
(1)设置算法参数并初始化种群:种群个数NNN,最大迭代次数Tmax⁡T_{\max}Tmax​,可调参数λ\lambdaλ,惯性权值ωmax⁡\omega_{\max}ωmax​和ωmin⁡\omega_{\min}ωmin​;引入Tent混沌映射序列初始化种群,生成一个N×dN\times dN×d维的矩阵。
(2)计算适应度值:计算每个樽海鞘个体的适应度值,选取适应度值最小的个体位置作为食物源位置。
(3)领导者和追随者位置更新:选取一半的樽海鞘个体更新领导者位置,可调参数λ\lambdaλ的变化,选定不同的惯性权值根据式(1)更新追随者位置。
(4)食物源位置更新:根据更新后的樽海鞘群个体计算适应度值,若小于原食物源位置的适应度值,则更新食物源位置。
(5)引入模拟退火算法:在原食物源位置周围随机产生一个新的种群,计算新种群个体的适应度值 .若新种群中樽海鞘个体适应度值小于食物源适应度值,则更新食物源位置,否则以式(3)中的概率PPP接受新种群中樽海鞘个体的位置,进行退温操作t=t×0.99t=t\times0.99t=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] 周鹏, 董朝轶, 陈晓艳, 等. 基于阶梯式Tent混沌和模拟退火的樽海鞘群算法[J]. 电子学报, 2021, 49(9): 1724-1735.

基于阶梯式Tent混沌和模拟退火的樽海鞘群算法相关推荐

  1. 基于混沌映射的自适应樽海鞘群算法

    文章目录 一.理论基础 1.基本樽海鞘群算法 2.改进的樽海鞘群算法 (1)混沌映射 (2)自适应权重变化 (3)追随者机制变化 (4)算法伪代码 二.实验仿真及结果分析 三.参考文献 一.理论基础 ...

  2. 基于混沌映射的自适应樽海鞘群算法-附代码

    基于混沌映射的自适应樽海鞘群算法 文章目录 基于混沌映射的自适应樽海鞘群算法 1.樽海鞘群算法 2.改进樽海鞘群算法 2.1 混沌映射 2.2 自适应权重变化 2.3 追随者机制变化 3.实验结果 4 ...

  3. 基于混沌映射与动态学习的自适应樽海鞘群算法

    文章目录 一.理论基础 1.樽海鞘群算法SSA 2.改进樽海鞘群算法CDSSA (1)基于改进Tent映射的种群初始化 (2)基于Logistic映射的领导者更新 (3)基于动态学习的追随者更新 (4 ...

  4. 混沌映射与动态学习的自适应樽海鞘群算法-附代码

    混沌映射与动态学习的自适应樽海鞘群算法 文章目录 混沌映射与动态学习的自适应樽海鞘群算法 1.樽海鞘群算法 2.改进樽海鞘群算法 2.1 基于改进 Tent 映射的种群初始化 2.2 基于 Logis ...

  5. 基于疯狂自适应的樽海鞘群算法

    基于疯狂自适应的樽海鞘群算法 文章目录 基于疯狂自适应的樽海鞘群算法 1.樽海鞘群算法 2.基于疯狂自适应樽海鞘群算法 2.1 Tent映射的种群初始化 2.2 疯狂算子 2.3自适应惯性权重 3.实 ...

  6. 基于正交设计的折射反向学习樽海鞘群算法

    文章目录 一.理论基础 1.樽海鞘群算法 2.正交反向学习樽海鞘群算法OOSSA (1)正交反向学习策略 (2)惯性权重策略 (3)OOSSA算法 二.仿真实验与结果分析 三.参考文献 一.理论基础 ...

  7. 基于差异演化的寄生樽海鞘群算法

    文章目录 一.理论基础 1.标准SSA算法 2.PDESSA算法 2.1 改进领导者全局搜索方式 2.1.1 上代领导者位置信息的影响 2.1.2 非线性惯性权重 2.2 寄生和宿主双种群 2.3 P ...

  8. 【WSN】基于樽海鞘群算法实现无线传感器网络WSN节点的部署优化matlab源码

    1 算法介绍 一种基于樽海鞘群算法的无线传感器网络节点定位方法,包括初始化樽海鞘群个体节点,判断节点位置,将节点位置作为食物源对周围环境进行链式搜索,找到其余节点进行确认,并转为食物源变量进行迭代搜索 ...

  9. 面向全局搜索的自适应领导者樽海鞘群算法-附代码

    面向全局搜索的自适应领导者樽海鞘群算法 文章目录 面向全局搜索的自适应领导者樽海鞘群算法 1.樽海鞘群算法 2.改进樽海鞘群算法 2.1 改进领导者位置更新公式 2.2 引入领导者-跟随者自适应调整策 ...

  10. matlab代码:面向全局搜索的自适应领导者樽海鞘群算法

    matlab代码:面向全局搜索的自适应领导者樽海鞘群算法 面向全局搜索的自适应领导者樽海鞘群算法. 首先, 在领导者位置更新公式中引入上一代樽海鞘群位置,增强全局搜索的充分性,有效避免算法陷入局部极值 ...

最新文章

  1. 数据结构--链表--LRU缓存
  2. java j2ssh替代jsch,jsch设置ssh协商算法优先级
  3. [USB].USB总线详解
  4. MySQL及其图形界面navicat的安装
  5. python xlrd使用_python:利用xlrd模块操作excel
  6. 当局为器,人民为水。当局什么样,人民就什么样
  7. 白话设计模式--实践应用--Chain of Responsibility(职责链)和factory模式
  8. Xamarin.Forms 解决ListView高度问题
  9. mysql 取首字母_MySQL中获取拼音首字母的方法
  10. 深蓝词库转换2.0发布——支持仓颉、注音、五笔、郑码、二笔等
  11. 2020年python考试时间_想准备2021年三月份的Python考试,应该怎么准备呢?
  12. IT安全面试问题汇总
  13. win10+黑苹果 单硬盘的双系统引导配置
  14. 商城源码+分销版+破j版+企业版+虚拟商品+第三方对接
  15. SLF4J--日志门面担当
  16. IDEA之非常复制黏贴
  17. 计算机flash听课记录范文,听课记录5篇
  18. 聚会活跃气氛小程序-喝酒神器
  19. python+requests接口测试
  20. Escape Codec Library: ecl.js Shift_JISエンコードやEUC-JPエンコードなども可能な escape エンコード・デコード関数のライブラリ

热门文章

  1. 十六种CAD.CAE.CAM软件介绍
  2. matlab怎么算方差和标准差,matlab怎么求矩阵的均值和标准差 看完你就知道了
  3. Windows10更新工具
  4. php酒店系统论文,PHP酒店网站管理系统毕业论文
  5. 新东方 计算机英语,常用计算机英语词汇:DRAM
  6. java运行环境简称_java程序的运行环境简称为什么?
  7. 编程珠玑第三章笔记加习题解答
  8. SSM期末复习题(仅供参考)
  9. 推荐6本Java书籍,助你在Java路上更精进!
  10. 中望cad文字显示问号怎么办_CAD字体显示问号解决方法