说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

已迭代1.3亿年的分布式系统——Anternet

HTML文档下载 WORD文档下载 PDF文档下载
KK曾经在《失控》中提到过群氓的智慧,相信了解蚂蚁觅食过程的人都会惊叹于蚁群的智能,在几百万年前就开始使用互联网算法。还有什么是蚂蚁已经做到,而人类还不知道的?或许我们可以学习蚂蚁构造下一代网络系统。

你有没有注意过蚁群是如何寻找食物的?和我们的互联网系统很类似,每个蚂蚁单独行动搜集食物信息,再汇集到一起不断调整路径,直到形成一条最优路径,但是在这个过程中没有任何的中央控制。

斯坦福大学的研究小组发现沙漠蚂蚁的觅食方式与调节互联网数据流量的TCP协议很类似,他们将蚁群系统称为Anternet。Anternet和互联网都使用了正向反馈:TCP协议中会发确认触发下一个数据包的传送,蚁群网络中满载而归的蚂蚁会引导其它蚂蚁出去觅食。

相信每个知道这项研究的人都会惊叹于这些蚂蚁的别出心裁,竟然在几百万年前就开始使用这种智能的互联网算法了。那么还有什么是蚂蚁已经做到,而我们人类还不知道的?


Anternet对下一代互联网的启示

蚂蚁有1.3亿年左右的历史,已经进化到可以适应特定环境的多变性和约束。

蚁群利用简短交流的动态网络来适应周围环境的变化。每个蚂蚁个体并不知道发生了什么,每个蚂蚁只是根据最近遇到的蚂蚁确定路线:或者是一对一的互碰触角,或者是根据其它蚂蚁在路上留下的化学分泌物。

这种蚁群网络使蚂蚁拥有了惊人的多样性,多达11000种的蚂蚁遍布地球每一个角落。所以Anternet以及其它蚁群网络可以给我们很多启示。或许我们的信息网络建设可以参考下蚂蚁协议。

解决高操作成本问题

收获蚁(蚂蚁的一种)蚁群在沙漠中寻找水的过程也会消耗水。蚂蚁在烈日下觅食时会丢失水分,这时他们会从存储的种子中吸取水分。因为蚁群会存储种子,它们的正向反馈系统使得在水源不好找时,蚂蚁可以不必浪费精力外出觅食,即使这意味着他们要在天气更湿润时存储一些种子。

Anternet通过这种方式处理高操作高成本问题。在互联网中,TCP协议也可以防止系统在带宽不可用的情况下,在互联网上发送数据。除非是确定信息可以到达目的地,否则发送是不值得的。

作者最近刚发表了一篇文章说明自然选择目前是如何优化Anternet的算法的。作者对300个收获蚁群进行了超过25年的研究,并且通过基因指纹研究了哪些蚁群有更多的后代蚁群。研究发现,在炎热的天气里保持体力不外出觅食的蚁群有更多的后代。

面对资源稀缺情况,蚂蚁是最小化运营成本而不是增大存储量。这是一个可持续发展战略,对于类似沙漠蚁群或移动互联网的系统,这都是保持长期可靠性同时避免浪费精力的重要措施。

扩展性

当系统规模扩展时会发生什么?就像人类设计的系统,蚂蚁系统也会随着蚁群的壮大而调整优化,还要有“容错能力”。

由于大型系统难免会有一些混乱,所以理想的解决方案是利用每一个额外蚂蚁的贡献,从这些蚂蚁中获得的益处远远大于喂养蚂蚁的成本。大型蚁群系统的最好工具是冗余和最小化信息量。庞大的蚁群中,各个蚂蚁之间的简单交流并不需要知道各个蚂蚁的详细信息。

在工程系统中,随着网络规模的扩大,我们也在利用一些廉价操作寻找确保可靠结果的解决方案。优雅的自顶向下设计的确有吸引力,但是蚁群算法的鲁棒性表明,容忍一些不完美有时会导致更好的解决方案。

优化先发优势

蚁群算法的多样性表明了进化系统是如何响应环境约束的。当操作成本较低或蚁群寻找暂时的美味佳肴时,比如寻找花蜜或西瓜皮,抢占先机很重要。由于蚁群互相竞争,第一个找到食物的就有最好的机会。

一个蚁群在没有任何中央控制的情况下如何获得这种先发优势呢?蚂蚁使用的一个策略(接近于我们的数据网络)是建立一个永久的高速回路(就像手机发射塔网络),蚂蚁们就在沿路进行搜索。阿根廷蚂蚁很擅长这个,它们会找到任何落在厨房柜子上的面包屑。阿根廷蚂蚁也会调整自己的路线,一开始很多蚂蚁会在附近的随机游走,每只蚂蚁都会在一个小范围内彻底搜查,到后来会有一个更直接的路线,周围的蚂蚁会减少,从而整个蚁群可以覆盖更大的范围。

就像一个分布式的需求响应网络一样,虽然没有任何的中央控制,每只蚂蚁对本地情况的响应聚合在一起为产生了整个系统的结果。

解决安全漏洞

在热带地区,数百种蚂蚁聚集在一起竞争资源,蚁群必须要处理安全问题。这导致了使用本地信息进行入侵检测和响应的安全协议的进化。

一个蚁群可能会“偷窃”另一个蚁群的信息来寻找资源,例如其它蚁群蚂蚁的化学分泌物或蚂蚁分布密度。为了应对这种入侵行为,蚂蚁们采取了一种松散的、随机的身份认证系统,而不是试图完全杜绝这种行为。

这与计算机的安全系统有明显的相似之处,很显然我们也需要实现对入侵的本地评估和修复。蚂蚁并没有建立一个中央集权来监管黑客,但它们已经找到了应对入侵的策略。

灾难恢复

