最新!2024顶级SCI优化!TTAO-CNN-BiGRU-MSA三角拓扑聚合优化、双向GRU融合注意力的多变量回归预测程序!

news2024/10/5 12:59:21

适用平台:Matlab 2023版及以上

TTOA三角聚合优化算法,将在2024年3月正式发表在中科院1区顶级SCI期刊《Expert Systems with Applications》上。

该算法提出时间极短,目前以及近期内不会有套用这个算法的文献。新年伊始,尽快拿下!

我们利用该创新性极高的优化算法对我们的CNN-BiGRU-Attention时序和空间特征结合-融合注意力机制的回归预测程序代码中的超参数进行优化,构成TTAO-CNN-BiGRU-MSA多变量回归预测模型.

文献解读:这个算法的启发来源是类似三角形的拓扑学性质。名为Triangulation Topology Aggregation Optimizer,TTAO)的新型数学元启发算法中,每个三角形拓扑单元表示一个搜索个体。TTAO算法通过聚合形成不同大小的类似三角形拓扑单元,以作为基本的进化单元。与其他元启发算法不同,TTAO算法提出了一种新的进化指导模式,主要依靠每个三角形单元中的最佳个体指导单元内个体的进化。因此,这种进化种群不仅依赖于全局引导的优秀个体,还吸收了每个单元中最佳个体的有效正向信息,有助于解决复杂优化问题,克服传统方法在全局搜索时进入局部极值的缺点。接下来,文章通过与其它对比算法:HHO ;SCSO;SAO;BWO;AOA等测试,验证了TTAO算法具有更强的收敛性能。在CEC2017函数和8个工程问题上评估了其优化性能。实验结果表明,TTAO算法在30维CEC2017函数上具有优越的收敛性和稳定性。

原理:许多领域通常将研究对象划分为三角形拓扑单元,并建立相关模型进行识别和分析:如金字塔,三角尺等。

在有限或无限维空间中,三角形拓扑可以被视为二维子空间的子图。与其他拓扑相比,三角形在某些封闭系统中更简单、更稳定。

TTAO算法主要通过以下两个阶段进行优化过程:

  • ①不同单元之间的聚合

  • ②相似三角形单元内的聚合

在这个过程中,不断在搜索空间中生成新的顶点,并用它们构建不同大小的相似三角形。TTAO算法将每个三角形视为具有四个个体的基本进化单元,即三角形的三个顶点和一个内部随机顶点。聚合的核心是将具有优良特性的顶点分组在一起。具体来说,TTAO算法通过聚合在不同拓扑单元之间或内部收集具有正向信息的顶点,不断构建相似三角形。

优化步骤:

  • 算法通过迭代进化,在搜索空间中不断生成新的顶点,以构建不同大小的相似三角形。

  • 每个三角形都被视为一个基本进化单元,包含四个搜索个体,即三角形的三个顶点和一个内部随机顶点。

  • TTAO算法的核心是聚集具有优越特性的顶点。具体而言,TTAO算法通过聚集来自不同拓扑单元的优秀个体信息,以创建新的可行解。

  • 算法通过三个阶段的更新过程来实现全局搜索和局部挖掘:生成三角拓扑单元、通用聚集和局部聚集。

构成的TTAO-CNN-BiGRU-MSA多变量回归预测模型的创新性在于以下几点:

TTAO算法区别于传统智能算法的创新性:

①细胞聚类策略:TTAO 算法采用三角形拓扑单元展开优化过程,每个三角形拓扑单元具有一个顶点,这些顶点分别代表了搜索个体。这种细胞聚类策略使得 TTAO 算法能够更好地挖掘局部和全局信息。

②两级聚合策略:TTAO 算法采用了两级聚合策略:广义聚合和局部聚合。广义聚合主要关注全局探索,通过不同三角形拓扑单元间的信息交换来找到更有希望的位置;局部聚合则使得每个单元内的信息得到有效开发,确保准确地探索局部区域。

③自适应策略:TTAO 算法将上一代的有效信息自适应地继承下来,从而保持种群的多样性。这种自适应策略使得 TTAO 算法能够快速收敛到全局最优解。

④个体引导进化策略:TTAO算法提出了一种新的关键个体引导进化策略,使得该算法不仅依赖于精英个体的全局引导进化,还吸收了每个单元中最佳个体的积极正向信息。

优化套用—基于三角拓扑聚合优化算法(TTAO)、卷积神经网络(CNN)和双向门控循环单元网络(BiGRU)融合注意力机制(Multi-Head Self Attention,MSA)的超前24步多变量时间序列回归预测算法TTOA-CNN-BiGRU-MSA

功能:

1、多变量特征输入,单序列变量输出,输入前一天的特征,实现后一天的预测,超前24步预测。

