• 沒有找到結果。

第二章 文獻回顧

2.2 啟發式解法回顧

2.2.1 傳統的啟發式解法

傳統求解VRP 的啟發式解法可約略分成兩階段來討論,其一為構建法(Construction Methods),另一則為改善法(Improvement Methods)。

(一) 構建法:

構建法為最初所發展的啟發式解法,目的在於根據一套特定的規則,從無到有逐步 地將所有的顧客點插入路線中,完成一個可行解。因此,構建法包含了三個要件:起始 準 則(Initialization Criterion) 、 選 擇 準 則 (Selection Criterion) 與 插 入 準 則 (Insertion Criterion)。選擇準則為選擇欲插入顧客點的依據,插入準則決定了插入的位置(Cordeau et al. [13])。構建法又可進一步細分為循序(Sequential)與平行兩種(Parallel)。循序法將ㄧ條 路線構建完成之後才跳至另一條路線,平行法在插入顧客點時同時考慮了一條以上的路 線。 在各種構建法中,最常被使用的方法為節省法(Savings Methods)與插入法(Insertion Methods)。

節省法由Clarke and Wright[9]所提出,其概念如圖 2.2 所示,先計算出所有的顧客 點對( k

i

, )之節省值(

S );節省值公式為

ik (i,0)、( k 兩條節線之成本減去0, ) ( k

i

, )之成本,

其意涵為合併 i 與

k

兩節點所能減少的路線成本。接著依據節省值大小進行排序,得到 節省值列(Saving List)。選擇節省值最大者,如圖 2.2 方式優先進行合併,其過程仍需在 不違反車輛容量限制下進行。由此可知,節省法本質上為平行法,同時考慮了多條路線

最遠插入(Farthest Insertion)、最省插入(Cheapest Insertion)、最快插入(Quick Insertion)、 任意插入(Random Insertion)等多種修正方法。詳細內容可參考 Bodin et al. [6] 或 Cordeau et al. [13]之整理。

7

VRP 路線改善的方法通常可約略分成節線交換(Arc Exchange)與節點交換(Node Exchange)兩種類型。節線交換法中,K-Opt 節線交換法為常用的交換法,由 Lin[28]

於 1965 年提出,K 表示為每次交換的節線數,且節線間互不相鄰。K 值愈大,可行的 節線交換,如Tarantilis et al. [38]所採用的方式。如圖 2.4(b)所示,可看出路線間的 2-Opt 交換,是以不同的兩路線各抽出一條節線,再分別插入一條節線,完成兩條新的路線。

資料來源:Tarantilis et al. [38]

由於2-Opt 與 3-Opt 的交換方式都會造成某些節線產生需要反轉的情況,造成計算 上的負擔,Or[32]便提出了 Or-Opt 節線交換法,被視為是一種 3-Opt 的變形,它可將某 一節點、某一段節線、或某兩段節線自路線抽出,再插入至其他節線之間。如圖2.5 所 示。(

i

,

i

+1)、(

j

,

j

+1)與(

k

,

k

+1)三條節線被斷開,而以(

i

,

j

+1)、(

k

,

j

)與(

i

+ k1, +1)三 條節線替代,重新連成一條迴路。可看到(

i

+1,

j

)這段節線從路線中被抽出,接著再插

8

資料來源:Tarantilis et al. [38]

Osman[33]將 1-0 交換法稱為一個轉移過程(Shift Process),而將 1-1、1-2 稱之為 λ-interchange,λ 表示了牽涉到的節點數。圖 2.7 為 1-1 交換法的解題概念:原本屬於路 線A 的 i 點與路線 B 的 j 點,先從原有路線斷開後,再分別重新插入彼此之前的位置。

1-0、1-1 節點交換亦可允許在同一條路線內發生,而不限定為不同路線,如 Tarantilis et al. [38]所採用的方式。

資料來源:Tarantilis et al. [38]

1-2 交換法的解題概念如圖 2.8 所示,原本屬於路線 B 的 s 點插入了路線 A;路線 A 的j 點與路線 B 的 i 點則互相交換,分別插入了彼此之前的位置。

9

另外,由Gendreau et al. [21]於 1992 年提出一般化插入/解繫法(Generalized Insertion/

Unstring and String, GENIUS)求解 TSP 問題,它包含了 GENI 與 US 兩部分,GENI 可用 作一起始解構建的方法,US 則可作為路線改善的方法,其內容如下小節詳述。

10

11

GENI 的演算法如下所述:

步驟 1. 任意選擇 3 點構建起始路線,初始化所有節點的 P-neighborhood。

步驟 2. 選擇尚未在路線內的任一點,需考慮路線的方向,與兩種形式的插入法。選 出其中具有最小成本的方式插入。最後更新P-neighborhood。

步驟 3. 所有的點都在路線中,則停止。否則重複步驟 2。

