• 沒有找到結果。

第二章 文獻回顧

2.3 螞蟻演算法回顧

2.3.1 螞蟻演算法之介紹

螞蟻演算法的概念最早係由Colorni et al.於 1991 年所提出,當時稱為螞 蟻系統(Ant Systems, AS),其基本概念係利用螞蟻外出覓食時,在巢穴與食物 所行經的路徑上,遺留下一種被稱為「費洛蒙」(pheromone)的化學物質,而 後續出發的即會依據費洛蒙的濃度決定是否依循此路徑前進。因此,螞蟻演 算法顧名思義即是模仿現實世界的螞蟻利用群體合作尋找食物的行為設計出 用來處理最佳化問題的演算法。近幾年來,有許多文獻以 AS 模型為基礎進 行演算法的修正與改良,如Dorigo et al.【18】改良了搜尋規則與費洛蒙更新 機制而提出蟻群系統(Ant Colony System, ACS);Stutzle et al.【25】則控制路 徑 上 費 洛 蒙 的 上 下 限 而 發 展 出 大 小 螞 蟻 系 統 (MAX-MIN Ant System, MMAS)。然而,無論是 AS、ACS 或是 MMAS 皆統稱為螞蟻族群最佳化(Ant Colony Optimization, ACO)或是螞蟻演算法(Ant Algorithm)。之後亦有許多學 者針對螞蟻演算法繼續進行研究,並成功運用在許多組合最佳化問題,如例 如:旅行推銷員問題(Traveling Salesman Problem, TSP)【19】、二次指派問題 (Quadratic Assignment Problem, QAP)【20】等。

Dorigo et al.【18】提到自然界的螞蟻會在走過的路徑上留下費洛蒙,幾 近全盲的螞蟻即是利用費洛蒙的氣味找尋前往食物地點及回巢的路徑,而且 當有兩條以上的路可選擇時,螞蟻會偏好選擇有較多費洛蒙的路徑,同時走 過之後再在該路徑上留下自己的費洛蒙,所以經過一段時間後大部份的螞蟻 都會選擇相同路徑行走。以圖 2.5 為例而言,E 為螞蟻巢穴所在地,A 為食 物所在的地點螞蟻不停地於 AE 路徑上搬運食物(圖 2.5(a))。如果在路徑 AE 上放置一障礙物,則螞蟻則從兩側選擇一側通過以到達食物的地點或回到巢 穴。此時,由於兩側的路徑上並沒有費洛蒙,所以兩側路徑中任一側被螞蟻 選擇通過的機率是相同的(圖 2.5(b)),但是由於路徑 ACE 較短,所以要回巢 或要出去尋找食物的螞蟻會較早通過路徑ACE 而留下費洛蒙。當後面有螞蟻 要再通過時,路徑ACE 上由於有較多的費洛蒙,所以螞蟻選擇 ACE 路徑的 機率較高。久而久之大部份的螞蟻都會選擇較短的路徑通過(圖 2.5(c))。

圖2.5 在現實世界裡螞蟻的行為模式。

資料來源:【18】

螞蟻演算法最主要的觀念即是在每個決策點逐步利用選擇機制前進至下 一個決策點,直到所有的決策完成,再依據此決策組合的優劣進行費落蒙更 新機制,若決策組合的成果佳,則會在此決策組上留下較高的費落蒙,以做 為後續再次執行的參考,之後重複多次搜尋直到停止條件成立。螞蟻演算法 最早係被應用於旅行推銷員問題(TSP)上,以下茲就螞蟻演算法應用於 TSP 說明螞蟻演算法之求解機制與流程,並配合圖2.6 各步驟相關內容說明如下:

一、參數設定

在使用螞蟻演算法前,首先必須設定相關參數值,包括螞蟻個數 (S)、迭代次數(

t

max)、費洛蒙起始值(

τ

0)、費洛蒙衰退參數(

ρ

)、α 值與

β

值。

其 中 費 洛 蒙 起 始 值 代 表 節 線 上 費 洛 蒙 的 初 值 , 一 般 設 定

1 0 =(NLnn)

τ ,N 為節線總數,

L 為貪婪法(greedy heuristic)所求解之總

nn 距離;螞蟻隻數(S)通常設定與節點數(A)相同;迭代次數(

t

max)為演算法 重複執行之次數(iteration),亦代表停止條件。其他參數如轉換規則參數 (

q )、

0 α 值與

β

值將會在轉換機率模式中使用;而費洛蒙衰退參數(

ρ

) 以及費洛蒙起始值(

τ

0)會在費洛蒙更新機制中使用,這些設定參數之意 義與用途將在使用的過程中逐一說明。

圖2.6 螞蟻演算法應用在 TSP 之流程圖

二、利用轉換機率(transition probability)建構 TSP 路徑

螞蟻演算法基本上是ㄧ種機率性的尋優方式,當螞蟻在進行路徑尋 優的過程,會利用一轉換機率以選擇下一前進之節點,而在TSP 問題中 主要考慮的因素為路線上費洛蒙的濃度以及節線的長短,應用方式如下:

首先將螞蟻隨機放置於節點上,每隻螞蟻依據當時路徑行走的狀 況,利用轉換機率選擇下一個前進的節點,並且逐步完成所以節點的拜 訪。螞蟻系統(AS)轉換機率使用規則如下:

其中pijs(t)代表在第t 次執行回合中,螞蟻 s 在城市 i 選擇城市 j 的 機率;

τ

ij(t)代表第t 次執行回合中,節線 ij 上費洛蒙的濃度;

