• 沒有找到結果。

題目: 結合門檻接受法與螞蟻演算法於求解車輛 路線問題之研究

N/A
N/A
Protected

Academic year: 2022

Share "題目: 結合門檻接受法與螞蟻演算法於求解車輛 路線問題之研究 "

Copied!
93
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

題目: 結合門檻接受法與螞蟻演算法於求解車輛 路線問題之研究

A Study on combining Threshold Accepting and Ant Algorithm for the Vehicle Routing Problem

系 所 別:運輸科技與物流管理學系碩士班 學號姓名:M 0 9 4 1 4 0 1 9 鄭 佳 琳

指導教授:卓 裕 仁 博 士

中華民國 九十六 年 七 月

(2)

結合門檻接受法與螞蟻演算法於求解車輛路線問題之研究

學生:鄭佳琳 指導教授:卓裕仁博士 摘 要

車輛路線問題(Vehicle Routing Problem, VRP)是屬於 NP-hard 的問題,當求 取最佳解時,其計算時間將會隨著點數的增加呈指數的成長,因此問題規模大 時求取最佳解往往相當費時。若要同時兼顧解題速度與品質,最常利用的是啟 發 式 方 法 (Heuristics) 以 及 巨 集 啟 發 式 方 法 (Meta-Heuristics) 。 門 檻 接 受 法 (Threshold Accepting, TA)為一巨集啟發式方法,為 1990 年德國學者 Dueck 及 Scheuer 所提出,其由模擬鍛鍊法(Simulated Annealing, SA)改良而來。TA 係 以區域搜尋為基礎(Local Search Based),採用有條件接受劣解的機制來跳脫局 部最佳解(Local Optimum)的束縛,屬於深度搜尋的策略;TA 近年來應用於求 解最佳化問題具有不錯成效。螞蟻演算法(Ant Colony Optimization, ACO)則是以 群體為基礎(Population Based),屬於廣度搜尋策略的方法。ACO 的主要概念是 將隨機求解過程中所求得不錯的解,透過費洛蒙激素記錄在節線上。然而,許 多研究指出,這種僅具廣度搜尋策略的方法,必須搭配有力的區域搜尋方法,

才能提升其解題績效。

本研究的目的即在 VRP 之問題求解上結合門檻接受法與螞蟻演算法的費 洛蒙記憶機制發展一套求解績效良好且時間合理的混合型巨集啟發式方法,以 期能提升 VRP 之求解績效。本研究提出的方法稱之為 TAANT_VRP,可分成三 個模組:起始解構建模組、鄰域搜尋模組、巨集策略模組。其中起始解建構方 式主要運用最遠起點之最省插入法(Farthest-start Cheapest Insertion, FCI)產生。

在鄰域搜尋模組部分,使用 2-Opt、Or-Opt、路線間節點交換等方法,進行起始 解的改善,最後再搭配巨集策略中的門檻接受法結合費洛蒙記憶機制,來加強 搜尋改善效果。

本研究以 C#語言將上述提出的 TAANT_VRP 解法撰寫成電腦程式,並自 VRP 國際標竿例題題庫中選取 32 個例題,並進行績效測試實驗。測試結果發 現本研究測試的 32 題標竿例題當中,其平均誤差可達 2.87%,且有一題與文獻 已知最佳解結果相同。

關鍵詞:車輛路線問題、門檻接受法、費洛蒙記憶、巨集啟發式解法

(3)

A Study on combining Threshold Accepting and Ant Algorithm for the Vehicle Routing Problem

Student:Chia-Lin Cheng Advisor:Dr. Yuh-Jen Cho

Abstract

Vehicle Routing Problem (VRP) is a problem of NP-hard, when solving solutions, its calculation time will present growth of the index with the increase counting, so it is often quite time-consuming to solve solutions when the problem is large in scale. The speed and quality that if consider solving a problem, most often apply heuristics method and meta-heuristics. Threshold Accepting (TA) is a intensification searching meta-heuristic, which is proposed by German scholar Dueck and Scheuer in 1990. TA, according to Local Search, it is capable of escaping from the local optimum by accepting a poor solution; And TA applies to solve the optimization problem and have good effects in recent years. On the other hand, the Ant Colony Optimization (ACO), which transfers the objective value of found solutions into the pheromone and stores it in arcs, is a random-searching meta-heuristic. However, a lot of research pointed out, this kind of method only have a random-searching, must match strongly the Local Search and improved the performance of solving a problem.

The purpose of this research intended to introduce the pheromone memory of ACO into the TA scheme for solving the VRP. We proposed a method, named as TAANT_VRP, including three modules: initial solution construction (ISC), neighborhood search (NS), and meta-heuristic. In ISC module, we applied a modified Farthest-start Cheapest Insertion (FCI) method to construct an initial solution. 2-opt, Or-opt, and inter-route node exchange were adopted in NS module.

Finally, three schemes were designed to execute the meta-heuristic module.

The previous method was coded in C# language and ran at a P4 personal computer. We choose thirty-two VRP benchmark instances to test the proposed TAANT_VRP approach. Experimental results that the average percentage of errors among the 32 instances was merely 2.87%, and one best-found solution in this research, the same as the best-known solution.

Keywords:Vehicle Routing Problem (VRP), Threshold Accepting (TA), Pheromone Memory, Meta-Heuristics

(4)

誌 謝

細數新竹夜未眠的夜晚,求學生涯在此告一段落,看著窗外剛剛露臉的太 陽,它彷彿笑著對我賀禧道:「恭禧你歷經另一個求學旅程,完成對自我的挑

戰」。倚靠著窗,回想起二年來的點點滴滴,這一路走來,要感謝週遭許多人的

支持與協助,我才能順利完成如此豐碩的學習成果。

首先,最需要感謝恩師 卓裕仁博士,感謝您在忙碌的研究、教學中,仍 抽空與我討論論文的構思、程式撰寫、演算法策略設計等,使得我能循序漸進,

一步步把論文完成。在生活上,讓學生學習到正確的待人處世觀念,能在恩師 的帶領下學習與成長是學生莫大的榮幸,在此謹呈上最誠摯的謝意。

此外,論文口試期間承蒙國立交通大學 韓復華教授與 黃家耀教授,百 忙之中撥冗細審論文,並惠予諸多寶貴建議,使本論文更臻完善,在此致上最 深的謝意。

在研究期間,感謝小朱學長願意撥冗解惑我文獻的疑惑,以及雅雯學姐、

耘翠學姐和暢湘學長提攜與照顧,感謝同門伙伴政偉和啟文這兩年來的相互扶 持,感謝研究室的所有同學:田大哥、佑霖、維竣、小珮、阿瀧、小君、佑伊、

聖文、鬍子、阿倫、雅云、旦旦、柏妤、小謝、秋宏和文菊學姊等人,在修課 上給予協助並帶給我歡笑與快樂,也要感謝同門的三位學弟妹:至穩、志勳和 俞寧,謝謝你們在口試期間的幫忙,你們只剩下一年要好好加油,不要讓老師 失望喔!

最後感謝父母親及二位哥哥,在我情緒低落時,你們無止盡的關愛與包 容,並給予穩定的經濟來源,使得我能無後顧之憂的專注於研究上。你們的支 持是我力量的泉源。

謹以此篇論文獻給曾經幫助過我的師長及親朋好友!

鄭佳琳 謹識於中華運管所 中華民國 96 年 7 月

(5)

目 錄

摘 要... i

Abstract ... ii

誌 謝... iii

目 錄... iv

圖目錄... vi

表目錄... vii

第一章 緒論... 1

1.1 研究動機與目的 ... 1

1.2 研究範圍與步驟 ... 2

1.2.1 研究範圍... 2

1.2.2 研究步驟... 2

第二章 文獻回顧... 5

2.1 車輛路線問題 ... 5

2.1.1 傳統車輛路線問題之定義... 5

2.1.2 車輛路線問題相關問題... 6

2.2 傳統啟發式方法回顧 ... 8

2.3 門檻型演算法回顧 ... 9

2.3.1 接受法則... 9

2.3.2 TA 控制參數... 12

2.3.3 可回溯式門檻接受法... 13

2.4 螞蟻演算法回顧 ... 14

2.4.1 螞蟻演算法基本原理... 14

2.4.2 螞蟻演算法方法架構... 14

