蟻群演算法理論介紹

interesting233333發表於2019-06-03

蟻群演算法是啥呢,是啟發式演算法的一種。目前很多啟發式演算法都與仿生學有關,所以很明顯,蟻群演算法也是這個類別。這個蟻群演算法的靈感呢就是螞蟻在尋找食物過程中發現路徑的行為。

接下來就正式開始學習蟻群演算法!

 

一、發現背景

這個演算法在國外大兄弟研究圖論中的路徑問題時候弄出來的。他們發現在螞蟻覓食的過程中,一個螞蟻很容易走丟,但是一群螞蟻卻能很快地找到食物,難道這就是我們所說的人多力量大??其實並不是,是因為螞蟻的尋找食物的過程中可以留下資訊素,這種化學物質可以讓螞蟻找到一個最優路徑,這就是我們平時所說的蟻群演算法。

 

二、演算法基本思想

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

 

三、實現

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

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

 

四、演算法規則

(1)感知範圍

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

(2)環境資訊

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

(3)覓食規則

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

(4)移動規則

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

(5)避障規則

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

(6)散發資訊素規則

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

 

五、具體演算法實現

後期傳一份

 

六、應用

該演算法應用於其他組合優化問題,如旅行商問題(即TSP問題)、指派問題、Job—shop排程問題、車輛路由問題、圖著色問題和網路路由問題等。

 

 

 

相關文章