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

2025年6月一区-田忌赛马优化算法Tianji’s horse racing optimization-附Matlab免费代码

引言

近年来,在合理框架内求解优化问题的元启发式算法的发展引起了全球科学界的极大关注。本期介绍一种新的元启发式算法——田忌赛马优化算法Tianji’s horse racing optimization,THRO。以中国历史上的田忌赛马故事为灵感,这个故事讲述了田忌如何利用自己的优势来抵消对手的弱点,最终在比赛中获胜。于2025年6月最新发表在JCR 1区,中科院1区 SCI计算机类期刊  Artificial Intelligence Review(影响因子IF:13.9)

图片

图片

 

田忌赛马故事发生在2000多年前的中国古代春秋时期。这是中国历史上一个众所周知的例子,揭示了如何有效地利用自己的优势来克服对手的弱点并赢得竞争。这个故事可以在一些书籍和网站上找到。田忌赛马中有效的博弈策略启发我们开发了全局搜索的THRO算法。

1. 初始化:对于THRO算法,假设有两个种群,一个是田忌的马,另一个是国王的马。两个种群各有n匹马。田忌的马可以表示为:

图片

国王的马表示为:

图片

和其他群优化算法一样,采用随机初始化。

图片

2. 场景1:当田忌现在最慢的马比国王现在最慢的马快时,就用田忌现在最慢的马和国王现在最慢的马比赛,田忌获胜。在这一轮比赛中,为了保持对田忌马的领先地位,算法会根据田忌马群中最快的马来更新当前最慢的马,同时需要考马群中最快的马和双方马的整体素质差异对田忌当前最慢的马的影响,田忌当前最慢的马的更新为:

图片

图片

图片

同时,国王当前最慢的马试图赶上田忌当前最慢的马,所以算法会根据田忌当前最慢的马更新国王当前最慢的马,国王当前最慢的马更新为:

图片

3. 场景2:当田忌现在最慢的马比国王现在最慢的马慢时,它就被用来和国王现在最快的马比赛。虽然田忌会输掉这一局,但田忌用他现在最弱的马来中和国王现在最快的马。在这一轮比赛中,由于田忌知道当前种群中最慢的马比国王当前种群中的任何一匹马都要慢,因此算法会根据从其所有种群中随机选择的一匹马来更新田忌当前最慢的马。田忌目前最慢的马更新为:

图片

对于国王来说,他会努力让自己的马跑得比田忌的马快,以保持自己的领先地位。因此,算法更新国王当前最快的马相对于他所有马群中最快的马,国王当前最快的马的更新是:

图片

4. 场景3:当田忌现在跑得最慢的马和国王现在跑得最慢的马跑得一样快,田忌现在跑得最快的马比国王现在跑得最快的马跑得更快时,就用田忌现在跑得最快的马和国王现在跑得最快的马比赛,田忌获胜。因此,在这一轮中,为了使田忌的马尽可能保持领先地位,算法将田忌目前最快的马相对于田忌马群中最快的马进行更新,更新表示为

图片

对于国王现在最快的马,为了赶上对手,它更新了田忌现在最快的马,这个更新表示为:

图片

5. 场景4:当田忌目前最慢的马跑得和国王目前最慢的马一样快,当田忌目前最快的马跑得比国王目前最快的马慢时,为了中和国王最强壮的马,用田忌目前最慢的马和国王目前最快的马比赛,田忌输了。因此,在这一轮中,由于田忌当前最慢的马肯定会输,算法倾向于从田忌的马群中随机选择一匹马来更新当前最慢的马。更新内容如下:

图片

国王的马更新为:

图片

6. 场景5:当田忌现在最慢的马跑得和国王现在最慢的马一样快,当田忌现在最快的马跑得和国王现在最快的马一样快时,田忌现在最慢的马被用来和国王现在最快的马比赛,田忌输了。对于这两匹马,算法采用与场景4类似的更新方法。田忌目前最慢的马更新为:

图片

国王的马更新为:

图片

THRO算法伪代码:

图片

参考文献

Wang, L., Du, H., Zhang, Z. et al. Tianji’s horse racing optimization (THRO): a new metaheuristic inspired by ancient wisdom and its engineering optimization applications. Artif Intell Rev 58, 282 (2025). https://doi.org/10.1007/s10462-025-11269-9.

Matlab代码下载

微信搜索并关注-优化算法侠(英文名:Swarm-Opti),或扫描下方二维码关注,以算法名字搜索历史文章即可下载。

完整代码

图片

图片

THRO-main.zip

点击链接跳转:

390种优化算法免费下载-matlab

https://mp.weixin.qq.com/s/EzKqtSwR9r2DkGj-ozJXwA

求解cec测试函数-matlab 

cec2017测试函数使用教程及matlab代码免费下载

cec2018测试函使用教程及matlab代码免费下载

cec2019测试函使用教程及matlab代码免费下载

cec2020测试函使用教程及matlab代码免费下载

cec2021测试函使用教程及matlab代码免费下载

