引言
近年来,在合理框架内求解优化问题的元启发式算法的发展引起了全球科学界的极大关注。本期介绍一种新的元启发式算法——田忌赛马优化算法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),或扫描下方二维码关注,以算法名字搜索历史文章即可下载。
完整代码
点击链接跳转:
390种优化算法免费下载-matlab
https://mp.weixin.qq.com/s/EzKqtSwR9r2DkGj-ozJXwA
求解cec测试函数-matlab
cec2022测试函使用教程及matlab代码免费下载
绘制cec2017/018/2019/2020/2021/2022函数的三维图像教程,SO EASY!