蟻群演算法理論介紹

2021-09-24 02:55:30 字數 1432 閱讀 7011

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

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

一、發現背景

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

二、演算法基本思想

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

三、實現

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

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

四、演算法規則

(1)感知範圍

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

(2)環境資訊

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

(3)覓食規則

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

(4)移動規則

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

(5)避障規則

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

(6)散發資訊素規則

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

五、具體演算法實現

後期傳乙份

六、應用

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

蟻群優化演算法

蟻群優化演算法作為一種全域性最優化搜素方法,同遺傳演算法一樣,靈感都 於自然界,並有良好的搜素效能。然而,從數學的角度來理解分析它們的工作方式是很難的,因為這些演算法都具有很複雜的隨機過程。aco演算法的過程具有一定的隨機性,這就要求初始化螞蟻的數量和更新資訊素的次數必須足夠的多,只有這樣才能最終收...

蟻群演算法詳解

今天開始學習優化演算法,話說蟻群演算法是之前看過的,唉,今天一看都看不懂了,蟻群演算法的思想我就不說了,現在來理解一下這個 吧!該 的主要思想是 for 迭代次數 for 螞蟻個數 每個螞蟻完整的走完一遍 每個點訪問一次 end更新資訊素 end然後根據資訊素的多少找出一條路徑來 tsp的蟻群演算法...

ACO蟻群演算法

aco蟻群演算法 總結一下 在蟻群演算法中有兩個比較重要的引數資訊素濃度a,距離d,主要依靠這兩個特徵引數來推算出蟻群去往地點的概率。在比較早的時候成功解決了tsp旅行商的問題 在後面的例子中也會以這個例子 要用演算法去模擬螞蟻的這種行為,關鍵在於資訊素的在演算法中的設計,以及路徑中資訊素濃度越大的...