Gendreau et al. [21]亦利用此模組發展出一套路線改善的方法。即所謂的解繫法 (US)。與一般交換法不同的是,解繫法的概念共有兩個階段:其一為將一個節點移出現 有的路線,稱為Unstring;再以前述之 GENI 演算法插入此路線,稱為 String。Unstring 可視為GENI 方法的反轉(reverse-GENI),因此亦有 Type I 和 Type II 兩種形式。如下所 述:

Type I Unstring 如圖 2.11 所示,在

v

i被移出路線後,其上游點

v

i1和下游點

v

i+1分別 找到了

v

k

v

j相連,

v

k

v

j的下游點

v

k+1

v

j+1再連起來,重新形成一條路線。從圖中 可看出 Type I Unstring 是將 Type I Insertion 的插入步驟顛倒過來。同樣地,Type II Unstring 也是顛倒 Type II Insertion 的步驟,如圖 2.12 所示。

圖2.11 Type I Unstring 之示意圖

資料來源:Gendreau et al. [21]

12

圖2.12 Type II Unstring 之示意圖

資料來源:Gendreau et al. [21]

而解繫法詳細的執行步驟則可如下所述:

步驟 1. 現有路線τ 的成本為 z ,設定τ :=τ , *

* z := z ,以及計數器 t := 1

步驟 2. 對

v

t而言,進行Unstring 和 String,同樣地需考慮路線的方向,與兩種形式的 操作。選擇其中具有最小成本

z 的路線

'

τ

',並使τ

: =

τ

'

z : z = '

z

<

z

*,則τ :=

*

τ , *

' z := ' z ,以及 t := 1;重複步驟 2。

z

z

*,設定t := t +1。

若t = n+1,停止,並回報τ 和成本 *

* z ,否則重複步驟 2。

13

2.2.3 巨集啟發式解法

由於傳統的啟發式解法,必須找到優於所紀錄最佳解的解,才允許更新,因此在執 行上容易掉入局部的最佳解。為了克服此缺點,後續的趨勢逐漸演變成以高階的策略作 為指引,結合傳統的啟發式解法,來跳脫出局部最佳解的束縛,形成巨集啟發式解法的 架構。

巨集啟發式方法發展至今,已演變出許多解題概念不盡相同的方法。較為著名的方 法諸如:禁制搜尋法(Tabu Search, TS)、基因演算法(Genetic Algorithm, GA)、類神經網 路(Neural Network)、螞蟻演算法(Ant Colony Optimization, ACO)、模擬鍛鍊法(Simulated Annealing, SA)等不一而足。

卓裕仁[2]曾整理多種巨集啟發式解法包含的解題策略與觀念,而歸納出數種基本類 型。如表2.1 所示。這些巨集啟發式解法除了上述之巨集啟發式解法,還包括:門檻接 受法(Threshold Accepting, TA)、大洪水法(Great Deluge Algorithm, GDA)、紀錄更新 法(Record-to-Record Travel, RRT)、變動鄰域搜尋法(Variable Neighborhood Search, VNS)、噪音擾動法(Noising Method, NM)、兩極跳躍法(Flip-Flop, FF)、搜尋空間平 滑法(Search Space Smoothing, SSS)、貪心隨機適應搜尋法(Greedy Random Adaptive Search Procedure, GRASP),以及分散搜尋法(Scatter Search, SS)等等。其策略解釋如 下:

(1) 接受劣解:可接受劣於現有解之鄰解,以便搜尋過程能夠跳出局部最佳解。

(2) 變換鄰域:於搜尋過程交替更換不同的鄰域搜尋法以產生相異的搜尋空間。

(3) 擾動成本:擾動成本函數以改變解空間,並在擾動後的解空間繼續搜尋。

(4) 多重起點:分別自不同的起點(起始解)進行鄰域搜尋。

(5) 保留資訊:記錄求解過程中之重要資訊,並利用該資訊導引搜尋的方向。

(6) 自我學習:應用人工智慧的方式,讓方法能夠自搜尋過程中累積求解經驗。

14

表2.1 多種巨集啟發式解法之解題策略比較

策略解法 接受劣

解 變換鄰域 擾動成

本 多重起點 保留資訊 自我學習

禁制搜尋法

3 3 3 3

模擬鍛鍊法

3

門檻接受法

3

大洪水法

3

紀錄更新法

3

變動鄰域搜尋法

3

噪音擾動法

3

兩極跳躍法

3 3

搜尋空間平滑法

3

跳躍搜尋法

3

貪心隨機適應搜尋

3 3

基因演算法

3 3

分散搜尋法

3 3

類神經網路法

3 3

螞蟻演算法

3 3

資料來源:卓裕仁[2]

其中,模擬鍛鍊法(SA)、門檻接受法(TA)、大洪水法(GDA)與紀錄更新法(RRT)