η

ij稱為啟 發函數(heuristic function),在不同問題中的啟發函數會因問題的特性有 所不同,在TSP 中啟發函數則為節線 ij 距離的倒數;

J

s(i)代表位於節點 i 的螞蟻 s 尚未拜訪過的鄰近節點集合,類似於禁制演算法(Tabu Search) 中的禁制清單的觀念,記錄著螞蟻 s 尚未拜訪之鄰點,因此若不是鄰點 或是已拜訪過的節點,被選擇的機率則為零;α 值與

β

值分別代表決定 費洛蒙與距離間相對重要性之參數,α >0、

β

>0。

三、更新費洛蒙濃度

每隻螞蟻都具有感知與遺留費洛蒙的能力,路徑上費洛蒙濃度越高 越容易吸引螞蟻依循前進,進而累積更多的費洛蒙,以突顯出不同路徑 間的優劣差異。費洛蒙的更新方式如下:

當所有螞蟻皆完成它們的的旅程後,則依據這些螞蟻的表現進行路 線上所有費洛蒙的更新,亦是說原本在路徑上的費洛蒙會隨時間逐漸揮 發,而螞蟻走過的路徑則會再增加新的費洛蒙,計算方式如下:

[ ] [ ]

[ ] [ ]

⎪⎪

⎪⎪⎨

⎧ ∈

=

otherwise i J j t if

t t

p

s

i J u

iu iu

ij ij

s ij

s

0

) ) (

( ) ( )

( ()

β α

β α

η τ

η τ

(2.1)

其中

L 代表第 s 隻螞蟻所建構的路徑總長;Q 代表每隻螞蟻所擁有

s 的費洛蒙總量,為一固定參數值,在處理TSP 中設為 100。當所有螞蟻 完成旅程後,使用上述方式進行節線上費洛蒙的更新,使這群螞蟻能夠 將自己尋優的經驗傳承給後面的螞蟻,以發揮分工合作的特性。此更新 機制可以將不錯的可行解加以強化,而且也模擬費洛蒙隨時間揮發而遞 減的特質,以避免這些解太過左右後續螞蟻的搜尋行為。

四、更新最佳路徑與測試停止條件

若這群螞蟻搜尋到比目前成本更小的路徑,則更新目前最佳路徑與 最佳值,並且推移時間更新回合數t=t+1。測試是否達到停止條件,若未 達到停止條件則繼續重複演算法,若已達到停止條件則輸出最佳解,結 束演算過程。在此的停止條件為達到所設定回合數,亦可考慮問題的特 性,將停止條件設為CPU 執行時間或是最佳解達到某一設定值。

以上是利用螞蟻系統(AS)的模型進行 TSP 的求解,在 AS 之後,許多改 良型態的演算模型也紛紛產生。Dorigo et al.【18】在 1997 年時,以 AS 為基 礎,進一步提出螞蟻族群系統(Ant Colony System, ACS),其與 AS 模型主要 有三項差異:

一、加入轉換規則(transition rule):提供一項可直接進行選擇之功能,即增加 一個

q 參數值(0≦

0

q ≦1),使得在 0 到

0

q 的機率範圍可以直接選擇機率

0 最高的鄰點,模式如下:

其中,q 值為一介於 0 與 1 間均勻分配之隨機亂數,

q 為一設定參

0 數值(0≦

q ≦1);

0 argmax

f

(

x

)

x 代表找使

f

(x)最大值的 x 值,在此即為

[

τ (t)

] [ ]

αη β值最大的節點。

s ij S

s ij

ij

t ρ τ t τ

τ ∑

=

Δ +

= +

1

) ( ) 1 ( ) 1

( (2.2)

⎪⎩

⎪⎨

= Δ

otherwise L

Q

s s ij

0

τ

(2.3)

[ ] [ ]

{ }

⎪⎩

⎪⎨

⎧ ≤

=

otherwise t

p

q q if t

j

s ij

iu i iu

J

u s

) (

) ( max

arg 0

) (

β α

η τ

(2.4) 螞蟻s 走過的節線

二、變更「整體更新法」:在 ASC 模式下,整體更新的方式不若 AS 將每隻 螞蟻的表現進行更新,而是只更新在每個回合或是目前表現最好的那隻 螞蟻以及該螞蟻所走過之路徑,L+為目前表現最好之路徑

三、加入「區域更新法」(local updating rule):ASC 模式加入費洛蒙局部更新 機制,讓每隻螞蟻在搜尋的過程中,只要選擇完一個節點,即針對所有 路徑做一次費洛蒙更新,以使得各路徑的費洛蒙職不至於過高而收斂至 局部解。

依據Dorigo 與 Gambardella【18】的測試中發現,ASC 的表現相對於其 他巨集啟發式演算法,如基因演算法(Genetic Algorithm, GA)與模擬退火法 (Simulated Annealing, SA),更能獲得較佳的解答。至此螞蟻演算法的整體架 構已經逐漸定型,目前在ACO 的相關模型中也以 ACS 的應用最為廣泛,而 後續研究的變化多在費洛蒙更新的策略以及針對啟發函數做調整,並且也成 功地應用在許多組合最佳化問題的求解,獲得比其他巨集啟發式演算法更好 的結果,如:二次指派問題(Quadratic Assignment Problem, QAP)、工作排程 問題(Job Shop Problem, JSP)、車輛途程問題(Vehicle Routing Problem, VRP)…

等,顯示出螞蟻演算法在處理組合最佳化問題的能力有相當不錯的表現。

相關文件