第三章 混合型巨集啟發式解題架構設計... 18

3.1TAANT_VRP 解題架構... 18

3.2 起始解構建模組設計 ... 18

3.3 鄰域搜尋模組設計 ... 19

3.4 巨集策略模組設計 ... 22

3.4.1 TA 執行流程及控制參數... 22

3.4.2 ANT 執行流程及控制參數... 24

3.4.3 TAANT 執行流程及控制參數... 26

第四章 例題測試與結果分析... 29

4.1 題庫建立 ... 29

4.2 實驗設計 ... 30

4.3 結果彙整 ... 32

4.3.1 TA、ANT 及 TAANT 參數解題績效測試與比較 ... 32

(6)

4.3.2 鄰域搜尋模組、TAANT 解題績效測試與比較 ... 37

4.3.3 巨集策略模組中之組合型執行架構驗證測試與比較... 38

4.3.4 加入六種鄰域搜尋方法作為收尾之解題績效測試... 40

第五章 結論與建議... 44

5.1 結論 ... 44

5.2 建議 ... 44

參考文獻... 45

附錄 A TA 部份參數範圍之求解結果表... 48

附錄 B ANT 參數範圍之求解結果表... 50

附錄 C TAANT 部份參數範圍之求解結果表... 52

附錄 D TA_TAANT 求解結果表... 61

附錄 E TAANT_TA 求解結果表 ... 67

附錄 F TA_TAANT+收尾之求解結果表 ... 73

附錄 G TAANT_TA+收尾之求解結果表... 79

附錄 H 部份測試例題路線圖... 85

(7)

圖目錄

圖 1.1 本研究流程圖... 4

圖 2.1 傳統 VRP 路線型態... 5

圖 2.2 SA 與 TA 接受暫劣解機率之比較... 10

圖 2.3 大洪水法解題概念示意圖... 11

圖 2.4 TA、GDA 與 RRT 接受法則示意圖 ... 11

圖 2.5 三種門檻數列遞減型態... 12

圖 2.6 BATA 門檻數列型態... 13

圖 2.7 自然界螞蟻之行為... 14

圖 3.1 TAANT_VRP 之求解方法架構圖... 18

圖 3.2 插入成本準則概念... 19

圖 3.3 鄰域搜尋模組執行方式... 19

圖 3.4 本研究鄰域搜尋法執行順序圖... 20

圖 3.5 2-opt 交換法示意圖 ... 20

圖 3.6 Or-opt(p=1,2)交換示意圖 ... 21

圖 3.7 1-0 節點交換示意圖 ... 21

圖 3.8 1-1 節點交換示意圖 ... 22

圖 3.9 1-2 節點交換示意圖 ... 22

圖 3.10 TA 執行流程圖... 23

圖 3.11 TA 核心搜尋與接受法則... 24

圖 3.12 ANT 執行流程圖 ... 25

圖 3.13 ANT 費洛蒙擾動與更新費洛蒙 ... 26

圖 3.14 TAANT 執行流程圖 ... 27

圖 3.15 TAANT 費洛蒙擾動與更新費洛蒙 ... 28

(8)

表目錄

表 1.1 本研究之 VRP 問題特性... 2

表 2.1 VRP 問題類型之特性... 6

表 2.2 SA、TA、GDA 與 RRT 等方法之比較 ... 12

表 2.3 TA 之控制參數... 12

表 4.1 第一階段 VRP 標竿測試例題... 29

表 4.2 第二階段 VRP 標竿測試例題... 29

表 4.3 實驗設計... 30

表 4.4 TA、ANT 及 TAANT 測試資料及參數設定範圍 ... 31

表 4.5 TA 不同起始門檻值與不同執行回合數之平均績效比較... 32

表 4.6 TA 之不同起始門檻值在回合數為 150 和 100 之平均績效比較... 32

表 4.7 TA 第一階段測試例題所得之最佳解... 33

表 4.8 ANT 不同消散係數與不同執行回合數之平均績效比較 ... 33

表 4.9 ANT 第一階段測試例題所得之最佳解 ... 34

表 4.10 TAANT 不同起始門檻值與不同消散係數之平均績效比較(回合數 K=150) ... 34

表 4.11 TAANT 不同起始門檻值與不同消散係數之平均績效比較(回合數 K=100) ... 34

表 4.12 TAANT 不同起始門檻值與不同消散係數之平均績效比較(回合數 K=50) ... 35

表 4.13 TAANT 起始門檻值(0.01~0.09)與消散係數(0.1~0.9)平均績效比較... 35

表 4.14 TAANT 第一階段測試例題所得之最佳解 ... 36

表 4.15 各自最佳參數組合資料... 36

表 4.16 ANT 與 TA 誤差之成對樣本平均數差 T 檢定結果 ... 37

表 4.17 ANT 與 TAANT 誤差之成對樣本平均數差 T 檢定結果... 37

表 4.18 TA 與 TAANT 誤差之成對樣本平均數差 T 檢定結果 ... 37

表 4.19 鄰域搜尋模組與 TAANT 之績效比較 ... 38

表 4.20 較佳參數組合設定一覽表... 38

表 4.21 TA_TAANT 與 TAANT_TA 之 32 題測試例題平均績效比較 ... 39

表 4.22 TA_TAANT 與 TAANT_TA 之 32 題測試例題所得之最佳解 ... 39

表 4.23 32 題測試例題收尾前、後之各題績效比較... 41

表 4.24 本研究 32 題測試例題所得之最佳解... 42

(9)

第一章 緒論

1.1 研究動機與目的

近幾年來,國內物流業紛紛受到看好。物流業對於運輸配送議題頗為重視,

認為有效且正確的運輸配送計畫對降低物流中心之運輸成本有相當大地影響。

而運輸配送計畫中,尤以車輛路線問題(Vehicle Routing Problem, VRP)最為關 鍵。

VRP 是一個著名的 NP-Hard 問題,在求解大規模問題時,精確解演算法 (Exact Procedure)將無法在有限時間內求得最佳解,因此ㄧ些學者利用較有效率 的啟發式方法(Heuristic Algorithms)來求得近似最佳解。在早期是使用傳統啟發 式方法求解,例如節省法(Savings)、最近鄰點法(Nearest Neighbor)、插入法 (Insertion)、掃描法(Sweep)、K-opt 與 Or-opt 等。但由於傳統啟發式方法會面臨 陷入「局部最佳解(Local Optimum)」的窘境,以至於無法提供精確度更好的近 似解。為了克服這項缺點,近十幾年來,有許多學者開始採用巨集啟發式方法 (Meta-Heuristics)求解 VRP 問題。

巨集啟發式方法使用的觀念來自於傳統式方法與人工智慧理論的結合,利 用相互學習策略作搜尋,反覆產生求解過程,其目的皆是希望更有效率的求得

「全域最佳解(Global Optimum)」【10】。巨集啟發式方法求解有禁制搜尋法(Tabu Search, TS)、模擬鍛鍊法(Simulated Annealing, SA)、門檻接受法(Threshold Accepting, TA)、大洪水法(Great Deluge Algorithm, GDA)、基因演算法(Genetic Algorithm, GA)、螞蟻演算法(Ant Colony Optimization, ACO)以及類神經網路 (Neural Network, NN)等。

在眾多的巨集啟發式方法當中,TA 具有執行容易、速度快、參數敏感度低 等優點。TA 乃是於 1990 年由德國學者 Dueck and Scheuer【25】所提出,其原 理係由 SA 改良而來,屬於門檻型演算法(Threshold Algorithms)的一種;TA 法 不同於 SA 法以隨機性接受劣解的法則,是以確定性接受較劣解來作為判斷的 準則。TA 已被廣泛應用於許多最佳化問題,如:生產排程問題(Job-Shop Scheduling)、旅行推銷員問題(Traveling Salesman Problem, TSP),及一般化資 源限制之計畫排程問題等,皆有不錯的績效。

螞蟻演算法係根據螞蟻找尋食物的現象而發展出來具有人工智慧的演算 法。在 1996 年 Dorigo et al.【22】提出了螞蟻系統(Ant system, AS)的架構,而 之後在 1997 年 Dorigo and Gambardella【23】則針對 AS 進行修改,提出了螞蟻 群落系統(Ant Colony System, ACS)。而螞蟻演算法具有多重起點與隨機的方式 來加強搜尋途徑的多樣化,是一種屬於廣度搜尋的方法。雖然螞蟻演算法在求 解 VRP 有不錯的表現,但仍有改善的空間。

