蟻群優化演算法

2021-07-24 12:49:55 字數 1250 閱讀 8816

蟻群優化演算法作為一種全域性最優化搜素方法,同遺傳演算法一樣,靈感都**於自然界,並有良好的搜素效能。然而,從數學的角度來理解分析它們的工作方式是很難的,因為這些演算法都具有很複雜的隨機過程。

aco演算法的過程具有一定的隨機性,這就要求初始化螞蟻的數量和更新資訊素的次數必須足夠的多,只有這樣才能最終收斂到全域性最優解。雖然這使得aco演算法的執行需要花費比較長的時間,但是演算法具有找到全域性最優解的能力,並且尋找最優解的能力比一般的演算法要好。aco演算法的執行時間並不能簡單地通過減少螞蟻數量和執行次數來減少,這樣會使得演算法過於早熟,即螞蟻會很快的全部集中在一條區域性最優的路徑上,而不是全域性最優路徑。當考慮像aco演算法這樣的隨機演算法時,演算法的執行時間通常被表示為乙個隨機變數來測量演算法解決乙個引數化問題所需要的執行步驟數。

經典的aco演算法包括螞蟻系統、精華螞蟻系統、基於排列的螞蟻系統、最大最小螞蟻系統、蟻群系統等。

aco演算法在解決一些np難問題上取得了很大的成功。tsp作為乙個經典的np難問題,它的乙個解可以表示為乙個排列的形式(x1,x2,...,xn) 。事實表明,在解決tsp時,當城市的數量不是很大時,aco演算法是十分有效的。aco演算法對tsp的求解流程主要包括路徑構建和資訊素更新兩大步驟。對於不同的aco演算法,路徑構建和資訊素更新的方式會有不同,都具有各自特點。

螞蟻系統是第乙個aco演算法,但其執行效率不是十分的好。在路徑構建上,as採用隨機比例規則計算城市j作為下乙個訪問物件的概率 ;然後在採用輪盤賭的方式選出下乙個城市j。資訊素更新包括資訊素的蒸發和螞蟻根據自己構建的路徑長度在他們經過的邊上釋放資訊素。

精華螞蟻系統是對as演算法的第一次改進,它在更新資訊素時做了一點改動。額外為至今最優路徑上增加資訊素,這就使得演算法能夠更好地引導螞蟻搜尋的偏向,使演算法更快的收斂。

基於排列的螞蟻系統也是在資訊素更新方面做了改進,只有按路徑按最短排名的前w的螞蟻和至今最優路徑的螞蟻可以更新資訊素。

蟻群系統大幅度地改動as演算法,並且在效能上明顯優於as。acs在路徑構建和資訊素更新上都做了優化。首先,在路徑構建方面,acs採用偽隨機比例規則選擇下乙個城市節點 。即首先確定乙個q0(q0大於0小於1),再隨機生成乙個數q,當q小於等於q0 時,螞蟻直接選擇使啟發式資訊與資訊素量的 指數乘積最大的下一城市節點;反之則採用類似於as演算法的隨機比例規則來選擇下一城市節點。其次,在資訊素更新上做了兩點改進。一是資訊素全域性更新規則,只在至今最優路徑上蒸發和釋放資訊素 ,該方法還簡單地實現了對資訊素量取值範圍的限制;二是資訊素區域性更新規則,螞蟻每次經過一條邊都會除去該邊上一定量的資訊素 ,這種方式大大增加了演算法的探索能力,後續螞蟻傾向於探索未被使用過的邊,有效避免了演算法進入停滯狀態。

蟻群演算法及其優化總結

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

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

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

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

組合優化演算法系列 現代優化演算法 一 模擬退火演算法 及應用舉例 現代優化演算法 二 遺傳演算法 及應用舉例 現代優化演算法 三 禁忌搜尋演算法 現代優化演算法 四 改進的遺傳演算法 現代優化演算法 五 蟻群演算法 目錄 1 蟻群演算法簡介 2 解決tsp 問題的蟻群演算法描述 人工蟻群演算法的求...