2、通过TTAO优化算法优化学习率、卷积核大小、神经元个数,这3个关键参数,以最小MAPE为目标函数。

3、提供损失、RMSE迭代变化极坐标图;网络的特征可视化图;测试对比图;适应度曲线(若首轮精度最高,则适应度曲线为水平直线)。

4、提供MAPE、RMSE、MAE等计算结果展示。

适用领域:风速预测、光伏功率预测、发电功率预测、碳价预测等多种应用。

数据集格式:

前一天18个气象特征,采样时间为24小时,输出为第二天的24小时的功率出力,也就是18×24输入,1×24输出,一共有75个这样的样本。

预测值与实际值对比;训练特征可视化:

训练误差曲线的极坐标形式(误差由内到外越来越接近0);适应度曲线(误差逐渐下降)

误差评估:

TTAO部分核心代码:

完整代码:https://mbd.pub/o/bread/ZZqZlZ1y
%  三角拓扑聚合优化器
function [fbest,Xbest,Convergence_curve,BestPred,bestNet,bestInfo]=TTAOtest(PopSize,T,Low,Up,Dim,fobj)

N=floor(PopSize/3); % 初始化N/3个个体。
X1=rand(N,Dim).*(Up-Low)+Low;
t=1;
while t<T+1
    %% 形成三角拓扑单元
    l=9*exp(-t/T);% 三角拓扑单元的大小。
    for i=1:N
        theta=rand(1,Dim)*pi;
        h1=cos(theta);
        h2=cos(theta+pi/3);
        X2(i,:)=X1(i,:)+l*h1;
        X3(i,:)=X1(i,:)+l*h2;
    end
    X2 = max(X2,Low);
    X2 = min(X2,Up);
    X3 = max(X3,Low);
    X3 = min(X3,Up);
    r1=rand;r2=rand;
    X4=r1*X1+r2.*X2+(1-r1-r2)*X3;
    X4 = max(X4,Low);
    X4 = min(X4,Up);
    for i=1:N
        [X1_fit(i), value1{i},Net1{i},Info1{i}] =fobj(X1(i,:));
        [X2_fit(i), value2{i},Net2{i},Info2{i}] =fobj(X2(i,:));
        [X3_fit(i), value3{i},Net3{i},Info3{i}] =fobj(X3(i,:));
        [X4_fit(i), value4{i},Net4{i},Info4{i}] =fobj(X4(i,:));
    end
    X=[X1 X2 X3 X4];
    fit=[X1_fit;X2_fit;X3_fit;X4_fit];
    value = [value1; value2; value3; value4];
    Net = [Net1; Net2; Net3; Net4];
    Info = [Info1; Info2; Info3; Info4];

    [X_sort,index]=sort(fit);
    %% 在每个三角拓扑单元中找到最优点和次优点。
    for i=1:N
        X_best_1(i,:)=X(i,(index(1,i)-1)*Dim+1:index(1,i)*Dim);
        X_best_2(i,:)=X(i,(index(2,i)-1)*Dim+1:index(2,i)*Dim);
    end
    best_fit_1=X_sort(1,:);
    best_fit_2=X_sort(2,:);

    sorted_value(:, 1) = value(index(:, 1), 1);
    sorted_value(:, 2) = value(index(:, 2), 2);
    best_value_1 = sorted_value(1,:);
    best_value_2 = sorted_value(2,:);

    sorted_Net(:, 1) = Net(index(:, 1), 1);
    sorted_Net(:, 2) = Net(index(:, 2), 2);
    best_Net_1 = sorted_Net(1,:);
    best_Net_2 = sorted_Net(2,:);

    sorted_Info(:, 1) = Info(index(:, 1), 1);
    sorted_Info(:, 2) = Info(index(:, 2), 2);
    best_Info_1 = sorted_Info(1,:);
    best_Info_2 = sorted_Info(2,:);

    %% 通用聚合
    for i=1:N
        r=rand(1,Dim);
        X_new=X_best_1;
        X_new(i,:)=[];
        l1=randi(N-1);
        X_G(i,:)=(r.*X_best_1(i,:)+(ones(1,Dim)-r).*X_new(l1,:));
        X_G(i,:) = max(X_G(i,:),Low);
        X_G(i,:) = min(X_G(i,:),Up);
        [X_fit_G(i), valueG{i},NetG{i},InfoG{i}]=fobj(X_G(i,:));
        if X_fit_G(i)<best_fit_1(i)
            X_best_1(i,:)=X_G(i,:);
            best_fit_1(i)=X_fit_G(i);
            best_value_1{i}=valueG{i};
            best_Net_1{i}=NetG{i};
            best_Info_1{i}=InfoG{i};

        elseif X_fit_G(i)<best_fit_2(i)
            X_best_2(i,:)=X_G(i,:);
            best_value_2{i}=valueG{i};
            best_Net_2{i}=NetG{i};
            best_Info_2{i}=InfoG{i};
        end
    end
    %% 局部聚合
    for i=1:N
        a=(exp(1)-(exp(1))^3)/(T-1);
        b=(exp(1))^3-a;
        alpha=log(a*t+b);
        X_C(i,1:Dim)=X_best_1(i,1:Dim)+alpha*(X_best_1(i,1:Dim)-X_best_2(i,1:Dim));
        X_C(i,:) = max(X_C(i,:),Low);
        X_C(i,:) = min(X_C(i,:),Up);
        [X_fit_C(i), valueC{i},NetC{i},InfoC{i}]=fobj(X_C(i,:));
        if X_fit_C(i)<best_fit_1(i)
            X_best_1(i,:)=X_C(i,:);
            best_fit_1(i)=X_fit_C(i);
            best_value_1{i}=valueC{i};
            best_Net_1{i}=NetC{i};
            best_Info_1{i}=InfoC{i};
        end
    end
    %% 
    N00=PopSize-N*3;
    if N00~=0
        X00=rand(PopSize-N*3,Dim).*(Up-Low)+Low;
        for i=1:N00
            [X00_fit,value00{i},Net00{i},Info00{i}]=fobj(X00(i,:));
        end
        X_1_0=[X_best_1;X00];
        X_1_0_fit=[best_fit_1,X00_fit];
        value_1_0=[best_value_1;value00];
        Net_1_0=[best_Net_1;Net00];
        Info_1_0=[best_Info_1;Info00];
        
        [~,index01]=sort(X_1_0_fit);
        X_best_1=X_1_0(index01(1:N),:);
        best_value_1=value_1_0(index01(1:N),:);
        best_Net_1=Net_1_0(index01(1:N),:);
        best_Info_1=Info_1_0(index01(1:N),:);

        best_fit_1=X_1_0_fit(index01(1:N));
    end
    X1=X_best_1;
    %% 前N/3个个体作为下一次迭代的初始种群。

