• 沒有找到結果。

混合演化巨集啟發式解法求解架構

此研究所提出之混合演化巨集啟發式解法架構圖,如圖 3. 1 所示。各個模 組之目的以及求解方法如下所述。其中Phase I 包含了起始解構建模組。

圖 3. 1 演化巨集啟發式解法架構圖

1. 起始解構建

主要應用目的為構建出多個不同的可行解組合,以供後續第一階段:

(μ,λ)-演化策略作為起始解母體。方法為以 Solomon (1983)所提出之利用兩階 段構建路線的 I1 插入法為主要架構,利用調整α1, α2,μ,λ等參數,來控制構 成解的影響因素,產生具有不同的多個起始解。

2. 第一階段:(μ,λ)-演化策略

於一開始利用Solomon (1983)所提出之利用兩階段構建路線的 I1 插入法為 主要架構,利用調整α1, α2,β,γ等參數,來控制構成解的影響因素,產生具有 不同的多個起始解。

將起始解構建出來的母體P(內含 μ 個不同的可行解),利用隨機選擇、鄰 域 結 構(Neighborhood Structure)以及 Homberger and Gehring (1999) 提 出 的 modified Or-opt operator,以極小化使用車輛數為目標,產生 λ 個子代(λ>

μ)。接下來將此 λ 個子代挑選出成效較好的 μ 個解,取代原本之母體 P,再

重覆進行以上的步驟。

3. 第二階段:可回溯式門檻接受法

應用Tarantilis et al. (2001)所提出之改良式門檻接受法:可回溯式門檻接受 法來對第一階段:(μ,λ)-演化策略所得之暫時解,以極小化總旅行距離為目 標,作更進一步的改善。可回溯式門檻接受法不同一般傳統門檻接收法之處主 要有兩點:門檻數列遞減型態與停止法則。在門檻數列遞減型態方面,當在最 佳化過程中,若發現無法找到可接受的解時,門檻值可回溯(增加),但不可超 過上一次之門檻值。

以下針對各個模組做更進一步的介紹。

3.2 第一階段:起始解模組之建構

如同上述所言,本階段主要目的為產生多個不同的起始可行解。故利用 Solomon(1983)所提出之 I1 插入法,利用不同的起始種子點選擇策略以及 I1 插 入法中參數之組合(α1, α2, β, γ),藉以構建出不同之起始可行解。起始解構 建流程如圖 3. 2。

每一個起始解,首先由選擇三種不同起始種子點選擇策略為基礎,利用最 遠距離、最小時間窗開始、緊急法以及隨機法等,開始讓各個起始可行解產生 差異。以下為各種子點選擇策略之準則。

最遠距離法:在尚未被服務的顧客當中,距離場站最遠之節點為種子點。

最小時間窗開始法:在尚未被服務的顧客中,時間窗開始時間最小之節點 為種子點。

緊急法:則是以每個顧客之時間窗結束時間除以該顧客至場站的距離為一 比值,比值越小代表該顧客是越緊急的顧客。種子點為尚未被服 務之顧客之中,該比值最小者。

隨機法:在所有未被服務的顧客中,以隨機的方式,進行種子點的選擇。

選擇完種子點選擇策略之後,再挑選I1 插入法中 α1, α2, β, γ 之組合。I1 插 入法在第一個階段是先利用α1, α2調整距離以及時間之權重所計算出來之c1(i, u, j)成本。藉以選擇每個未被服務且未違反時間窗以及車輛容量限制之顧客 u,對 於目前排程的路線最適合的插入點。c1(i, u, j)之計算準則如下:

c1(i(u), u, j(u)) = min[c1(ip-1, u, ip)], P = 1,…,m

c1(i, u, j) = α1c11(i, u, j) + α2c12(i, u, j), α1 + α2 = 1, α1 ≥ 0, α2 ≥ 0 其中c11(i, u, j) = diu +duj -βdij,

c12(i, u, j) = bju - bj , bju為插入u 後,開始服務顧客 j 的時間

接下來第二個階段再以c2(i, u, j)選擇最佳之未被服務且未違反時間窗以及

車輛容量限制之顧客u 以插入路線中,選擇最佳點之準則如下式所示:

c2(i(u*), u*, j(u*)) = max[c2(i(u), u, j(u))], c2 (i, u, j) = γd0u –c1 (i, u, j), λ ≥ 0

