# 蚂蚁网络

- 作者：朱晨旭
- 发布时间：2012-10-02 10:00
- 分类：公司
- 原文：https://www.ifanr.com/165921

[![](https://s3.ifanr.com/wp-content/uploads/2012/10/ant_1_meitu_1.jpg "ant&#95;1&#95;meitu&#95;1")](http://www.ifanr.com/165921/ant_1_meitu_1)

在很久很久以前，当人类还只是用肉眼勉强可以看见的小生物的时候，和人类体积差不多的蚂蚁就能够熟练操作计算机了——当然这只是玩笑，但事实上它们的捕食行动模式和计算机的数据处理模式十分相似。

两位斯坦福大学的研究者[发现](http://news.stanford.edu/news/2012/august/ants-mimic-internet-082312.html)，收获蚁属的一种蚂蚁在捕食的时候呈现出来的状态与互联网协议的运作非常相似。研究者称其为“蚂蚁网络（anternet）”。

Deborah Gordon 是斯坦福大学的一位生物学教授，花费了 20 多年的时间研究蚂蚁。当她在亚利桑那州观察收获蚁蚁群的时候发现，蚂蚁在捕食的过程中会根据食物的多少来调整蚂蚁的数量。于是她联系到了 Balaji Prabhakar，斯坦福大学的计算机科学教授。刚开始他对 Deborah 的发现不以为然，但不久之后他就发现了其中的奥妙。

首先让我们了解一下比较枯燥的内容：

TCP（Transmission Control Protocol，传输控制协议）是一种在计算机上管理数据拥挤的算法。运作原理如下：数据源 A，将文件传送到终点 B，文件被塞进被编号的数据包然后被发送；当 B 接收到数据包的时候向 A 发出应答信号，表示数据已送达。这种反馈回路（feedback loop）使得 TCP 避免拥挤，根据接收到的应答信号判断带宽是否通畅，从而控制数据流量的大小和速率。

当一只蚂蚁出去觅食的时候，除非找到了食物，否则不会返回巢穴。如果它发现了很多食物而自己又不能全部搬回家的时候，就会带一点回巢，然后带领一干蚁等以最快的速度搬回足够多的食物。

如果把食物想象成数据，那么蚂蚁制定一个觅食计划（包括出动多少蚂蚁、如何分配工作等）就可以被理解成写算法的过程，所以说蚂蚁在人类还需要琢磨怎么生火的时候就会使用 TCP 拥挤控制算法（TCP Congestion Control）。通过慢启动（slow start）来观察有多少食物可以搬走，然后根据食物多少（潜在数据大小）来决定派遣多少只蚂蚁（多大的数据包）去捕食（运算）。如果突然之间一只霸王龙踩死了数十只蚂蚁怎么办？没关系，回巢的蚂蚁会携带相关信息，蚁巢根据出现的变化决定是否增加蚁数。如果 20 分钟以后还没有一只蚂蚁回来，蚁巢便会中断传输，不再派出任何一只蚂蚁。

Prabhakar 表示：“如果人们在 19 世纪 70 年代发现这个现象，那时人类还没有写出 TCP，那么收获蚁无疑会影响计算机的发明。”事实上人类“独立”解决 TCP 和以太网（Ethernet）如何处理数据拥挤的问题都花费了数年的时间。就算是现在，无论是使用 Wi-Fi、3G或 4G 网络，如果使用的人太多导致接入点不够的话，就造成了数据拥挤的问题，而这个问题就足以让人们苦恼一阵子了。

此项研究成果在今年 8 月 23 日被发表在 [PLoS Computational Biology](http://www.ploscompbiol.org/home.action). 上。

### 螃蟹电脑

也许人类会从中获得不少启发，比如向蚂蚁学习如何提高计算机效率等等。但有一部分科学家有着惊人的创造性思维，他们决定 DIY 一个“蚂蚁网络”——用螃蟹。

早在 20 世纪 80 年代，有科学家提出了撞球计算机的概念。他们认为通过安排多米诺骨牌或者撞球的摆放可以制作逻辑门(逻辑门是能够实现逻辑运算的电路中基本的逻辑关系，分成与、或、非三种，是构成计算机的基本逻辑组件）。撞球计算机概念是让许多撞球在建立好的管道里来回撞击，通过观察撞击的情况完成计算。理论上制造这样的处理器是可行的，但相应的需要很大的空间来容纳足够多的撞球。

据科技网站[ phys.org 消息](http://phys.org/news/2012-04-scientists-crab-powered.html)，近日一个由日本和英国科学家组建的团队公布了他们最新的研究结果——由许多螃蟹组成的“螃蟹电脑”。

[![](https://s3.ifanr.com/wp-content/uploads/2012/10/pic1.jpg "pic1")](http://www.ifanr.com/165921/pic1)

“螃蟹电脑”的研发团队发现，当两群不相同的基氏和尚蟹（Mictyris guinotae ）相遇时会聚合成一群，并且以两者的速度之和向一个确定的方向移动。这种反应与撞球的运动极为相似。所以研究者认为通过把蟹群关进拥堵的管道之中，让它们在固定的空间里爬行，也能够组建逻辑门。

以下为逻辑门的种类

或门：如果几个条件中，只要有一个条件得到满足，某事件就会发生，这种关系叫做“或”逻辑关系。具有“或”逻辑关系的电路叫做“或”门（以下类推）。使输入两个低电势，输出低电势；不满足有两个低电势则输出高电势。

与门：使输入两个高电势，输出髙电势；不满足有两个髙电势则输出低电势。

非门：使输入的电势变成相反的电势。

与非门：由与门与非门组合而成。

或非门：由或门和非门组合而成。

构建或门相当容易，但构建与门却相对复杂得多，因为这需要让蟹群在三个不同的出口前做出选择。为此研究者们想出了一个十分天才的方法：把螃蟹们放在逻辑门的入口，然后遮挡光源，让阴影投在蟹群上。螃蟹们以为那是一只鸟，惊恐之余便会四散而逃，从而达到让它们有选择地爬行的目的。通过一次用 40 只螃蟹进行的实验，发现结果与预测十分接近，进而证明了这种想法的可行性。

在实验进行时，有人提出质疑：这样算不算虐待螃蟹？对此研究小组做出了回应，表示所有试验进行时他们都会保证每一只螃蟹都很“舒服”，而实验结束后所有螃蟹都会被放生。

“螃蟹电脑”虽然效率低得吓人，而且要抓这么多螃蟹也不是易事，但科学研究正需要这种异于常人的思维方式，以及足够大的胆量。

### 人列计算机

于是，人类也耐不住寂寞了。

作家刘慈欣在他近期十分出色的科幻小说《三体》中设计了这么一种情节：由人组成计算机的的各个逻辑部位，由各种符号代替二进制进行运算。以下为文章节选：

秦始皇挥手召来了三名士兵，他们都很年轻，与秦国的其他士兵一样，一举一动像听从命令的机器。

“我不知道你们的名字，”冯•诺伊曼拍拍前两个士兵的肩，“你们两个负责信号输入，就叫‘入 1’、‘入 2’吧．”他又指指最后一名士兵，“你，负责信号输出．就叫‘出’吧，”他伸手拨动三名士兵，“这样，站成一个三角形，出是顶端，入 1 和入 2 是底边。”

“哼，你让他们成楔形攻击队形不就行了？”秦始皇轻蔑地看着冯•诺伊曼。牛顿不知从什么地方掏出六面小旗．三白三黑，冯•诺伊曼接过来分给三名士兵，每人一白一黑，说：“白色代表 0，黑色代表 1。好，现在听我说，出，你转身看着入 1 和入 2，如果他们都举黑旗，你就举黑旗，其他的情况你都举白旗，这种情况有三种：入 l 白，入 2 黑；入 l 黑，入 2 白；入 1、入 2 都是白。”

[![](https://s3.ifanr.com/wp-content/uploads/2012/10/humancomp.jpg "humancomp")](http://www.ifanr.com/165921/humancomp)

然后，文中的冯•诺伊曼又用三名士兵构建了与非门、或非门、异或门、同或门和三态门，最后只用两名士兵构建了最简单的非门——“出”总是举与“入”颜色相反的旗。

事实上，小说中的人列计算机是“三体文明”中真实存在的，“三体人”体型非常小并且直接通过思维交流，在没有发明半导体计算机之前，这种“计算机”确实比人工计算效率高很多。但在人类世界中却很难实现，因为需要的人数太多，并且运算速度实际上并不比现在的计算机快。而且这么大一群人的工资加起来差不多可以去组建一台超级计算机了。

所以说，相比蚂蚁和螃蟹，人类还是弱爆了。

题图来自：[BBC](http://www.bbc.co.uk/nature/life/Ant)
