|
||||
表面上,螞蟻和互聯網好像沒什麼共同之處,但二者之間卻存在驚人的相似性。據物理學家組織網近日報道,斯坦福大學研究人員發現,一種叫做收穫蟻的螞蟻在決定派多少螞蟻出去找食物時,所用方法和互聯網TCP(傳輸控制協議)確定還有多少帶寬可用來傳輸數據的方法極爲相似。相關論文發表在《公共科學圖書館·計算生物學》雜誌上。
斯坦福大學生物學教授黛博拉·戈登與計算機科學教授、研究網絡文件傳輸的專家巴拉基·普拉巴卡爾合作,研究一個蟻羣在派覓食蟻出去找食物時,它們是怎樣做決定的。“從本質上說,螞蟻確定能得到多少食物的方法,和傳輸文件時TCP確定還有多少帶寬可用的算法是一樣的。”普拉巴卡爾說。
TCP是在互聯網上管理數據、控制擁堵的一種算法,在整體上允許早期網絡從幾十個結點擴增到今天的數十億用戶。其工作原理是:A作爲源頭,傳一份文件到目的地B,此文件被分解爲若干小包,B每接到一個小包,發送一個確認給A,表示文件已經到達。
這種反饋迴路讓TCP能暢通運行而避免擁堵:如果返回確認的速度比數據發送速度慢,表示已沒有多少帶寬,源頭控制的數據傳輸就會相應地慢下來;如果返回確認更快,源頭就會加快傳輸速度。這一過程決定了還有多少帶寬和數據傳輸速度。
收穫蟻的覓食行爲與此很相似。戈登發現,收穫蟻離開巢穴出去覓食的速度和能獲得的食物多少有關(相當於可用帶寬)。一般情況,覓食蟻只有找到食物纔會回巢。如果食物豐富,它們返回的速度快,就會有更多同伴出去覓食;如果覓食速度變慢,甚至有些同伴開始空手而歸,覓食就可能停止。
普拉巴卡爾寫下了一隻螞蟻覓食的算法(TCP—影響算法),並預測覓食行爲取決於可找到的食物數量,戈登則通過實驗來控制覓食蟻返回的速度。他們發現,TCP—影響算法幾乎與實驗中螞蟻的行爲精確吻合。
他們還發現,螞蟻還遵循TCP的兩個階段。一個叫緩慢啓動,用於描述源頭在開始發送一個大波包時需要計算的帶寬;同樣,收穫蟻在開始覓食時,會先派些螞蟻去看看能找到的食物多不多,然後再根據情況增加或減少外派螞蟻的速度。另一階段叫超時,此時數據傳輸連接中斷,源頭停止發送文件包;同樣,如果一些覓食蟻返回巢穴的速度超過20分鐘,就沒有螞蟻再出去。
“螞蟻早就發現了我們現在所知的算法,它們一直這麼做了上百萬年。”普拉巴卡爾說,如果上世紀70年代發現這一點的話,那時TCP還沒寫出來,收穫蟻就能影響互聯網的設計。
戈登認爲研究蟻羣行爲有助於我們設計互聯網系統。地球上的螞蟻有1.1萬種,它們生活在不同的地方,處理着各種生態問題。“螞蟻已經進化出了處理我們意想不到的問題的能力。從計算的角度來說,每一隻螞蟻的能力是有限的,但蟻羣集體卻能完成複雜的任務。螞蟻算法必然是簡單的、分佈式的而且可升級,這正是我們在大型分佈式設計系統中所需要的特性。理解螞蟻如何管理自身行爲,有助於發現更多對互聯網算法有益的應用。”戈登說。(常麗君)