必威电竞|足球世界杯竞猜平台

蟻群算法
來源:互聯網

蟻群算法(螞蟻——神秘的王國 菌落 最優化 Algorithm),又稱螞蟻算法、蟻群優化算法,是一種用來在圖中尋找最優路徑的算法,也是一種源于大自然生物世界的仿生進化算法,其產生的靈感來源于螞蟻在往返于食物與巢穴進行覓食時可以尋找到最短路徑的現象。

蟻群算法是由意大利學者M.Dorigo、V.Maniezzo和A.Colomi等人于20世紀90年代初期通過模擬自然界中螞蟻集體尋徑行為而提出的一種基于種群的啟發式隨機搜索算法。螞蟻算法的具體流程為:初始化;為每只螞蟻選擇下一個節點;更新信息素矩陣;檢查終止條件;輸出最優值。蟻群算法具有分布式計算、無中心控制和分布式個體之間間接通信等特征,易于與其他優化算法相結合,它通過簡單個體之間的協作表現出了求解復雜問題的能力,已被廣泛應用于求解優化問題。

背景

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

思想

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

實現

螞蟻找到最短路徑要歸功于信息素和環境,假設有兩條路可從蟻窩通向食物,開始時兩條路上的螞蟻數量差不多:當螞蟻到達終點之后會立即返回,距離短的路上的螞蟻往返一次時間短,重復頻率快,在單位時間里往返螞蟻的數目就多,留下的信息素也多,會吸引更多螞蟻過來,會留下更多信息素。而距離長的路正相反,因此越來越多的螞蟻聚集到最短路徑上來。

螞蟻具有的智能行為得益于其簡單行為規則,該規則讓其具有多樣性和正反饋。在覓食時,多樣性使螞蟻不會走進死胡同而無限循環,是一種創新能力;正反饋使優良信息保存下來,是一種學習強化能力。兩者的巧妙結合使智能行為涌現,如果多樣性過剩,系統過于活躍,會導致過多的隨機運動,陷入混沌狀態;如果多樣性不夠,正反饋過強,會導致僵化,當環境變化時蟻群不能相應調整。

Python 代碼實現

step1:在GitHub上下載常用的 scikit-opt??庫。

step2:設立目標函數并執行蟻群算法

規則

(1)感知范圍

螞蟻觀察到的范圍是一個方格世界,相關參數為速度半徑,一般為3,可觀察和移動的范圍為3x3方格。

(2)環境信息

螞蟻所在環境中有障礙物、其他螞蟻、信息素,其中信息素包括食物信息素(找到食物的螞蟻留下的)、窩信息素(找到窩的螞蟻留下的),信息素以一定速率消失。

(3)覓食規則

螞蟻在感知范圍內尋找食物,如果感知到就會過去;否則朝信息素多的地方走,每只螞蟻會以小概率犯錯誤,并非都往信息素最多的方向移動。螞蟻找窩的規則類似,僅對窩信息素有反應。

(4)移動規則

螞蟻朝信息素最多的方向移動,當周圍沒有信息素指引時,會按照原來運動方向慣性移動。而且會記住最近走過的點,防止原地轉圈。

(5)避障規則

當螞蟻待移動方向有障礙物時,將隨機選擇其他方向;當有信息素指引時,將按照覓食規則移動。

(6)散發信息素規則

在剛找到食物或者窩時,螞蟻散發的信息素最多;當隨著走遠時,散發的信息素將逐漸減少。

特點

與其他優化算法相比,蟻群算法具有以下幾個特點:

(1)采用正反饋機制,使得搜索過程不斷收斂,最終逼近最優解。

(2)每個個體可以通過釋放信息素來改變周圍的環境,且每個個體能夠感知周圍環境的實時變化,個體間通過環境進行間接地通訊。

(3)搜索過程采用分布式計算方式,多個個體同時進行并行計算,大大提高了算法的計算能力和運行效率。

(4)啟發式的概率搜索方式不容易陷入局部最優,易于尋找到全局最優解。

應用

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

參考資料 >

生活家百科家居網