蚂蚁在沙漠中行走为什么始终不会迷路?

你是否曾经注意过蚂蚁是如何外出觅食的?这样的问题对于一般人而言似乎显得有些莫名其妙,但是对于生态学家和动物行为学家而言这一点却非常关键和有趣。尤其是在明确知道蚂蚁们实际上并没有统一的*指挥调度系统的前提之下便更是如此。

有一点非常让人感兴趣,那就是蚂蚁们的组织方式与人类社会所采用的一些工程解决方案之间的高度相似性。其中一个案例便是所谓的“蚂蚁网络”(Anternet)。美国斯坦福大学的一个研究组发现沙漠蚂蚁们在外出觅食时采用的组织方式与人类社会在计算机网络方面所采用的,旨在规范数据传输的TCP协议之间存在算法方面的高度相似性——蚂蚁网络和人类使用的信息网络算法设计都采用了正反馈机制:在TCP传输协议中,一个数据包的抵达确认信号会激发下一个数据包的发送开始,而一只满载而归的蚂蚁个体则会触发下一只觅食的蚂蚁个体出发继续觅食的工作。这些研究不禁让我们惊叹于蚂蚁们的高度智慧——它们竟然能够发明出与人类相媲美的复杂精妙的系统。

但是这种相似性还不是蚂蚁网络给与我们的最令人兴奋的地方,关键的部分在于,还有没有哪些是蚂蚁们一直在采用的精妙方法,但是我们人类却还没有意识到的?换句话说,蚂蚁们是否能够给予我们工程学界未来的走向以启迪?

在大约1.3亿年的演化历程中,进化的过程让蚂蚁网络经受了在不断变化和严苛环境条件下的考验。蚂蚁们会利用简单的基于简短互动的网络来达成对不断变化的网络的适应。在整个蚂蚁群体中,单个的蚂蚁都不知道接下来到底要做什么,去哪里。它们只是机械的按照之前跟另一只蚂蚁相互碰触的触须,或者地面上留下的信息素执行自己的动作并选定路径。然而正是这种看似简单机械的机制确保了蚂蚁们的生存,现在全世界有超过1.1万种蚂蚁种类,几乎分布于地球表面所有可以生活的地方。因此这样有效的蚂蚁网络,必定有一些值得我们学习借鉴的地方。

通过简单的信息交换,蚁群成功应对不断变化的外部世界的挑战。它们采用的网络体系可以非常迅速方便的修复,并且可以随时扩大或缩减规模

如何应对复杂网络的高成本?

沙漠蚂蚁需要外出采集水分来源,但是在炙热的阳光下在沙漠中奔走本身也会耗费大量水分。冒着酷热搬回来一些含水的食物之后它们便能够从中摄取水分。蚁群会评估成本,它们会比较得失,如果外出的水分成本耗费太高,那么反馈机制将让它们放弃外出,将食物就留在地面上不去理会,直到空气中的湿度条件稍稍合适之后才会触发前往采集。

和这种做法相似,人类社会在计算机TCP数据传输协议中也能找到类似的做法:当缺乏足够带宽时,协议会阻止额外数据包的发送,因为如果带宽不足,你所发送的信息有可能会丢失,因此总一开始就不应当进行发送,除非可以确认其可以抵达目的地。

在过去的25年间,一个研究小组一直致力于了解蚂蚁网络的算法技术是否会随着时间或环境等条件的改变而发生相应的变化。他们对超过300个蚂蚁群落进行跟踪观察,并使用基因技术观察哪些蚁群最终能够产生最多的后代(发展的最成功)。

蚁群会在它们的蚁巢里储备食物作为一种生存策略。25年的研究结果显示,那些每到天气太热就会放弃外出转而在蚁巢里避暑的一群获得了更大的成功。因此规避便成了一种蚁群层面的最佳策略——那就是,在沙漠地区的蚁群中间,要想获得长期的生存,蚂蚁们的做法并不是去改变或优化它们的系统网络,而是选择在合适的时机外出而不额外浪费资源。

当面对食物匮乏等不利条件时,蚂蚁系统的解决方案精髓是最小化运行成本,而不是立即寻求加大食物的储备。这种做法对于任何一个体系而言都是最可以持续的方案——不管具体的对象是沙漠蚂蚁群落还是计算机网络中的数据包发送,即达成长期意义上的稳定性,并避免造成不必要的浪费。

大型和小型系统

但是如果系统的规模扩大之后,将会怎样?正如人类的计算机网络系统一样,蚂蚁群落系统也必须面对群落规模扩大之后的管理问题,这一系统必须可以接受局部的失效。

