螞蟻覓食和互聯網算法

人類和螞蟻的區別是什麼?螞蟻沒有互聯網。

相對於擁有創造性思維的人類,螞蟻看起來不過是依賴於本能的生物。不過,斯坦福大學兩位科學家發現,螞蟻比我們想象的要聰明的多,雖然它們沒有發明互聯網,但是卻懂得互聯網上的算法。在斯坦福大學網站上,講述了這個有趣的發現。

生物學教授 Deborah Gordon 在觀察亞利桑那州的農田蟻時,發現了它們在尋食時的特別行爲,於是找到了計算機科學家 Balaji Prabhakar 探討這件事情。Balaji Probhakar 雖然是網絡文件傳輸方面的專家,但是並沒有立刻意識到這跟計算機有何關聯。到了第二天,靈感突然來襲,他突然想到,螞蟻的行爲和互聯網上文件傳輸竟然非常相似。Prabhaker 說,“螞蟻用來了解可獲得食物數量的算法,從本質上和 TCP 中使用的算法一樣。”

TCP,即傳輸控制協議,是互聯網最重要的協議之一。它被用來管理互聯網上的數據擁塞。正是由於 TCP 協議,我們的網絡才能從最早的幾十個節點發展到今天的上億個節點。它的工作原理是這樣的:作爲數據源的 A 將文件傳送到終點 B,文件被分解成無數的數據包。當 B 接受到一個數據包後,向 A 發送一條確認,以表示數據包已經送達。

這樣做的好處是可以避免數據擁塞。如果 B 確認速度慢,證明現在帶寬不夠,A 可以根據情況減緩數據傳輸;如果 B 確認的速度快,A 則會加快傳輸速度。通過這個過程可以確定可使用的帶寬,並相應增減傳輸速度。

Gordon 發現農田蟻的行爲非常類似。它們派出覓食蟻前去覓食。如果食物多的話,覓食蟻會很快回來,然後更多的螞蟻離開巢穴去覓食;如果覓食蟻空手回來,蟻羣的覓食行爲將減少,甚至停止。

螞蟻覓食和互聯網算法

根據這種情況,Probkahar 編寫了一個算法,根據食物的數量來預測蟻羣的覓食行爲,而 Gordon 通過實驗來進行證實。他們發現,以 TCP 爲基礎的算法幾乎準確的預測了螞蟻的行爲。

“螞蟻們發現了我們熟知的算法,而且他們已經使用了百萬年了”。Prabhakar 說。

他們還發現了螞蟻遵循 TCP 算法的另兩個規則。一個叫做慢啓動,在數據傳輸開始的時候,數據源會發出大量的數據包來估測帶寬;同樣,當蟻羣開始覓食之前,他們會放出覓食蟻去偵測食物數量。

另一個叫做超時。當數據傳輸的鏈接中斷或被幹擾,數據源會停止發生數據包;同樣,當覓食蟻超過 20 分鐘沒有回巢,其它的覓食螞蟻將不會離開巢穴。

Gordon 則認爲,在蟻羣行爲如何幫助我們設計網絡系統上,科學家們剛剛接觸到了表層部分。目前有 1 萬 1 千種螞蟻,生活在各種環境中,處理着各種不同的生態問題,螞蟻們做事的方式是我們所料想不到的,但是可能被用於計算機系統中。每個螞蟻的能力有限,但是蟻羣能夠完成複雜的任務。

“因此螞蟻的算法必定是簡單、分佈式、可擴展的,這正是我們在設計龐大的人工分佈式系統時所需要的特性。”她說,“我認爲,當我們更多的瞭解不同類型的螞蟻是如何規範自身行爲後,能夠爲網絡算法找到許多有用的例子。”

螞蟻和算法,看起來是不可思議的聯繫,但是自然的奇妙之處常常超越我們的想象。人類發現的各種算法和模型,看似是自己思維的創造,卻常常能夠在自然中找到各種實例。這不禁讓人產生奇特的幻想。或者,我們生活的世界真的是一部由算法驅動的機器,誰知道呢?

發佈了28 篇原創文章 · 獲贊 7 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章