要不要出去找吃的耍属,出去多少只,對螞蟻而言巩检,這是必須面對的問題厚骗。
出去多了,有收獲還好碴巾,沒收獲的話,浪費“蟻力”不說丑搔,江湖險惡厦瓢,還有喪命的風(fēng)險。
出去少了啤月,雖不至于“不知有漢煮仇,無論魏晉”,但錯過食物谎仲,減少收成浙垫,卻是很有可能的。
雖簡單郑诺,卻是生死攸關(guān)的問題夹姥。生存是第一需求,但食物越多并不完全等價于存活得越久辙诞。后者要求的是性價比辙售,是消耗較少資源,收集較多食物飞涂。
螞蟻們給出了自己的答案旦部。
這個答案不是“蟻后坐陣指揮,決勝千里”较店。蟻后雖有王后的名頭士八,卻不過是一只專門負(fù)責(zé)下蛋的螞蟻,并沒有什么“政治”權(quán)力梁呈。況且婚度,也沒有螞蟻坐在門口清點和匯報布陣情況供它決策。
每當(dāng)有螞蟻帶著食物載譽(yù)而歸時官卡,便會在洞口放下食物陕见,和守候在那里的螞蟻碰一碰那兩根“小天線”秘血。等待的螞蟻是否出發(fā),踏上冒險之旅评甜,取決于這種交流的次數(shù)和間隔的時長灰粮。
一旦出發(fā),不找到點什么忍坷,螞蟻是不會輕易回家的粘舟。因此,周圍的食物越多佩研,回來得越頻繁柑肴,就有越多的螞蟻集結(jié)出發(fā);食物越少旬薯,回來的次數(shù)也少晰骑,家里的螞蟻就自覺省點力,不出去白忙活了绊序。當(dāng)然硕舆,回來的少,也可能是壯烈犧牲了骤公,說明外面危險抚官,還是按兵不動的好。
沒有統(tǒng)籌兼顧阶捆,沒有上傳下達(dá)凌节,個體的機(jī)械和無知,卻構(gòu)成了整體的靈活與英明洒试。
這種方式倍奢,在螞蟻界已經(jīng)運行了幾百萬年,恐龍在的時候垒棋,它們在娱挨;恐龍不在的時候,它們依然在捕犬。人類在的時候跷坝,它們在;人類不在的時候碉碉,詛咒它們也不在……
你以為這是在講螞蟻覓食柴钻,但其實是在講?TCP通信。TCP協(xié)議能夠流行垢粮、成為整個互聯(lián)網(wǎng)的基石贴届,很重要的一點是它解決了之前一直存在的“擁塞崩潰”問題。解決此問題的一個措施是“擁塞控制”:
擁塞控制是一種用來調(diào)整傳輸控制協(xié)議(TCP)連接單次發(fā)送的分組數(shù)量(單次發(fā)送量,在英文文獻(xiàn)和程序代碼中常叫做cwnd)的算法毫蚓。它通過增減單次發(fā)送量逐步調(diào)整占键,使之逼近當(dāng)前網(wǎng)絡(luò)的承載量。
我們要在事先不知道帶寬元潘,或帶寬一直變化的情況下畔乙,完成通信又避免擁塞。
TCP發(fā)送數(shù)據(jù)包翩概,好比螞蟻外出覓食牲距;返回確認(rèn)符,好比螞蟻帶回食物钥庇。很快返回大量確認(rèn)符牍鞠,意味著帶寬充足,允許發(fā)送更多數(shù)據(jù)包评姨,好比大量螞蟻回巢难述,表明食物充足,要多派人手出去搶運吐句。反之亦然胁后。如果根本不返回,發(fā)送和外出也將停止蕴侧,對應(yīng)TCP的超時择同。
第一只外出的螞蟻是如何決定出去而不是留下呢两入?這其實不難净宵,一開始總得有一批偵查員,先出去打探打探裹纳,為后續(xù)行動收集情報择葡。因為只是偵查,所以數(shù)量不用也不宜太多剃氧。對應(yīng)的是TCP控制擁塞的另一招——慢啟動敏储,服務(wù)器通過?TCP?連接初始化一個新的單次發(fā)送量?(cwnd),將其值設(shè)置為一個系統(tǒng)設(shè)定的保守值朋鞍。每次往返都令其翻倍(指數(shù)式增長)已添,進(jìn)而迅速向有效帶寬靠攏。
一個優(yōu)秀的分布式系統(tǒng)是沒有中央節(jié)點的分布式系統(tǒng)滥酥。神奇的自然選擇造就了蟻群更舞,這個優(yōu)秀的分布式系統(tǒng)。
爭氣的是坎吻,我們并沒有“抄襲”螞蟻缆蝉,而是獨立發(fā)現(xiàn)這一算法,并應(yīng)用在TCP協(xié)議中。
1988 年刊头,Van Jacobson 和 Michael J. Karels 撰文描述了解決這個問題的幾種算法:慢啟動黍瞧、擁塞預(yù)防、快速重發(fā)和快速恢復(fù)原杂。這四種算法很快被寫進(jìn)了 TCP 規(guī)范印颤。事實上,正是由于這幾種算法加入TCP污尉,才讓因特網(wǎng)在 20世紀(jì)80年代末到 90年代初流量暴增時免于大崩潰膀哲。
向兩位大神致敬,也向發(fā)明TCP/IP的Vint Cerf(被譽(yù)為“互聯(lián)網(wǎng)之父”)和Bob Kahn致敬被碗。
(2005年某宪,Vint?Cerf和Bob?Kahn獲得小布什頒發(fā)的“總統(tǒng)自由勛章”)
對了,我們知道螞蟻懂這個算法锐朴,這事本身也是很牛逼的兴喂。這是斯坦福大學(xué)教授Deborah Gordon長達(dá)30年的研究成果。沒錯焚志,我們是獨立提出了螞蟻覓食的算法衣迷,但我們有什么信心能獨立提出它們的更多算法?
搜“Harvester ants use interactions to regulate forager activation and availability”酱酬,看教授的研究論文壶谒。
參考資料:
http://news.stanford.edu/news/2013/may/ants-forage-evolve-051413.html
http://news.stanford.edu/news/2012/august/ants-mimic-internet-082312.html
https://priceonomics.com/the-independent-discovery-of-tcpip-by-ants/
https://www.wired.com/2013/07/what-ants-yes-know-that-we-dont-the-future-of-networking/
https://zh.wikipedia.org/wiki/%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6
https://www.ted.com/talks/deborah_gordon_digs_ants#t-965306
High Performance Browser Networking