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