当前位置: 首页 > news >正文

基于混沌映射与差分进化自适应教与学优化算法-附代码

基于混沌映射与差分进化自适应教与学优化算法

文章目录

  • 基于混沌映射与差分进化自适应教与学优化算法
    • 1.教与学优化算法
    • 2.改进教与学优化算法
      • 2.1 改进的Logistic混沌映射
      • 2.2 惯性权重自适应调节函数
      • 2.3 教改阶段
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.python代码

摘要:首先,改进了标准Logistic混沌映射,提高了种群多样性。其次,引入适应度更新率,构造了自适应惯性权重调节函数,平衡了全局与局部寻优能力,利于种群向最优解逼近。然后,基于差分变异思想构建了教改阶段,避免算法陷入局部最优。

1.教与学优化算法

基础教与学优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107861628

2.改进教与学优化算法

2.1 改进的Logistic混沌映射

标准TLBO算法种群初始化过程, 采用随机分配方 式, 导致无法将种群均匀散布在求解域中, 降低了多样 性, 引起算法过早收玫。目前, 研究结果表明Logistic 混沌映射产生的变量具有较强的遍历性 [ 22 , 23 ] [22,23] [22,23], 能够提 高初始种群多样性。标准Logistic混沌映射为:
z n + 1 = μ ( 1 − z n ) z_{n+1}=\mu\left(1-z_n\right) zn+1=μ(1zn)
式中: μ \mu μ [ 0 , 4 ] [0,4] [0,4] 之间的随机数, z n z_n zn 为第 n n n 个混沌变量, 取 值范围为 [ 0 , 1 ] [0,1] [0,1]