由于大规模系统必须允许出现一些偏差和错误,因此最佳的解决方案便是,让群体中每一个个体产生的贡献超过其自身对群体造成的损失以及抚养一个新生个体所要付出的成本。因此,在一个大规模系统中非常关键的一点便是冗余设计以及最小化信息量——在巨大的蚁群中,这种极高效率的选择是通过这样一种方式实现的,即大量的交流是通过两只互相陌生的蚂蚁个体之间简单的触须碰触实现的,非常迅速,没有额外的信息交流。

在工程领域我们同样在寻找方法确保产出的可靠性,随着网络规模的扩大,我们不断寻找有效率的,便宜的解决方案,而蚂蚁群落的做法给我们的启示是,有时候容忍某些不完美可能却恰恰是通往最佳解决方案的途径。

先到先得的策略

蚂蚁算法的多样性显示出进化过程对于不同环境限制因素的响应。由于蚁群之间存在相互竞争,并且很多时候它们在觅食时所选定的目标可能会是同一个食物,那么这时候谁先到谁就有可能赢得先机。

但是在一个没有*指挥体系的系统中,又该如何达成最先抵达的目标呢?对于这个问题的解决方法是蚁群必须设法在最大的面积上几乎在任何时间点都有本蚁群的成员在搜寻,这样一来,不论在任何地点出现食物,就可以有最大的可能性在其附近有本群的蚂蚁成员在巡逻,可以及早发现。

但是如果没有*统一的调度系统,你又该如何进行这样的统一布置呢?蚁群所采用的一种方案是建立一些永久性的固定巡逻路线,就像是我们的手机信号塔,蚂蚁们会固定的沿着这些道路进行巡视。极具攻击性的阿根廷蚁在这方面非常擅长,它们可以及时找到任何你掉在地上的面包屑。

阿根廷蚁还会调整自己的巡视路线,当身边还有其它许多同伴时,它们会采用一种近乎是随机的路线选择,从而让每一只蚂蚁对一小块区域进行彻底的搜查,而当处于陌生区域,并且同伴的数量较少时,它们则倾向于采取直行路线,从而确保数量较少的蚁群得以覆盖更大的范围。就像一个情报反馈系统,随着每一只蚂蚁个体对局部低点信息情报的反馈,整个蚁群逐渐掌握有关整个体系的完整信息,而在这一过程中并没有任何*统一调度体系的干预。

对抗安全漏洞和疾病

如前所述,当数以百计的蚁群相互接近,此时资源就会显得紧张,各个蚁群之间将会出现对食物等资源的争夺,这样做必然就会导致出现安全问题上的顾虑。对此,蚁群相应的进化出了对入侵的侦测并对安全漏洞做出响应的机制。

一个蚁群可能会盗用或窃取其它蚁群留下的信息,从而找到其它蚁群率先找到的食物,比如它们会探测其它蚁群留下的化学踪迹信息并追踪这些信息。蚁群对此采取的策略并不是彻底的防止入侵行为的发生,而是发展出一套根据入侵规模大小而并与之对应的应对体系。

这种行为对于计算机信息安全领域同样具有启发性,我们或许不应追求完美,我们所要做的应当是在局部范围内对威胁做出评估并采取行动消除入侵。蚁群已经找到一种有效途径,对入侵行为做出响应,而在此过程中并没有更高一级*调度系统的介入。人类社会目前正在显现一些运用相似设计思想的安全系统。

另外蚁群还有一整套的危机应对机制,如那些常常在树上觅食的蚂蚁种类,有些树木的树枝非常容易折断,这样就会引起蚁群的损失。为了及时发现这种危机并做出响应,蚁群会以一个环圈的形式前行,这样就会有两个方向的信息流连续的交换。当发生树枝折断,一个方向的信息流中断,蚁群便会立即意识到危机的发生并着手重建环圈网络。

相似的,早期的光纤通讯网络常常会由于农场或建筑施工等原因被挖断,这样的后果是严重的,因为它可能导致一个半局部地区的信息通讯中断。不过工程师们很快想出了解决方案,他们参考蚁群的做法,环圈通讯网络将能确保更加迅速和有效地修复损伤。

有一点是可以肯定的,那就是在未来我们的工程信息网络还将继续演化发展。工程师们将会继续研究蚁群在解决一些重大问题时的方案,它们所使用的算法将会继续给予人类以改进设计的灵感。

通过简单的信息交换,而不是我们目前所采用的复杂反馈体系,蚁群成功应对不断变化的外部世界的挑战——比如不定时出现又随时会消失的食物来源。它们采用的网络体系可以非常迅速方便的修复,并且可以随时扩大或缩减规模。

在历史上,蚁群带来的启示已经被广泛运用于工业和其它设计领域。尽管单个的蚂蚁可能是懒散的,毫无思想和彻底愚蠢的,但是一旦置于一个庞大完整的蚁群体系之下,我们则有必要学习其组织方式和体系——蚂蚁们在漫长的演化过程中已经实现了一种高度的协同体系,在这一方面我们望尘莫及。