第二章 文獻回顧
2.5 螞蟻群落最佳化演算法回顧
螞蟻演算法(Ant Algorithms),是 Dorigo 在 1991 年所提出的一個新的巨 集啟發式演算法【29】,並已陸續成功地應用於求解多種複雜的組合最佳化 問 題(Combinatorial Optimiztion Problems) 上 , 例 如 : 旅 行 推 銷 員 問 題 (Traveling Salesman Problem, TSP) 、 車 輛 路 線 問 題 (Vehicle Routing Problem)、二次指派問題(Quadratic Assignment Problem)、工作站排班問題 (Job Shop Scheduling Problem)與圖形著色問題(Graph Coloring Problem)等
【21、22、23、24、25、26、27、28、29、30、31】。
螞蟻演算法之概念係藉由觀察螞蟻覓食行為而來。螞蟻爬行時會依據先 前螞蟻分泌在其路徑上的費洛蒙(pheromone)激素來決定前進的方向;殘留 於路徑上的費洛蒙濃度愈高,該路徑被其他螞蟻選擇的機率就愈高。此外,
費洛蒙激素也會隨著時間累進而漸漸蒸發稀釋。螞蟻演算法即是將上述的螞 蟻 覓 食 行 為 , 轉 換 成 演 算 法 求 解 的 機 制 , 主 要 包 括 : 路 徑 構 建(routes building)、轉換法則(transition rules)與費洛蒙更新(pheromone update)等機 制,演算法執行步驟條列如下。
步驟1: 參數值初值設定
步驟2: 重複步驟 2 直到所有螞蟻皆完成各自的完整的可行路線 2-1:螞蟻 k 構建一條完整的可行路線 t(k)
2-2:利用可行路線 t(k)進行路徑費洛蒙濃度即時更新作業 步驟3: 進行路徑費洛蒙濃度全域更新作業
步驟4: 反覆回合數累計一次。若滿足停止條件,則書出最佳解;若 否,則回到步驟2
演算法執行前須先設定基本參數,包括節點數( n )、螞蟻數( κ )、路徑 費洛蒙初值( τ )、回合數( t )、蒸發係數( ρ )、意念函數( η )、路徑費洛蒙權 重( α )、意念函數權重( β )等,其餘變數定義於表2.6。
表2.6 ACO 變數符號定義表
ij(t)
τ
在第 t 次反覆時,路徑 ( i , j )上的費洛蒙濃度η
ij 螞蟻從節點 i 行走到節點 j 的意念函數,為節點 i 與 j 間距離 的倒數k
N i 螞蟻k在節點 i 時,可選擇的尚未經過的節點集合
(t)
P
ijk 螞蟻k在第 t 次反覆時從節點 i 行走至節點j的機率值(t)
L
k 螞蟻k在第 t 次反覆時所完成路徑的長度 (t)Lb 第 t 次反覆中的最佳解路徑長度
(t)
L
gb 執行至第 t 次反覆時所記錄的目前最佳解路徑長度在每一次反覆回合開始時,以隨機方式產生每隻螞蟻皆不相同的起始節 點,尋覓路徑時則利用路徑費洛蒙濃度及意念函數組合成的公式,求出該螞 蟻尚未經過之各個節點的預行走機率值( P ),再依據機率值決定螞蟻下一個 欲前往的節點,然後將該節點加入該螞蟻既有路徑中,以此類推,直到所有 節點皆經過一次後回到該螞蟻在該次循環時的起始節點才算是完成路徑,然 後進行路進費洛蒙濃度更新作業,可視為一種較佳解資訊紀錄機制,並導引 後續路徑構建作業搜尋到更優的解。執行步驟如下所示,可看出 ACO 演算 法主要可以區分為兩大主要部份,其一為路徑構建機制,其二為費洛蒙更新 機制,亦為各式改良式的螞蟻演算法的差異所在。
近十五年來,隨著對上述各機制執行細節的設計不同,已有許多種改良 式螞蟻演算法陸續被提出,較著名的有:螞蟻系統(Ant System, AS)【27、
29、30、31】,碼蟻群落系統演算法(Ant Colony System, ACS) 【25、26、
38】、螞蟻 Q 演算法(Ant-Q) 【4 0、97】、極大-極小螞蟻系統演算法(Max-Min Ant System, MMAS) 【74、75、76、77、78】 與評等螞蟻系統演算法 (Rank-Based Version of Ant System, ASrank)【16】;這些改良的方法也被統稱 為螞蟻群落最佳化 (Ant Colony Optimization, ACO) 方法【28】,回顧於後。
2.5.1 螞蟻系統與精英螞蟻演算法
最早的 ACO 演算法是 Dorigo 於 1991 年所提出螞蟻系統(Ant System, AS),並被應用於求解 TSP 問題。AS 當螞蟻位於節點 i 時,係依據式(2.21) 中之機率值決定下一個將行至的節點 j,當第 t 次反覆中所有螞蟻皆完成各 自的路徑後,即利用式(2.22)針對該次反覆中每一隻螞蟻所完成的路徑,進 行路徑費洛蒙的更新【21、29】。該研究中針對 AS 參數進行測試,其結果
顯示ρ= 0.5
、
Q = 100、
k = n 時,{α = 1, β = 1}、{α = 1, β = 2}、{α = 1, β= 5}與{α =0.5, β = 5} 等組合有較佳的結果,可以找到最佳解。
k i
N l
il il
ij ij
k
ij if j N
] [ (t)]
[
] [ (t)]
(t) [ P
k i
∈
=
∑
∈
β α
β α
η τ
η τ
(2.21)
( ) ( ) m k( )
ij ij ij
k=1
t +1 t t
τ
=ρτ
+∑
Δτ
(2.22)其中
k k
ij
Q/L (t) (t)= 0 τ ⎧
Δ ⎨
⎩
Dorigo等之後續研究則設定AS 參數α= 1
、
β= 5、
ρ = 0.5、
Q = 100、
k= n,並求解TSP【25、26】。結果顯示:在問題規模小於75 個節點時多有 不錯的成效,但當問題規模大於75 個節點時則績效普遍不佳,因為每一隻 螞蟻的路徑皆用來更新路徑費洛蒙濃度,最佳路徑之資訊容易被路徑不佳的 螞蟻混淆。
因此Dorigo 等學者【31】 與Bektas 【11】 相繼發展出精英策略螞蟻 系統(Elitist Strategy Ant System, Elitist AS) ,這是第一個以AS 為基礎進行 改善的演算法,僅以目前最佳解進行路徑費洛蒙濃度的更新,但為了加強最 佳路徑上的費洛蒙濃度,即在第t 次反覆結束時,以跑出目前最佳解之螞蟻 數量,作為利用目前最佳路徑進行路徑費洛蒙更新的次數,更新方式如式 (2.23)所示。
ij ij gb
(t +1)= (t)+ e(t) L (t)
τ ρτ
(2.23)隨著反覆次數的增加,Lgb 將不斷的更新,而每次反覆結束時行走出目 前最佳解的螞蟻數量e 也隨之更新,使得精英策略螞蟻系統存在部分缺失:
1. 當第 t 次反覆結束時,可能沒有任何 1 隻螞蟻行走出優於目前最佳 解的路徑,此時將不進行路徑費洛蒙濃度更新,而降低求解效率。
2. 當求解初期即出現多數螞蟻同時行走出目前最佳解,將造成求解過 程快速收歛而落入區域最佳解中。
如果螞蟻k 經過路段(i,j) 其他情況
2.5.2 評等螞蟻系統演算法
ASrank 是以AS 為基礎所改善出的ACO 演算法 【16】,採用與AS 相 同的路徑搜尋機制,如式 (2.21) 所示,而路徑費洛蒙之更新則採用與Elitist AS 相似機制應用目前最佳解路徑,但Elitist AS 每次反覆僅記錄目前最佳 解之資訊,在無更佳解被搜尋出之前,每次反覆後記錄之解都是相同的,造 成搜尋過程亦快速收歛並落入區域最佳解中。
ASrank 將每次反覆中所收搜尋出之解從優至劣作排序,取其中較優的r 個解與目前最佳解一起更新路徑費洛蒙濃度,更新時給予目前最佳解較高的 權重值,如式 (2.24) 中之w,而各個解之路徑中所包括的路段,則依所在 解之優劣,以不同的權重值累積費洛蒙激素至路段上,一方面可以記錄較多 的解資訊,另一方面可減少各路段間費洛蒙濃度的差異,避免部分路段之費 洛蒙濃度過高或過低。更新方式如式 (2.24) 所示。
ρ τ
τ
τ τ
τ ρ τ
=
= Δ
= Δ
Δ
⋅ + Δ
⋅ +
⋅
= +
∑
∑
=
=
w 1 r gb
gb ij r
r ij
1 -w
1 r
gb ij r
ij ij
ij
r 1/L
(t)
(t) 1/L (t)
(t) w
(t) r)
-(w )
-(1 1) (t
,另外
, 其中
(2.24)
r值之設定極為重要,若 r 值偏高將造成求解效率降低與路徑費洛蒙資 訊錯亂,因為部分不佳的解資訊亦被用來更新,反之,若 r 值偏低,每次 反覆後紀錄之解較少,則無法凸顯出該新增改善機制之績效。
2.5.3 螞蟻群落系統演算法與螞蟻 Q 演算法
ACS與AntQ同是以AS為基礎進行改善所得之演算法之ㄧ,為相同學者 所提出,ACS與AS間存在三項主要的差異,分別為(1)路徑構建機制;(2)路 徑費洛蒙全域更新機制;以及(3)路徑費洛蒙即時更新機制,而ACS與Ant-Q 間的差異僅存在路徑費洛蒙即時更新機制一項,分別敘述於下【26、38】。
一、ACS與AntQ的路徑構建機制如式(2.25)所示,在第t次反覆時,螞蟻從所 在節點i 行至下一節點時,存在q 的機率會選擇0
τ
il(t)[η
il]β值最大的節點,而(1-q )的機率與AS及Elitist AS相同。 0
ik
b
0 il il
if q q next node l = arg Max{ (t)[
l N] } else next node j from (1)
τ η
⎧ ≤
∈⎫
⎪ ⎪
⎨ ⎬
⎪ ⎪
⎩ ⎭
(2.25)
二、ACS與AntQ的路徑費洛蒙全域更新機制
路徑費洛蒙全域更新機制僅考慮應用目前最佳解進行一次更新,更 新機制如式(2.26)所示。
gb ij(t +1)= (1- ) (t)+ (t)ij ij
τ ρ τ ρ τ
Δ (2.26),
0
gb gb
ij
1/L (i j)
τ (t)= ⎧ ⎫
Δ ⎨ ⎬
⎩ ⎭
目前最佳解路徑中存在節線
其中 其他情況
三、路徑費洛蒙即時更新機制
ACS與AntQ中最具特色的機制,其更新方式如式(2.27)所示,當螞 蟻從節點i行進至節點j後立即調整 dij上的費洛蒙濃度。
其中 0 1
τ
ij(t) = (1 -ξ τ
) (t) +ijξτ
0 <ξ
< (2.27)AntQ演算法中設定 0
Max
l Nk{
jl}
j
τ γ
τ
= ⋅
∈ ,同時考慮 dij 後可能行走的路 段{djl}的優 劣程度,其目的在降低在同一次反覆中其他螞蟻選擇相同 路徑的機率,且同時兼顧到較佳路徑的費洛蒙濃度蒸發量較少。Dorigo等【26】之研究中測試3種 τ0 的值,分別為
Max
l Nk{
jl}
jτ
γ
⋅
∈ 、各 路段最初的費洛蒙濃度值,以及0,結果顯示 τ0 等於0的績效最差,而 令兩種值所得的結果差異不大,因此為降低演算法複雜度,建議使用 τ0 等於任一固定常數值。另研究中測試結果當τ0=(nL
k(t)
)-1、
α=1、
β=2、
ξ=ρ=0.1、
k=10、 q
0=0.9、配合使用3-Opt求解TSP問題時可以得 到最佳的求解績效,稱之為ACS演算法。2.5.4 極大-極小螞蟻系統演算法
MMAS 路徑費洛蒙更新方式如 ACS 般,一次僅採用一隻較佳解螞蟻的 路徑,但是可能是在該次反覆中跑出最佳解的螞蟻,也可能是跑出目前最佳 解的螞蟻,需設定反覆最佳解與目前最佳解交替使用的頻率。再者 MMAS 與其他 ACO 演算法最大不同處為路徑費洛蒙濃度存在上限值與下限值限制 (
τ
min ,τ
max),亦間接限制了路徑選擇機制中P
ijk(t)
的值,使得所有可選擇之路 徑中不會存在因費洛蒙素濃度過低而從不被選到的路徑存在,相同的也不存 在因費洛蒙素濃度極高而一定會被選擇到的路徑,如此較可增加螞蟻搜尋路 徑的廣度而不易落入區域最佳解中難以跳脫的困境。選擇路徑機制方面,Stützle 與 Hoos 分別採用與 AS 及 ACS 相同的選擇 路徑方式【75、76、77】,路徑費洛蒙濃度全域更新公式如式(2.28)所示,
當參數值採用 α=1
、
β=2、
ρ=0.2、
k=25,上限值 Max gbT . 1 1
τ
=ρ
隨目前最佳解 改變,下限值2n
Max Min
τ = τ
則隨上限值而改變時所求得的解的品質最佳。另外 當 k=10 時改使用較簡短的交替頻率,即 ugb=3x 當 t ≤19 時、ugb=2x 當 20< t ≤35 時、以及 ugb=1x 當 t >35 時,其他參數設定不改變,配合 3-Opt 以及研究中所提出的Lin-Kernighan 啟發式演算法,亦可求得極佳的解。(t) (t)
) -(1 1)
(t
ij ijbestij ρ τ ρ τ
τ
+ = + Δ
(2.28)x
(ij) (t)
L (t) 1/L else
1x u
; t 250
(ij)
L 1/L 2x u
; 250 t 125
3x u
; 125 t 75
5x u
; 75 t 25 25 t
(ij) (t)
L (t) 1/L 25 t
(t)
b b gb
gb gb gb
gb gb
b b
best ij
⎪ ⎪
⎪ ⎪
⎪
⎭
⎪⎪
⎪ ⎪
⎪
⎬
⎫
⎪ ⎪
⎪ ⎪
⎪
⎩
⎪⎪
⎪ ⎪
⎪
⎨
⎧
⎪ ⎪
⎪
⎩
⎪ ⎪
⎪
⎨
⎧
=
<
=
≤
<
=
≤
<
=
≤
<
>
≤
= Δ
為正整數
中存在節線 中存在節線 中存在節線
其中 τ
2.5.5 一般化插入螞蟻演算法
GENI 演算法是 Gendreau 等學者【41】提出的一般化插入解繫法 (Generalized nsertion / Unstringing and Stringing, GENIUS)中所使用的路徑構 建方法。GENIUS 可視為是節點插入法,與節線交換法的結合。其中一般化 插入(GENI)屬於路線構建部分,而解繫(US)則為路線改善部分。GENI 的基 本型態共有 Type I 與 Type II 兩種;節點的插入位置不一定限於相鄰的兩 點之間,但是插入後,該兩點將與插入點相鄰。圖 2.3 顯示 GENIUS 兩種
插入型態的示意圖,當某節點被解開(Unstringing)或重新被連繫(Stringing) 後,部分節線也會隨之被更換(Type I 為 4-Opt 節線交換,Type II 為 5-Opt 節線交換)。
GENIAnts 由 Le Louarn 等學者提出【51】,路徑構建方式與前述各式 ACO 演算法完全不相同,僅全域路徑費洛蒙更新機制與 ACS 相同,而即時 路徑費洛蒙更新機制則設定 τ0等於 0。GENIAnts 螞蟻前進方式以 GENI 演 算法為路徑構建方法,其任取一尚未加入路徑中的節點 u,然後利用 GENI 演算法路線構建機制,配合路段長度與費洛蒙濃度計算出節點u 將插入在現 有路線中的位置以及更新路線行進順序,直到一條完整路線構建完成。
圖2.3 GENIUS 的 2 種插入型態的示意圖 資料來源:【39】
該研究利用 GENI 演算法作為 ACS 演算法中螞蟻的前進機制,設計 GACS 與 mGACS 演算法並進行最適參數測試,其目的旨在探討 GACS 與 mGACS 演算法是否可以有效改進與提升原有 ACS 演算法的求解績效。文 中利用 TSP 國際標準題庫規模 1000 點內之 EUC_2D 型態問題,進行 GACS、mGACS 與 ACS 及三者皆配合 2-opt 交換法後之求解績效的測試與 比較,結果顯示 GACS 與 mGACS 演算法所得之最佳解,約 99%的問題都 優於ACS 所得之最佳解。
2.5.6 調適型螞蟻演算法
AACS 為本論文作者所提出【2】,研究中詳細探討前述螞蟻演算法的求 解機制與各機制的優缺點,發現各方法彼此間的主要差異雖在於路徑費洛蒙 濃度更新方式之不同,然而其費洛蒙計算公式所使用的參數組合
(
α, β)
在 整個執行過程中卻始終固定不變。然而,(
α, β)
參數組合分別控制節線長 度與費洛蒙值對路徑選擇的影響程度,故為影響求解效率與品質的重要因素 之ㄧ。因此,若在求解過程中僅使用固定的參數值組合,可能會因為初期產 生之可行解品質不佳而累積了偏誤的可行解資訊,導致無法藉由累積費洛蒙 的方式搜尋到更佳的解;此外,演算後期也較不易跳脫局部最佳解的束縛。有鑑於此,研究中針對螞蟻演算法的費洛蒙控制參數進行深入研究與分析,
並導入調適型(Adaptive)的執行概念於螞蟻演算法的參數控制機制當中,以 提升螞蟻演算法的解題績效。
研究中應用調適型(Adaptive)概念【2】,針對 ACS 演算法設計變動式 參數設定機制(AACS);以及兩種改良式的路徑費洛蒙更新機制:路徑費洛 蒙即時更新機制(MACS1 機制)與路徑費洛蒙全域更新機制(MACS2 機 制),再配合區域搜尋法構建求解 TSP 問題的演算法測試架構,並自 TSP 的國際標竿題庫中選擇了24 個節點規模在 500 點以內之例題進行測試,以 驗證調適型螞蟻演算法(Adaptive Ant Colony System, AACS) 的解題績效。
測試結果顯示 AACS 可有效提升 ACS 的解題績效平均達 0.54%,與題 庫最佳解間的差距平均為 0.46%;MACS1 較原 ACS 演算法中所使用的更新 機制,可以有效提升原 ACS 的解題績效平均達 0.44%,當求解之問題規模 小於 400 時,與題庫最佳解間平均僅有 0.19%的差距;MACS2 較原 ACS 演算法中所使用的更新機制,可以有效提升原 ACS 的解題績效平均達 0.42%,與題庫最佳解間的差距平均為 0.47%。
AACS 求解 TSP 問題的績效相當卓越,明顯優於 ASC,因此本研究將 延伸該演算法求解 PDPTW 問題。然而 AACS 是以群體為基礎所發展出的 演算法,屬於廣度搜尋策略的方法,許多研究指出這種僅具廣度搜尋策略的 方法,必須搭配有力的區域搜尋方法,增加深度搜尋能力,才能有效提升其 解題績效。因此後續研究選擇GLS 與 AACS 結合(原因詳述於 1.1.2 小節),
設計GAACS 演算法,期能兼具搜尋深度與廣度。