μ \mu μ 取4且 z 0 ∉ [ 0 , 0.25 , 0.5 , 0.75 , 1 ] z 0 \notin[0,0.25,0.5,0.75,1] z0/[0,0.25,0.5,0.75,1] 时,Logistic混沌映 射能够产生取值范围为 [ 0 , 1 ] [0,1] [0,1] 之间的混沌变量, 但主要 集中在1号与 10 号区域。其中1号区域表示区间为 [ 0 , 0.1 ] [0,0.1] [0,0.1], 2 号区域表示区间为 ( 0.1 , 0.2 ] , … , 10 (0.1,0.2], \ldots, 10 (0.1,0.2],,10 号区域表示区间为 ( 0.9 , 1.0 ] (0.9,1.0] (0.9,1.0] 。由此可知, 标准Logistic混沌映射产生的混沌 变量分布均匀性欠佳, 致使遍历性仍然有待加强。为此, 将1号与 10 号区域的混沌变量转移到其他区域, 提出了 改进的Logistic混沌映射以提高遍历性, 具体公式如下:
z n + 1 old  = μ ( 1 − z n old  ) z_{n+1}^{\text {old }}=\mu\left(1-z_n^{\text {old }}\right) zn+1old =μ(1znold )
z n + 1 n e w = { 0.1 + 0.8 ⋅ r a 0 ≤ z n + 1 old  ≤ 0.1  or  0.9 < z n + 1 old  ≤ 1.0 z n + 1 old   and  λ > 0.5  else  z_{n+1}^{n e w}= \begin{cases}0.1+0.8 \cdot r_a & 0 \leq z_{n+1}^{\text {old }} \leq 0.1 \\ & \text { or } 0.9<z_{n+1}^{\text {old }} \leq 1.0 \\ z_{n+1}^{\text {old }} & \text { and } \lambda>0.5 \\ \text { else }\end{cases} zn+1new= 0.1+0.8razn+1old  else 0zn+1old 0.1 or 0.9<zn+1old 1.0 and λ>0.5
式中: r a r_a ra 为服从均匀分布的随机数, 取值范围为 [ 0 , 1 ] [0,1] [0,1], λ \lambda λ [ 0 , 1 ] [0,1] [0,1] 之间的随机数。基于改进Logistic混沌映射进行种群初始化,公式如下:
x j i = l b − z n + 1 n e w ⋅ ( u b − l b ) x_j^i=l_b-z_{n+1}^{n e w} \cdot\left(u_b-l_b\right) xji=lbzn+1new(ublb)

2.2 惯性权重自适应调节函数

在粒子群优化算法中,惯性权重能够平衡全局与局部寻优能力 [24,25] ,对算法收敛速度与逼近性能影响较大。在此将其引入TLBO算法,提出了自适应惯性权重调节函数,以种群个体适应度更新率与迭代步数作为反馈参数。当个体适应度变化较小或不变时, 算法陷 入局部最优可能性较大, 此时以更新率作为调节主导 参数, 增大惯性权重, 帮助种群跳出局部最优; 反之, 算法寻优状态正常, 以迭代步数作为调节主导因素, 使 种群在迭代计算前期拥有较大的惯性权重, 保证了算. 法的全局寻优能力, 处于迭代计算后期时, 使种群具有 较小的惯性权重, 增强了局部寻优能力, 有利于种群向 全局最优解逼近。基于调节函数改进了教与学阶段的 更新机制。
ω ( t ) = 1 1 + p ( t ) ⋅ e ( 10 t max ⁡ ⋅ ( t − t max ⁡ 2 ) ) \omega(t)=\frac{1}{1+p(t) \cdot e^{\left(\frac{10}{t_{\max }} \cdot\left(t-\frac{t_{\max }}{2}\right)\right)}} ω(t)=1+p(t)e(tmax10(t2tmax))1

p ( t ) = n update  ( t ) n max ⁡ p(t)=\frac{n_{\text {update }}(t)}{n_{\max }} p(t)=nmaxnupdate (t)

x new  i = ω ( t ) ⋅ x old  i − r i ⋅ ( x teacher  − T F ⋅ x M ) x_{\text {new }}^i=\omega(t) \cdot x_{\text {old }}^i-r_i \cdot\left(x_{\text {teacher }}-T F \cdot x_M\right) xnew i=ω(t)xold iri(xteacher TFxM)

x new  i = { ω ( t ) ⋅ x old  i − r 1 ⋅ ( x i − x j ) f ( x i ) f ( x j ) x_{\text {new }}^i= \begin{cases}\omega(t) \cdot x_{\text {old }}^i-r_1 \cdot\left(x^i-x^j\right) & f\left(x^i\right)f\left(x^j\right)\end{cases} xnew i={ω(t)xold ir1(xixj)f(xi)f(xj)

式中: ω ( t ) \omega(t) ω(t) 为第 t t t 次迭代中惯性权重取值, t max ⁡ t_{\max } tmax 为总迭代 次数, p ( t ) p(t) p(t) 为种群个体适应度更新率。若寻优问题为求 解最大值, 则 n update  ( t ) n_{\text {update }}(t) nupdate (t) 为种群个体在第 t t t 次迭代中适应度 提高个数; 反之, n update  ( t ) n_{\text {update }}(t) nupdate (t) 为种群个体在第 t t t 次迭代中适 应度降低个数, n max ⁡ n_{\max } nmax 为种群个体总数。

2.3 教改阶段

标准TLBO算法随着迭代步数增多, 分布在解空间 内各区域的学生个体逐渐向教师所处区域不断靠近, 降低了种群多样性, 使标准TLBO算法在迭代计算中后 期容易陷入局部最优。差分进化算法能够提高迭代计 算中后期的多样性, 帮助算法跳出局部最优。鉴于此, 本文提出了教改阶段, 监督迭代寻优中后期最优个体 适应度的更新情况, 若连续 n n n 次迭代的是优适应度末提 高, 算法可能陷入了局部最优,则基于变异进化思想, 设计了学生不仅局限于向教师学习, 同时需要向成绩 最优学生 (即次优个体) 与进步最快学生学习(即在 n n n 次中迭代中适应度值提高最大的学生)的差分变异策 略, 帮助算法跳出局部最优,具体公式如下:
x new  i = x teacher  + F ⋅ ( x beststudent  − x old  i ) + F ⋅ ( x bestprocess  − x old  i ) \begin{aligned} &x_{\text {new }}^i=x_{\text {teacher }}+F \cdot\left(x_{\text {beststudent }}-x_{\text {old }}^i\right)+F \cdot\left(x_{\text {bestprocess }}-x_{\text {old }}^i\right) \end{aligned} xnew i=xteacher +F(xbeststudent xold i)+F(xbestprocess xold i)
式中: x beststudent  x_{\text {beststudent }} xbeststudent  为适应度最优学生, x bestprocess  x_{\text {bestprocess }} xbestprocess  戈进歨最快 学生, t g t_{\mathrm{g}} tg 为处于中后期的迭代步数, 取值范围为 [ 0.5 t max ⁡ , t max ⁡ ] , F \left[0.5 t_{\max }, t_{\max }\right], F [0.5tmax,tmax],F 为变异因子, 取值范围为 [ 0 , 2 ] [0,2] [0,2]

3.实验结果

请添加图片描述

4.参考文献

[1]孙凤山,范孟豹,曹丙花,叶波,刘林.基于混沌映射与差分进化自适应教与学优化算法的太赫兹图像增强模型[J].仪器仪表学报,2021,42(04):92-101.

5.Matlab代码

6.python代码

相关文章:

  • nginx基本使用一 ——————反向代理、负载均衡
  • 通讯录管理系统精解
  • 线上展厅表现形式 广州商迪
  • CDH 07Cloudera Manager freeIPA安装配置(markdown新版)
  • 22-09-23 西安 谷粒商城(05)CompletableFuture异步编排、nginx实现页面静态化
  • 【Javaweb】JSP标准标签库
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • React受控组件与非受控组件详解
  • Rust(4): 字符串类型
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • OSG跨平台编译:CMake跨平台安装(Windows、Linux、MacOS环境下安装)
  • OSG学习之一:坐标系
  • 治疗肺炎和脑膜炎的美国生物制药公司【Alopexx】申请纳斯达克IPO
  • Vue基础之事件机制、事件修饰符以及双向数据绑定
  • linux socket:接收时阻塞与非阻塞的设置
  • python3.6+scrapy+mysql 爬虫实战
  • 分享的文章《人生如棋》
  • [译]Python中的类属性与实例属性的区别
  • exif信息对照
  • git 常用命令
  • Java编程基础24——递归练习
  • Otto开发初探——微服务依赖管理新利器
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Spring声明式事务管理之一:五大属性分析
  • vue的全局变量和全局拦截请求器
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 浅谈web中前端模板引擎的使用
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 使用Gradle第一次构建Java程序
  • 网页视频流m3u8/ts视频下载
  • 新书推荐|Windows黑客编程技术详解
  • 一文看透浏览器架构
  • 译自由幺半群
  • 原生 js 实现移动端 Touch 滑动反弹
  • UI设计初学者应该如何入门?
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • #LLM入门|Prompt#3.3_存储_Memory
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (3)nginx 配置(nginx.conf)
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (MATLAB)第五章-矩阵运算
  • (第二周)效能测试
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)编辑寄语:因为爱心,所以美丽
  • 、写入Shellcode到注册表上线
  • .Net - 类的介绍
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)