导语


“集智百科精选”是一个长期专栏,持续为大家推送复杂性科学相关的基本概念和资源信息。作为集智俱乐部的开源科学项目,集智百科希望打造复杂性科学领域最全面的百科全书,欢迎对复杂性科学感兴趣、热爱知识整理和分享的朋友加入,文末可以扫码报名加入百科志愿者!

↑↑↑扫码直达百科词条


图片

张江、袁冰 | 作者


目录

1. 作者说明

2. 程序运行说明

3. 预期的结果

4. 原理

5. 问题

6. 引申

7. 参数说明




1. 作者说明




熟悉集智老网站的朋友都会对满屏乱爬的蚂蚁印象深刻。这是一个早在2003年(集智网站创立伊始),我独立完成的一个用JavaApplet写的模拟程序。它模拟了一群蚂蚁从巢穴出发,绕过障碍物去觅食,并把食物搬运回巢穴的过程。在这个过程中,蚂蚁们是通过向环境播撒信息素(两种颜色的点)来完成间接通讯的。这个程序实际上比蚁群算法更加复杂,因为它希望的是模拟蚁群,而不是为了解决觅食问题的。但是,该程序非常形象而清晰地说明了蚁群算法的运行原理。最近,袁冰利用大模型重新把这个JavaApplet版的程序转换成了Javascript版本的,因此可以在这个网页独立运行了。




2. 程序运行说明




首先您要保证你的浏览器支持javascript,然后能够正确加载这个程序。在此前提下,按开始按钮,蚂蚁们开始从窝里出动了,寻找食物;他们会顺着地形爬满整个画面,直到找到食物再返回。

其中,浅蓝色的点表示食物,黄色的点表示窝,雾状的点表示蚂蚁留下的信息素,红色的点表示障碍物,白色的动点就是蚂蚁了。

按设置按钮你可以更改一些环境变量,也可以更改单个蚂蚁的属性。在设置参数窗口中显示了整个蚂蚁群中找到的从它的窝到食物的最短路径。

使用环境参数设置和个体蚂蚁的设置可以让你观察到这些参数是怎样影响蚂蚁的行为的。其中信息素的大小和消散的快慢直接决定了蚂蚁找到食物的快慢。(具体见后面的参数说明)

编辑地图让你能够随心所欲的更改蚂蚁的环境,你会看到,无论你怎样精心巧妙的设计地图,小蚂蚁最终都能找到食物!我们为你准备了一个地图库,可以自动调出不同的地图。