部分图片来源于网络,侵权联系删除!

欢迎感兴趣的小伙伴“复制代码上方链接”或“联系小编”获得完整版代码哦~,关注小编会继续推送更有质量的学习资料、文章程序代码~

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1428593.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

备战蓝桥杯---数据结构与STL应用(入门1)

话不多说&#xff0c;直接看题&#xff1a; 下面为分析&#xff1a;显然&#xff0c;我们要先合并最小的两堆&#xff08;因为他们在后边也得被计算&#xff0c;换句话&#xff0c;我们独立的看&#xff0c;某一堆的体力值为他自己重量*从现在到最后的次数&#xff09; 因此&a…

JAVA Web 学习(三)Web服务架构

五、软件架构模式——MVC MVC是一种 分层开发的模式 &#xff0c;其中&#xff1a;M-Model&#xff0c;业务模型&#xff0c;处理业务&#xff1b;V&#xff1a;View&#xff0c;视图&#xff0c;界面展示&#xff1b;C&#xff1a;Controller&#xff0c;控制器&#xff0c;处…

vulhub靶机activemq环境下的CVE-2015-5254(ActiveMQ 反序列化漏洞)

影响范围 Apache ActiveMQ 5.x ~ Apache ActiveMQ 5.13.0 远程攻击者可以制作一个特殊的序列化 Java 消息服务 (JMS) ObjectMessage 对象&#xff0c;利用该漏洞执行任意代码。 漏洞搭建 没有特殊要求&#xff0c;请看 (3条消息) vulhub搭建方法_himobrinehacken的博客-CSD…

柔性电流探头方向判断有哪些方法?干货分享!

柔性电流探头方向判断的方法干货分享&#xff01;从理论到实践&#xff0c;助您成为专业人士&#xff01;干货收藏&#xff0c;快看起来吧&#xff01;      柔性电流探头方向判断一直是电力行业测试中的关键问题之一&#xff0c;确切地判断电流方向对于测试电力系统的稳定…

分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别

分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别 目录 分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现G…

jsp 产品维修管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 产品维修管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.…

追觅科技发布全折叠高速吹风机Pocket

2月2日&#xff0c;追觅科技召开2024新品发布会&#xff0c;一系列年度新品亮相。现场&#xff0c;追觅科技发布了个护重磅新品——追觅Pocket折叠高速吹风机&#xff0c;这也是行业首个全折叠高速吹风机。 创新柔性折叠技术&#xff0c;直卷吹一机全能 追觅Pocket折叠高速吹风…

体育馆运动场地预定小程序的独特优势与用户体验

