本節先概述蟻群演算法的原理,接著針對蟻群演算法的演算步驟作詳 細的說明,最後則是簡單介紹其相關應用。
2.2.1
蟻群演算法的理論蟻群演算法的理論 蟻群演算法的理論蟻群演算法的理論蟻群演算法的主要原理源自於對自然界蟻群覓食行為的觀察。根據研 究,螞蟻屬於社會性昆蟲的一種,具有分工合作的社會行為。在日常生活 中常常可以看到,螞蟻沿著同一條路徑去搬運食物,並再沿著同一路徑將 食物搬回巢穴,然而牠們並不是透過視覺來達到搜尋路徑的目的,而是透 過其所分泌的一種化學物質-費洛蒙,來進行不同螞蟻之間間接的溝通。
研究結果顯示,在移動的過程時,螞蟻會分泌費洛蒙並殘留在走過的路徑 上,當越多的螞蟻行經相同路徑時,則該路徑的費洛蒙濃度會隨著量的累 積而越來越高。當後來的螞蟻在選擇路徑時,便會受到費洛蒙濃度的影 響,濃度較高的路徑越有機會吸引螞蟻通過並進而留下更多的費洛蒙。然 而路徑上的費洛蒙除了因為螞蟻殘留會增加外,還會受到溫度、溼氣及空 氣對流等環境因素環境影響而逐漸消失,這種現象則稱為費洛蒙的蒸發。
在螞蟻較少經過的路徑上,其費洛蒙數量最終會因為蒸發而消失,而較多 螞蟻行經的路徑,雖然也會有費洛蒙蒸發,但是由於較多數量的螞蟻持續 殘留費洛蒙,使得費洛蒙累積的速度大於蒸發的速度,因此最後路徑上的 費洛蒙濃度會增加而不會減少,經過不斷的反覆後,大部分的螞蟻便會選 擇相同的路徑(Bell and McMullen 2004,羅敏華 2003)。
如圖2所示,在遇到岔路或是障礙物時,螞蟻一開始有相同的機率去 嘗試各種可能的路徑,而由於較短的路徑較能夠快速地累積費洛蒙,因此 就越能吸引後續的螞蟻也通過該路徑,當經過一段時間後,所有的螞蟻幾 乎都會選擇相同路徑,這便是螞蟻尋找最短路徑的原理。
螞蟻演算法就是藉由模擬真實螞蟻的行為,學習螞蟻移動搜尋的模
式,釋放出人工螞蟻(artificial ant)進行最佳決策的搜尋,在每一世代找出 更佳的解,並在最後產生一個最佳解。在Dorigo et al. (1997)的文獻中提 到,這些用來求解的人工螞蟻會模擬自然界真實螞蟻行為的三種特性:
(1) 螞蟻會傾向選擇擁有較高費洛蒙濃度的路徑。
(2) 較短的路徑其費洛蒙的累積速度會較為快速。
(3) 不同的螞蟻透過費洛蒙達到間接溝通的效果。
圖 2 真實螞蟻搜尋路徑的概念圖 資料來源:修改自尹邦嚴、王敬育,2004
2.2.2
蟻群演算法的演算步驟蟻群演算法的演算步驟 蟻群演算法的演算步驟蟻群演算法的演算步驟蟻群演算法最初是被運用在解決 TSP,並擁有相當卓越的表現,當時 的蟻群演算法被命名為螞蟻系統,在經由不斷的改良及演進後成為現在的 蟻群演算法。
執行蟻群演算法的架構可利用虛擬碼表示如下(羅敏華, 2003):
時間
蟻巢 蟻巢 蟻巢
食物 食物 食物
設定參數值與初始費洛蒙濃度 式(2-1)與式(2-2)的狀態轉移法則(state transition rule)來選擇下一個拜訪的 城市,然而已經被拜訪過的城市則不能再次選擇。
合;q0為一給定參數,q則為一個服從U(0,1)的隨機變數。當q≤q0時,螞 蟻會選擇擁有最大(τiu)α(ηiu)β值且尚未被拜訪過的城市,如式(2-1)所示;當
q0
q≥ 時,螞蟻會依照式(2-2)中的機率分配函數Pij來選擇尚未被拜訪的城 市,當某一城市的(τiu)α(ηiu)β值越大時,該城市被螞蟻選中的機率也會越 大,意即螞蟻會較傾向選擇路徑較短和費洛蒙濃度較高的城市。透過式(2-1) 與式(2-2),每隻螞蟻有可能參考過去所經歷的較佳路徑,此行為稱為「開 發」(exploitation);同時也可能根據能見度與費洛蒙濃度的機率分配函數,
來隨機地選擇尚未嘗試過的路徑組合,這種行為則稱為「探索」
(exploration)。
步驟三:費洛蒙更新
為了能夠在未來得到更佳的解,螞蟻所殘留的費洛蒙濃度必須更新,
以實際地反映各螞蟻的表現及他們求得的解的品質。費洛蒙更新是蟻群演 算法學習性功能中最關鍵的一項因素,其可以確保後來的解能夠有所改 善。費洛蒙更新法則包含了兩個部份:區域費洛蒙更新與全域性費洛蒙更 新。區域性費洛蒙更新在建構過程中,只要螞蟻行經的路線,皆立即更新 費洛蒙濃度(如式(2-3)所示),透過模擬自然界中費洛蒙的蒸發,可以確保 不會有任何一條路徑凌越其他路徑,並增加螞蟻發現其他可行解的機會。
其中τ0為路徑上的初始費洛蒙濃度,ρ則為介於0與1之間的費洛蒙蒸發係 數。
) 0
( ) 1
( ρ τ ρ τ
τijnew = − ijold + (2-3) 當所有螞蟻都建構完可行的路徑後,便執行全域性的費洛蒙更新(如 式(2-4)所示),從所有螞蟻產生的解中,選出最好的路線作費洛蒙濃度的 增加,其餘路線由於並沒有螞蟻行經,因此作費洛蒙濃度的蒸發。透過全 域性費洛蒙更新可以促使螞蟻選擇距離較短的路徑,或是有較高的機率去
選擇最佳解中的部份路段來建構為來的新路徑。其中L 為此次迭代中的最 佳路徑。
) 1
( )
1
( − + −
= ijold L
new
ij α τ α
τ (2-4) 步驟四:測試停止條件
當演算法達到終止條件時便停止,否則回到步驟二繼續搜尋。
2.2.3
蟻群演算法的相關應用蟻群演算法的相關應用 蟻群演算法的相關應用蟻群演算法的相關應用蟻群演算法除了在早期應用在TSP以及前述的VRP、非等效平行機台 問題外,還被應用來解求許多其他NP-hard問題及各種組合最佳化問題如:
二次指派問題(quadratic assignment problem)、各種排程問題(scheduling problem)、著色問題(graph coloring problem)、網路途程問題(networks routing problem)、連續性順序問題(sequential odering problem)、最短母 字串問題(shortest common super-sequence problem)、一般分配問題(general assignment problem)及複合背包問題(multiple knapsack problem)等,且 經過實驗證實蟻群演算法應用在這些問題上均可獲得品質良好的解(蔡志 強,2003)。以下將簡單介紹蟻群演算法應用於與本研究較為相關的排程 問題上。
2.2.3.1
蟻群演算法應用於排程問題蟻群演算法應用於排程問題蟻群演算法應用於排程問題蟻群演算法應用於排程問題Colorni et al. (1994)首先將蟻群系統應用在排程問題上,他們為了解決 以最小完工時間為目標的零工式生產排程問題,而提出所謂的AS-JSP 演 算法,研究結果顯示當工件與機器數小於15時,此演算法所找出的解均能 達到與最佳解差距在10%以內的水準。
Stützle (1998)則研究如何將蟻群演算法應用在流程式生產(flow-shop) 排程問題,並發表了MMAS-FSP演算法,研究結果顯示此演算法可以求得 不錯的解。Bauer et al. (1999)則考慮了單機總延遲時間排程問題(single
machine total tardiness problem),他們提出的演算法ACS-SMTTP 省略了 費洛蒙的區域更新,並加入了多種啟發函數來協助求解,如:EDD(earliest due date)法則與MDD(modified due date)法則,而求解100個工件之問題 的測試結果顯示,ACS-SMTTP 具備求得近似最佳解的能力。