由於螞蟻演算法需要搭配強而有力的鄰域搜尋法才能發揮其效果,而門檻 接受法在鄰域搜尋方面又有相當不錯的表現;因此,本研究之目的乃希望結合 門檻接受法之深度搜尋特點與螞蟻演算法之廣度搜尋特點,發展出一套混合式

(10)

(Hybrid)的巨集啟發式方法求解 VRP 問題,來提升求解之效率。

1.2 研究範圍與步驟

1.2.1 研究範圍

車輛路線相關問題的型態甚多,包括週期性車輛路線問題(Periodic Vehicle Routing Problem, PVRP) 、 時 間 窗 限 制 多 車 種 回 程 取 貨 車 輛 路 線 問 題 (Heterogeneous Fleet Vehicle Routing Problem with Backhauls and Time Windows, HVRPBTW)、多場站車輛路線問題(Multi-Depot VRP, MDVRP)、指定點接駁車 輛路線問題(Linehaul-Feeder Vehicle Routing Problem, LFVRP)及多車種多溫共 配車輛路線問題(Heterogeneous Multi-temperature Fleet Vehicle Routing Problem, HMFVRP)等。

本論文之研究範圍係傳統車輛路線問題(Vehicle Routing Problem, VRP),所 要探討的 VRP 問題特性如表 1.1 所示:

表 1.1 本研究之 VRP 問題特性

問題特性 說明

設施資源 1.單一場站 2.單一車種 3.車輛有容量限制 顧客需求 1.固定需求 2.不可分割

節點服務 1.流量守恆 2.避免子迴路 3.只收或只送

最佳化目標 路線行駛成本總和最小

資料來源:【5】及本研究整理 1.2.2 研究步驟

本研究的主要目的為針對 VRP 問題發展一套混合型巨集啟發式方法,並透 過 C#程式語言的撰寫來執行演算法的求解,最後並利用國際標竿題庫來進行測 試並分析各種方法之解題績效。

本論文的研究流程如圖 1.1 所示,其執行步驟簡要說明如下:

ㄧ、文獻蒐集與回顧

透過國家圖書館及國內各大圖書館之檢索系統和電子期刊資料庫蒐集 國內外 VRP 和啟發式解法,了解解題方法之觀念、技巧與應用,並將發展 情況加以整理。

二、問題特性分析與定義

利用步驟 1 回顧之文獻,了解本研究之問題特性,包括設施資源、顧 客需求型態、服務型態以及目標函數等項目。

三、巨集啟發式解法之架構設計

結合門檻接受法(TA)與螞蟻演算法(ACO)之費洛蒙記憶機制及局部搜 尋法,設計出一套混合型且適合運用於 VRP 問題的巨集啟發式解題架構模 組。

(11)

四、測試題庫之建立