cec2022测试函使用教程及matlab代码免费下载
绘制cec2017/018/2019/2020/2021/2022函数的三维图像教程,SO EASY!

215种群智能优化算法python库

Amazing!Python版215种群智能优化算法https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=1&sn=6b439e55b37b6482b8d3831ca85f1d55&chksm=c12be0c8f65c69de71ad51d3b736b871ff52f8646e90624f95dd32b024dfaad369d654aaf8fc#rd

解决12工程设计优化问题-matlab

略微出手,工程设计问题(12)(附Matlab代码)https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485052&idx=1&sn=80e5573c1c005ee5640e44935044ee35&chksm=c12bea79f65c636fc73758b4f4893502bd89cbd1c5d15d7db15e8b5c94eeae40450439d44944&token=681266555&lang=zh_CN#rd

求解11种cec测试函数-python

【选择自由,免费下载】215种优化算法求解11种cec测试函数-python代码https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=2&sn=eea8fb04dc507ab9119e2c97c03ca2f6&chksm=c12be0c8f65c69decd6c8109f6b997986bf58725fdbbd7ab03752cb6f61aacdb5a2dc7fec762#rd

解决30种工程设计优化问题-python

【一码解决】215种优化算法求解30个现实世界的工程设计优化问题,让你的论文增色10倍(附Python代码)https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486669&idx=3&sn=ea6d26ae7cb651e5c368f4c73ade228e&chksm=c12be0c8f65c69de739af72d9793838f59ab77bfee36bc2c204f96e2a9e5c6d87dfbbbae698e#rd

仅需一行,可改进所有优化算法:21种混沌映射方法-混沌初始化(附matlab代码)

用于改进所有优化算法:21种混沌映射方法-混沌初始化(附matlab代码)21种混沌映射方法-混沌初始化,适用于所有优化算法https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486215&idx=2&sn=58f1a69175b0d6431a4c7cdfa114b84d&chksm=c12be702f65c6e14e6bd1ddc33b9cec74991d93303c325853049b7e4afd09039b13083fa79c5&token=25423484&lang=zh_CN#rd

【有经典,有最新】24种信号分解方法(附matlab代码) 

沙场大点兵:24种信号分解方法(附matlab代码)https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486001&idx=1&sn=a87c24cb401017a78a90bd1b1439fcb0&chksm=c12be634f65c6f22368b7229a59ac5ef330b89d710c826dbfd1a1c34a02b1dd7e909c7f40d79&token=25423484&lang=zh_CN#rd

 【分类新范式】27种一维数据转换成二维图像的方法-matlab代码

沙场大点兵:27种一维数据转换成二维图像的方法-matlab代码https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486260&idx=1&sn=81b1970cb89364c0289ccdfb403e5388&chksm=c12be731f65c6e273a85456326b503b7f35d9f035405050932ff1926e0b1bfa8076b1bc2d1f2&token=25423484&lang=zh_CN#rd

http://www.lryc.cn/news/579426.html

相关文章:

  • Springboot3整合ehcache3缓存--XML配置和编程式配置
  • 【PyCharm 2025.1.2配置debug】
  • 【vmware虚拟机使用】 开始安装centos7操作系统
  • Navicat Premium 12连接Oracle时提示oracle library is not loaded的问题解决
  • 分布式部署下如何做接口防抖---使用分布式锁
  • macOS 26正式发布,全新Liquid Glass设计语言亮相
  • 旅游管理实训室:支撑实践教学的核心载体
  • 5118 API智能处理采集数据教程
  • 项目——视频共享系统测试
  • 【C++】状态模式
  • GitHub 解码指南:用 AI 赋能,五步快速掌握任意开源项目
  • MySQL 8.0 OCP 1Z0-908 题目解析(20)
  • MVC 架构设计模式
  • 【Linux仓库】进程优先级及进程调度【进程·肆】
  • 小黑黑日常积累大模型prompt句式2:【以段落的形式输出,不分点列举】【如果没有相关内容则不输出】【可读性强】【输出格式规范】
  • Java学习第八部分——泛型
  • git 中删除提交历史
  • 代码随想录算法训练营第四十五天|动态规划part12
  • Fiddler中文版抓包工具在后端API调试与Mock中的巧用
  • 应用在核电行业的虚拟现实解决方案
  • Laravel8中调取腾讯云文字识别OCR
  • 【前端开发】Uniapp分页器:新增输入框跳转功能
  • SpringCloud系列(49)--SpringCloud Stream消息驱动之实现生产者
  • Rubber Band Algorithm 应力及反作用力测试
  • 运维打铁: 企业运维开发痛点之解决方案
  • ModuleNotFoundError: No module named ‘onnxruntime‘
  • 【免费.NET方案】CSV到PDF与DataTable的快速转换
  • 图论基础算法入门笔记
  • MySQL 8.0 OCP 1Z0-908 题目解析(18)
  • 深度学习2(逻辑回归+损失函数+梯度下降)