據美國《連線》雜志網站報道,你是否曾經注意過螞蟻是如何外出覓食的?這樣的問題對于一般人而言似乎顯得有些莫名其妙,但是對于生態學家和動物行為學家而言這一點卻非常關鍵和有趣。尤其是在明確知道螞蟻們實際上并沒有統一的中央指揮調度系統的前提之下便更是如此。 對蟻群行為的研究正為人類社會的工程學研究提供啟發 通過簡單的信息交換,蟻群成功應對不斷變化的外部世界的挑戰。它們采用的網絡體系可以非常迅速方便的修復,并且可以隨時擴大或縮減規模 有一點非常讓人感興趣,那就是螞蟻們的組織方式與人類社會所采用的一些工程解決方案之間的高度相似性。其中一個案例便是所謂的“螞蟻網絡”(Anternet)。美國斯坦福大學的一個研究組發現沙漠螞蟻們在外出覓食時采用的組織方式與人類社會在計算機網絡方面所采用的,旨在規范數據傳輸的TCP協議之間存在算法方面的高度相似性——螞蟻網絡和人類使用的信息網絡算法設計都采用了正反饋機制:在TCP傳輸協議中,一個數據包的抵達確認信號會激發下一個數據包的發送開始,而一只滿載而歸的螞蟻個體則會觸發下一只覓食的螞蟻個體出發繼續覓食的工作。這些研究不禁讓我們驚嘆于螞蟻們的高度智慧——它們竟然能夠發明出與人類相媲美的復雜精妙的系統。但是這種相似性還不是螞蟻網絡給與我們的最令人興奮的地方,關鍵的部分在于,還有沒有哪些是螞蟻們一直在采用的精妙方法,但是我們人類卻還沒有意識到的?換句話說,螞蟻們是否能夠給予我們工程學界未來的走向以啟迪? 在大約1.3億年的演化歷程中,進化的過程讓螞蟻網絡經受了在不斷變化和嚴苛環境條件下的考驗。螞蟻們會利用簡單的基于簡短互動的網絡來達成對不斷變化的網絡的適應。在整個螞蟻群體中,單個的螞蟻都不知道接下來到底要做什么,去哪里。它們只是機械的按照之前跟另一只螞蟻相互碰觸的觸須,或者地面上留下的信息素執行自己的動作并選定路徑。然而正是這種看似簡單機械的機制確保了螞蟻們的生存,現在全世界有超過1.1萬種螞蟻種類,幾乎分布于地球表面所有可以生活的地方。因此這樣有效的螞蟻網絡,必定有一些值得我們學習借鑒的地方。 如何應對復雜網絡的高成本? 沙漠螞蟻需要外出采集水分來源,但是在炙熱的陽光下在沙漠中奔走本身也會耗費大量水分。冒著酷熱搬回來一些含水的食物之后它們便能夠從中攝取水分。蟻群會評估成本,它們會比較得失,如果外出的水分成本耗費太高,那么反饋機制將讓它們放棄外出,將食物就留在地面上不去理會,直到空氣中的濕度條件稍稍合適之后才會觸發前往采集。 和這種做法相似,人類社會在計算機TCP數據傳輸協議中也能找到類似的做法:當缺乏足夠帶寬時,協議會阻止額外數據包的發送,因為如果帶寬不足,你所發送的信息有可能會丟失,因此總一開始就不應當進行發送,除非可以確認其可以抵達目的地。 在過去的25年間,一個研究小組一直致力于了解螞蟻網絡的算法技術是否會隨著時間或環境等條件的改變而發生相應的變化。他們對超過300個螞蟻群落進行跟蹤觀察,并使用基因技術觀察哪些蟻群最終能夠產生最多的后代(發展的最成功)。 蟻群會在它們的蟻巢里儲備食物作為一種生存策略。25年的研究結果顯示,那些每到天氣太熱就會放棄外出轉而在蟻巢里避暑的一群獲得了更大的成功。因此規避便成了一種蟻群層面的最佳策略——那就是,在沙漠地區的蟻群中間,要想獲得長期的生存,螞蟻們的做法并不是去改變或優化它們的系統網絡,而是選擇在合適的時機外出而不額外浪費資源。 當面對食物匱乏等不利條件時,螞蟻系統的解決方案精髓是最小化運行成本,而不是立即尋求加大食物的儲備。這種做法對于任何一個體系而言都是最可以持續的方案——不管具體的對象是沙漠螞蟻群落還是計算機網絡中的數據包發送,即達成長期意義上的穩定性,并避免造成不必要的浪費。 大型和小型系統 但是如果系統的規模擴大之后,將會怎樣?正如人類的計算機網絡系統一樣,螞蟻群落系統也必須面對群落規模擴大之后的管理問題,這一系統必須可以接受局部的失效。 由于大規模系統必須允許出現一些偏差和錯誤,因此最佳的解決方案便是,讓群體中每一個個體產生的貢獻超過其自身對群體造成的損失以及撫養一個新生個體所要付出的成本。因此,在一個大規模系統中非常關鍵的一點便是冗余設計以及最小化信息量——在巨大的蟻群中,這種極高效率的選擇是通過這樣一種方式實現的,即大量的交流是通過兩只互相陌生的螞蟻個體之間簡單的觸須碰觸實現的,非常迅速,沒有額外的信息交流。 在工程領域我們同樣在尋找方法確保產出的可靠性,隨著網絡規模的擴大,我們不斷尋找有效率的,便宜的解決方案,而螞蟻群落的做法給我們的啟示是,有時候容忍某些不完美可能卻恰恰是通往最佳解決方案的途徑。 先到先得的策略 螞蟻算法的多樣性顯示出進化過程對于不同環境限制因素的響應。由于蟻群之間存在相互競爭,并且很多時候它們在覓食時所選定的目標可能會是同一個食物,那么這時候誰先到誰就有可能贏得先機。 但是在一個沒有中央指揮體系的系統中,又該如何達成最先抵達的目標呢?對于這個問題的解決方法是蟻群必須設法在最大的面積上幾乎在任何時間點都有本蟻群的成員在搜尋,這樣一來,不論在任何地點出現食物,就可以有最大的可能性在其附近有本群的螞蟻成員在巡邏,可以及早發現。 但是如果沒有中央統一的調度系統,你又該如何進行這樣的統一布置呢?蟻群所采用的一種方案是建立一些永久性的固定巡邏路線,就像是我們的手機信號塔,螞蟻們會固定的沿著這些道路進行巡視。極具攻擊性的阿根廷蟻在這方面非常擅長,它們可以及時找到任何你掉在地上的面包屑。 阿根廷蟻還會調整自己的巡視路線,當身邊還有其它許多同伴時,它們會采用一種近乎是隨機的路線選擇,從而讓每一只螞蟻對一小塊區域進行徹底的搜查,而當處于陌生區域,并且同伴的數量較少時,它們則傾向于采取直行路線,從而確保數量較少的蟻群得以覆蓋更大的范圍。就像一個情報反饋系統,隨著每一只螞蟻個體對局部低點信息情報的反饋,整個蟻群逐漸掌握有關整個體系的完整信息,而在這一過程中并沒有任何中央統一調度體系的干預。 對抗安全漏洞和疾病 如前所述,當數以百計的蟻群相互接近,此時資源就會顯得緊張,各個蟻群之間將會出現對食物等資源的爭奪,這樣做必然就會導致出現安全問題上的顧慮。對此,蟻群相應的進化出了對入侵的偵測并對安全漏洞做出響應的機制。 一個蟻群可能會盜用或竊取其它蟻群留下的信息,從而找到其它蟻群率先找到的食物,比如它們會探測其它蟻群留下的化學蹤跡信息并追蹤這些信息。蟻群對此采取的策略并不是徹底的防止入侵行為的發生,而是發展出一套根據入侵規模大小而并與之對應的應對體系。 這種行為對于計算機信息安全領域同樣具有啟發性,我們或許不應追求完美,我們所要做的應當是在局部范圍內對威脅做出評估并采取行動消除入侵。蟻群已經找到一種有效途徑,對入侵行為做出響應,而在此過程中并沒有更高一級中央調度系統的介入。人類社會目前正在顯現一些運用相似設計思想的安全系統。 另外蟻群還有一整套的危機應對機制,如那些常常在樹上覓食的螞蟻種類,有些樹木的樹枝非常容易折斷,這樣就會引起蟻群的損失。為了及時發現這種危機并做出響應,蟻群會以一個環圈的形式前行,這樣就會有兩個方向的信息流連續的交換。當發生樹枝折斷,一個方向的信息流中斷,蟻群便會立即意識到危機的發生并著手重建環圈網絡。 相似的,早期的光纖通訊網絡常常會由于農場或建筑施工等原因被挖斷,這樣的后果是嚴重的,因為它可能導致一個半局部地區的信息通訊中斷。不過工程師們很快想出了解決方案,他們參考蟻群的做法,環圈通訊網絡將能確保更加迅速和有效地修復損傷。 有一點是可以肯定的,那就是在未來我們的工程信息網絡還將繼續演化發展。工程師們將會繼續研究蟻群在解決一些重大問題時的方案,它們所使用的算法將會繼續給予人類以改進設計的靈感。 通過簡單的信息交換,而不是我們目前所采用的復雜反饋體系,蟻群成功應對不斷變化的外部世界的挑戰——比如不定時出現又隨時會消失的食物來源。它們采用的網絡體系可以非常迅速方便的修復,并且可以隨時擴大或縮減規模。 在歷史上,蟻群帶來的啟示已經被廣泛運用于工業和其它設計領域。盡管單個的螞蟻可能是懶散的,毫無思想和徹底愚蠢的,但是一旦置于一個龐大完整的蟻群體系之下,我們則有必要學習其組織方式和體系——螞蟻們在漫長的演化過程中已經實現了一種高度的協同體系,在這一方面我們望塵莫及。(晨風) |