智能算法---蟻群算法
1 蟻群算法及其基本思想
蟻群算法是一種智能優化算法,通過蟻群優化求解復雜問題,ACO在離散優化問題方面有比較好的優越性。
基本思想(以旅行商問題為例)
設置多只螞蟻,分頭並行搜索。
每只螞蟻完成一次周游后,在行進的路上釋放信息素,信息素量與解的質量成正比。
螞蟻路徑的選擇根據信息素強度大小(初始信息素量設為相等),同時考慮兩點之間的距離,采用隨機的局部搜索策略。這使得距離較 短的邊,其上的信息素量較大,后來的螞蟻選擇該邊的概率也較大。
每只螞蟻只能走合法路線(經過每個城市1次且僅1次),為此設置禁忌表來控制。
所有螞蟻都搜索完一次就是迭代一次,每迭代一次就對所有的邊做一次信息素更新,原來的螞蟻死掉,新的螞蟻進行新一輪搜索。
更新信息素包括原有信息素的蒸發和經過的路徑上信息素的增加。
達到預定的迭代步數,或出現停滯現象(所有螞蟻都選擇同樣的路徑,解不再變化),則算法結束,以當前最優解作為問題的最優解
2 表示方式
2.1 參數表示

2.2 計算公式

3 ACO算法步驟
4 ACO算法解決旅行商問題
4.1 問題提出
4.2 參數設置

4.3 計算結果
首先對每個節點求對應的參數
有如下圖5個結果



根據得到的結論,再次有螞蟻從五個點出發時,走過的路徑如下面五個表所示





結論:當出現停止現象的時候,說明已經得到最優解,算法結束,最優解為:AEDCBA,目標函數值為9
5 ACO的優缺點
ACO的優點
較強的魯棒性——稍加修改即可應用於其他問題;
分布式計算——本質上具有並行性;
易於與其他啟發式算法結合。
PSO的缺點
一般需要較長的搜索時間;
容易出現停滯現象;
只適用於離散問題