灾难恢复协议可以参考蚂蚁在树上觅食的过程,因为树枝有可能会断裂。在一个网络回路中,考虑到快速恢复,信号或者蚂蚁会在不同的方向保持流动,如果一个方向断流了,可以从另一个方向重建一个连接。

同样,早期的光纤网络经常被农业机械或其它的挖掘所破坏,一段光纤的破坏有可能让整个系统宕掉。工程师们随后发现,环形网络更容易修复。

我们的网络在不断进化,通过测试和比较这些沙漠蚂蚁、热带森林中的蚂蚁和厨房里的蚂蚁的算法,很明显我们可以参考这些蚂蚁的做法来构造我们的下一代网络系统。

作者简介:Deborah M. Gordon是斯坦福大学生物系的教授,她通过蚁群的生态和行为研究群体组织的进化,已经获得Guggenheim和行为科学深度研究中心的奖学金。著有《Ants at Work》及《Ant Encounter: Interaction Networks and Colony Behavior》。(编译/周小璐 审校/仲浩)

原文链接:What Do Ants Know That We Don’t?

专访ThinkPHP创始人刘晨:用最简单最快速的方式开发PHP应用 重构:仔细查看,改进代码 加速编码的17款最棒的CSS工具 生于微信:专访疯狂猜图CEO曹晓刚 谷歌:受感染的合法网站远比恶意网站危险性大 Mozilla正式发布Firefox 22应用程序开发者受益 支持3D游戏、视频通话和文件分享 直接拿来用!最火的前端开发项目(一) Salesforce.com和Oracle在云合作上达成长期协议 即将到来的数据中心僵尸末日,谁能成为最后的幸存者?! Andorid APK反逆向解决方案:梆梆加固原理探寻 科技拥抱设计:体验设计如何创新? Rails 4.0正式发布 命途多舛的webOS,两度易主,生生死死多少回 Citrix全面开源XenServer 为了三十亿人的网络幸福:Google投资O3b发射网络卫星 Windows 8.1中IE 11开始支持WebGL和SPDY/3 微软Build 2013开发者大会:盘点Windows 8.1的15个重大更新 瞧!这是摩托罗拉移动新Logo,你有什么感觉? 专访UEditor创始人战毅:打造最佳的用户编辑体验 Eclipse 4.3 正式版发布 代号Kepler 为兴趣而生 七大编程挑战项目,你敢来吗? iOS 7辅助功能:左右摇头控制iOS设备 挑战传统关系型数据库:Facebook图形数据库TAO揭秘 揭秘“棱镜计划”幕后的技术 你更新了吗?Visual Studio 2013 Preview和.NET 4.5.1同时发布 你主要使用什么编程语言? 跨平台游戏开发工具App Game Kit或将新增更多强悍功能 移动应用推广的那些事儿:应用发现篇 DDoS攻击也能成为一种云计算服务 Netflix开源Hadoop集群调度工具:日处理近万作业、上千TB数据 传谷歌正开发自己的视频游戏主机和智能手表 我枚举一个外部程序的子窗体,可是却只看到了TDXDraw,我怎么样才能得到TDXDraw中更多的信息呢? 帶一個checkbox的list應該怎麼做? 扫描程序如何循环处理一段IP地址? 数据库中图片如何调用? 如下错误是什么意思,如果解决 一个关于SQL的问题 残啊?都要计算机专业毕业的。。。。。 Miscrosoft Scrioting Library是何东东?Scrrun.dll上那去弄? 如何让softice支持usb鼠标,键盘 多线程程序中使用采用单线程编译参数编译的DLL,会有什么后果? 很多on error goto ... 很简单,有NT4.0或XP的朋友一看就知道。在线等待 手工配置Grub:希望能对大家有所帮助 新显卡驱动For Linux Where download? ADO问题?????????????/ 请问c++的handle class是什么东东呀 怎么textBox控件不可以使用 \n,\r等语句?????? CEdit疑问 急切在线等:打包时出现的问题! 今天我生日,放分!!! 网络财务系统管理信息系统源代码销售 pb8的序列号问题!............................在线等待!!! 在javscript里面怎么判断一个变量(var定义的)是数字? 在线!!!哪位知道好的关于DSP的论坛? 请教高手,如何编程实现一台计算机通过拨号(modem)连接到对方计算机,并实现文件传输? ■■■有没有右键菜单也像VS.NET风格的???■■■ 有没有现成控件,实现EXCELL式的编辑功能 关于BCB中开发DirectDraw的问题 诚聘高手开发电子辞典? 请问一下了dbeng7 -Q的有关事项了? 高手请拉兄弟一把:TField 有一个OnValidate事件,可用它来校验,能否利用它来替换? 怎样把DataSet里面的数据写入一个Excel和Access文件里面? DX全屏模式下如何显示MFC控件? 关于保存对话框的问题,请教高手,谢 (简单问题送分)如何得到select语句得到的数局条数??? 谁能答出来?给分500!!! 很奇怪的问题了 c/s模式,后台是sql server 关于保存对话框的问题,请教高手,谢 类的定义问题 怎样将十进制数转换成十六进制数? 用DataGrid作分页显示,我想让鼠标移到某行时,这行就改变颜色?具体该怎么办? 版主,请进,帮我结贴,沉年老事,我不想再提,越提越伤心,最好帮我删了。 pcgenius(superj) ,你在吗?能告诉我你的QQ吗? 请问我在win2000专业版里装了asa 7可是他的服务器manage为什么用不了呀? 在PL/SQL中这个SQL语句为何不对 用水晶报表实现。怎么样在一个坐标系内画两个图?比如线图和条形图。 fuxc(Michael), 请进! 请问vb中报表如何动态生成?急! 对爱的回味!!! 哪位大侠帮我看看:关于OLE的word使用
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