現代優化演算法(五) 蟻群演算法

2021-09-20 06:45:41 字數 2750 閱讀 9170

組合優化演算法系列:

現代優化演算法 (一):模擬退火演算法 及應用舉例

現代優化演算法 (二): 遺傳演算法 及應用舉例

現代優化演算法(三):禁忌搜尋演算法

現代優化演算法(四):改進的遺傳演算法

現代優化演算法(五): 蟻群演算法

目錄

1 蟻群演算法簡介 

2 解決tsp 問題的蟻群演算法描述

人工蟻群演算法的求解步驟

3 人工蟻群演算法效能的討論

蟻群是自然界中常見的一種生物,人們對螞蟻的關注大都是因為「蟻群搬家,天 要下雨」之類的民諺。然而隨著近代仿生學的發展,這種似乎微不足道的小東西越來越 多地受到學者們地關注。1991 年義大利學者 m. dorigo 等人首先提出了蟻群演算法,人們 開始了對蟻群的研究:相對弱小,功能並不強大的個體是如何完成複雜的工作的(如尋 找到食物的最佳路徑並返回等)。在此基礎上一種很好的優化演算法逐步發展起來。 蟻群演算法的特點是模擬自然界中螞蟻的群體行為。科學家發現,蟻群總是能夠發 現從蟻巢到食物源的最短路徑。經研究發現,螞蟻在行走過的路上留下一種揮發性的激 素,螞蟻就是通過這種激素進行資訊交流。螞蟻趨向於走激素積累較多的路徑。找到最 短路徑的螞蟻總是最早返回巢穴,從而在路上留下了較多的激素。由於最短路徑上積累 了較多的激素,選擇這條路徑的螞蟻就會越來越多,到最後所有的螞蟻都會趨向於選擇這條最短路徑。基於螞蟻這種行為而提出的蟻群演算法具有群體合作,正反饋選擇,並行 計算等三大特點,並且可以根據需要為人工蟻加入前瞻、回溯等自然蟻所沒有的特點。 在使用蟻群演算法求解現實問題時,先生成具有一定數量螞蟻的蟻群,讓每乙隻螞 蟻建立乙個解或解的一部分,每只人工蟻從問題的初始狀態出發,根據「激素」濃度來 選擇下乙個要轉移到的狀態,直到建立起乙個解,每只螞蟻根據所找到的解的好壞程度 在所經過的狀態上釋放與解的質量成正比例的「激素」。之後,每只螞蟻又開始新的求 解過程,直到尋找到滿意解。為避免停滯現象,引入了激素更新機制。

根據上述原理,螞蟻 k(k = 1,2,...,m)在運動過程中根據各條路徑上的資訊量決定 轉移方向。與真實蟻群系統不同,人工蟻群系統具有一定的記憶功能。隨著時間的推移, 以前留下的資訊逐漸消逝,經 n 個時刻,螞蟻完成一次迴圈,各路徑上資訊量要作調整。 由此得到下述的人工蟻群系統模型:

1)設人工蟻群在並行地搜尋 tsp 的解,並通過一種資訊素做媒介相互通訊,在每 個結點上且和該結點相連的邊上以資訊素量做搜尋下一結點的試探依據,直到找到乙個 tsp 問題的可行解。

2)在時刻t 人工蟻 k 由位置i 轉移至位置 j 的轉移概率為

其中引數α 為軌跡的相對重要性(α ≥ 0 );β 為能見度的相對重要性( β ≥ 0 );s 為 可行點集,即螞蟻 k 下一步允許選擇的城市。α, β 分別反映了螞蟻在運動過程中所積 累的資訊及啟發式因子在螞蟻選擇路徑中所起的不同作用。

3)當 m 個人工蟻按(3)式找到了可行解,則將各邊的資訊量用下式修改。即調 整資訊量的軌跡強度更新方程為

對上述系統模型,採用人工蟻群方法求解的演算法步驟可歸結為:

人工蟻群演算法是一種基於種群的進化演算法。作為乙個新興的研究領域,雖它還遠 未像 ga、sa 等演算法那樣形成系統的分析方法和堅實的數學基礎,但目前已有一些基 本結果。 在 m. dorigo 三種不同的模型中,迴圈路徑(i, j) 上資訊量的增量

1)ant-quantity system 模型中,

2)在 ant-density system 模型中,

3)在 ant-cycle system 模型中,

人工蟻群演算法中,α, β,q 等引數對演算法效能也有很大的影響。α 值的大小表明留 在每個結點上的資訊量受重視的程度,α 值越大,螞蟻選擇以前選過的點的可能性越 大,但過大會使搜尋過早陷於區域性極小點;β 的大小表明啟發式資訊受重視的程度;q 值會影響演算法的收斂速度,q 過大會使演算法收斂於區域性極小值,過小又會影響演算法的 收斂速度,隨問題規模的增大q 的值也需要隨之變化;螞蟻的數目越多,演算法的全域性搜尋能力越強,但數目加大將使演算法的收斂速度減慢。

組合優化演算法系列:

現代優化演算法 (一):模擬退火演算法 及應用舉例

現代優化演算法 (二): 遺傳演算法 及應用舉例

現代優化演算法(三):禁忌搜尋演算法

現代優化演算法(四):改進的遺傳演算法

現代優化演算法(五): 蟻群演算法

現代優化演算法之蟻群演算法

參考一篇 an ant colony optimization algorithm for image edge detection 來嘗試說清楚蟻群優化演算法的大概流程。蟻群演算法是一種群體智慧型演算法,這類演算法主要是依靠隨機選擇加上 目標函式 引導來拓寬解的搜尋能力。我個人覺得這一類的群體演算...

蟻群優化演算法

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

蟻群演算法及其優化總結

今天了解了蟻群演算法,它的引數有點點複雜 太多了 主要就是資訊素濃的控制。推薦 智慧型演算法 蟻群演算法 taoliu alex 在aca的基礎上進行優化,提出了 螞蟻 q系統 ant q system 蟻群系統 ant colony system,acs 最大最小螞蟻系統 max min ant ...