生命的计算机:蚂蚁、蜜蜂和算法

蚂蚁是一种什么样的生命?

在彼得·考夫曼的《穷查理宝典》第十一章《人类误判心理学》里,查理·芒格借用了蚂蚁的例子来阐述我们常常会进入的一些思维误区:

蚂蚁简单的行为系统自然有很大的局限,因为它的神经系统的功能很有限。例如,有一种蚂蚁,当它在巢穴里嗅到蚂蚁尸体散发出的外激素时,它就会和其他蚂蚁合作把尸体运出巢穴。伟大的哈佛大学教授E. O. 威尔逊(E. O. Wilson)做过一个非常出色的心理学实验,他将死蚂蚁分泌的外激素涂在一只活蚂蚁身上。很自然,其他蚂蚁把这只有用的活蚂蚁拖出了巢穴,尽管它在整个过程中不断地踢腿和挣扎。这就是蚂蚁的大脑。它拥有的反应程序特别简单,平时运转是没有问题的,但在许多情况下,蚂蚁只会生搬硬套地根据这个程序作出机械反应。

单个蚂蚁看起来是那么的渺小,其反应是那么的机械,可仍然无法阻止蚂蚁这种极其简单的生命,做出令人不可思议的事情。

像所有昆虫一样,蚂蚁有六只脚。 每条腿有三个关节。 蚂蚁的腿非常结实,因此可以快速跑动。 如果一个人可以像蚂蚁一样快地奔跑,那么他就可以像赛马一样快地奔跑。 蚂蚁可以举起自己体重的20倍。

蚂蚁本身个头就很小,而头所占据的比例也不超三分之一,所以蚂蚁的大脑肯定不会复杂。

根据科学家们的研究发现,一只蚂蚁的大脑大约有25万个脑细胞。 一个人的大脑有100亿个脑细胞,所以一个有40,000只蚂蚁的蚁群集体拥有与人类相同大小的大脑。

如此少量的脑细胞,也难怪蚂蚁所拥有的反应程序非常简单。

既然蚂蚁的脑细胞如此少,反应程序这么简单,那它们是怎么完成复杂任务的呢?

蚂蚁的旅行

除了被称为“威尔逊的蚂蚁”的爱德华·威尔逊对蚂蚁颇有研究之外,一位来自意大利的科学家Marco Dorigo也对蚂蚁的行为做了深入的研究。

Marco Dorigo发现,尽管单个蚂蚁的智能非常的低级,其智能甚至还不如当今人类设计的最差的机器人,但它们却能完成相当复杂的任务,比如穿过田野,找到最佳食物,并搬回蚁穴。

它们靠的是什么?显然不是它们简答的大脑。

对于这个问题,凯文·凯利在其著作《失控》15.8章节这样写道:

一个蚂蚁军团,智愚而不知测量,视短而不及远望,却能迅速找到穿越崎岖地面的最短路径。这种计算正是对进化搜索的完美映射:一群无知而短视的个体们在数学意义上崎岖不平的地形上同时作业,试图找出一条最优路径。蚁群就是一个并行处理机。

受蚂蚁的这种行为的启发,Marco Dorigo按照蚂蚁的逻辑构建了方程式,即虚拟蚂蚁。

他的虚拟蚂蚁,就是一群低智能的处理器,并行运转。

每个蚂蚁都有一个微不足道的低级智能系统,可以进行本地沟通(蚂蚁们通过信息素来沟通),如果它们觉得这个东西很不错,就会积极的与同类分享,分享就是通过信息素来进行的,越觉得这个东西好,信息素就停留的越久。

Marco Dorigo于1992年在博士论文中提出了著名的蚂蚁算法。

蚂蚁算法主要应用在旅行商问题、指派问题、图着色问题、网络路由问题到车间调度问题、车辆路径问题、分配问题等等。

拿其中最为著名的旅行商问题来说,假设有一个旅行商人要拜访N个城市,每个城市只能拜访一次,而且最后要回到开始出发的城市。问商人如何能选择一条满足条件的最短路径?

这是蚂蚁在觅食过程中经常会碰到的问题,蚂蚁们的解决办法如下:

  1. 将蚂蚁随机的放在城市上。
  2. 蚂蚁各自按概率选择下一座城市。
  3. 蚂蚁完成各自的周游。
  4. 更新信息素,进行下一次迭代。

Marco Dorigo按照这个思路将他的虚拟蚂蚁们进行了5000次的迭代之后,成功的找到了一条最优路径。

蜜蜂的空调房

无独有偶,同蚂蚁一样,以群居生活的蜜蜂,论个体来说,它们就是一个简单机械的生命,程序跟蚂蚁一样非常简单。

可是有一件事情,蜜蜂却做的极好。

