• 沒有找到結果。

第三章 模式構建與求解演算法

3.4 平行處理與貪婪法應用

本研究係以螞蟻演算法為基礎進行捷運列車班表之建構,然而產製捷運 列車全天班表須考慮的因素與限制甚多,係屬於大規模排班問題,因此本研 究嘗試利用螞蟻演算法易於平行處理之特性,將產製班表演算法導入平行處 理技術,以加快求解效率。此外,本研究在產製班表過程中,在適合度函數 中採用懲罰值的方式,儘可能讓演算法產製出沒有衝突之班表,然而此方法

一個無衝突之起始班表,以確保每次迭代所產製之結果均為無衝突之可行班 表。以下茲就平行螞蟻演算法與貪婪平行螞蟻演算法進行說明。

3.4.1 平行螞蟻演算法(PACO)

本研究所使用之平行處理架構為主僕式架構(如圖 3.15 所示),優點在於 硬體環境架設簡單,且通訊方式較為單純,缺點在於由於是一對一傳輸方式,

Slave 之間若要互傳資料必須先傳到 Master,再由 Master 將資訊傳送到目的 Slave,此種傳輸方式雖然較為單純,但是傳輸資料量大時反而會花費許多時 間在處理通訊問題而失去平行處理的意義。本研究演算法僅需傳輸最佳解組 合,傳輸量很低,因此並不需要花費許多通訊時間,因此適用主僕式平行架 構進行處理。

圖3.15 主僕式平行架構圖

螞蟻演算法的平行策略最常使用的方法是平行蟻群中的螞蟻,首先將每 蟻群中的每一隻螞蟻各交給ㄧ個Slave 處理器進行管理,而 Master 負責在每 一群螞蟻開始運作之前傳送費洛蒙陣列到每一個Slave,當 Slave 執行完畢後 將解答傳回給Master 再進行費洛蒙更新。此方法的優點在於平行方式簡單、

操作方便,缺點在於必須傳送大量的費洛蒙陣列到各台Slave,若處理大規模 問題將會使運算效率降低【24、26】。

由於本研究的問題規模十分龐大,若採用傳送費洛蒙陣列的方式將會耗 費許多時間在資料傳送上,降低整體運算效率,因此並不採用傳輸全部費洛 蒙陣列的方式,所採用的方式係將整群螞蟻平均分配送至各台Slave,並使用 特別的費洛蒙更新策略,此平行策略的區域更新與全域更新皆是在 Slave 中 獨立執行,不同Slave 的費洛蒙並不相互干擾但亦可維持費洛蒙的更新機制,

域更新的方式反映在各Slave 的費洛蒙路徑上,也因此 Slave 之間不需要傳輸 大量費洛蒙資訊亦可分享其他 Slave 所尋求之最佳解,以提高整體平行運算 的效率。此外,由於 Slave 的費洛蒙更新各自獨立運作,因此更容易能夠跳 脫目前最佳解以尋求更佳的解答。以下茲就平行螞蟻演算法流程做一說明(如 圖3.16 所示):

一、首先由Master 分配每台 Slave 所需負擔之螞蟻數,若一群螞蟻數有 B 隻,

有n 個 Slave,則每個 Slave 需負擔 B/n 隻螞蟻。

二、分派完成後,各台 Slave 則分別執行班表產製工作,每一隻螞蟻執行完 班表產製作業後進行費洛蒙區域更新,更新方式與單機版演算法相同,

重複產製與更新的程序,直到所分配的螞蟻數皆執行完畢,並且傳回各 Slave 的最佳解。

三、各台Slave 將最佳解傳回 Master 比較,由 Master 進行產製結果比較作業,

從中選出最佳班表,之後再將此班表傳送到各 Slave 再進行費洛蒙全域 更新,以上即完成一個迭代作業。

四、後續便重複迭代,進行產製、比較結果、費洛蒙更新等作業,直到所設 定的迭代數全部執行完畢,最後輸出最佳解。

圖3.16 平行螞蟻演算法流程圖

開始進行班表建構

平均分配螞蟻數(B)

獲得ㄧ組班表並計算 適應度函數值

進行區域費洛蒙更新

1<B1

(B1為螞蟻數)

P1

開始進行班表建構

獲得ㄧ組班表並計算 適應度函數值

進行區域費洛蒙更新

n<Bn

(Bn為螞蟻數)

Pn

開始

1=b1+1

g<max

g=g+1

輸出最佳解

n=bn+1

Slave以目前最佳解 進行全域費洛蒙更新 Master接收各Slave所

傳回之最佳解

………

Master傳送給各Slave 目前之最佳解

B1=B/n Bn=B/n

3.4.2 貪婪平行螞蟻演算法(GPACO)

以貪婪演算法產製起始解,確保搜尋結果為沒有衝突之可行解。產製主 要的概念係遇到衝突即調整列車離開折返站時間,藉由延後發車時間避開衝 突,不考慮班距穩定度。起始解產製流程如圖3.17 所示,說明如下:

貪婪演算法產製起始解班表的方法與使用螞蟻演算法產製班表演算法最 主要的差異在於「列車離開折返站的方式不同」,螞蟻演算法係透過機率的方 式決定列車離開折返站的時間,因此有可能產製結果會發生有衝突之班表;

而貪婪演算法所使用的方式係只要遇到衝突就往後延遲發車時間,直到沒有 衝突為止,雖然可能造成班表一開始品質不佳,但是至少為一可行解,之後 再由螞蟻演算法逐步改善起始解,以獲得可行且品質良好之列車班表。

相關文件