蟻群算法

蟻群算法

蟻群算法是一種用來尋找最佳化路徑的機率型算法。它由Marco Dorigo於1992年在他的博士論文中提出,其靈感來源於螞蟻在尋找食物過程中發現路徑的行為。

這種算法具有分布計算、信息正反饋和啟發式搜尋的特徵,本質上是進化算法中的一種啟發式全局最佳化算法。

基本介紹

  • 中文名:蟻群算法
  • 外文名:ant colony optimization
  • 簡稱:ACO
  • 提出人:Marco Dorigo
  • 提出時間:1992年
  • 所屬學科:計算機
背景,思想,實現,規則,特點,套用,

背景

蟻群系統(Ant System或Ant Colony System)是由義大利學者Dorigo、Maniezzo等人於20世紀90年代首先提出來的。他們在研究螞蟻覓食的過程中,發現單個螞蟻的行為比較簡單,但是蟻群整體卻可以體現一些智慧型的行為。例如蟻群可以在不同的環境下,尋找最短到達食物源的路徑。這是因為蟻群內的螞蟻可以通過某種信息機制實現信息的傳遞。後又經進一步研究發現,螞蟻會在其經過的路徑上釋放一種可以稱之為“信息素”的物質,蟻群內的螞蟻對“信息素”具有感知能力,它們會沿著“信息素”濃度較高路逕行走,而每隻路過的螞蟻都會在路上留下“信息素”,這就形成一種類似正反饋的機制,這樣經過一段時間後,整個蟻群就會沿著最短路逕到達食物源了。

思想

將蟻群算法套用於解決最佳化問題的基本思路為:用螞蟻的行走路徑表示待最佳化問題的可行解,整個螞蟻群體的所有路徑構成待最佳化問題的解空間。路徑較短的螞蟻釋放的信息素量較多,隨著時間的推進,較短的路徑上累積的信息素濃度逐漸增高,選擇該路徑的螞蟻個數也愈來愈多。最終,整個螞蟻會在正反饋的作用下集中到最佳的路徑上,此時對應的便是待最佳化問題的最優解

實現

螞蟻找到最短路徑要歸功於信息素和環境,假設有兩條路可從蟻窩通向食物,開始時兩條路上的螞蟻數量差不多:當螞蟻到達終點之後會立即返回,距離短的路上的螞蟻往返一次時間短,重複頻率快,在單位時間裡往返螞蟻的數目就多,留下的信息素也多,會吸引更多螞蟻過來,會留下更多信息素。而距離長的路正相反,因此越來越多的螞蟻聚集到最短路徑上來。
螞蟻具有的智慧型行為得益於其簡單行為規則,該規則讓其具有多樣性和正反饋。在覓食時,多樣性使螞蟻不會走進死胡同而無限循環,是一種創新能力;正反饋使優良信息保存下來,是一種學習強化能力。兩者的巧妙結合使智慧型行為湧現,如果多樣性過剩,系統過於活躍,會導致過多的隨機運動,陷入混沌狀態;如果多樣性不夠,正反饋過強,會導致僵化,當環境變化時蟻群不能相應調整。

規則

(1)感知範圍
螞蟻觀察到的範圍是一個方格世界,相關參數為速度半徑,一般為3,可觀察和移動的範圍為3x3方格。
(2)環境信息
螞蟻所在環境中有障礙物、其他螞蟻、信息素,其中信息素包括食物信息素(找到食物的螞蟻留下的)、窩信息素(找到窩的螞蟻留下的),信息素以一定速率消失。
(3)覓食規則
螞蟻在感知範圍內尋找食物,如果感知到就會過去;否則朝信息素多的地方走,每隻螞蟻會以小機率犯錯誤,並非都往信息素最多的方向移動。螞蟻找窩的規則類似,僅對窩信息素有反應。
(4)移動規則
螞蟻朝信息素最多的方向移動,當周圍沒有信息素指引時,會按照原來運動方向慣性移動。而且會記住最近走過的點,防止原地轉圈。
(5)避障規則
當螞蟻待移動方向有障礙物時,將隨機選擇其他方向;當有信息素指引時,將按照覓食規則移動。
(6)散發信息素規則
在剛找到食物或者窩時,螞蟻散發的信息素最多;當隨著走遠時,散發的信息素將逐漸減少。

特點

與其他最佳化算法相比,蟻群算法具有以下幾個特點:
(1)採用正反饋機制,使得搜尋過程不斷收斂,最終逼近最優解。
(2)每個個體可以通過釋放信息素來改變周圍的環境,且每個個體能夠感知周圍環境的實時變化,個體間通過環境進行間接地通訊。
(3)搜尋過程採用分散式計算方式,多個個體同時進行並行計算,大大提高了算法的計算能力和運行效率。
(4)啟發式的機率搜尋方式不容易陷入局部最優,易於尋找到全局最優解。

套用

該算法套用於其他組合最佳化問題,如旅行商問題、指派問題、Job—shop調度問題、車輛路由問題、圖著色問題和網路路由問題等。最近幾年,該算法在網路路由中的套用受到越來越多學者的關注,並提出了一些新的基於螞蟻算法的路由算法。同傳統的路由算法相比較,該算法在網路路由中具有信息分散式性、動態性、隨機性和異步性等特點,而這些特點正好能滿足網路路由的需要。

相關詞條

熱門詞條

聯絡我們