基于阶梯式Tent混沌和模拟退火的樽海鞘群算法
文章目录
- 一、理论基础
- 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为当前迭代次数,TmaxT_{\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,最大迭代次数TmaxT_{\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.基本樽海鞘群算法 2.改进的樽海鞘群算法 (1)混沌映射 (2)自适应权重变化 (3)追随者机制变化 (4)算法伪代码 二.实验仿真及结果分析 三.参考文献 一.理论基础 ...
- 基于混沌映射的自适应樽海鞘群算法-附代码
基于混沌映射的自适应樽海鞘群算法 文章目录 基于混沌映射的自适应樽海鞘群算法 1.樽海鞘群算法 2.改进樽海鞘群算法 2.1 混沌映射 2.2 自适应权重变化 2.3 追随者机制变化 3.实验结果 4 ...
- 基于混沌映射与动态学习的自适应樽海鞘群算法
文章目录 一.理论基础 1.樽海鞘群算法SSA 2.改进樽海鞘群算法CDSSA (1)基于改进Tent映射的种群初始化 (2)基于Logistic映射的领导者更新 (3)基于动态学习的追随者更新 (4 ...
- 混沌映射与动态学习的自适应樽海鞘群算法-附代码
混沌映射与动态学习的自适应樽海鞘群算法 文章目录 混沌映射与动态学习的自适应樽海鞘群算法 1.樽海鞘群算法 2.改进樽海鞘群算法 2.1 基于改进 Tent 映射的种群初始化 2.2 基于 Logis ...
- 基于疯狂自适应的樽海鞘群算法
基于疯狂自适应的樽海鞘群算法 文章目录 基于疯狂自适应的樽海鞘群算法 1.樽海鞘群算法 2.基于疯狂自适应樽海鞘群算法 2.1 Tent映射的种群初始化 2.2 疯狂算子 2.3自适应惯性权重 3.实 ...
- 基于正交设计的折射反向学习樽海鞘群算法
文章目录 一.理论基础 1.樽海鞘群算法 2.正交反向学习樽海鞘群算法OOSSA (1)正交反向学习策略 (2)惯性权重策略 (3)OOSSA算法 二.仿真实验与结果分析 三.参考文献 一.理论基础 ...
- 基于差异演化的寄生樽海鞘群算法
文章目录 一.理论基础 1.标准SSA算法 2.PDESSA算法 2.1 改进领导者全局搜索方式 2.1.1 上代领导者位置信息的影响 2.1.2 非线性惯性权重 2.2 寄生和宿主双种群 2.3 P ...
- 【WSN】基于樽海鞘群算法实现无线传感器网络WSN节点的部署优化matlab源码
1 算法介绍 一种基于樽海鞘群算法的无线传感器网络节点定位方法,包括初始化樽海鞘群个体节点,判断节点位置,将节点位置作为食物源对周围环境进行链式搜索,找到其余节点进行确认,并转为食物源变量进行迭代搜索 ...
- 面向全局搜索的自适应领导者樽海鞘群算法-附代码
面向全局搜索的自适应领导者樽海鞘群算法 文章目录 面向全局搜索的自适应领导者樽海鞘群算法 1.樽海鞘群算法 2.改进樽海鞘群算法 2.1 改进领导者位置更新公式 2.2 引入领导者-跟随者自适应调整策 ...
- matlab代码:面向全局搜索的自适应领导者樽海鞘群算法
matlab代码:面向全局搜索的自适应领导者樽海鞘群算法 面向全局搜索的自适应领导者樽海鞘群算法. 首先, 在领导者位置更新公式中引入上一代樽海鞘群位置,增强全局搜索的充分性,有效避免算法陷入局部极值 ...
最新文章
- 数据结构--链表--LRU缓存
- java j2ssh替代jsch,jsch设置ssh协商算法优先级
- [USB].USB总线详解
- MySQL及其图形界面navicat的安装
- python xlrd使用_python:利用xlrd模块操作excel
- 当局为器,人民为水。当局什么样,人民就什么样
- 白话设计模式--实践应用--Chain of Responsibility(职责链)和factory模式
- Xamarin.Forms 解决ListView高度问题
- mysql 取首字母_MySQL中获取拼音首字母的方法
- 深蓝词库转换2.0发布——支持仓颉、注音、五笔、郑码、二笔等
- 2020年python考试时间_想准备2021年三月份的Python考试,应该怎么准备呢?
- IT安全面试问题汇总
- win10+黑苹果 单硬盘的双系统引导配置
- 商城源码+分销版+破j版+企业版+虚拟商品+第三方对接
- SLF4J--日志门面担当
- IDEA之非常复制黏贴
- 计算机flash听课记录范文,听课记录5篇
- 聚会活跃气氛小程序-喝酒神器
- python+requests接口测试
- Escape Codec Library: ecl.js Shift_JISエンコードやEUC-JPエンコードなども可能な escape エンコード・デコード関数のライブラリ