蚁迹寻踪的javascript模拟程序(前往集智百科,在运行程序上侧即可看到下载通道:https://wiki.swarma.org/index.php/%E8%9A%81%E8%BF%B9%E5%AF%BB%E8%B8%AA)




3. 预期的结果




各个蚂蚁在没有事先告诉他们食物在什么地方的前提下开始寻找食物。当一只找到食物以后,它会向环境释放一种信息素,吸引其他的蚂蚁过来,这样越来越多的蚂蚁会找到食物!有些蚂蚁并没有象其它蚂蚁一样总重复同样的路,他们会另辟蹊径,如果令开辟的道路比原来的其他道路更短,那么,渐渐,更多的蚂蚁被吸引到这条较短的路上来。最后,经过一段时间运行,可能会出现一条最短的路径被大多数蚂蚁重复着。




4. 原理




为什么小小的蚂蚁能够找到食物?他们具有智能么?设想,如果我们要为蚂蚁设计一个人工智能的程序,那么这个程序要多么复杂呢?首先,你要让蚂蚁能够避开障碍物,就必须根据适当的地形给它编进指令让他们能够巧妙的避开障碍物,其次,要让蚂蚁找到食物,就需要让他们遍历空间上的所有点;再次,如果要让蚂蚁找到最短的路径,那么需要计算所有可能的路径并且比较它们的大小,而且更重要的是,你要小心翼翼的编程,因为程序的错误也许会让你前功尽弃。这是多么不可思议的程序!太复杂了,恐怕没人能够完成这样繁琐冗余的程序。

然而,事实并没有你想得那么复杂,上面这个程序每个蚂蚁的核心程序编码不过100多行!为什么这么简单的程序会让蚂蚁干这样复杂的事情?答案是:简单规则的涌现。事实上,每只蚂蚁并不是像我们想象的需要知道整个世界的信息,他们其实只关心很小范围内的眼前信息,而且根据这些局部信息利用几条简单的规则进行决策,这样,在蚁群这个集体里,复杂性的行为就会凸现出来。这就是人工生命、复杂性科学解释的规律!那么,这些简单规则是什么呢?下面详细说明:

  1. 范围:蚂蚁观察到的范围是一个方格世界,蚂蚁有一个参数为速度半径VR(一般是3),那么它能观察到的范围就是VR*VR个方格世界,并且能移动的距离也在这个范围之内。
  2. 环境:蚂蚁所在的环境是一个虚拟的世界,其中有障碍物,有别的蚂蚁,还有信息素,信息素有两种,一种是找到食物的蚂蚁洒下的食物信息素,一种是找到窝的蚂蚁洒下的窝的信息素。每个蚂蚁都仅仅能感知它范围内的环境信息。环境以一定的速率让信息素消失。
  3. 觅食规则:在每只蚂蚁能感知的范围内寻找是否有食物,如果有就直接过去。否则看是否有信息素,并且比较在能感知的范围内哪一点的信息素最多,这样,它就朝信息素多的地方走,并且每只蚂蚁多会以小概率犯错误,从而并不是往信息素最多的点移动。蚂蚁找窝的规则和上面一样,只不过它对窝的信息素做出反应,而对食物信息素没反应。
  4. 移动规则: 每只蚂蚁都朝向信息素最多的方向移,并且,当周围没有信息素指引的时候,蚂蚁会按照自己原来运动的方向惯性的运动下去,并且,在运动的方向有一个随机的小的扰动。为了防止蚂蚁原地转圈,它会记住最近刚走过了哪些点,如果发现要走的下一点已经在最近走过了,它就会尽量避开。
  5. 避障规则:如果蚂蚁要移动的方向有障碍物挡住,它会随机的选择另一个方向,并且有信息素指引的话,它会按照觅食的规则行为。
  6. 播撒信息素规则:每只蚂蚁在刚找到食物或者窝的时候撒发的信息素最多,并随着它走远的距离,播撒的信息素越来越少。根据这几条规则,蚂蚁之间并没有直接的关系,但是每只蚂蚁都和环境发生交互,而通过信息素这个纽带,实际上把各个蚂蚁之间关联起来了。比如,当一只蚂蚁找到了食物,它并没有直接告诉其它蚂蚁这儿有食物,而是向环境播撒信息素,当其它的蚂蚁经过它附近的时候,就会感觉到信息素的存在,进而根据信息素的指引找到了食物。




5. 问题




说了这么多,蚂蚁究竟是怎么找到食物的呢? 在没有蚂蚁找到食物的时候,环境没有有用的信息素,那么蚂蚁为什么会相对有效的找到食物呢?这要归功于蚂蚁的移动规则,尤其是在没有信息素时候的移动规则。首先,它要能尽量保持某种惯性,这样使得蚂蚁尽量向前方移动(开始,这个前方是随机固定的一个方向),而不是原地无谓的打转或者震动;其次,蚂蚁要有一定的随机性,虽然有了固定的方向,但它也不能像粒子一样直线运动下去,而是有一个随机的干扰。这样就使得蚂蚁运动起来具有了一定的目的性,尽量保持原来的方向,但又有新的试探,尤其当碰到障碍物的时候它会立即改变方向,这可以看成一种选择的过程,也就是环境的障碍物让蚂蚁的某个方向正确,而其他方向则不对。这就解释了为什么单个蚂蚁在复杂的诸如迷宫的地图中仍然能找到隐蔽得很好的食物。 当然,在有一只蚂蚁找到了食物的时候,其他蚂蚁会沿着信息素很快找到食物的。

蚂蚁如何找到最短路径的?这一是要归功于信息素,另外要归功于环境,具体说是计算机时钟。信息素多的地方显然经过这里的蚂蚁会多,因而会有更多的蚂蚁聚集过来。假设有两条路从窝通向食物,开始的时候,走这两条路的蚂蚁数量同样多(或者较长的路上蚂蚁多,这也无关紧要)。当蚂蚁沿着一条路到达终点以后会马上返回来,这样,短的路蚂蚁来回一次的时间就短,这也意味着重复的频率就快,因而在单位时间里走过的蚂蚁数目就多,洒下的信息素自然也会多,自然会有更多的蚂蚁被吸引过来,从而洒下更多的信息素……;而长的路正相反,因此,越来越多地蚂蚁聚集到较短的路径上来,最短的路径就近似找到了。也许有人会问局部最短路径和全局最短路的问题,实际上蚂蚁逐渐接近全局最短路的,为什么呢?这源于蚂蚁会犯错误,也就是它会按照一定的概率不往信息素高的地方走而另辟蹊径,这可以理解为一种创新,这种创新如果能缩短路途,那么根据刚才叙述的原理,更多的蚂蚁会被吸引过来。

蚁迹寻踪

上图说明了这个过程,从a出发到e有两条路,左边的较长,右边的较短,在这两个图中,开始的时候(左图)蚂蚁选择两条路的机会是均等的,当时间流逝以后(右图所示),更多的蚂蚁聚集到右边的较短的路上来。




6. 引申




跟着蚂蚁的踪迹,你找到了什么?通过上面的原理叙述和实际操作,我们不难发现蚂蚁之所以具有智能行为,完全归功于它的简单行为规则,而这些规则综合起来具有下面两个方面的特点:

1. 多样性

2. 正反馈

多样性保证了蚂蚁在觅食的时候不置走进死胡同而无限循环,正反馈机制则保证了相对优良的信息能够被保存下来。我们可以把多样性看成是一种创造能力,而正反馈是一种学习强化能力。正反馈的力量也可以比喻成权威的意见,而多样性是打破权威体现的创造性,正是这两点小心翼翼的巧妙结合才使得智能行为涌现出来了。

引申来讲,大自然的进化,社会的进步、人类的创新实际上都离不开这两样东西,多样性保证了系统的创新能力,正反馈保证了优良特性能够得到强化,两者要恰到好处的结合。如果多样性过剩,也就是系统过于活跃,这相当于蚂蚁会过多的随机运动,它就会陷入混沌状态;而相反,多样性不够,正反馈机制过强,那么系统就好比一潭死水。这在蚁群中来讲就表现为,蚂蚁的行为过于僵硬,当环境变化了,蚂蚁群仍然不能适当的调整。

既然复杂性、智能行为是根据底层规则涌现的,既然底层规则具有多样性和正反馈特点,那么也许你会问这些规则是哪里来的?多样性和正反馈又是哪里来的?我本人的意见:规则来源于大自然的进化。而大自然的进化根据刚才讲的也体现为多样性和正反馈的巧妙结合。而这样的巧妙结合又是为什么呢?为什么在你眼前呈现的世界是如此栩栩如生呢?答案在于环境造就了这一切,之所以你看到栩栩如生的世界,是因为那些不能够适应环境的多样性与正反馈的结合都已经死掉了,被环境淘汰了!




7. 参数说明




最大信息素:蚂蚁在一开始拥有的信息素总量,越大表示程序在较长一段时间能够存在信息素。食物释放信息素的半径:在食物点和窝点附近都会释放相应的信息素以便蚂蚁能更快的找到它们。这个半径越大,则越容易被蚂蚁找到。信息素消减的速度:随着时间的流逝,已经存在于世界上的信息素会消减,这个数值越大,那么消减的越快。


如果你对蚂蚁的群体行为感兴趣,科学家们在这个领域做了很多探索,特别是蚁群算法,欢迎你去查看对应的百科。



相关文章:蚁群算法 | 集智百科




作者简介


本词条由集智俱乐部众包生产,难免存在纰漏和问题,欢迎大家留言反馈,一经采纳,可以获得对应的积分奖励噢!



加入我们


亲爱的社区伙伴与知识探索者:

我们诚挚邀请热爱知识分享的您,加入集智百科词条编写志愿团队!无论您是领域专家,还是对特定主题充满热忱的学习者,这里都有您的舞台。通过编写百科词条,您将为全球读者传递权威知识,同时获得专家指导个人能力跃升的双重成长。


📝 志愿者职责

创作新词条:覆盖复杂系统、人工智能等前沿领域

迭代经典内容:更新现有词条,守护知识的准确性与时效性

质量守护者:参与内容校对审核,共建精品知识库


🌟 我们期待您

集智读书会成员(需完成共创任务并获得退费资格)

拥有清晰表达复杂概念的写作能力

对特定领域有深度研究或强烈兴趣

具备信息检索与整合素养

怀揣责任感与协作精神,愿为知识共享赋能


🎁 您将收获

百科积分(支持兑换集智俱乐部周边:文化衫、复杂科学知识卡等)

集智俱乐部创始人张江教授亲自指导写作

科研助理晋升通道:表现优异者可加入张江教授科研团队

图片

加入张江组发起的任何一期读书会并完成共创任务即可 让我们一起,用知识连接世界!




「大模型时代下的Agent建模与仿真」读书会


集智俱乐部联合山东工商学院副教授高德华、天津大学教授薛霄、北京师范大学教授张江、国防科技大学博士研究生曾利共同发起「大模型时代下的Agent建模与仿真」读书会。读书会自2025年7月8日开始,每周二晚上7:30-9:30进行,预计持续分享8周左右。扫码加入Agent建模与仿真的前沿探索之旅,一起共学、共创、共建、共享「大模型时代下的Agent建模与仿真」社区,共同畅想大模型时代人工社会的未来图景!


核心问题

Agent建模与仿真是什么,核心技术发生了怎样的演变?
大模型时代,Agent建模与仿真会给复杂系统理论带来哪些突破?
大模型如何赋能Agent实现自主思考与动态适应?
大模型驱动的Agent交互会涌现出什么新型的社会现象?
Agent建模与仿真如何改变金融、心理、管理、军事等领域的研究范式?

你将收获
梳理Agent建模与仿真的历史发展脉络与方法论;
掌握一套理解、分析、控制、预测复杂系统的计算实验框架;
掌握基于多主体强化学习的复杂系统优化方法;
领略领域前沿学者的研究体系与科研路径。


图片

详情请见:大模型时代下的Agent建模与仿真:共探人工社会未来图景


推荐阅读

1. PNAS速递:蚁群分布式算法解决最短路径问题
2. 蚁群算法 | 集智百科
3. 百科词条6条速览:蚁群优化算法、贝叶斯网络、自指……
4. 涌现动力学如何用来分析复杂系统? | 新课上线
5. 集智学园精品课程免费开放,解锁系统科学与 AI 新世界

6. 高考分数只是张入场券,你的科研冒险在这里启航!

7. 重整化群与非线性物理,寻找复杂系统跨尺度的分析方法丨新课发布



点击“阅读原文”,报名读书会

内容中包含的图片若涉及版权问题,请及时与我们联系删除