群体智能产生于简单的规则基于 Taichi 的蚁群模拟器

您好,欢迎访问我们的网站,我们将竭诚为您服务!

群体智能产生于简单的规则基于 Taichi 的蚁群模拟器

时间:2022-10-22 16:05:42 阅读:111
大自然的生物远比人类想象的更加“聪明“,本篇技术博客讲述了「如何用Taichi造就一个蚁群模拟器」。蚁群算法是一种启发式的全局优化算法,它由一群几乎无智能的个体通过相互协作而表现出智能行为,从而为解决复杂问题提供可能。这份「蚂蚁吃太极」的作业完成了一个简单的蚁群算法实现与可视化,代码简明好懂,效果夺人眼球,是太极图形课第一季论坛上点赞数最多的作业。

  Afish,某大学物理系在读博士生,研究方向为物质的生长机制,是太极图形的忠实粉丝。有时会用Taichi实现一些好玩的东西,也会用Taichi来对自己研究的物质体系进行简单的模拟。同时,Afish也在太极图形课第一季优秀作业名单上榜上有名。

  第一次听说太极编程语言是在2020年6月左右,从那时起我就开始觉得它非常好用。作为一个非计算机出身的外行人,Taichi给我留下的第一印象就是:上手快、效率高,在一段时间的学习后便能实现简单的toy models,例如二维分子动力学、显式热传导等。于是很自然地,我决定在自己后续的科研生活中将Taichi作为建模的主要工具之一。2021年9月太极图形课第一季1顺利开播,当时心想:太好了!可以去凑一波热闹喽。于是本篇文章的主题「蚁群算法」便作为我的第二次课程作业出现了。

  为什么选择了蚁群算法呢?因为要完成作业(默默划掉)。一个原因是之前曾看到过别人实现的蚁群模拟以及黏菌模拟2,感觉效果非常漂亮,产生了要自己创造一个蚁群的冲动。另外一个原因是蚁群这样的群体智能本身就很有趣:通过指定一些简单的个体间的相互作用规则,就可产生宏观的群体智能行为(例如寻路),不需要任何的“中央控制系统”。哪个小孩不想养一窝会走迷宫觅食的蚂蚁呢?

  本文的目的是介绍如何用Taichi实现蚁群模拟,并说一句:太极真香。

  1.蚁群做了什么?为什么能找到吃的?

  如果你在大街上看到蚂蚁,要么会看到零星几只在四处溜达,要么就是一大群蚂蚁沿着一条蜿蜒的曲线来来往往。蚂蚁们走的这条曲线一般连接着蚁窝和食物。蚁群不仅能够有效寻找到食物,还能自发在给定充足的时间后将输运路径进行最大程度的优化,最终得到回家的最快线路。其原因为蚂蚁之间存在信息的交流,其中一种重要的交流途径就是信息素。

  图1蚁群优化过程。左:初始时蚂蚁信息不足,觅食与回家均采取随机选取的路线;中:蚁群逐渐通过信息素获取信息,蚂蚁走过不同的路径;右:每条路径蚂蚁数量相同时,最短的路径上具备的信息素浓度最大,蚂蚁逐渐追随最短路径。图片来源:维基百科

  蚂蚁能够释放多种信息素,我们只需以其中两种为例即可明白他们为何能寻路。首先,从蚁窝出来的蚂蚁能够定期在自己的路径上留下“家”信息素,而找寻到食物后,蚂蚁会停止释放该信息素,转而留下“食物”信息素,并寻找家。与此同时,去觅食的蚂蚁不仅会探寻食物,还会探测周围“食物”信息素的浓度,并向信息素浓度高的地方运动。回家的蚂蚁则不同,它们会向“家”信息素浓度高的地方移动。与此同时,每只蚂蚁释放的信息素浓度还可以与自己走过的路程长短相关,这样路程越远所提供的浓度越小,路径选择时的权重就越小。信息素还会随着时间的推移逐渐挥发,使得不常走的旧路径的权重逐渐降低。

  taichi由于所有蚂蚁都是从蚁窝出发,因此蚁窝附近的“家”信息素浓度很高,而当有越来越多蚂蚁发现了食物后,食物附近的“食物”信息素浓度也会逐渐升高,这样两者间就自发产生了信息素浓度梯度。同时,如果两条路径都指向了同一个食物位置,由于具有较长路程的线路信息素浓度相比于较短路程的那条要低(在两条路径蚂蚁数量相当的情况下),在有了信息素梯度作为媒介后,蚂蚁们就可以顺着浓度过去找吃的了。taichi https://taichi-lang.cn/
郑重声明:文章内容来自互联网,纯属作者个人观点,仅供参考,并不代表本站立场 ,版权归原作者所有!

上一篇:多面体万花筒用 Taichi 展示数学之美

下一篇:使用太极编程语言的优势

相关推荐

返回顶部