我们知道,人的体温都恒定的,恒定在37度左右。

可是蜜蜂却不是,当蜜蜂飞行时,飞行肌活动产生的热量可使蜜蜂体温达到47℃,即使它处在低温环境中。

如果它停止飞行,蜜蜂的体温就跟周边的环境差不多了。

就是这么一只体温极不恒定的蜜蜂,当蜂巢内部有蜜蜂幼虫时,所有的蜜蜂们却能共同把蜂巢内部的温度控制在34.5度左右,精度达到0.5度。

它们是如何调节蜂巢的温度,使得蜂巢内部就像空调一样保持温度的恒定呢?

在外界气候炎热,气温高涨,蜂巢内部温度开始出现波动时,蜜蜂会扇动翅膀,加快空气流动,使蜂巢内部温度降下来,保持在恒温状态。另外天气干燥,气温高时,蜜蜂还会外出采水,然后喷洒巢脾,增加巢内湿度,从而降低巢温,保持稳定的恒温状态。

在外界气候寒冷,气温低下,蜂巢内部温度下降时,蜜蜂会集中,密集在一起,增加巢脾内部的温度。另外蜂巢内部的蜜蜂,还会通过消耗蜂蜜,转化能量,制造发热点,然后将热量传递给每一只蜜蜂,最后使巢内温度提高,保持巢内稳定的恒温状态。

问题是,这些蜜蜂们谁告诉谁该煽动翅膀降温,还是应该挤在一起使得温度提高呢?

为什么它们不会让蜂巢内部的温度过热或过冷,哪怕只是突发的过热或过冷呢?

蜜蜂的这种群体行为,引发了科学家的关注和思考,除了蜜蜂能够精确的控制蜂巢的温度使之恒定,蜜蜂在觅食或者寻找新的筑巢地点时,表现也总是令人不可思议,它们总能找到最佳的路径前往觅食点,或者总能找到最佳的筑巢点。

而蜜蜂这些行为机制的核心,与大家熟知的8字舞(或称之为摇摆舞)关系密切,它与蚂蚁的信息素有着异曲同工之妙,蜜蜂的8字舞是蜜蜂间交换信息最为重要的一环,当蜜蜂发现一处好的觅食点时,会通过8字舞告诉同伴,越好摇摆的幅度越大。

就是这么一种简单的信息交换,在没人任何蜜蜂作为总指挥的情况下,总能快速的找到最佳路径。

同样的,受蜂群行为的启发,科学家们提出了蜂群算法,并付诸实践:

蜂群算法是集群智能思想的一个具体应用,它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工蜂个体的局部寻优行为,最终在群体中使全局最优值突现出来,有着较快的收敛速度。为了解决多变量函数优化问题,Karaboga提出了人工蜂群算法ABC模型(artificial bee colony algorithm)。

蜂群算法,与蚂蚁算法一样,都是为了寻求全局最优解,通过这种算法,可以很快的解决多变量函数优化问题,比如车辆调度问题,车辆路径问题,分配问题,图形问题等。

生命的算法天赋

自古以来,自然界就是人类各种技术思想、工程原理及重大发明的源泉。

比如雷达的发明来自蝙蝠,直升机的发明来自蜻蜓。

生命不仅给予了我们以机械理论的启示,同样的,生命就如一台计算机,也给予我们以计算机程序算法的启示。

生命的这台计算机给予我们计算机程序算法的启示,让我们不得不感叹生命在算法领域的天赋异禀。

人工智能历经起起落落发展到今天,最终就是在生命算法的启示下,获得了巨大的突破,迎来了第三波高峰发展,而这其中,就有蚂蚁和蜜蜂的功劳。

参考资料:

凯文·凯利(百度百科):https://baike.baidu.com/item/%E5%87%AF%E6%96%87%C2%B7%E5%87%AF%E5%88%A9

失控(百度百科):https://baike.baidu.com/item/%E5%A4%B1%E6%8E%A7/5901911

失控官网:https://kk.org/outofcontrol/

失控(维基百科):https://zh.wikipedia.org/wiki/%E5%A4%B1%E6%8E%A7

蚂蚁(维基百科):https://zh.wikipedia.org/wiki/%E8%9A%82%E8%9A%81

有关蚂蚁的有趣事实(英文):https://lingolex.com/ants.htm

蚁群算法(维基百科):https://zh.wikipedia.org/wiki/%E8%9A%81%E7%BE%A4%E7%AE%97%E6%B3%95

仿生学(百度百科):https://baike.baidu.com/item/%E4%BB%BF%E7%94%9F%E5%AD%A6

人工蜂群算法(百度百科):https://baike.baidu.com/item/%E4%BA%BA%E5%B7%A5%E8%9C%82%E7%BE%A4%E7%AE%97%E6%B3%95

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据