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