随着人们健康意识的提高&#xff0c;体育馆成为了大家进行锻炼和运动的重要场所。为了更好地满足用户的需求&#xff0c;体育馆需要开发一款预定场地的小程序&#xff0c;为用户提供便捷、高效的预定服务。本文将介绍如何使用乔拓云平台开发体育馆运动场地预定小程序&#xff0…

如何评价 Linux 中国停止运营?

如何评价 Linux 中国停止运营&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&…

MySQL之谈谈MySQL里的日志

文章目录 前言一、SQL是如何做更新操作的二、MySQL中的redo log三、MySQL中的binlog四、聊聊两阶段提交总结 前言 上一章我们讲了一条SQL是如何做查询的&#xff0c;其中经历了许多步骤。这次来讲讲一条SQL是如何做更新操作的。 常有大佬说他可以把MySQL恢复到半个月内任意一秒…

逸学区块链【solidity】真随机数

参考Get a Random Number | Chainlink Documentation 但是很贵&#xff0c;价格 Gas Price&#xff1a;当前gas价格&#xff0c;根据网络状况而波动。Callback gas &#xff1a;返回您所请求的随机值时&#xff0c;回调请求消耗的gas 量。验证gas &#xff1a;量gas 用于验证…

【ADI 知识库】X 波段相控阵开发平台 硬件 2

ADAR1000EVAL1Z (Stingray) ADAR1000-EVAL1Z评估板是一款模拟波束成形前端&#xff0c;设计用于测试ADAR1000和ADTR1107的性能。ADAR1000 是一款 8 GHz 至 16 GHz、4 通道、X 波段和 Ku 波段波束成形器 IC。ADTR1107是 6 GHz 至 18 GHz 前端发送/接收模块。 ADAR1000-EVAL1Z板…

理解网站的账号和密码构成

什么是baolipojie 使用暴力的方式进行用户名或密码的破解&#xff0c;反复试错的方式 为什么 最终的目的:获取用户名和密码 网站的权限划分:超级管理员 管理员 VIP 普通用户 baolipojie的准备工作 1、学习的靶场(DVWA) 2、字典 3、Burp suite 如何进行baolipojie 本来说…

力扣461. 汉明距离(位运算)

Problem: 461. 汉明距离 文章目录 题目描述思路复杂度Code 题目描述 思路 Problem: 力扣191. 位1的个数&#xff08;位运算&#xff09; 该题只需要在上题的基础上先对两个数进行一次异或操作即可 复杂度 时间复杂度: O ( 1 ) O(1) O(1) 空间复杂度: O ( 1 ) O(1) O(1) Code …

【python接口自动化】- 对接各大数据库

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

C:\Users\ShuYixiao>mysql ‘mysql‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件

这个错误信息表明 mysql 命令在你的系统中没有被识别。这通常意味着 MySQL 没有安装在你的电脑上&#xff0c;或者它的可执行文件路径没有添加到系统的环境变量中。以下是一些解决这个问题的步骤&#xff1a; 确认 MySQL 是否已安装&#xff1a; 如果你还没有安装 MySQL&#x…

LLM(3) | 自注意力机制 (self-attention mechanisms)

LLM(3) | 自注意力机制 (self-attention mechanisms) self-attention 是 transformer 的基础&#xff0c; 而 LLMs 大语言模型也都是 transformer 模型&#xff0c; 理解 self-attention, 才能理解为什么 LLM 能够处理好上下文关联性。 本篇是对于 Must-Read Starter Guide t…

LISN究竟是什么?有什么作用?

在电子领域中&#xff0c;LISN是一个充满神秘感的工具&#xff0c;常常被用于电磁兼容性测试。本文将深入探讨LISN的本质是什么&#xff0c;以及它在电子领域中扮演的关键角色。 1. 认识LISN LISN&#xff0c;全称为Line Impedance Stabilization Network&#xff0c;即线路阻…

Jetpack Compose系列(1)-初识Jetpck

Jetpack Compose是什么 2019年的I/O大会上&#xff0c;Google宣布Kotlin成为Android开发首选语言&#xff08;这次不是第一次说了&#xff09;&#xff0c;且后续会有新的Jetpack API和功能将在Kotlin中提供&#xff0c;并同时开源Jetpack Compose。 简介 Jetpack是一套库、…

骨传导耳机的原理是什么?骨传导耳机是如何传输声音的

随着生活质量的日益提升&#xff0c;可穿戴智能设备的种类和款式也愈发丰富多彩。特别是耳机产业的快速演变&#xff0c;不仅在类型上多样化&#xff0c;其外观设计也呈现出各式各样的趋势。然而&#xff0c;对于运动爱好者来说&#xff0c;真正合适的运动耳机却并不多见。在众…