人类和蚂蚁有什么区别?蚂蚁没有互联网。与具有创造性思维的人类相比,蚂蚁似乎只不过是一种本能生物。然而,斯坦福大学的两位科学家发现,蚂蚁比我们想象的要聪明得多。虽然他们没有发明互联网,但他们了解互联网上的算法。在斯坦福大学的网站上,描述了这个有趣的发现。生物学教授黛博拉·戈登(DeborahGordon)在亚利桑那州观察农场蚂蚁时,注意到它们的觅食行为有些特别,于是找到计算机科学家巴拉吉·普拉巴卡尔(BalajiPrabhakar)讨论此事。BalajiProbhakar虽然是网络文件传输方面的专家,但并没有立即意识到它与计算机有什么关系。第二天,他突然灵机一动,想到蚂蚁的行为很像网上的文件传输。“蚂蚁用来知道有多少食物可用的算法与TCP中使用的算法基本相同,”Prabhaker说。TCP,即传输控制协议,是Internet上最重要的协议之一。它用于管理Internet上的数据拥塞。正是因为有了TCP协议,我们的网络才能从最早的几十个节点发展到今天的几亿个节点。它是这样工作的:A作为数据源将文件传输到目的地B,文件被分解成无数个数据包。当B收到一个数据包时,它会向A发送一个确认消息,表示数据包已经送达。这样做的好处是可以避免数据拥塞。如果B的确认速度慢,证明当前带宽不够,A可以根据情况放慢数据传输速度;如果B的确认速度快,A就会加快传输速度。通过这个过程,可以确定可用带宽,并相应地提高或降低传输速度。戈登发现田野蚂蚁的行为非常相似。他们派出觅食的蚂蚁去寻找食物。如果食物很多,觅食的蚂蚁会很快回来,然后会有更多的蚂蚁离开巢穴觅食;如果觅食的蚂蚁空手而归,蚁群的觅食行为就会减少甚至停止。基于这种情况,Probkahar写了一个算法,根据食物的多少来预测蚁群的觅食行为,Gordon进行了实验来证实。他们发现基于TCP的算法几乎准确地预测了蚂蚁的行为。“蚂蚁发现了我们熟知的算法,而且它们已经使用了数百万年。”普拉巴卡说。他们还发现了蚂蚁遵循TCP算法的另外两条规则。一种称为慢启动。在数据传输开始时,数据源会发出大量的数据包来估计带宽;同样,当蚁群开始觅食时,它们会释放觅食蚂蚁来检测食物的数量。另一个叫做超时。当数据传输链路中断或受到干扰时,数据源将停止生成数据包;同样,当觅食蚂蚁超过20分钟没有返回巢穴时,其他觅食蚂蚁也不会离开巢穴。戈登认为,对于蚁群行为如何帮助我们设计网络系统,科学家们只是触及了皮毛。目前有11,000种蚂蚁,生活在各种各样的环境中,处理各种生态问题,蚂蚁做事的方式可能是我们意想不到的,但可能会用在计算机系统中。每只蚂蚁的能力都有限,但蚁群却能够完成复杂的任务。“所以蚂蚁的算法必须是简单的、分布式的、可扩展的,这正是我们在设计庞大的人工分布式系统时所需要的特性。”她说,“我认为,当我们更多地了解不同类型的蚂蚁如何调节自己的行为时,可以找到许多对网络算法有用的例子。”蚂蚁和算法似乎有着不可思议的联系,但大自然的奇妙往往超出我们的想象。人类发现的各种算法和模型,看似是自己思维的创造,但往往能在自然界中找到各种例子。这可以不禁让人产生奇怪的幻想。或者,我们生活的世界真的是一个算法驱动的机器,谁知道呢?原文链接:http://www.ifanr.com/141875