本研究將從 VRP 國際標竿例題題庫【37】(http://neo.lcc.uma.es/radi-aeb /WebVRP/)挑選 32 個題目予以評估。

五、程式撰寫

針對門檻接受法結合螞蟻演算法之費洛蒙記憶機制執行模組,利用 C#

程式語言在電腦上撰寫程式。

六、演算法之測試與結果分析

將本研究所設計的混合型巨集啟發式方法對測試例題進行測試,並分 析結果,以得知演算法之求解績效,評量之標準為解的精確度與執行時間 效率。

七、結論與建議

根據實驗所得之結果進行? 合分析,提出具體的結論與建議。

(12)

圖 1.1 本研究流程圖 文獻蒐集與回顧

測試題庫之建立 巨集啟發式解法之架構設計

演算法之測試與結果分析 程式撰寫

問題特性分析與定義

結論與建議

(13)

第二章 文獻回顧

本章首先將針對傳統車輛路線問題(Vehicle Routing Problem, VRP)進行簡 單地說明,包含定義、數學模式及衍生問題,再來回顧傳統啟發式方法,最後 則介紹巨集啟發式方法當中的門檻型演算法及螞蟻演算法。

2.1 車輛路線問題

VRP 問題在實務應用上相當重要與廣泛,如物流配送、快遞貨運等。而 VRP 為旅行推銷員問題(Travel Salesman Problem, TSP)之衍生出來,TSP 為無車 容量限制的單一路線問題;VRP 為考慮車容量限制,並且是多路線問題。

2.1.1 傳統車輛路線問題之定義

韓復華與卓裕仁【12】將 VRP 以 G = ( V , E )表示,V 代表網路上所有節 點之集合,E= ( i , j )代表網路上所有節線之集合,節點 0 是場站,其他節點為 客戶,qi 代表客戶點需求,Cij 代表成本或距離,Q 代表車輛容量,m 代表車 輛(事前給定,為決策變數)。其定義為在網路 G 中,決定一組具有最小總成本 之配送路線(自場站出發,最後回到場站),每位客戶皆需被服務一次,客戶總 需求不得超過車輛容量之限制。圖 2.1 來描述傳統 VRP 路線型態:

圖 2.1 傳統 VRP 路線型態

而傳統 VRP 問題可以用數學規劃模式來表示【5】【12】:

Minimze

∑∑∑

= = = N

i N

j M

k k ij ij

x C

0 0 1

(2.1) to

subject

∑∑ ( )

= =

=

N =

i M

k k

ij j N

x

0 1

, , 1

1 K (2.2)

10 8

0(場站)

1

2 3

4

6

5

7 9

11

路線 1

路線 2

路線 3 路線 4

(14)

( i N )

x

N

j M

k k

ij 1 1, ,

0 1

K

=

∑∑ =

= =

(2.3)

( h N k M )

x x

N

j k hj N

i k

ih 0 0, , ; 1, ,

0 0

K

K

=

=

=

− ∑

= =

(2.4)

( k M )

Q x d

N

j ij N

i

i 1, ,

0 0

K

=

 ≤

 

 ∑

= =

(2.5)

( k M )

x

N

j k

j 1 1, ,

1

0

≤ =

K

=

(2.6)

(

k M

)

x

N

i k

i 1 1, ,

1

0 ≤ = K

=

(2.7)

(

i j N

)

N x N y y

M

k k ij j

i 1 1, ,

1

K K

=

⋅ +

=

(2.8)

k

j i all for or

x

ijk

=

0 1 , , (2.9)

其中,決策變數

x 表示車輛

ijk k是否行經節線( , )i j ,亦即

x

ijk

=

1表示使用車 輛k從客戶i服務到客戶 j,否則

x

ijk

=

0;Cij表示節線( , )i j 之一般化成本;

d 表

i 示客戶i之需求量,總共有N個客戶,節點 0 代表場站;Q 表示車輛之容量,

總共有M 輛車可以使用(即車隊規模)。

而上述式(2.1)為目標式,即路線總成本最小化;式(2.2)與式(2.3)則為限制 每一位客戶只能被一輛車服務;式(2.4)為流量守恆限制式,表示到達與離開客 戶為同一輛車;式(2.5)則為限制車輛服務的客戶需求量不得超過該車輛容量;

式(2.6)與式(2.7)指明並非所有車輛都要使用;式(2.8)為避免產生子迴路的限制 式;式(2.9)則為雙元整數限制式。

2.1.2 車輛路線問題相關問題

隨著實務上各種狀況出現,衍生出各種不同問題,可以依據問題類型、目 摽函數、節點服務、顧客需求及設施資源來進行說明。VRP 問題類型之特性如 表 2.1 所示。

表 2.1 VRP 問題類型之特性

問題類型 目標函數 節點服務 顧客需求 設施資源

旅行推銷員問題 (Traveling Salesman Problem, TSP)

v 路 線 成 本 總和最小

v 流量守恆 v 避免子迴路

v 顧 客 皆 需 服 務 一 次,但無需 求

v 單一場站 v 無容量限制

傳統車輛路線問題 (Vehicle Routing Problem, VRP)

v 路 線 成 本 總和最小

v 流量守恆 v 避免子迴路 v 只收或只送

v 固定需求 v 不可分割

v 單一場站 v 單一車種 v 有容量限制 v 最 大 距 離 /

時間

(15)

表 2.1 VRP 問題類型之特性(續)

問題類型 目標函數 節點服務 顧客需求 設施資源

多車種車輛路線問 題(Heterogeneous Fleet VRP, HVRP)

v 車 輛 成 本 與 路 線 成 本 之 總 和 最小

v 流量守恆 v 避免子迴路 v 只收或只送

v 固定需求 v 不可分割

v 單一場站 v 多車種 v 有容量限制 v 最 大 距 離 /

時間 週期性車輛路線問

題(Periodic VRP, PVRP)

v 多 日 之 路 線 成 本 總 和最小

v 流量守恆 v 避免子迴路 v 只收或只送

v 固定需求 v 不可分割 v 配送頻率

v 單一場站 v 單一車種 v 有容量限制 v 車輛數限制 v 最 大 距 離 /

時間 時間窗車輛路線問

題(VRP with Time Windows, VRPTW)

v 路 線 成 本 ( 時 間 ) 總 和最小

v 流量守恆 v 只收或只送

v 固定需求 v 不可分割 v 時 間 窗 限

v 單一場站 v 單一車種 v 有容量限制 v 最大時間 回頭車車輛路線問

題(VRP with Backhauls, VRPB)

v 路 線 成 本 總和最小

v 流量守恆 v 避免子迴路 v 先送後收

v 固定需求

v 不可分割 v 單一場站 v 單一車種 v 有容量限制 v 最 大 距 離 /

時間 多場站車輛路線問

題(Multi-Depot VRP, MDVRP)

v 路 線 成 本 總和最小

v 流量守恆 v 避免子迴路 v 只收或只送

v 固定需求 v 不可分割

v 多場站 v 單一車種 v 有容量限制 v 最 大 距 離 /

時間 動態車輛路線問題

(Dynamic VRP, DVRP)

v 路 線 成 本 總 和 最 小 (動態路線 成本)

v 流量守恆 v 避免子迴路 v 只收或只送

v 隨機需求 v 不可分割

v 單一場站 v 單一車種 v 有容量限制 v 最 大 距 離 /

時間 時間窗限制多車種

回程取貨車輛路線 問題(Heterogeneous Fleet Vehicle

Routing Problem with Backhauls and Time Windows, HVRPBTW)【4】

v 車輛成本 與路線成 本之總和 最小

v 流量守恆 v 避免子迴路 v 先送後收

v 固定需求 v 不可分割 v 送貨、取貨 v 硬時窗限

v 單一場站 v 多車種 v 有容量限制

指定點接駁車輛路 線問題

(Linehaul-Feeder Vehicle Routing Problem, LFVRP)

【8】

v 車輛成本 與路線成 本之總和 最小

v 流量守恆 v 避免子迴路 v 只收或只送

v 固定需求 且已知 v 不可分割

v 單一場站 v 二種車種 v 有容量限制 v 單一指定點

(中繼站)

(16)

表 2.1 VRP 問題類型之特性(續)

問題類型 目標函數 節點服務 顧客需求 設施資源

多車種多溫共配車 輛路線問題

(Heterogeneous Multi-temperature Fleet Vehicle Routing Problem, HMFVRP)【9】

v 車輛成 本、路線 成本與保 溫櫃固定 成本總和 最小

v 流量守恆 v 避免子迴路

v 固定需求 v 不可分割

v 單一場站 v 多車種 v 有容量限制

資料來源:【5】及本研究整理

2.2 傳統啟發式方法回顧

由於 VRP 求解難度相當高,屬於 NP-Hard 問題型態,意即當問題規模增 大時,其求解時間會呈現指數分配的上升趨勢,因而無法保證在容許時間內求 出最佳解,因此許多學者面對 VRP 問題多以能迅速求得近似最佳解的啟發式方 法求解。啟發式方法可分為傳統啟發式方法和巨集啟發式方法,而傳統啟發式 方法分為路線構建及路線改善,在路線構建方面有節省法、插入法、最近鄰點 法、掃描法等;在路線改善方面有 K-opt 交換法、Or-opt 交換法、路線間節點 交換等,這些方法也被稱之為鄰域搜尋法(Neighborhood Search)或局部搜尋法 (Local Search)。以下說明傳統啟發式方法:

一、節省法

由 Clarke and Wright【19】提出,ㄧ開始對每位顧客點產生一條路線,

之後計算節省值,其節省值計算方式為Sij =Ci0 +Cj0Cij,並且進行節省 值排序,依據節省值大小進行合併路線動作,節省值愈大將優先考慮合 併,但不能違反車容量限制。

二、插入法

ㄧ開始先產生最基本的路線,將未在路線中的顧客點依序插入此路 線,並使得增加的路線成本愈小愈好和滿足車容量限制。其插入方式有最 省插入法(Cheapest Insertion, CI)、最遠插入法(Farthest Insertion, FI)及最近 插入法(Nearest Insertion, NI)等。FI 是選擇尚未在路線中顧客點距離路線中 各點最遠的,然後進行插入,接著重覆進行此一動作,直到所有顧客點皆 納入為止;NI 是選擇尚未在路線中顧客點距離路線中各點最近的,然後進 行插入,接著反覆進行此一動作,直到所有顧客點皆納入為止。

三、最近鄰點法

由 Rosenkrantz et al.【31】提出,該方法為從場站出發,先找出距離場 站最近的顧客點納入路線中,之後再找出距該點最近的顧客點納入此路 線,依序此步驟,並考慮車輛容量限制,直至所有顧客點均納入路線中。

(17)

四、掃描法

屬於先分群再排程之方式,利用極座標來表示需求點的區位,然後取 任一需求點為起點,以其角度為零度依順時鐘(或逆時鐘方向)以車輛容量 為限制條件進行服務區域之分割。在藉由 TSP 演算法進行需求點排序。

五、K-opt 交換法

此方法由 Lin【29】於 1965 年所提出,其中 K 表示每次交換節線數目。

首先必須先建立一個可行解 S,經由交換節線方式產生鄰解 S`,若鄰解 S`

優於目前的可行解 S,則令鄰解為目前的可行解,重複此步驟,直到無法 改善即停止。

六、Or-opt 交換法

一種簡化的 3-opt 節線交換法,此方法在每次執行鄰域搜尋的迴圈時,

陸續將某二段節線(p=3)、一段節線(p=2)及一個節點(p=1)自路線中 拔出,然後將拔出的顧客點插入其他節線之間,檢查插入後的結果是否能 維持可行並獲得改善,再決定接受改善效果最好的位置進行插入。

七、路線間節點交換

當解的型態具有多條路線時(例如:VRP、VRPB 等),可應用路線間 的節點交換法來進行成本改善。對於任兩條路線相互交換其部分節點,檢 查交換後的結果是否能維持可行並獲得改善,然後決定接受某種交換以獲 得較佳的路線。節點交換的形式很多,例如:1 點對 0 點、1 點對 1 點、1 點對 2 點等。

2.3 門檻型演算法回顧

門檻型演算法(Threshold Algorithms)亦可稱為包容性搜尋法(Generic Search Methods),其觀念乃是在鄰域搜尋陷入局部最佳解時,採取較鬆的接受法則,

亦即接受劣於現解之鄰解,以便脫離局部最佳解的束縛而繼續搜尋下去。屬於 這類的方法有:模擬鍛鍊法(Simulated Annealing, SA)、門檻接受法(Threshold Accepting, TA) 、 大 洪 水 法 (Great Deluge Algorithm, GDA) 與 記 錄 更 新 法 (Record-to-Record Travel, RRT)等。這類方法之基本觀念乃是在鄰域搜尋陷入局 部最佳解時,採用較鬆的接受法則(通常為一門檻值)接受劣於現解之鄰解,以 便脫離局部最佳解的束縛而繼續搜尋下去。SA、TA、GDA 與 RRT 等方法的執 行架構與傳統鄰域搜尋法架構類似,差異之處僅在於使用的接受法則不同。傳 統的鄰域搜尋法僅接受較佳的鄰解,門檻型巨集啟發式方法可接受暫劣解之鄰 解。

2.3.1 接受法則

模擬鍛鍊法的基本觀念最早是由 Metropolis et al.於 1953 年所提出,然後由 Kirkpatrick et al.【28】加以應用到組合最佳化問題之求解上,因而產生了目前 所謂的模擬鍛鍊法。SA 採用機率性的接受暫劣解法則,利用一個隨機產生的 數值與門檻值做比較,此門檻值是鄰解與現有解之目標值差額與溫度的函數,

(18)

亦即鄰解與現解的差值越大,則此鄰解被接受的機率越小;此處之「溫度」對 SA 而言是一個抽象的觀念,僅作為控制門檻值高低的參數;降溫則是為了使 SA 能夠逐漸收斂。

TA 的觀念源自 SA,但是其採用確定性的接受法則,只要鄰解與現解的差 在門檻值以下就接受,其執行方式更為簡單,圖 2.2 說明 SA 與 TA 接受法則之 差異。1990 年 Dueck and Scheuer【25】發表 TA 法時,以一個 442 節點的 TSP 例題來驗證其可行性,結果顯示 TA 可以在很短的時間內找到相當不錯的解。

1993 年 Dueck【26】又根據 TA 的觀念衍生出兩個新的方法:GDA 與 RRT。

TA SA

接受機率 1

0

門檻值(T) 暫劣解的差值

實線表示 TA 虛線表示 SA

0

資料來源:【13】

圖 2.2 SA 與 TA 接受暫劣解機率之比較

模擬鍛鍊法(SA)、門檻接受法(TA)、大洪水法(GDA)與紀錄更新法(RRT) 等方法的執行架構與傳統鄰域搜尋架構相似,其差異處在於其使用的接受法則 不同。傳統的鄰域搜尋法僅接受較佳的鄰解,包容性搜尋法則可接受暫劣之鄰 解。現就以大洪水法來說明包容性搜尋之概念,大洪水法原本是設計用以求解 最大化問題,因此以最大化問題做說明較容易了解:想像在一個有高低起伏的 地面上,不停地下著大雨,假設下雨的速度吾人可以控制,地上的水面將隨著 大雨往上升。我們希望在露出水面的陸地上找到高地,一旦找到了就讓水面上 升一固定高度。這時原來在水面上的部份陸地,將被雨水所淹沒,而吾人在移 動時,僅考慮露出水面的陸地。如此不停地找尋高地,直到找到地面上最高的 山峰或無法再找到更高的高地為止。

對一個最小化的問題而言:可將原來的高地想像成窪地,而水面則如水庫 洩洪一般由高處往低處下降。圖 2.3 為大洪水法之解題概念示意圖。假設我們 現在的位置為圖中之 A 點,並將水位設於 WL1。接著開始找尋「窪地」,設找 到圖中 B 點﹐便將水位下降 D 的高度至 WL2。此時水面 WL2下的所有範圍皆 為吾人找尋並可接受「窪地」的範圍,包括不是很低的 C 點。如此不斷地搜尋

「窪地」及下降水面(至 WLn),直至找到水面下最低之山谷(E 點)或無法再找到 更低點為止。

(19)

資料來源:【13】

圖 2.3 大洪水法解題概念示意圖

而 TA、GDA 與 RRT 的觀念均來自 SA,在接受法則上面也有所不同,SA 的接受法則為不確定性接受法則,而 TA、GDA 以及 RRT 均採確定性接受法則。

以圖 2.4 示意圖說明 TA、GDA 與 RRT 等方法之接受法則異同。簡單而言,TA 法事先產生一組固定的門檻值數列(通常為遞減),依次使用數列中的門檻值,

其接受法則為 C(Xnew) < C(Xcurrent) + Tk;GDA 法設定ㄧ個起始水位,只要有 改善就降低水位(固定的下降速度),其接受法則為 C(Xnew) < L;至於 RRT 法 則是將目前的暫優解設為紀錄值,取紀錄值之固定百分比率作為門檻值,其接 受法則為 C(Xnew) < C(Xcurrent) + Rxp。

C(X)

Xcurrent Xnew 移動

C(Xnew) < C(Xcurrent) + Tk

Tk

(a) TA

C(X)

Xnew 移動

C(Xnew) < C(Xcurrent) + Rxp

R x p

(c) RRT

C(X)

Xnew 移動

C(Xnew) < L

(b) GDA

Xcurrent Xcurrent

資料來源:【5】

圖 2.4 TA、GDA 與 RRT 接受法則示意圖

表 2.2 以最小化問題之求解說明 SA、TA、GDA 與 RRT 等方法重要步驟之

異同。其中「控制參數」指用以控制演算法執行與停止之參數;「接受法則」為

判斷是否從現解 S 移動至某鄰解 S'之準則,傳統之路線改善法採取嚴格的「接 受法則」,即當交換後的可行解之目標值低於原有解時(C(S') < C(S)),才接受此