若所有未被服務的顧客都不能被插入目前的路線當中,則利用此起始可行 解所選擇之種子點策略,重新構建一條新的路線,再繼續進行I1 插入法,直至 所有顧客皆被服務過。

圖 3. 2 起始解構建流程圖

此階段利用上述之流程重複進行 μ 次,以構建出(μ,λ)演化策略所需之 μ 個起始可行解,作為初始母體,並進入下一個階段。

3.3 第一階段:(μ,λ)演化策略之建構

由於具時間窗車輛問題之績效評估,首要目標為車輛數極小。故本階段利用 Homberger and Gehring (1999)所提出之應用於具時間窗車輛問題之 (μ,λ)演化策 略。

起始解建構模組所得之母體P,再經過從鄰域結構隨機挑選出來的路線間交 換法,進行MOVE 的動作,產生出 λ 個子代(Xn)。而在 Homberger and Gehring (1999)提出來的架構中,更進一步利用一 Reduction 模組來減少車輛數,以獲得車 輛數較少的子代(Xn’)。最後從 λ 個子代中挑選出較優良(適存值較佳)的 μ 個,

取代原來的母體P,進行另外一次的演化,直到找到最小車輛數或者達到一定的 迴圈數。

而在這個階段中用到的鄰域結構,包含了Ninsert, N2-opt*, Nchange。其中Ninsert

及Nchange,即λ-路線間結點交換法之(1-0)以及(1-1)節點交換法。而 N2-opt*即為2-Opt*

交換法。所有交換的過程中仍需遵守時間窗以及車容量限制。

此階段最後的改善策略─Reduction 模組,其方法為把目前解中,服務顧客最 少的路線,將該路線之顧客逐一插到別的路線。插入位置(i, i+)的決定,是依據最 小的時間推移(PTk(i, i+))。若 i+非場站,則 PTk(i, i+) = bju - bj (bju為插入u 後,開 始服務顧客j 的時間。bj為插入u 之前,開始服務顧客 j 的時間)。若 i+為場站,

則PTk(i, i+) = a0u-a0(a0u為插入u 後,最後到達場站的時間。a0插入u 之前,最後 到達場站的時間)。若同時有多個插入位置之時間推移皆為最小值,則選擇旅行距 離增加最少的插入點。圖 3. 3 為 Reduction 解題概念圖。

Depot Depot

圖 3. 3 Reduction 解題示意圖

圖 3. 4 為(μ,λ)演化策略之細部流程圖。

令子代數D = 0

判斷子代是否到達 指定之子代數λ

D = λ

從母體P中隨機選出一個解,

設為xp

隨機從2-Opt*, 1-0, 1-1中選出一 種方法,利用xp產生一個新的

可行解,設為xn

利用Reduction 模組來改善xn,

令改善後的xn為新子代 否

從所有λ個的子代中,挑選出 μ個適存性較佳的解,取代母

體 P 之解成為新母體

D = D + 1

結束此世代 世代開始

圖 3. 4 (μ,λ)演化策略流程圖

此階段依據以上之流程,重複執行至到達設定之世代數,求得一使用車輛極 小化之解,帶入可回溯式門檻接受法做最後的改善求解過程。

3.4 第二階段:可回溯式門檻接受法之建構

此一階段以極小化旅行距離為目標,以第一階段:(μ,λ)演化策略所得之暫 時解作最後的改善。圖 3. 5 以及圖 3. 6 分別為此階段之簡化流程圖以及細部流程 圖。

本階段求解流程以Tarantilis et al. (2001)所提出的可回溯式門檻接受法之架構 為基礎。將第一階段所得之暫時最佳解,更進一步利用鄰域搜尋模組以及Reduction 模組進行改善,並利用可回溯式門檻接受模組來控制門檻之修正。

此模組整個執行完一次之後,若在此迴圈之中有發生過接受交換的情形,門 檻值即遞減。而門檻值遞減型態與Tarantilis et al. (2001) 相同,採用等比數列,並 有門檻下降比率r 來控制下降速度;另外,回溯幅度受到門檻回溯比值 b 的控制,

其公式以Tn = Tc + | Tp – Tc| * b 代替。其中 Tp是前一個曾經接受交換的門檻值,

Tc為現有門檻值,下一個門檻值為Tn。因此在控制參數方面有起始門檻T0、門檻 下降比率r、門檻回溯比率 b,停止法則為完成 K 次的鄰域搜尋。而最後所得結果 即記錄中之暫時最佳解。

