【智能算法】三角拓扑聚合优化算法(TTAO)原理及实现

news2024/12/24 13:28:23

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.背景

2024年,S Zhao受到数学相似三角形拓扑结构启发,提出了三角拓扑聚合优化算法(Triangulation Topology Aggregation Optimizer, TTAO)。

在这里插入图片描述
在这里插入图片描述

2.算法原理

2.1算法思想

TTAO算法包含两种策略:泛化聚合和局部聚合,迭代构建多个相似的三角形拓扑单元,以平衡探索和开发。前者通过不同三角拓扑单元之间的正信息交换产生新的顶点,后者根据每个单元的局部最优顶点在有希望的位置构造新的单元。

在这里插入图片描述

2.2算法过程

三角拓扑单元形成

在球坐标系中以第一个顶点为起始顶点,利用三角函数将其转换为普通坐标系,得到一个长度为l*f的新方向向量。生成的长度为 l *f 的方向向量逆时针旋转π/3,然后通过坐标系变换得到第三个顶点:
X i , 2 → = X i , 1 → + l ∗ f ( θ ) → X i , 3 → = X i , 1 → + l ∗ f ( θ + π 3 → ) → (1) \begin{aligned}\overrightarrow{X_{i,2}}&=\overrightarrow{X_{i,1}}+l*\overrightarrow{f(\theta)}\\\overrightarrow{X_{i,3}}&=\overrightarrow{X_{i,1}}+l*\overrightarrow{f\left(\overrightarrow{\theta+\frac{\pi}{3}}\right)}\end{aligned}\tag{1} Xi,2 Xi,3 =Xi,1 +lf(θ) =Xi,1 +lf(θ+3π ) (1)
其中l表示三角形拓扑单元的大小:
l = 9 ∗ e − t T (2) l=9*e^{-\frac tT}\tag{2} l=9eTt(2)
在早期阶段,l可以产生更大的搜索范围,以专注于全局探索。然后在后期聚集后,向有希望的方向深入发展。为了保证在以后的迭代中仍能产生三角拓扑单元,l不会减小到0:
f ( θ → ) → = [ c o s θ 1 , c o s θ 2 , . . . , c o s θ D − 1 , c o s θ D ] f ( θ + π 3 → ) → = [ cos ⁡ ( θ 1 + π 3 ) , … , cos ⁡ ( θ D − 1 + π 3 ) , cos ⁡ ( θ D + π 3 ) ] (2) \overrightarrow{f\left(\overrightarrow{\theta}\right)}=[\mathrm{cos}\theta_{1},\mathrm{cos}\theta_{2},...,\mathrm{cos}\theta_{D-1},\mathrm{cos}\theta_{D}]\\\overrightarrow{f\left(\overrightarrow{\theta+\frac{\pi}{3}}\right)}=\left[\cos\left(\theta_{1}+\frac{\pi}{3}\right),\ldots,\cos\left(\theta_{D-1}+\frac{\pi}{3}\right),\cos\left(\theta_{D}+\frac{\pi}{3}\right)\right]\tag{2} f(θ ) =[cosθ1,cosθ2,...,cosθD1,cosθD]f(θ+3π ) =[cos(θ1+3π),,cos(θD1+3π),cos(θD+3π)](2)
每组三角拓扑单元在内部聚合为第四个顶点:
X i , 4 → = r 1 ∗ X i , 1 → + r 2 ∗ X i , 2 → + r 3 ∗ X i , 3 → (3) \overrightarrow{X_{i,4}}=r_{1}*\overrightarrow{X_{i,1}}+r_{2}*\overrightarrow{X_{i,2}}+r_{3}*\overrightarrow{X_{i,3}}\tag{3} Xi,4 =r1Xi,1 +r2Xi,2 +r3Xi,3 (3)
其中r1, r2, r3为[0,1]之间的随机数,r1+r2+r3 = 1。因此,第四个搜索代理位于每个三角形拓扑单元内。在每次迭代开始时,从一个相同长度的顶点和两条相同长度的边得到新的相似三角形拓扑单元。