同屬於門檻型演算法,有著類似的解題策略。此類方法之基本觀念乃是在鄰域搜尋陷入 局部最佳解時,鬆綁其接受法則接受劣於現解之鄰解,以便跳脫局部最佳解而能搜尋到 更佳的解。因此,SA、TA、GDA 與 RRT 等方法的執行架構與傳統鄰域搜尋法之架構 相似,差別僅在於使用的接受法則不同:傳統的鄰域搜尋法僅接受較佳的鄰解;門檻型 演算法則可接受暫劣之鄰解。

SA 可說是 TA、GDA、RRT 的概念來源,其基本觀念最早由 Metropolis 等人於 1953 年所提出,然後由Kirkpatrick et al. [26]加以應用到組合最佳化問題之求解上。SA 法的 接受法則為機率性接受暫劣解:利用一個隨機產生的數值與門檻值做比較,此門檻值是 鄰解與現有解之目標值差額及溫度的函數;所謂的「溫度」是做為控制門檻值高低的參 數;降溫則是為了使SA 能夠逐漸收斂(卓裕仁[2 ])。

TA 法的觀念源自於 SA 法,由 Dueck and Scheuer[16]於 1990 年發表,1993 年 Dueck[15]又根據 TA 的觀念衍生出 GDA 與 RRT。此三種方法皆採用確定性的接受法則,

茲以圖2.13 說明其接受法則的異同:傳統之路線改善法採取嚴格的「接受法則」,即當 交換後的可行解之目標值低於原有解時(C(X') < C(Xc),C(Xc)為現有解 Xc之目標值,C(X') 為鄰解X'的目標值),才接受此解。但 TA 法所採用的接受法則為C(X' )<C(Xc )+Tk

T

k

15

16

也無法搜尋可接受的解,使得TA 快速的收斂,無法達到預期的效果。由此可知門檻數 列的設定關係著TA 的求解品質。

(a) (b) (c)

1 K K

T

k

1 K K

T

k

1 K K

T

k

圖2.14 TA 門檻數列遞減型態

資料來源:楊智凱[4]

2.3 可回溯式門檻接受法

可 回 溯 式 門 檻 接 受 法(Backtracking Adaptive Threshold Accepting, BATA) 是 由 Tarantilis et al. [38]所提出的一種改良式門檻接受法。它與傳統的門檻接受法最大的不同 在於門檻數列的型態:以往門檻接受法的門檻數列皆呈現出逐漸遞減的型態。而可回溯 式門檻接受法在完成一次搜尋迴圈之後,若是有找到至少一次的可接受解,即可降低門 檻;反之,則必須放鬆門檻值再進行交換。如此門檻數列的型態,便呈現出有增有減而 逐漸收斂的情形。如圖2.15 所示。

圖2.15 BATA 門檻數列收斂示意圖

資料來源:朱佑旌[1]

而此方法回溯門檻值的機制,是假設在每次進行鄰域搜尋之後,若在期間有至少一 次移動(找到可接受的解),則減低門檻值;否則即提高門檻值,但不可超過上一次被接 受的門檻值。而其回溯公式為:Tn =Tc +(Tp -Tc

b

,其中 Tn 為得到的新門檻值,Tc

17

為目前的門檻值,Tp為前一次被接受的門檻值;b 則為門檻回溯的比例值,由此公式可 知b 值不得超過 1,以避免違反上述規定。

可回溯式門檻接受法另一個與傳統門檻接受法的差異,在於停止法則除了達到原先 預定的門檻數列長度之外,當已經連續回溯一個預設次數,卻沒有找到任何一個可接受 的解,即直接停止。

可回溯式門檻接受法應用於組合最佳化問題在文獻上還不多見。Tarantilis et al. [38]

提出此方法時,被設計應用於 HFFVRP (Heterogeneous Fixed Fleet Vehicle Routing Problem)。其後,朱佑旌[1]則以 BATA 方法設計一套兩階段可回溯式門檻接受法 (TBTA),求解 HVRPBTW (Heterogeneous Fleet Vehicle Routing Problem with Backhauls and Time Windows)。

2.4 小結

目前,巨集啟發式解法所發展的概念可大致歸納為深度搜尋(Intensification Search) 與廣度搜尋(Diversification Search)兩種高階策略。乃是想像在一龐大的解空間當中,不 僅要策略地決定搜尋的方向,也要有優秀的搜尋工具快速地搜尋到其區域最佳解。可回 溯式門檻接受法調控門檻值的概念即符合此項作法,當門檻值縮小,意味著偏重深度搜

目前,巨集啟發式解法所發展的概念可大致歸納為深度搜尋(Intensification Search) 與廣度搜尋(Diversification Search)兩種高階策略。乃是想像在一龐大的解空間當中,不 僅要策略地決定搜尋的方向,也要有優秀的搜尋工具快速地搜尋到其區域最佳解。可回 溯式門檻接受法調控門檻值的概念即符合此項作法,當門檻值縮小,意味著偏重深度搜

相關文件