人類和螞蟻的區(qū)別是什么?螞蟻沒有互聯網。
相對于擁有創(chuàng)造性思維的人類,螞蟻看起來不過是依賴于本能的生物。不過,斯坦福大學兩位科學家發(fā)現,螞蟻比我們想象的要聰明的多,雖然它們沒有發(fā)明互聯網,但是卻懂得互聯網上的算法。在斯坦福大學網站上,講述了這個有趣的發(fā)現。
生物學教授 Deborah Gordon 在觀察亞利桑那州的農田蟻時,發(fā)現了它們在尋食時的特別行為,于是找到了計算機科學家 Balaji Prabhakar 探討這件事情。Balaji Probhakar 雖然是網絡文件傳輸方面的專家,但是并沒有立刻意識到這跟計算機有何關聯。到了第二天,靈感突然來襲,他突然想到,螞蟻的行為和互聯網上文件傳輸竟然非常相似。Prabhaker 說,“螞蟻用來了解可獲得食物數量的算法,從本質上和 TCP 中使用的算法一樣。”
TCP,即傳輸控制協議,是互聯網最重要的協議之一。它被用來管理互聯網上的數據擁塞。正是由于 TCP 協議,我們的網絡才能從最早的幾十個節(jié)點發(fā)展到今天的上億個節(jié)點。它的工作原理是這樣的:作為數據源的 A 將文件傳送到終點 B,文件被分解成無數的數據包。當 B 接受到一個數據包后,向 A 發(fā)送一條確認,以表示數據包已經送達。
這樣做的好處是可以避免數據擁塞。如果 B 確認速度慢,證明現在帶寬不夠,A 可以根據情況減緩數據傳輸;如果 B 確認的速度快,A 則會加快傳輸速度。通過這個過程可以確定可使用的帶寬,并相應增減傳輸速度。
Gordon 發(fā)現農田蟻的行為非常類似。它們派出覓食蟻前去覓食。如果食物多的話,覓食蟻會很快回來,然后更多的螞蟻離開巢穴去覓食;如果覓食蟻空手回來,蟻群的覓食行為將減少,甚至停止。
根據這種情況,Probkahar 編寫了一個算法,根據食物的數量來預測蟻群的覓食行為,而 Gordon 通過實驗來進行證實。他們發(fā)現,以 TCP 為基礎的算法幾乎準確的預測了螞蟻的行為。
“螞蟻們發(fā)現了我們熟知的算法,而且他們已經使用了百萬年了”。Prabhakar 說。
他們還發(fā)現了螞蟻遵循 TCP 算法的另兩個規(guī)則。一個叫做慢啟動,在數據傳輸開始的時候,數據源會發(fā)出大量的數據包來估測帶寬;同樣,當蟻群開始覓食之前,他們會放出覓食蟻去偵測食物數量。
另一個叫做超時。當數據傳輸的鏈接中斷或被干擾,數據源會停止發(fā)生數據包;同樣,當覓食蟻超過 20 分鐘沒有回巢,其它的覓食螞蟻將不會離開巢穴。
Gordon 則認為,在蟻群行為如何幫助我們設計網絡系統上,科學家們剛剛接觸到了表層部分。目前有 1 萬 1 千種螞蟻,生活在各種環(huán)境中,處理著各種不同的生態(tài)問題,螞蟻們做事的方式是我們所料想不到的,但是可能被用于計算機系統中。每個螞蟻的能力有限,但是蟻群能夠完成復雜的任務。
“因此螞蟻的算法必定是簡單、分布式、可擴展的,這正是我們在設計龐大的人工分布式系統時所需要的特性。”她說,“我認為,當我們更多的了解不同類型的螞蟻是如何規(guī)范自身行為后,能夠為網絡算法找到許多有用的例子。”
螞蟻和算法,看起來是不可思議的聯系,但是自然的奇妙之處常常超越我們的想象。人類發(fā)現的各種算法和模型,看似是自己思維的創(chuàng)造,卻常常能夠在自然中找到各種實例。這不禁讓人產生奇特的幻想?;蛘?,我們生活的世界真的是一部由算法驅動的機器,誰知道呢?