設定K、T0、r、b等參數 k = 0

依序進行交換搜尋模組及 Reduction模組,若交換後之

成本低於門檻,則接受新解

交換過程中,

是否曾接受新解

門檻遞減 門檻回溯

k是否已達到指定之K

是 否

否 是

可回溯式門檻接受法 執行完畢 可回溯式門檻接受法

開始

k = k + 1

K:門檻數列長度 T0:起始門檻比率 r :門檻下降比例 b:門檻下降比例

圖 3. 5 可回溯式門檻接受法簡化流程圖

開始 小於0,才接受該解。其中皆以首先改善(First Improvement),亦即一找到可行之 改善,則馬上接受該新解。而搜尋模組之順序,將於第四章討論。

第四章 混合巨集啟發式解法之測試與分析

第四章首先介紹目前文獻中,主要用來測試其演算法求解效率之例題題庫。

並且就本研究提出之混合巨集啟發式解法中,各部份之參數測試結果與分析。

本研究所有之執行架構皆以 C#進行程式撰寫,並在 Microsoft Visual Studio 2005 中編譯,測試環境為 Windows XP SP2 此一作業系統、CPU 為 AMD Athlon(tm) 64 Processor 3000+的個人電腦。

4.1 具時間窗車輛路線問題測試例題

Solomon(1983)在研究中中為測試 VRPTW 演算法,以 VRP 例題為基礎設計 56 題 VRPTW 例題。此 56 題測試例題皆為單一場站,100 個顧客點,資料結構 為平面座標,顧客點間之旅行時間等於旅行距離。可區分成三種型態:C 型(以 分群方式產生顧客地理資料)、R 型(以均勻分配隨機產生顧客地理資料)、及 RC 型(以半分群方式產生顧客地理資料),以及兩種問題集合:C1,R1,RC1

(路線時限短,車輛容量小)、和R2,C2,RC2(路線時限長,車輛容量大),

因此共可分成六類問題集:C1 (9 題)、R1 (12 題)、RC1 (8 題)、C2 (8 題) 、R2 (11 題)、RC2 (8 題)。本研究亦以此題庫為測試例題。

4.2 起始解模組測試與分析

Solomon I1 插入法其中共有 α1, α2, β, γ 以及種子點選擇策略可以用來構建起 始解,而其中α1 + α2 = 1。種子點選擇策略有以下幾種。

1. 最遠距離法:以未被服務顧客中,距離場站最遠之節點為種子點。

2. 最早開始時間法:以未被服務顧客中,時間窗開始時間最早之節點為種子 點。

3. 緊急法:緊急比率 = 時間窗結束時間與場站之距離,以未被服務顧客中,

以緊急比率最小(最緊急)之節點為種子點。

4. 隨機法:在未被服務顧客中,以隨機選擇的方式,進行種子點選擇。

本研究經過測試,發現各種之組合策略,經過(μ,λ)演化策略後,幾乎沒有 差異,故本研究利用α1 = 0, 0.5, 1、β = γ =1、以及以上四種種子點選擇策略,構建 每個例題12 (3*4)個不同之起始解,之後挑選最佳之 μ 個,以作為(μ,λ)演化策 略所需之母代。

4.3 第一階段:(μ,λ)演化策略之測試與分析

本節針對(μ,λ)演化策略中,產生新解之策略以及(μ,λ)之組合進行探討。

於Homberger and Gehring (2005)所提出之(μ,λ)演化策略過程中,產生新解 完全為一隨機過程,包括隨機挑選母體、交換法,並且只進行一次的MOVE,以 迅速但大量的Iteration 數進行演化的過程。然而本研究依照其流程進行求解,結 果不盡理想,故提出以減少車輛數為目標,針對三個交換法(Ninsert, N2-opt*, Nchange)

之後進行更進一步的測試,如同之前所提到,於Homberger and Gehring (2005) 所提出之(μ,λ)演化策略過程中,每進行一個 Iteration 僅進行一次 MOVE,也就 是若有一次成功的交換即停止,並進行下一個步驟。本研究測試若在一個Iteration 中,進行更多次MOVE,也就是將所有的交換組合搜尋完畢,進行更深度的搜尋,

增加每一個Iteration 之效率,是否能更有效的減少車輛數。表 4. 2 為測試結果。

表 4. 2 Iteration 效率改進測試 世代數 總車輛數 總旅行距離

每題平均 運算時間

每題平均 運算時間

相關文件