解。包容性解法則可接受暫劣之鄰解;「收斂法則」是為確定搜尋過程會收斂,

在現解移動後對其控制參數進行調整之方式;「停止法則」則規範演算法停止搜

尋之標準。其中,C(S)為現解 S 之目標值,C(S')為鄰解 S'的目標值。

B

搜尋軌跡

D

C(X)

D

D WL1 WL2

WL4

::

: WLn

C WL

3 D

WLn-1 D

A

E

(20)

表 2.2 SA、TA、GDA 與 RRT 等方法之比較

方 法 SA TA GDA RRT

控制參數

。溫度(T)

。機率值(0 < r < 1)

。次數(K)

。門檻(T)

。次數(K)

。水位(L)

。速度(D)

。誤差率(p < 1)

。記錄值(R)

。次數(K)

接受法則

機率性接受:

[ ]

r C S C S

<

exp ( )T ( ')

確定性接受:

C(S') < C(S) + T

確定性接受:

C(S') < L

確定性接受:

C(S') < C(S) + R*p

收斂法則 T遞減 T遞減 L = L - D 更新R值

停止法則 完成K次迴圈 完成K次迴圈 所有C(S') > L 完成K次迴圈

資料來源:【5】

2.3.2 TA控制參數

TA 控制參數如表 2.3 所示。其中,控制參數係用以產生接受門檻之常數;

參數更新則說明接受門檻或參數之更新方式;停止法則規範演算法停止搜尋之 標準。

表 2.3 TA 之控制參數

方 法 TA

控 制 參 數 起始門檻比率(T0)、門檻數列長度(K) 參 數 更 新 Tk → Tk+1

停 止 法 則 完成 K 次迴圈

TA 法之控制參數包括:起始門檻比率(T0)及門檻值數列長度(K)。此 外,為避免 TA 發生無法收斂的情形,門檻值數列通常為遞減型態;圖 2.5 顯示 三種門檻數列遞減型態。

K Tk

k

(a) 直線遞減 (b) 梯形遞減 (c) 等比遞減

1 K

Tk

k

1 K

Tk

k 1

圖 2.5 三種門檻數列遞減型態

以直線遞減為例,利用控制參數 T0與 K 來產生門檻數列之數值,其公式 如式(2.10),X0為起始解,而 C(X0)則為其目標函數值:

K

~ 1 k 1, - K

k - T K ) C(X

Tk = 00⋅ = (2.10)

門檻數列長度是指在執行時門檻數列之中有多少門檻值,門檻數列長度與

(21)

起始門檻的設定和數列遞減形態的設定有關,數列長度的設定會影響計算時間 和求解之精確度。一般而言,起始門檻設定比率越高,也會設定較長等門檻數 列,使其計算時能逐漸降低成本。以起始門檻值設定來看,Dueck and Scheuer

【25】在提出 TA 時所採用的起始門檻值為最佳成本的 0.25%、門檻數列長度 為 30、門檻值遞減型態為梯形遞減。Toussaint【36】則建議起始門檻值為起始 成本的 1%、2%及 2.5%,門檻值遞減型態為直線遞減或等比遞減。

楊智凱【14】根據實證研究之經驗,建議起始門檻值為起始成本的 0.2%至 1.0%,門檻數列則是採用線性遞減。韓復華與卓裕仁【15】運用改良式的門檻 公式,如式(2.11),當中 N 為節點數。在經過大規模參數測試後結果顯示:解 題績效對 T0之敏感度較大,T0值不宜過大或過小,以 0.2% ~ 1.5%之範圍為佳;

K 值對解題績效之敏感度較低;K 過大解題時間明顯增加但精度改進有限,建 議 K 值不宜超過 60。

K

~ 1 k , 1 - K

k - K N ) T C(X

Tk = 00 ⋅ = (2.11)

2.3.3 可回溯式門檻接受法

一般執行 TA 時,皆使用 2.3.2 節所提到的三種門檻數列遞減型態,但若在 此過程中無法搜尋到可接受的解,則之後所有的執行步驟也將無法搜尋到可接 受的解,於是 Tarantilis 等人【35】於 2001 年提出一個改良式的門檻接受法,

稱 之 為 可 回 溯 式 門 檻 接 受 法 (Backtracking Adaptive Threshold Accepting, BATA)。可回溯式門檻接受法不同一般傳統 TA 之處主要有兩點:門檻數列遞 減型態與停止法則。在門檻數列遞減型態方面,當在最佳化過程中,若發現無 法找到可接受的解時,門檻值可回溯(增加),但不可超過上一次之門檻值。在 停止條件方面,除了原本的當門檻值下降至 0 時停止外,另外加上「回溯次數 達到預設次數」做為停止條件。門檻值回溯公式如下:

new now old now r

T

=

T

+

(T

T ) T

×

(2.12) 其中 Tnow為目前門檻值,Told為前一次之門檻值,Tr為門檻回溯比例。在 回溯門檻的過程中,Told維持不變,以避免門檻無法收斂至 0。圖 2.6 為可回溯 式門檻接受法之門檻數列型態示意圖。

圖 2.6 BATA 門檻數列型態

朱 佑 旌 【 4 】 於 2006 年 設 計 兩 階 段 可 回 溯 式 門 檻 接 受 法 (Two-Phase Backtracking Threshold Accepting Algorithm, TBTA),係以兩個不同的目標來設 計兩階段不同的可回溯式門檻接受模組,並應用於時窗限制多車種回程取貨車

(22)

輛路線問題(Heterogeneous Fleet Vehicle Routing Problem with Backhauls and Time Windows, HVRPBTW)之求解上。而兩組 BTA 模組中,以第二階段可回 溯式門檻接受模組改善幅度較第一階段可回溯式門檻接受模組大。

2.4 螞蟻演算法回顧

近年來,還有許多更新的巨集啟發式方法被提出,例如螞蟻演算法(Ant Colony Optimization, ACO)便是其中的一種。ACO 的精神在於利用既有的經 驗,以不斷反覆地在可能的解空間中探索新的可能解以改善現有的解,並且在 探索的過程中不斷地自我改善以逼近最佳解,對於求解一些典型的組合最佳化 問題,已被證明有相當不錯的效果。

2.4.1 螞蟻演算法基本原理

ACO 係根據螞蟻找尋食物的現象而發展出來具有人工智慧的演算法。其基 本概念為自然界螞蟻一開始會隨機行走於巢穴與食物之間各個路線,當螞蟻在 移動過程中,會分泌一種化學物質:費洛蒙(Pheromone),藉由費洛蒙的濃度來 判斷該行進的路徑,費洛蒙濃度越高,該路徑被螞蟻選擇的機率也越大。因此,

基本上費洛蒙是螞蟻間的溝通管道。經一段時間後,螞蟻行經比較短的路徑會 較快回巢穴,所以在相同時間內較短的路徑被螞蟻行經次數較多,故費洛蒙濃 度高,最後大多數的螞蟻即會依此路線來回於巢穴與食物之間。圖 2.7 顯示出 自然界螞蟻之行為。

食物

巢穴 食物

巢穴 食物

巢穴 食物

巢穴

食物

巢穴

食物

巢穴

螞蟻移動之時間演化 費洛蒙濃度之時間演化

資料來源:【11】

圖 2.7 自然界螞蟻之行為(左:螞蟻移動情形,右:費洛蒙情形) 2.4.2 螞蟻演算法方法架構

到目前為止已經提出數種不同的螞蟻演算法架構,接下將介紹四種螞蟻演 算法,首先介紹螞蟻演算法相關參數和符號定義:

t :疊代次數。

m :螞蟻個數。

Ω:欲從城市i拜訪下一個城市所形成的集合。

ij( )t

τ :在疊代 t 中路徑( , )i j 的費洛蒙數量。

ηij:能見度,常以路徑( , )i j 距離的倒數表示之。

(23)

α β, :兩個參數,分別代表決定費洛蒙數量和能見度的影響關係。

ρ,δ :費洛蒙消散係數,分別使用在局部更新機制與全域更新機制當中。

k

p :螞蟻

ij k從城市i移動到城市 j 的機率。

q:隨機亂數值。

q :控制參數值。

0

Q:常數。

L :螞蟻

k k產生路線距離長度,亦即目標函數值。

Lgb:從實驗開始後至目前為止最佳解之路線距離長度。

一、螞蟻系統(Ant System, AS)

1996 年 Dorigo et al.【22】提出的螞蟻系統(AS)為 ACO 中最早期的版 本,運用於求解 TSP。AS 基本概念為狀態轉換及費洛蒙更新,分別說明 如下:

(ㄧ) 狀態轉換(State Transition)

螞蟻藉由選擇城市拜訪,直到所有城市都已被拜訪為止。對於選 擇一個城市作為拜訪對象的機率,需要考慮路徑上費洛蒙數量和能見 度(Visibility)這兩種因素。根據 Random Proportional Rule 來選擇拜訪 下一個城市,其選擇機率為式(2.13):

[ ( )] [ ]

if [ ( )] [ ]

0 otherwise

ij ij

k

ij h ih ih

t j

p t

α β

α β

τ η

τ η

∈Ω

 ∈Ω

=  

 

∑ (2.13)

若 α=0,則螞蟻選擇路徑距離最近的鄰近城市作為下一個拜訪城 市,則 AS 成為貪心解法(Greedy Heuristic, GH)。若 β= 0,則螞蟻 選擇下一個拜訪城市時,完全不考慮其間路徑距離長短,而完全以隨 機尋找方式進行,故 AS 變成隨機搜尋法(Random Search, RS)。可見 GH 及 RS 啟發式解法均屬於 AS 解法的一種特例。當然,一般在執行 AS 時,都會設定 α、β 為一不為零的數值。

(二) 費洛蒙更新

當所有螞蟻都已產生路線時,會進行費洛蒙更新,將新搜尋的解 轉換成費洛蒙訊息,儲存於路徑上;此外,也加入了費洛蒙消散係數 於此更新機制中。其更新方式,將會依據式(2.14):

τij(t+ =1) ρτij( ) + tτij

(2.14)

其中,

1

if ank travels on path( , ) ,

0 otherwise

m

k k

ij ij ij k

k

Q k i j

τ τ τ L

=

∆ = ∆ ∆ = 



ρ為費洛蒙消散係數,其值介於 0 與 1 之間,∆τij為路徑( , )i j 費洛蒙

(24)

總共累績的數量,

τ

ijk為螞蟻k在路徑( , )i j 上所增加的費洛蒙數量。

AS 法係重複上述兩個步驟,直到達到停止條件為止。

二、螞蟻群落系統(Ant Colony System, ACS)

Dorigo and Gambardella【23】於 1997 年為了加強求解績效,將 AS 做 了一些修改與改良,並取名為螞蟻群落系統(ACS),首先運用在 TSP。接 下來將概略說明 ACS 基本概念:

(一) 狀態轉換

ACS 導入一個新的控制參數

q ,其值介於 0 到 1 之間,做為確定

0 性移動與隨機性移動之間的門檻值。若隨機亂數值q小於或等於

q 則

0 根據式(2.15)採用確定性移動,即選取費洛蒙數量與能見度相乘積為最 大的城市;反之,若

q 小於

0 q採用隨機性移動,與 AS 選擇方式相同。

arg max

{

[ ( )] [ ]

}

if 0

otherwise

u iu

t

iu

q q

s

S

α β

τ η

∈Ω

⋅ ≤

=  

 (2.15)

(二) 全域費洛蒙更新法則

在 AS 係利用全部螞蟻所帶來的貢獻進行更新費洛蒙,但 ACS 只 有在最佳螞蟻產生的路線更新費洛蒙,其更新法則為式(2.16):

( 1) (1 ) ( )

ij t ij t ij

τ + = − ⋅δ τ + ⋅∆δ τ

(2.16)

1 if path( , ) global-best-tour

where =

0 otherwise

gb ij

L i j

τ  ∈

∆ 

其中,δ 為費洛蒙消散係數,介於 0 與 1 之間。

(三) 局部費洛蒙更新法則

在 ACS 每隻螞蟻只要選擇完一個城市,即針對所有路徑進行費洛 蒙更新,其更新方式為式(2.17):

( 1) (1 ) ( )

ij t ij t ij

τ + = − ⋅ρ τ + ⋅∆ρ τ

(2.17)

其中,∆τij有三種情形,第一種是∆ = ⋅τij γ maxz∈Ω`τjz,而(0≤ <γ 1) 是一個參數;第二種是∆ =τij τ0

τ 為起始費洛蒙數量;第三種是

0

ij 0 τ

∆ = 。

三、評等螞蟻系統(Rank-Based Version of Ant System, ASrank)

Bullnheimer et al.【18】依照 AS 為基礎進行修改,提出一個評等螞蟻 系統( ASrank),首先運用在 TSP。其基本概念如下:

(ㄧ) 狀態轉移

狀態轉移方式與 AS 相同。

(二) 費洛蒙更新

當所有螞蟻都已產生路線時,會先將 m 隻螞蟻所產生路線距離長 度依小到大排序(

L

1

L

2

≤ ≤

...

L

m),然後對第 w=σ- 1 隻螞蟻排列編號

(25)

(Ranking Index)以前之螞蟻進行費落蒙更新,且排在愈前面之螞蟻所 增加的費落蒙數量就愈多。其費洛蒙更新公式如式(2.18):

1

* 1

( 1) ( )

ij

t

ij

t

ij ij

σ µ

µ

τ ρ τ

τ τ

=

+ = ⋅ + ∑ ∆ + ∆

(2.18) ( ) if the -th best ant travels on path( , )

0 otherwise

ij

Q L

µ

i j

µ

σ µ µ

τ  − ⋅

∆ = 

*

* if path( , ) the best found tour so far 0 otherwise

ij

Q L i j

τ  σ⋅ ∈

∆ = 



其中,μ為螞蟻排列編號,

τ

ijµ為第μ隻螞蟻在路徑( , )i j 上所增 加的費洛蒙數量,Lµ為第μ隻最佳螞蟻所產生的路線距離長度,

τ

ij* 為精英螞蟻(Elitist Ants)在路徑( , )i j 上所增加的費洛蒙數量,σ為精英 螞蟻個數,

L 為至目前為止最佳解之路線距離長度。

*

四、極大-極小螞蟻系統(Max-Min Ant System, MMAS)

極大-極小螞蟻系統(MMAS)【32-34】相似於 ACS,其基本概念如下:

(ㄧ) 狀態轉換

狀態轉換與 ACS 相同。

(二) 費洛蒙更新

當所有螞蟻都已產生路線時,進行費洛蒙更新。藉由

τ 和

min

τ 參

max 數設定,將每條路徑之費落蒙數量控制在一定範圍內。當τij >τmax時,

則令τij =τmax;反之,當τij <τmin時,則令τij =τmin。其目的在於搜尋 解時不會過早收斂在某範圍中。更新方式為式(2.19):

τ

ij(

t + =

1)

ρτ

ij( )

t + ∆ τ

ijbest (2.19)

1 ( ) if (i,j) iteration-best-tour 0 otherwise

best ib ij

τL t

∆ = 

其中,

τ

ijbest為最佳螞蟻在路徑( , )i j 上所增加的費洛蒙數量,

ib( )

L t 為至目前 t 疊代為止所產生的最佳解之路線距離長度。

(26)

第三章 混合型巨集啟發式解題架構設計

本章將針對傳統車輛路線問題,結合門檻接受法((Threshold Accepting, TA) 與螞蟻演算法(Ant Colony Optimization, ACO)之費洛蒙記憶機制,以建構一混合 型巨集啟發式演算法,並將此命名為 TAANT_VRP。

3.1 TAANT_VRP 解題架構

整套 TAANT_VRP 的解題架構可分為三個模組,第一個為起始解構建模 組,第二個為鄰域搜尋模組,第三個為巨集策略模組。其整個 TAANT_VRP 之 解題架構如圖 3.1 所示。

圖 3.1 TAANT_VRP 之求解方法架構圖

如圖 3.1 所示:TAANT_VRP 首先使用「最遠起點之最省插入法(Farthest-start Cheapest Insertion, FCI)」構建起始解,接著利用路線內節線交換(Intra-route arc exchange)與路線間節點交換(Inter-route node exchange)來改善起始解,最後以門 檻接受法(Threshold Accepting, TA)為主要執行架構,然後以螞蟻演算法(Ant Colony Optimization, ACO)之費洛蒙記憶機制記載搜尋過程中各個局部最佳解 的目標函數值,並以此費洛蒙值來擾動節線成本,以便跳脫局部最佳解而找到 全域最佳解。以下分別說明三個模組的設計細節。

3.2 起始解構建模組設計

根據文獻回顧得知插入法不僅簡單且易執行,然而插入法之插入方式眾 多 ,本 研究 僅針 對 最 省 插入法 進 行 修改 ,設 計出 最遠起 點之最省插 入法 (Farthest-start Cheapest Insertion, FCI)來構建起始解。最遠起點之最省插入法可 分為以下三步驟:

(27)

步驟 1:考慮未在路線中的顧客點,找出距離場站最遠的顧客點做為路線的第 一點。

步驟 2:開始進行插入顧客點的動作,計算未在路線中的顧客點之插入路線每 段的插入成本,然後選擇插入成本最小之顧客點並將該點插入至該路 線。以圖 3.2 來說明插入成本準則概念:假設目前要將顧客點 k 插入 顧客點 i 與顧客點 j 之間,其插入成本準則為 Min( Cik + Ckj - Cij )。

步驟 3:依此準則循序(Sequential)產生其餘路線,過程中應符合容量限制,直 到所有的顧客點都已經接受服務為止。所謂循序的概念意指:一條路 線構建完畢之後再構建另一條新的路線。

圖 3.2 插入成本準則概念

3.3 鄰域搜尋模組設計

鄰域搜尋模組使用 2-opt、Or-opt、1-0、1-1 及 1-2 等方法做為改路線成本 工具。而鄰域搜尋模組可分為路線內改善及路線間改善,在路線內改善採用 2-opt、Or-opt(p=1)及 Or-opt(p=2);在路線間改善採用 1-0、1-1 及 1-2。整套鄰 域搜尋模組的執行方式如圖 3.3 所示。

圖 3.3 鄰域搜尋模組執行方式

本研究執行順序的設計採用路線內與路線間交叉使用,以 NS 表示。主要 原因為當連續使用路線內或路線間改善時,可能導致其後的改善工具無法有效 發揮作用,因此採用路線內與路線間交叉使用。執行順序如圖 3.4 所示。

(28)

圖 3.4 本研究鄰域搜尋法執行順序圖

在 Osman【30】的文獻中指出,執行鄰域搜尋時,尋找可交換的鄰解,決 定選擇那一個鄰解進行交換的策略稱為「選擇策略(Selection Strategy)」。而一般 來說有兩種:(1)最佳改善(Best Improve)策略,即從所有搜尋的鄰解中,選擇一 個改善最多的解進行交換;(2)首先改善(First Improve)策略,則是在搜尋過程 中,只要能改善就進行交換,在之後又有學者提到第三種選擇策略(3)半最佳改 善(Semi-best Improve),即對特定一點,從所有搜尋的鄰解中,選擇一個改善最 多的解進行交換。本研究均採用半最佳改善策略。

一、路線內改善 (ㄧ) 2-opt 交換

圖 3.5 說明 2-opt 交換法之解題概念。圖 3.5 (A)為一起始路線,將 (1,3)和(2,4)兩條節線刪去,重新連結(1,2)和(3,4),並將(3,2)反轉成 (2,3),成為圖 3.5 (B)。2-opt 的概念在於對任一路線依上圖方式交換路 線上不相鄰的兩條節線,然後檢查交換後的解是否優於交換前的解。

若優於之前的解則更新;若無,則維持原解。接著繼續交換其他節線,

直到可能交換的節線都檢查完畢為止。假如一條路線僅有一個顧客點 則不適用 2-opt 交換法,當路線有方向性時須維持其反轉後之方向性 與原來路線相同。

(A) (B) 圖 3.5 2-opt 交換法示意圖

(二) Or-opt 交換

該方法在每次執行鄰域搜尋的迴圈當中,係陸續將某一條節線

(p=2)及一個節點(p=1)自路線中抽出,然後將其插入該路線的其

(29)

他節線之間,如圖 3.6 所示,接著檢查交換後的解是否優於交換前的 解。若優於之前的解則更新;若無,則維持原解。接著繼續交換其他 節線,直到可能交換的節線都檢查完畢為止。Or-opt 交換法因在計算 時不須對任何節線作反轉,因此其提高了執行的效率,且也有可能將 2-opt 無法改善的部份進行改善。圖 3.6 (A)為一起始路線,將(1,5)、(5,2) 和(4,6)三條節線刪去,重新連結(1,2)、(4,5)和(5,6),成為圖 3.6 (B)。

圖 3.6 (C)與圖 3.6 (D)為 p=2 交換示意圖。

(p=1)

(A) (B)

(p=2)

(C) (D)

圖 3.6 Or-opt(p=1,2)交換示意圖 二、路線間交換

(ㄧ) 1-0 節點交換

以圖 3.7 說明 1-0 節點交換法之解題概念。其交換法陸續將一個 節點自路線中抽出,然後將其插入其他路線的其他節線之間,然後檢 查交換後的解是否在不超過容量限制情形下優於交換前的解,若優於 之前的解則更新;若無,則維持原解。

圖 3.7 1-0 節點交換示意圖 (二) 1-1 節點交換

以圖 3.8 說明 1-1 節點交換法之解題概念。其交換法將任兩條路

(30)

線各自將一個節點抽出,然後互換插入之位置,接著檢查交換後的解 是否在不超過容量限制情形下優於交換前的解,若優於之前的解則更 新;若無,則維持原解。

圖 3.8 1-1 節點交換示意圖 (三) 1-2 節點交換

以圖 3.9 說明 1-2 節點交換法之解題概念。其交換法分別從任兩 條路線中將其中一條路線的一個節點以及另一條路線的一條節線自路 線中抽出,然後互換插入之位置,接著檢查交換後的解是否在不超過 容量限制情形下優於交換前的解,若優於之前的解則更新;若無,則 維持原解。

圖 3.9 1-2 節點交換示意圖

3.4 巨集策略模組設計

本研究在巨集策略模組方面,共設計了三種執行架構,分別為門檻接受 (TA) 、 費 洛 蒙 擾 動 節 線 成 本 (ANT) 及 門 檻 接 受 加 上 費 洛 蒙 擾 動 節 線 成 本 (TAANT)。前述之執行架構均以鄰域搜尋模組為核心工具;在控制參數方面,

共包括:起始門檻值(T0)、門檻數列長度(K)、門檻數列收斂型態及費洛蒙消散 參數(ρ)。門檻數列在門檻數列長度(K)期間,自起始門檻值(T0)逐漸收斂到 0。

3.4.1 TA 執行流程及控制參數

TA 執行流程如圖 3.10 所示,TA 的核心搜尋與接受法則如圖 3.11 所示。當 要執行 TA 時必須先設定起始門檻值與門檻數列長度,接著按照 TA 的接受法 則決定是否更新現有解。當執行鄰域搜尋有找到新的可行解,必須判斷此可行 解與現有解之差值是否在門檻值之下,若是在門檻值之下則接受交換並更新暫 優解,若此暫優解優於搜尋過程中目前之最佳解,則更新最佳解。當執行鄰域 搜尋法時,依序執行所設定之鄰域搜尋法,而鄰域搜尋法皆執行完後,進行更 新門檻值,繼續執行核心搜尋,重新考慮交換情況,直到停止法則成立。執行 完後將列出過程中之最佳解。

(31)

圖 3.10 TA 執行流程圖

(32)

圖 3.11 TA 核心搜尋與接受法則

TA 在門檻數列收斂型態控制參數方面,根據 Althofer and Koschnick【16】

證明指出,無法明確決定何謂最佳的門檻數列收斂型態,因此本研究只採用等 差遞減門檻數列。在起始門檻值(T0)、執行回合數(K)、每次遞減值(Th)控制參 數方面,其更新公式如下所示:

Th T0

= K (3.1)

T

k

= T

k1

T

h , 1 ~

for k = K

(3.2) 其中,式(3.1)為等差遞減每次所減少的值,式(3.2)為等差遞減的收斂公式。

3.4.2 ANT 執行流程及控制參數

ANT 執行流程如圖 3.12 所示,ANT 的費洛蒙擾動與更新費洛蒙如圖 3.13 所示。當要執行 ANT 時必須先設定執行回合數,接著按照鄰域搜尋法的接受 法則決定是否更新現有解。當執行鄰域搜尋,會利用費洛蒙函數記載搜尋過程 中各個局部最佳解的成本目標函數值,並以此費洛蒙值來擾動節線成本,然後 經由擾動後所找到新的可行解,必須判斷此可行解是否優於現有解,若是則接 受交換並更新暫優解,並在此時會更新費洛蒙,而暫優解若優於搜尋過程中目 前之最佳解,則更新最佳解。當執行鄰域搜尋法時,依序執行所設定之鄰域搜 尋法,而鄰域搜尋法皆執行完後,會判斷有無達到停止法則,若無,則重新考 慮交換情況;反之,將列出過程中之最佳解。

(33)

圖 3.12 ANT 執行流程圖

(34)

圖 3.13 ANT 費洛蒙擾動與更新費洛蒙

本研究之 ANT 費洛蒙更新公式係以式(2.16)為基礎,修改成如式(3.3),其 中

τ

ijnew為節線( , )i j 上新的費洛蒙值,

τ 為節線

ijold ( , )i j 費洛蒙值之累積量,ρ為 費洛蒙濃度消散係數。費洛蒙值(τij)控制參數方面,設定為當搜尋過程中產生 解時,會判斷此解的路線是否包含節線( , )i j ,若有則為其成本目標函數值

L

solution 的倒數;若無則為 0。

) 1

( ij ijold

new

ij

ρ τ ρ τ

τ = − ⋅ ∆ + ⋅

(3.3)





 ∈

=

otherwise

, 0

solution the

of tour the ) , ( if , 1

solutiont

j L i

τij

3.4.3 TAANT 執行流程及控制參數

TAANT 執行流程如圖 3.14 所示,TAANT 的費洛蒙擾動與更新費洛蒙如圖 3.15 所示。當要執行 TAANT 時必須先設定起始門檻值與門檻數列長度,接著 按照 TA 的接受法則決定是否更新現有解。當執行鄰域搜尋,會利用費洛蒙函 數記載搜尋過程中各個局部最佳解的成本目標函數值,並以此費洛蒙值來擾動 節線成本,然後經由擾動後所找到新的可行解,必須判斷此可行解與現有解之 差值是否在門檻值之下,若是在門檻值之下則接受交換並更新暫優解,並在此 時會更新費洛蒙,而暫優解若優於搜尋過程中目前之最佳解,則更新最佳解。

當執行鄰域搜尋法時,依序執行所設定之鄰域搜尋法,而鄰域搜尋法皆執行完 後,進行更新門檻值,繼續執行核心搜尋,重新考慮交換情況,直到停止法則 成立。執行完後將列出過程中之最佳解。

(35)

圖 3.14 TAANT 執行流程圖

參考文獻

相關文件

由於較大型網路的 規劃必須考慮到資料傳 輸效率的問題,所以在 規劃時必須將網路切割 成多個子網路,稱為網 際網路。橋接器是最早

形成 形成 形成 研究問題 研究問題 研究問題 研究問題 形成問題 形成問題 形成問題 形成問題 的步驟及 的步驟及 的步驟及 的步驟及 注意事項 注意事項 注意事項

在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研

路旁上落客貨活動頻繁,經常有車輛駛經並需要在路旁短暫停留。就以九龍 上海街為例,該路段共有 7 個巴士站,有 11 條巴士線,每日有 690

在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研

 將建議行車路線、車輛狀態等 資訊投影於擋風玻璃 ,創造猶如科 幻電影一般的虛擬檔風玻璃系統所整合。在以液晶螢幕彌補視覺死角

其硬體架構如圖 9.3 所示。本實驗最主要的目的是要將之前學長所做的 GPS/INS 整合 部分中的加速儀用

※據表 4-1-1 顯示,騎機車之消費者以迎曦門與光華區最多,相對的停車問題也成了重