泛化聚合

泛化聚合强调探索阶段,其收集不同三角单元中优秀个体的信息,并创造出新的可行解。信息交互发生在每个三角拓扑单元中最优个体与任意选定单元集中最优个体之间。受到遗传算法中基因交叉的启发,新个体在较好的两顶点连接中产生:
X i , n e w 1 t + 1 → = r 4 ∗ X i , b e s t t → + ( 1 − r 4 ) ∗ X r a n d , b e s t t → (4) \overrightarrow{X_{i,new1}^{t+1}}=r_4*\overrightarrow{X_{i,best}^t}+(1-r_4)*\overrightarrow{X_{rand,best}^t}\tag{4} Xi,new1t+1 =r4Xi,bestt +(1r4)Xrand,bestt (4)

在这里插入图片描述
其中,Xi,best,Xrand,best分别代表单元i最佳个体和第t次迭代最优个体。
{ X i , b e s t t + 1 → = X i , n e w 1 t + 1 → f X i , n e w 1 t + 1 → < f X i , b e s t t → X i , s b e s t t + 1 → = X i , n e w 1 t + 1 → f X i , n e w 1 t + 1 → < f X i , s b e s t t → (5) \begin{cases}\overrightarrow{X_{i,best}^{t+1}}=\overrightarrow{X_{i,new1}^{t+1}}&f_{\overrightarrow{X_{i,new1}^{t+1}}}<f_{\overrightarrow{X_{i,best}^t}}\\\overrightarrow{X_{i,sbest^{t+1}}}=\overrightarrow{X_{i,new1}^{t+1}}&f_{\overrightarrow{X_{i,new1}^{t+1}}}<f_{\overrightarrow{X_{i,sbest^t}}}\end{cases}\tag{5} Xi,bestt+1 =Xi,new1t+1 Xi,sbestt+1 =Xi,new1t+1 fXi,new1t+1 <fXi,bestt fXi,new1t+1 <fXi,sbestt (5)

在这里插入图片描述

局部聚合

局部聚合主要强调开发阶段,三角形拓扑单元在内部聚集。在前一阶段之后,更新后的最优或次优个体与适应度值较好的群体中的两个顶点之间临时形成三角形拓扑:
X i , n e w 2 t + 1 → = X i , b e s t t + 1 → + α ∗ ( X i , b e s t t + 1 → − X i , s b e s t t + 1 → ) (6) \overrightarrow{X_{i,new2}^{t+1}}=\overrightarrow{X_{i,best}^{t+1}}+\alpha*\left(\overrightarrow{X_{i,best}^{t+1}}-\overrightarrow{X_{i,sbest}^{t+1}}\right)\tag{6} Xi,new2t+1 =Xi,bestt+1 +α(Xi,bestt+1 Xi,sbestt+1 )(6)
其中α递减,调整聚合范围大小:
α = ln ⁡ ( e − e 3 T − 1 t + e 3 − e − e 3 T − 1 ) (7) \alpha=\ln\left(\frac{e-e^3}{T-1}t+e^3-\frac{e-e^3}{T-1}\right)\tag{7} α=ln(T1ee3t+e3T1ee3)(7)
使用次优个体信息的目的是防止最优个体陷入局部极值,应保证临时三角单元的导点在单元内最优:
X i , b e s t t + 1 → = { X i , n e w 2 t + 1 → f X i , n e w 2 t + 1 → < f X i , b e s t t + 1 → X i , b e s t t + 1 → o t h e r w i s e (8) \overrightarrow{X_{i,best}^{t+1}}=\begin{cases}\overrightarrow{X_{i,new2}^{t+1}}&f_{\overrightarrow{X_{i,new2}^{t+1}}}<f_{\overrightarrow{X_{i,best}^{t+1}}}\\\overrightarrow{X_{i,best}^{t+1}}&otherwise\end{cases}\tag{8} Xi,bestt+1 = Xi,new2t+1 Xi,bestt+1 fXi,new2t+1 <fXi,bestt+1 otherwise(8)

在这里插入图片描述
在这里插入图片描述

伪代码

在这里插入图片描述
在这里插入图片描述

3.结果展示

在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Zhao S, Zhang T, Cai L, et al. Triangulation topology aggregation optimizer: A novel mathematics-based meta-heuristic algorithm for continuous optimization and engineering applications[J]. Expert Systems with Applications, 2024, 238: 121744.

5.代码获取

资源清单

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

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

相关文章

Unity中的MVC框架

基本概念 MVC全名是Model View Controller 是模型(model)-视图(view)-控制器(controller)的缩写 是一种软件设计规范&#xff0c;用一种业务逻辑、数据、界面显示 分离的方法组织代码 将业务逻辑聚集到一个部件里面&#xff0c;在改进和个性化定制界面及用户交互的同时&#x…

ch4网络层---计算机网络期末复习(持续更新中)

网络层概述 将分组从发送方主机传送到接收方主机 发送方将运输层数据段封装成分组 接收方将分组解封装后将数据段递交给运输层网络层协议存在于每台主机和路由器上 路由器检查所有经过它的IP分组的分组头 注意路由器只有3层(网络层、链路层、物理层) 网络层提供的服务 一…

无人售货机零售业务成功指南:从市场分析到创新策略

在科技驱动的零售新时代&#xff0c;无人售货机作为一种便捷购物解决方案&#xff0c;正逐步兴起&#xff0c;它不仅优化了消费者体验&#xff0c;还显著降低了人力成本&#xff0c;提升了运营效能。开展这项业务前&#xff0c;深入的市场剖析不可或缺&#xff0c;需聚焦消费者…

命令模式(行为型)

目录 一、前言 二、命令模式 三、总结 一、前言 命令模式&#xff08;Command Pattern&#xff09;是一种行为型设计模式&#xff0c;命令模式将一个请求封装为一个对象&#xff0c;从而可以用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以…

【C++】C++入门2.0

各位读者老爷好&#xff0c;本鼠最近浅学了一点C的入门知识&#xff01;利用本博客作为笔记的同时也希望得到各位大佬的垂阅&#xff01; 目录 1. 引用 1.1.引用的概念 1.2.引用的特性 1.3.引用的使用场景 1.4.引用的易错点 1.5.引用的优势 1.6.引用和指针 2.内联函数 …

B端UI设计,演绎高情逸态之妙

B端UI设计&#xff0c;演绎高情逸态之妙

汽车IVI中控开发入门及进阶(二十三):i.MX8

前言: IVI市场的复杂性急剧增加,而TimeToMarket在几代产品中从5年减少到2-3年。Tier1正在接近开放系统的模型(用户可以安装应用程序),从专有/关闭源代码到标准接口/开放源代码,从软件堆栈对系统体系结构/应用层/系统验证和鉴定的完全所有权,越来越依赖第三方中间件和平…

STM32自己从零开始实操03:输出部分原理图

一、继电器电路 1.1指路 延续使用 JZC-33F-012-ZS3 继电器&#xff0c;设计出以小电流撬动大电流的继电器电路。 &#xff08;提示&#xff09;电路需要包含&#xff1a;三极管开关电路、续流二极管、滤波电容、指示灯、输出部分。 1.2数据手册重要信息提炼 联系排列&…

Rainbond 携手 TOPIAM 打造企业级云原生身份管控新体验

TOPIAM 企业数字身份管控平台&#xff0c; 是一个开源的IDaas/IAM平台、用于管理账号、权限、身份认证、应用访问&#xff0c;帮助整合部署在本地或云端的内部办公系统、业务系统及三方 SaaS 系统的所有身份&#xff0c;实现一个账号打通所有应用的服务。 传统企业 IT 采用烟囱…

NSS题目练习5

[NISACTF 2022]babyupload 打开后尝试上传php&#xff0c;jpg&#xff0c;png文件都没成功 查看源代码发现有个/source文件 访问后下载压缩包发现有一个python文件 搜索后知道大致意思是&#xff0c;上传的文件不能有后缀名&#xff0c;上传后生成一个uuid&#xff0c;并将uuid…

redis缓存token设置jwt令牌过期时间

登录接口 在上文中 我们已经设置了自定义登录接口自定义拦截器jwt登录校验接口模拟账号登录_jwt自定义拦截器-CSDN博客https://blog.csdn.net/2202_75352238/article/details/138424691?spm1001.2014.3001.5501 但是上文jwt过期时间是由yml文件中配置的&#xff0c;比较不优雅…

Amis源码构建 sdk版本

建议在linux环境下构建&#xff08;mac环境下也可以&#xff09;&#xff0c;需要用到sh脚本&#xff08;amis/build.sh&#xff09;。 Js sdk打包是基于fis进行编译打包的&#xff0c;具体可见fis-conf.js&#xff1a; amis-master源码下载:https://github.com/baidu/amis g…

【OceanBase诊断调优】—— obdiag 工具助力OceanBase数据库诊断调优(DBA 从入门到实践第八期)

1. 前言 昨天给大家分享了【DBA从入门到实践】第八期&#xff1a;OceanBase数据库诊断调优、认证体系和用户实践 中obdiag的部分&#xff0c;今天将其中的内容以博客的形式给大家展开一下&#xff0c;方便大家阅读。 2. 正文 在介绍敏捷诊断工具之前&#xff0c;先说说OceanBa…

【C语言】常见的动态内存的错误

前言 在动态内存函数的使用过程中我们可能会遇到一些错误&#xff0c;这里将常见的错误进行总结。 对NULL解引用 请看以下代码&#xff1a; 可以看到&#xff0c;这时我们的malloc开辟是失败的&#xff0c;所以返回的是空指针NULL&#xff0c;而我们却没有进行检查&#xff0…

使用PNP管控制MCU是否需要复位

这两台用到一款芯片带电池&#xff0c;希望电池还有电芯片在工作的时候插入电源不要给芯片复位&#xff0c;当电池没电&#xff0c;芯片不在工作的时候&#xff0c;插入电源给芯片复位所以使用一个PNP三极管&#xff0c;通过芯片IO控制是否打开复位&#xff0c;当芯片正常工作的…

反激电源压敏电阻设计

压敏电阻的作用&#xff1a;浪涌防护。在电源出现浪涌冲击时&#xff0c;保护核心器件不受到损坏。其实类似于稳压二极管 瞬间的瞬态波 1 压敏电压 单位是&#xff0c;虽然压敏电阻可以吸收很大的浪涌能量&#xff0c;但是不能承受mA以上的持续电流。压敏电压计算公式 2 通流容…

(函数)字符串拼接(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <string.h>//声明字符串拼接函数&#xff1b; void splice(char a[100], char b[100]);int main() {//初始化变量值&#xff1b;char a[100] …

unity打包的WebGL部署到IIS问题

部署之后会出错&#xff0c;我遇到的有以下几种&#xff1b; 进度条卡住不动 明明已经部署到了IIS上&#xff0c;为什么浏览网页的时候还是过不去或者直接报错。 进度条卡住不动的问题其实就是wasm和data的错误。 此时在浏览器上按F12进入开发者模式查看错误&#xff08;下图…

【前端】Vuex笔记(超详细!!)

最近花了两周时间&#xff0c;完完全全的跟着Vuex官方的视频学完了Vuex并且详详细细的做了笔记&#xff0c;其中总结部分是我对于整个视频课程的总结&#xff0c;视频部分是跟着视频做的笔记&#xff0c;如果总结部分有不懂的话&#xff0c;直接去视频部分查找对应的笔记即可&a…

uniapp的tooltip功能放到表单laber

在uniapp中&#xff0c;tooltip功能通常是通过view组件的hover-class属性来实现的&#xff0c;而不是直接放在form的label上。hover-class属性可以定义当元素处于hover状态时的样式类&#xff0c;通过这个属性&#xff0c;可以实现一个类似tooltip的效果。 以下是一个简单的例…