國
立
交
通
大
學
運 輸 科 技 與 管 理 學 系 碩 士 班
碩 士 論 文
以改良型可回溯式門檻接受法
求解
回程取貨車輛路線
問題之研究
Using Modified BATA to Solve
Vehicle Routing Problem with Backhauls
研 究 生:呂泓儒
指導教授:韓復華 教授
中
華 民 國 九 十 八 年 七 月
以改良型可回溯式門檻接受法求解回程取貨車輛路線問題之研究
Using Modified BATA to Solve
Vehicle Routing Problem with Backhauls
研 究 生:呂泓儒
Student : Hong-Ru Lu
指導教授:韓復華
Advisors : Anthony Fu-Wha Han
國立交通大學
運輸科技與管理學系
碩士論文
A Thesis
Submitted to Department of Transportation Technology and Management
College of Management
National Chiao Tung University
in partial Fulfillment of the Requirements
for the Degree of Master in
Transportation Technology and Management
July 2009
Hsinchu, Taiwan, Republic of China
以改良型可回溯式門檻接受法求解回程取貨車輛路線問題之研究
學生:呂泓儒
指導教授:韓復華 教授
國立交通大學運輸科技與管理學系碩士班
摘
要
回程取貨車輛路線問題(vehicle routing problem with backhauls, VRPB) 是車輛路線 問題 (vehicle routing problem, VRP) 的延伸,屬於解題複雜度高的NP-hard問題。其假設 車輛必須先服務完所有送貨點顧客,之後利用回程的空車再開始服務取貨點顧客。此類 型問題在相關產業的物流配送上應具有相當價值。
可 回 溯 式 門 檻 接 受 法(Backtracking Adaptive Threshold Accepting, BATA) 是 由 Tarantilis et al. (2001) 首先提出,對於門檻回溯比率值 b 僅考慮b < 1的情形。本研究提 出改良型可回溯式門檻接受法(Modified Backtracking Adaptive Threshold Accepting, MBATA),除延用 b > 1 之門檻回溯公式(廖昱傑,2007)以外,另在門檻回溯機制中加 入兩極跳躍法(Flip-Flop Method, FF)的概念,其目的即在於當陷入區域最佳解而難以 改善時,使其在一個可接受的範圍(門檻值)內進行反向操作的搜尋,如此能增加搜尋機 制的廣度。
在求解績效評估方面,本研究以Goetschalckx and Jocabs-Blencha (1989)的62題國際 標竿例題進行測試。利用C#語言進行程式撰寫,在Intel(R)雙核心CPU為2.00GHz的個人 電腦進行測試。就平均誤差率而言,本研究提出的MBATA比傳統的BATA在所有測試組 合中,有15%結果相同,其餘 85% 均有較佳之結果。本研究也對MBATA進行參數測試, 並提出建議之參數。最後再與近年來國際期刊之文獻進行比較。本研究62題標竿例題中 共有37題找到文獻已知最佳解,而各題最佳結果與已知最佳解平均誤差僅0.16%,平均 每題運算時間4.68秒。結果顯示,MBATA在求解VRPB問題上相當具有潛力。 關 鍵 詞 : 門 檻 接 受 法 、 可 回 溯 式 門 檻 接 受 法 、 改 良 型 可 回 溯 式 門 檻 接 受 法 、 回程取貨車輛路線問題、兩極跳躍法
Using Modified BATA to Solve
Vehicle Routing Problem with backhauls
Student: Hong-Ru Lu Advisor: Anthony Fu-Wha Han Department of Transportation Technology and Management
National Chiao Tung University
Abstract
Vehicle Routing Problem with Backhauls (VRPB), an extension of the classical Vehicle Routing Problem, is a very complicated NP-Hard problem. The VRPB assumes that all linehaul customers should be visited before any backhaul customer. Successful applications of the VRPB in real-world distribution will improve the performance of logistics in the related industry.
Backtracking Adaptive Threshold Accepting (BATA) was first proposed by Tarantilis et al. (2001), which only considers backtracking factor b < 1. In this paper, we proposed a Modified Backtracking Adaptive Threshold Accepting (MBATA) approach considering the case of b > 1. We also applied the concept of Flip-Flop Method (FF) in backtracking mechanism to enhance the diversification in the search process.
The 62 benchmark problems described by Goetschalckx and Jocabs-Blencha (1989) were selected for the evaluation of our meta-heuristics. Our proposed heuristics were coded in Visual C# and tested on a Intel(R) Core(TM)2 CPU 2.00GHz personal computer. We found that our proposed MBATA heuristics outperformed traditional BATA in the average deviation for 85% of all the cases we tested.As compared to the 62 benchmark results reported in recent literatures, we found 37 best-known solutions and the average deviation is merely 0.16%. The average computer time per instance is 4.68 CPU seconds which demonstrated the efficiency and potential applicability of our proposed method.
Key Words: Threshold Accepting (TA),
Backtracking Adaptive Threshold Accepting (BATA), Modified Backtracking Adaptive Threshold Accepting (MBATA), Vehicle Routing Problem with Backhauls (VRPB), Flip-Flop Method (FF)
誌
謝
經過了兩年的努力,總算完成論文,從起初的茫然到最後完成的喜悅,點滴只有走 過才能瞭解。本論文能夠順利完成,首先要感謝恩師 韓復華教授兩年來嚴謹的教學態 度以及耐心細心的指導,不論是在學業或平常待人接物上的教誨,都使我有更深的體會 與警惕,在此致上由衷的感謝,謝謝老師。 在口試期間,承蒙系上 黃家耀助理教授、中華大學 張靖副教授以及大師兄 卓 裕仁助理教授細心閱讀並不吝指教與斧正,提供許多寶貴意見讓本論文更臻完善。 在交大兩年學習的日子隨著論文完成也將告一段落。感謝曾經給我指導與協助的 人。特別感謝系上所有老師、系辦助理及各位學長姐與學弟妹的照顧。感謝研究室的所 有夥伴。負責打理研究室的大頭目威哥;給予許多協助及開朗笑聲且喜歡很認真問一個 問題的俊德;很照顧並鼓勵我們的陳董;看到我就會說聞到一股菜味的學勛;教導程式 並且在我有問題時與我討論研究的超罩流氓教授小朱;一起合作報告的好伙伴阿保;與 我討論論文方向與分享經驗的仲豪、Poney 與沂茹。有了各位學長姊的照顧,讓我在課 業以及生活上獲益良多。另外也要感謝一起奮鬥兩年的同學們,忠傑的大一下還有幫忙 電腦上的問題;鴻祥帶我們熟悉瞭解交大及與我一同對抗暴力怡文;帶來歡樂還有欠我 很多一百塊的婷尹以及陪我一起運動減肥及引領程式入門的小愚。還要謝謝辛苦的助理 們,自稱仙女以及翹臀女間諜的小萱、載我載我雪花,語出驚人令人笑翻的阿春。以及 在我們忙論文時熱心幫忙處理雜務的怡文、少能與施公,希望你們的論文也能夠順利的 完成,加油!感謝在網路實驗室與大家一起歡樂和同甘共苦時光。 還有要感謝一路走來許多的同學、學長姊、朋友以及打工同事,泳毅、哲皓、宏瑋、 香腸、鳥兒、小小、文進、叉姊、正賢、重育、俊志、大鈞、國濬、諾諾、泡泡、恩由, 謝謝你們的陪伴,不論是幫我解決疑惑與困難、白爛的喇低賽、八卦的交換、彼此關心 鼓勵、必要時伸出援手互相幫忙,謝謝你們讓我生活更多采多姿。更感謝大學時期專題 指導老師 李治綱教授以及從小到大學習路上眾多師長的栽培,才能讓我有機會進入交 大學習,感謝所有老師。 最後,要感謝我的家人,爸、媽、妹、弟,感謝你們讓我有個溫暖幸福的家,也讓 我求學階段無後顧之憂。感謝二姨、小舅這段期間給予許多協助。感謝所有關心我幫助 我的親戚族人。也感謝故鄉的平野、大海與山林,永遠迎接著我讓我能夠放鬆、靜心。 要感謝的人太多了,一頁A4 無法表盡所有的感謝。在此僅將這些許成就與喜悅之 情與你們共同分享。真的非常感謝大家。感恩,謝謝。 呂泓儒 謹誌 于 交大網路實驗室 2009.07以改良型可回溯式門檻接受法求解回程取貨車輛路線問題之研究
目
錄
摘 要 ... i Abstract ... ii 誌 謝 ... iii 目 錄 ... iv 表目錄 ... vi 圖目錄 ... vii 第一章 緒論 ... 1 1.1 研究動機與目的 ... 1 1.2 研究內容與範圍 ... 2 1.3 研究方法與流程 ... 3 第二章 文獻回顧 ... 5 2.1 回程取貨車輛路線問題(VRPB) ... 5 2.1.1 VRPB 問題之定義 ... 5 2.1.2 VRPB 問題之數學模式 ... 5 2.2 VRPB 之啟發式解法回顧 ... 7 2.3 可回溯式門檻接受法回顧 ... 9 2.3.1 巨集啟發式解法 ... 9 2.3.2 可回溯式門檻接受法(BATA) ... 14 2.4 小結 ... 15 第三章 VRPB 問題之巨集啟發式解法架構設計 ... 16 3.1 起始解構建模組設計 ... 16 3.2 鄰域搜尋改善模組設計 ... 18 3.3 改良型可回溯式門檻接受法(MBATA)模組設計 ... 203.3.1 BATA 模組 ... 21 3.3.2 MBATA 模組 ... 23 第四章 VRPB 標竿題庫測試結果比較分析 ... 25 4.1 VRPB 測試題庫說明 ... 25 4.2 改良型可回溯式門檻接受法模組測試 ... 27 4.2.1 實驗設計與參數設定 ... 27 4.2.2 門檻數列長度之測試 ... 28 4.2.3 起始門檻比率與門檻下降比率之交叉測試 ... 30 4.2.4 門檻回溯比率與門檻下降比率之交叉測試 ... 31 4.2.5 連續回溯最大次數之測試 ... 32 4.2.6 小結 ... 33 4.3 鄰域搜尋改善模組績效測試 ... 33 4.4 MBATA 與 BATA 之績效比較 ... 34 4.5 測試結果與文獻已知最佳解比較分析 ... 36 第五章 結論與建議 ... 39 5.1 結論 ... 39 5.2 建議 ... 39 參考文獻 ... 41 附錄A 五種交換法不同順序排列對起始解之交換改善率 ... 45 附錄B 本研究各題最佳結果之成本及路線詳細資料 ... 46
表目錄
表1.1 本研究之 VRPB 問題特性 ... 2 表2.1 以巨集啟發式解法求解 VRPB 問題之相關文獻整理表 ... 9 表2.2 多種巨集啟發式解法之解題策略比較 ... 10 表2.3 SA、TA、GDA 與 RRT 等方法之比較 ... 13 表4.1 GJ62 題 VRPB 標竿例題 ... 26 表4.2 六種對起始解改善率最佳之鄰域搜尋模組 ... 27 表4.3 連續回溯發生的最大次數 ... 32 表4.4 建議參數下不同鄰域搜尋模組的求解平均誤差 ... 33 表4.5 建議參數下不同鄰域搜尋模組所找到已知最佳解的題數 ... 33 表4.6 以 MBATA 求解較 BATA 求解誤差率(%)之改善 ... 35 表4.7 以 MBATA 求解較 BATA 求解多找到已知最佳解之題數 ... 35 表4.8 本研究最佳單組參數結果與測試過程中之最佳結果 ... 37圖目錄
圖1.1 研究流程圖 ... 4 圖2.1 兩極跳躍法之解題概念圖 ... 11 圖2.2 TA、GDA 與 RRT 接受法則示意圖 ... 12 圖2.3 TA 門檻數列遞減型態 ... 13 圖2.4 BATA 門檻數列變化型態示意圖 ... 14 圖3.1 本研究巨集啟發式解法流程圖 ... 16 圖3.2 起始解構建流程圖 ... 17 圖3.3 1-0 節點交換法之概念示意圖 ... 18 圖3.4 1-1 節點交換法之概念示意圖 ... 19 圖3.5 2-Opt*節線交換法之概念示意圖 ... 19 圖3.6 2-Opt 節線交換法之概念示意圖 ... 20 圖3.7 Or-Opt 節線交換法之概念示意圖 ... 20 圖3.8 本研究以可回溯式門檻接受法求解 VRPB 流程圖 ... 22 圖3.9 本研究以改良型可回溯式門檻接受法求解 VRPB 架構流程圖 ... 24 圖4.1 不同 K 值與 b 值對於求解結果的影響(To = 0.01, r = 0.9)... 28 圖4.2 r = 0.8 時,不同 K 與 T0值對於求解結果的影響 ... 29 圖4.3 r = 0.99 時,不同 K 與 T0值對於求解結果的影響 ... 29 圖4.4 不同 K 值與 T0值平均耗費的時間(r = 0.99, b = 20) ... 30 圖4.5 不同 T0值與r 值對求解結果的影響(b = 0.98) ... 30 圖4.6 不同 T0值與r 值對求解結果的影響(b = 20) ... 31 圖4.7 不同 r 值對於求解結果的影響(T0 = 0.01) ... 31 圖4.8 不同 r 值對於求解結果的影響(T0 = 0.07) ... 32第一章 緒論
1.1 研究動機與目的
全球商業的競爭態勢改變,從企業對企業間的競爭逐漸擴大到供應鏈(Supply Chain) 對供應鏈間的競爭。在供應鏈內上、下游的企業組織都必須配合整體供應鏈的流程與活 動,以降低成本、提升效率並共享利利潤。其中物流配送作業為供應鏈內相當重要的一 個環節,佔不少成本,因此受到企業重視與關切。在物流配送相關領域當中,車輛路線 問題(Vehicle Routing Problem, VRP)的應用在於如何有效利用車輛及規劃出經濟的取、送 貨路線,才能有效降低運輸成本、提高效率並創造收益。因此車輛路線問題是許多企業 物流配送部門的重要課題。車輛配送實務上存在有送貨與取貨需求的顧客點。倘若從場站出發服務完所有送貨 點的顧客後,利用此空車在回程的路上進行取貨作業,可以提高車輛的使用率並節省多 派車取貨的成本,如此型態的問題稱作「回程取貨車輛路線問題(Vehicle Routing Problem with Backhauls, VRPB)」。VRPB 問題將顧客需求點分為送貨點(Linehauls)與取貨點 (Backhauls),車輛將貨物從場站運送給送貨點;由取貨點收取貨物運回場站。並假設同 一車輛必須先服務完所有送貨點顧客,然後才能開始服務取貨點顧客。VRPB 實務例子 很多,在Daniel, O. et al.[10]文獻中也舉出 VRPB 實務上的應用最常出現在食品雜貨運 輸上。例如:對於一食品雜貨製造工廠而言,超市及各零售商就是其送貨點;食品雜貨 原物料產地就是其取貨點。工廠將製好的產品利用車輛送往超市及各零售點後;回程 時,利用此空車到原物料產地進行取貨,把原物料送回製造工廠。如此就是一典型VRPB 的例子。 VRPB 為 VRP 問題的延伸,同屬 NP-hard 的問題,當問題規模增大時,求解時間隨 問題變數個數呈指數成長。此類問題求解適合運用啟發式解法(Heuristic Algorithms),期 望能在有效時間內找出精確度高的近似解。近年來的文獻大多設計巨集啟發式解法 (Meta-heuristics)來求解 NP-hard 的問題。巨集啟發式解法的架構是以高階的策略做為指 引,同時結合傳統的啟發式解法做搜尋,來跳脫或避免落入局部最佳解。常見的巨集啟 發式解法有禁忌搜尋法、演化法、門檻接受法、螞蟻演算法及近年所提出的可回溯式門 檻接受法(Backtracking Adaptive Threshold Accepting, BATA)等。廖昱傑[47]曾應用 BATA 並對門檻回溯公式做一修改來求解VRP 問題,結果與標竿題庫差距僅 0.87%,顯示 BATA 可成為相當好的巨集啟發式方法。 綜合上述,且文獻中尚無嘗試以確定性接受的門檻型巨集啟發式解法求解VRPB 問 題,故本研究之目的即在以BATA 為求解架構,探討其在 VRPB 問題求解上的效率與精 確度。使用廖昱傑[47]的修正門檻回溯公式,並且應用兩極跳躍法(Flip-Flop, FF)[44] 的概念針對門檻回溯情形發生時,設計一包容性搜尋模組為找尋成本小於門檻中最大的
解做交換以增加搜尋機制的廣度。期望能構建出一套有效率的求解方法,在有效的時間 下求解出精確度高的近似最佳解。
1.2 研究內容與範圍
VRPB 問題將顧客需求點分為送貨點(Linehauls)與取貨點(Backhauls),車輛將貨物 從場站運送給送貨點;由取貨點收取貨物運回場站。並假設同一車輛必須先服務完所有 送貨點顧客,然後才能開始服務取貨點顧客。 茲將本研究所要探討的VRPB 問題特性整理如下表 1.1: 表1.1 本研究之 VRPB 問題特性1 問題類型 特性說明 設施資源 1. 單一場站 2. 單一車種 3. 車輛數已知且固定 4. 車輛有容量限制 5. 每輛車僅服務一條路線 顧客需求 1. 分為送貨點與取貨點 2. 需求固定且不可分割 節點服務 1. 流量守恆 2. 避免子迴路 3. 同路線內,先送貨、後取貨 4. 每個顧客點只被一輛車服務僅一次 5. 同路線內不可全為取貨點 最佳化目標 總行駛路線成本最小 本研究的主要內容如下: 1. 探討與回顧 VRPB 相關文獻和啟發式解法。 2. 以改良型可回溯式門檻接受法作為 VRPB 主要的解題架構,並結合傳統路線構建與 鄰域改善方法,發展求解VRPB 之巨集啟發式解法。 3. 以 C#語言為路線構建與其他交換法撰寫程式,並為以改良型可回溯式門檻接受法 為架構之巨集啟發式解法撰寫程式。 4. 蒐集國際文獻已發表之 VRPB 問題所使用之標竿題庫作為測試例題,並以本研究所 發展之巨集啟發式解法進行求解,藉此瞭解其應用於VRPB 測試例題的解題績效。 5. 針對本研究發展的求解架構所遭遇到的問題與發現做一整理,以提供進一步修改或 後續研究之參考。1.3 研究方法與流程
由文獻回顧可知,近年來尚未有使用確定性接受的門檻型巨集啟發式解法來求解 VRPB 問題的研究。而可回溯式門檻接受法應用於組合最佳化問題在文獻上還不多見, 卓裕仁、朱佑旌[42]與廖昱傑[47]以 BATA 分別求解 HVRPBTW 與 VRP 結果都相當好。 而陳仲豪[43]以時窗離散化的方法,將 VRPBTW 的時窗限制消除,轉成無時窗的 VRPB 問題,並以BATA 為求解架構。 因此,本研究選擇使用可回溯式門檻接受法為基本的求解架構,並以啟發式解法做 為交換改善的核心搜尋方法,並針對門檻回溯情況發生時設計一包容性搜尋模組為找尋 成本小於門檻中最大的解做交換,以增加搜尋機制的廣度。期望能構建出一套有效率的 巨集啟發式解法在有效的時間內,求出較為精確的近似最佳解。 本研究之研究流程與步驟,如圖1.1 所示,並且分述如下: (1)相關文獻蒐集與回顧 蒐集與回顧VRPB 文獻與所使用啟發式解法相關研究,並閱讀關於 BATA 巨集啟發 式解法的相關文獻,藉以瞭解VRPB 問題的架構、解題概念與策略。 (2)蒐集 VRPB 標竿題庫 蒐集目前已發表於國際期刊上求解VRPB 問題所使用的標竿題庫,及其測試的最佳 結果。本研究以Goetschalckx and Jocabs-Blencha 提出之 GJ 題庫 62 標竿例題做為測試的 題目,此題庫可由Goetschalckx 於 Georgia Institute of Technology 的個人網站[37]下載得 來。而此題庫的已知最佳解則是由已發表於國際期刊的文獻[3]、[14]、[25]、[27]與[36] 彙整而得。蒐集之題庫與已知最佳解作為本研究所提出之巨集啟發式解法的測試與評估 比較的標準。(3)起始解構建
利用平行式的最遠起點之最省插入法(Farthest-start Cheapest Insertion, FCI)[48]建立 起始解構建模組,同時針對 VRPB 問題特性加以修改作為起始解構建模組測試。 (4)鄰域搜尋與改善模組 本階段主要針對前一階段所產生的起始解執行鄰域搜尋,使用傳統的鄰域搜尋法建 立改善模組。在路線間交換法部分,使用1-0 節點交換法、1-1 交換法與 2-Opt*節線交 換法;而在路線內交換部分,採用2-Opt 與 Or-Opt 交換法。 (5)巨集啟發式解法 運用可回溯式門檻接受法為主要架構,並結合其他核心的鄰域搜尋法。在門檻回溯 公式採用廖昱傑[47]之修改型門檻回溯公式,另外也參考兩極跳躍法的概念對包容性搜 尋模組設計找尋成本小於門檻之中最小或最大者兩種不同的模組,來建立本研究求解 VRPB 問題之巨集啟發式解法求解架構。
(6)VRPB 題庫執行測試 使用本研究所提出之巨集啟發式解法的求解架構,所蒐集之國際標竿題庫做求解與 測試。 (7)測試結果分析比較 前一階段之求解結果與國際文獻所發表的已知最佳解做比較,並分析本研究提出之 巨集啟發式解法之測試結果與執行績效,以評估此求解模組解題效率與未來發展可行 性。 (8)結論與建議 根據上述研究步驟所得之結果,整理歸納出本研究之重要發現與具體結論,並對於 未來可能的重點項目與後續研究提出相關建議以供參考。 圖1.1 研究流程圖1
第二章 文獻回顧
本章回顧國際間研究VPRB 之文獻與相關啟發式解法。於 2.1 節先介紹回程取貨車 輛路線問題;2.2 節回顧近年來求解 VRPB 問題之啟發式解法與文獻;2.3 節回顧相關巨 集啟發式解法與本研究主要使用的可回溯式門檻接受法。2.1 回程取貨車輛路線問題(VRPB)
2.1.1 VRPB 問題之定義 回程取貨車輛路線問題(VRPB)是 VRP 同時包含送貨點與取貨點的問題,為 VRP 問 題之延伸。送貨點(Linehaul points)接受來自場站(Depot)的貨物;而在取貨點(Backhaul points)收取貨物運送回到場站。在每一個路線中,所有的送貨點必須在任一個取貨點之 前被服務。如此可節省重新安排貨物堆疊方式所花費的時間。每個顧客點的送貨(或者 取貨)量是固定且已知的。所有車輛為單一車種,並假設都有固定車容量。因此 VRPB 問題的可行解是由一組路線所構成,每條路線必須先服務完所有的送貨點之後才進行取 貨服務,且每條路線內的所有送貨總量與取貨總量分別不能夠違反車容量限制。求解的 目標為總旅行成本最小化。 2.1.2 VRPB 問題之數學模式以下VRPB 數學模式由 Goetschalckx and Jacobs-Blecha[16]提出。可精確定義問題。 參數定義: = K 車輛數 = N 送貨點之顧客數目 = M 取貨點之顧客數目 ,..., 2 , 1 ; i N i ai =送貨點顧客 之需求量 = M N N N i i bi =取貨點顧客 之需求量; = +1 , +2 ,..., + 車輛容量限制 = C ..., , 1 , ..., , 1 0, , ; i j N N N M j i cij =車輛從顧客 運送至顧客 之運輸成本 = + + 變數定義:
⎩ ⎨ ⎧ = = 其他 N 1,..., 0, i ; 被車輛k服務 i 送貨點顧客 0 1 ik u ⎩ ⎨ ⎧ = + = 其他 0 M 1,..., N 0, j ; 服務 k 被車輛 j 取貨點顧客 1 jk v ⎩ ⎨ ⎧ = + + = 其他 0 M N ..., 1, N N, , ... 1, 0, j i, ; j 服務到顧客 i 從顧客 k 車輛 1 ijk x VRPB 之數學模式: }. ,... 1 , ,..., 2 , 1 { 1 as expressed be can set the where ) 11 ( , ,..., 2 , 1 , ,..., 1 , ,..., 1 , 0 , , 1 0 (10) 2,..., 1, , 1 (9) 2,..., 1, , ..., , 2 , 1 , ..., , 1 0, (8) 2,..., 1, ..., , 2 , 1 0, , 2,..., , 1 ) 7 ( ,..., 2 , 1 , ,..., 2 , 1 , 1 0 , ,..., 2 , 1 , 1 (6) ,..., 2 , 1 , 1 (5) ,..., 2 , 1 (4) K, ...., 1,2, k N, 1,2,..., i 1, or 0 ,..., 2 , 1 , 1 (3) 2,..., 1, 1 (2) ..., 2, 1, Subject to (1) : Minimize 0 0 1 0 0 0 1 1 0 1 1 1 0 0 M N N N of Q subset nonempty every for Q x that such x all S S K K M N N N j i or x S x K k x K k M N N N i if v N i if u x K k M N N N j if v N j if u x K k M N N N i or v K k v M N N N i v K k C v b u K k u N i u K k C u a x c Q j ijk Q i ijk ijk ijk N i M N j andj N ijk M N j ik ik ijk M N i jk jk ijk ik k K k ik M N N i ik i ik k K k ik N k ik i K k M N i M N j ijk ij + + ⎭ ⎬ ⎫ ⎩ ⎨ ⎧ − ≤ = = + + = = ∈ = = = ⎩ ⎨ ⎧ + + + = = = = ⎪⎩ ⎪ ⎨ ⎧ + + + = = = = + + + = = = = + + + = = = ≤ ⋅ = = = = = = = = ≤ ⋅ ⋅
∑
∑
∑ ∑
∑
∑
∑
∑
∑
∑
∑ ∑ ∑
∈ ∈ = + = + = + = + = = + + = = = = + = + =上述數學模式中,式(1)為目標函數,表示求解目標為總行駛路線成本最小化;式(2) 與式(5)對每一車輛分別限制其送貨點顧客總貨物量及取貨點顧客總貨物量都分別不可 以超過車輛容量;式(3)與式(6)分別限制每一顧客點僅能由一輛車完成服務。式(4)與式 (7)限制每輛車只服務一條路線,即從場站出發一次,進行服務作業後回到場站且僅一 次。式(8)為若車輛 k 從服務完顧客點 i 後,接著前往服務顧客點 j 則xijk =1;若否則 0 = ijk x 。式(10)限制每條路線只有一段從送貨點連結到取貨點的路線,以此來確保車輛 是在服務完所有送貨點顧客之後才會前往取貨點取貨或者回到場站。而限制式(11)避免 子迴圈(Sub-tour)的產生。 由上述定義與數學規劃模式可知,VRPB 為 VRP 問題的延伸。VRP 問題是由單一 車種、固定的車容量限制所組成的車隊,從單一場站出發,服務完一群需求已知的顧客 後再回到場站,目標是追求總旅行成本最小化。因此當VRPB 的送貨點集合或取貨點集 合其中之一為空集合時,VRPB 就簡化為 VRP。 VRPB 車輛路線排程比 VRP 問題必須多考慮送貨點顧客與後續取貨點顧客之間的 地理相對位置關係,才能夠在服務完所有送貨點顧客之後前往最適合的取貨點顧客開始 進行取貨服務。另外VRPB 問題要分別考慮同一車輛的送貨點總送貨量總和及總取貨點 取貨量總和分別不能超過車容量的限制。
2.2 VRPB 之啟發式解法回顧
在VRPB 問題相關文獻方面 Toth and Vigo (2002)有對 VRPB 問題之線性整數規劃模 式、放鬆、精確解演算法和啟發式演算法進行完整回顧;並對 VRPB 問題的 GJ、 TV 標竿題庫進行介紹。其中,在精確解演算法相關文獻方面 Toth and Vigo (1997)提出 Lowest-First Branch-and-Bound 演算法來求解 VRPB; Mingozzi et al. (1999)則提出 EHP 演算法搭配CPLEX 3.0 軟體程式來求解 VRPB。
另外,在啟發式演算法的研究方面,Deif and Bodin (1984)延伸 Clarke and Wright 演 算法來進行求解;Goetschalckx and Jacobs-Blecha (1989)以空間填滿(Space-Filling, SF)演 算法、貪心法(Greedy)和 K 中位(K-median)演算法,並搭配 2-opt 和 3-opt 求解 VRPB; Goetschalckx and Jacobs-Blecha (1993)之後亦提出 LHBH 演算法來加以求解,結果顯示 LHBH 演算法比 SF 演算法來的好;而 Toth and Vigo (1999)則提出以先分群後排程 (cluster-first, route-second)為概念的 HTV 演算法來求解 VRPB,求解結果比 SF 與 LHBH 演算法都要來的好;其餘還有Anily [1] 、Casco et al. [6]與 Crispim and Brandao [9]作過 相關研究。
易落入局部最佳解。為克服此缺點,後續趨勢逐漸演變成以高階策略作為指引,並結合 傳統啟發式解法來跳脫局部最佳解束縛,因而形成巨集啟發式解法(Meta-heuristics)的興 起。加上VRPB 問題屬於車輛路線問題(Vehicle Routing Problem, VRP)的衍生性問題, 也同屬於NP-hard 之高複雜度的問題,所以精確解方法往往無法於有效時間內求解,因 此近年來學者大部份採用依問題特性設計合適的巨集啟發式解法來求解VRPB。而所使 用的標竿題庫主要有 GJ 與 TV 兩套標竿題庫。GJ 標竿題庫為 Goetschalckx and Jocabs-Blencha (1989)提出之 62 題標竿例題,TV 標竿題庫為 Toth and Vigo (1996)提出之 33 題標竿例題。
Osman and Wassan [25] 使用 reactive tabu search(RTS)來求解 VRPB 問題。RTS 使用 兩種不同機制以提供一個平衡廣度與深度搜尋策略的機制。第一個機制是當一個解重複 出現一定次數的時候,會執行大量隨機的搜尋方向移動用以跳脫某一區域搜尋範圍。第 二個機制提供一個禁制期間(Tabu Tenure)的動態控制策略。若搜尋到重複的解時則其禁 制期間會增加;但若沒有重複解的情況出現,其禁制期間值會隨著時間慢慢下降。而此 篇文章也以 Saving-insertion heuristic(SIH)與 Saving-assignment heuristic(SAH)兩種不同方法來 構建起始解。
Wassan [36] 提 出 一 個 混 合 Reactive Tabu Search(RTS) 和 Adaptive Memory Programming(AMP)運算的啟發式方法去求解 VRPB 問題,這也是第一個為求解 VRPB 問題所設計的混合巨集啟發式方法。而AMP 策略藉由維持一組菁英解與和 RTS 策略性 的搭配使用,使搜尋能朝那些還沒有探索過的區域去進行。此方法測試標竿題庫與 GJ 題庫平均誤差0.35%;與 TV 題庫平均誤差 1.42%。
Tavakkoli-moghaddam [31] 等人提出 memetic algorithm(MA)來求解 VRPB 以及不 同車種的VRPB 問題。MA 是一種混合演化型演算法,將路線間與路線內的節點交換使 用在這種演化型演算法之中。以貪心法來產生起始解。MA 使用不同型態的進化運算子 (evolutionary operator)如 partial-mapped crossover (PMX), order crossover (OX), position based crossover(PBX), order-based crossover (OBX),與許多已經應用於 TSP 問題之突變 方法。MA 的績效與數學規劃方法相比結果相當具競爭力。此方法求解 GJ 題庫平均誤 差1.13%、TV 題庫平均誤差 6%,但發現 MA 在較大規模的問題中(顧客點較多)求解結 果較差。
Gajpal and Abad [14]使多類型螞蟻方法(Multi-Ant Colony System, MACS),先將顧客 點分群組,再做路線排程的程序步驟所產生的。並使用兩種不同類型的螞蟻來建構解。 第一類型的螞蟻是將顧客指派給車輛;而第二類型的螞蟻是在已給定顧客的車輛下構建 路線。且在 MACS 中加入 Trail intensities 的重新初始化與消滅菁英螞蟻解的特徵,如 此以避免求解過程落入局部最佳解。這個特徵與Prins [26]所使用的遺傳演算法(Genetic Algorithm)的 re-start 特徵類似。此方法求解 GJ 題庫的是過程中,62 題皆有找到當時的 已知最佳解,且有四題突破;而求解TV 題庫也有突破一題。
表2.1 以巨集啟發式解法求解 VRPB 問題之相關文獻整理表2
年代 作者 使用方法 重要結果
2002 Osman and Wassan Reactive Tabu Search(RTS) GJ 題庫突破 31 題;TV
題庫突破4 題
2006 Brandao Tabu Search(TS) GJ 題庫突破 21 題;TV
題庫突破5 題
2006 Ropke and Pisinger Simulated Annealing(SA)
Large Neighborhood Search(LNS)
GJ 題庫突破 36 題;TV
題庫突破28 題
2006 Tavakkoli-Moghaddam, Saremi and Ziaee
Memetic Algorithm(MA) TV 標竿題庫 33 題中突破
2 題,但大規模問題求解 效果不佳
2007 Wassan Reactive Tabu Search-Adaptive
Memory Programming(RTS-AMP)
GJ 題庫突破 15 題;TV
題庫突破9 題
2009 Gajpal and Abad Multi-ant colony system(MACS) GJ 題庫突破 4 題;TV 題
庫突破1 題 資料來源:本研究整理
2.3 可回溯式門檻接受法回顧
此節中將對本研究所使用的可回溯式門檻接受法進行回顧,由於可回溯式門檻接受 法屬於巨集啟發式解法中門檻型演算法的一種,因此在第一個小節 2.3.1 中大致概述巨 集啟發式解法與本研究所使用兩極跳躍法之概念,並對門檻型演算法做介紹;而 2.3.2 小節則介紹可回溯式門檻接受法。 2.3.1 巨集啟發式解法 傳統的啟發式解法必須找到優於所紀錄最佳解的解,才允許更新,因此在執行上容 易掉入局部的最佳解。為了克服此缺點,後續的趨勢逐漸演變成以高階的策略作為指 引,結合傳統的啟發式解法,來跳脫出局部最佳解的束縛,形成巨集啟發式解法的架構。 巨集啟發式方法發展至今,已演變出許多解題概念不盡相同的方法。較為著名的方 法諸如:禁制搜尋法(Tabu Search, TS)、基因演算法(Genetic Algorithm, GA)、類神經網 路(Neural Network)、螞蟻演算法(Ant Colony Optimization, ACO)、模擬鍛鍊法(Simulated Annealing, SA)等。類型。如表2.2 所示。這些巨集啟發式解法除了上述之巨集啟發式解法,還包括:門檻 接受法(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) 自我學習:應用人工智慧的方式,讓方法能夠自搜尋過程中累積求解經驗。 表2.2 多種巨集啟發式解法之解題策略比較3 策略解法 接受劣解 變換鄰域 擾動成本 多重起點 保留資訊 自我學習 禁制搜尋法 3 3 3 3 模擬鍛鍊法 3 門檻接受法 3 大洪水法 3 紀錄更新法 3 變動鄰域搜尋法 3 噪音擾動法 3 兩極跳躍法 3 3 搜尋空間平滑法 3 跳躍搜尋法 3 貪心隨機適應搜尋 法 3 3 基因演算法 3 3 分散搜尋法 3 3 類神經網路法 3 3 螞蟻演算法 3 3 資料來源:卓裕仁[41]
禁制搜尋法(Tabu Search, TS)基本上屬於一種人工智慧(AI)的局部搜尋方法,其概念 是想構建一個智慧型的問題求解程序:在目前的鄰域(nighborhoods)進行搜尋,並且應用 人工智慧的記憶機制,將已搜尋過的解記錄在「禁制名單(tabu list)」,以避免重複性或 毫無目標的搜尋;等到整個鄰域都搜尋完畢之後,再選擇一個最佳的方向進行移動 (move),以逐漸逼近最佳解。由此可知,TS 法的關鍵即在於記憶機制的設計,而記憶 機制又可分為:短期記憶之「禁制結構(tabu structure)」、中期記憶之「渴望準則(aspiration criterion)」及長期記憶之「深廣度策略(intensification / diversification strategies)」等三種 機制。 兩極跳躍法(Flip-Flop, FF)為韓復華及陳國清[44]所提出,其主要概念在於當目前 解已陷入鄰域區域最佳解而難以改善時,使其反向操作,完全跳出此區域而找到反向的 區域解,然後再往另一個區域解做改善。由於求解過程跳動於兩極區域解之間,所以稱 之為兩極跳躍法。圖2.1 為兩極跳躍法之解題概念。假設吾人在求解時所面臨的解空間 如圖曲線所示,若起始解為A 點,現在以傳統的成本最小化目標來改善(flop),則可以 求得區域最佳解(Local min optimum)的 B 點。接著再以反向的改善(flip)方式來求解,即 將目標式改為成本最大化,使目前解完全跳出區域最佳解而找到反向的區域最佳解 (Local Max Optimum)C 點。如此反覆的求解,使求解過程跳躍在兩極的區域解之間,最 後將可以找到最佳的F 點。 圖2.1 兩極跳躍法之解題概念圖2 資料來源:陳國清[44] 而模擬鍛鍊法(SA)、門檻接受法(TA)、大洪水法(GDA)與紀錄更新法(RRT) 同屬於門檻型演算法,有著類似的解題策略。此類方法之基本觀念乃是在鄰域搜尋陷入 局部最佳解時,鬆綁其接受法則接受劣於現解之鄰解,以便跳脫局部最佳解而能搜尋到 更佳的解。因此,SA、TA、GDA 與 RRT 等方法的執行架構與傳統鄰域搜尋法之架構
相似,差別僅在於使用的接受法則不同:傳統的鄰域搜尋法僅接受較佳的鄰解;門檻型 演算法則可接受暫劣之鄰解。
SA 可說是 TA、GDA、RRT 的概念來源,其基本觀念最早由 Metropolis et al.於 1953 年提出,然後由Kirkpatrick et al. [19]加以應用到組合最佳化問題之求解上。SA 法的接 受法則為機率性接受暫劣解:利用一個隨機產生的數值與門檻值做比較,此門檻值是鄰 解與現有解之目標值差額及溫度的函數;所謂的「溫度」是做為控制門檻值高低的參數; 降溫則是為了使SA 能夠逐漸收斂(卓裕仁[41])。
TA 法的觀念源自於 SA 法,由 Dueck and Scheuer[13]於 1990 年發表,1993 年 Dueck[12]又根據 TA 的觀念衍生出 GDA 與 RRT。此三種方法皆採用確定性的接受法則, 茲以圖2.2 說明其接受法則的異同:傳統之路線改善法採取嚴格的「接受法則」,即當交 換後的可行解之目標值低於原有解時( C(X') < C(Xc),C(Xc) 為現有解 Xc之目標值,C(X') 為鄰解 X'的目標值)才接受此解。但 TA 法所採用的接受法則為C(X' )<C(Xc )+Tk,Tk 則是事先產生的一組固定門檻值數列,並依次取用之門檻值;而GDA 法乃先設定一個 起始水位,只要有改善就降低水位(固定的下降速度),其接受法則為C(X' )< ;至於L RRT 法則是將目前的暫優解設為記錄值,取記錄值之固定百分比率做為門檻值,其接受 法則為C(X' )<C(Xc )+R×p。 p R ) C(X ) C(X' < c + × L ) C(X' < k c ' ) C(X ) T (X C < + C(X) C(X) C(X) k T R×p c X X' c X X' c X X' 圖2.2 TA、GDA 與 RRT 接受法則示意圖3 資料來源:卓裕仁[41] 表2.3 說明 SA、TA、GDA 與 RRT 等方法重要步驟之異同之處。其中「控制參數」 指用以控制演算法執行與停止之參數;「接受法則」為判斷是否從現解 Xc 移動至某鄰 解 X' 之準則;「收斂法則」是為確定搜尋過程會收斂,在現解移動後對其控制參數進 行調整之方式;「停止法則」則規範演算法停止搜尋之標準。
表2.3 SA、TA、GDA 與 RRT 等方法之比較4 方 法 SA TA GDA RRT 控制參數 。溫度(T) 。機率值(0 < r < 1) 。次數(K) 。門檻(T) 。次數(K) 。水位(L) 。速度(D) 。誤差率(p < 1) 。記錄值(R) 。次數(K) 接受法則 機率性接受:
[
C Xc TC X]
r <exp ( )− ( ') 確定性接受: C(X')< C(Xc) + T 確定性接受: C(X') < L 確定性接受: C(X')< C(Xc) + R×p 收斂法則 T 遞減 T 遞減 L = L - D 更新R 值 停止法則 完成K 次迴圈 完成K 次迴圈 所有C(X') > L 完成K 次迴圈 資料來源:卓裕仁[41] 楊智凱[46]曾對 TA 架構應用於 VRP 求解做了深入的研究。楊智凱[46]指出,TA 在 應用上必須建立一個門檻數列,根據這個門檻數列TA 可以來決定是否接受新的解,以 及何時停止。因此,TA 的概念在於其接受法則與傳統啟發式解法不同,而其影響求解 品質的關鍵則在於其門檻數列。 門檻數列有三項組成要素,包括起始門檻、門檻數列長度與門檻數列遞減型態。此 三項組成要素皆會影響TA 整個求解架構的計算時間與解題精確度。起始門檻太高會使 得搜尋方向太過發散,太低則不易跳脫局部最佳解。門檻數列的長度愈長,計算時間也 愈冗長。門檻數列遞減型態一般則有直線遞減、梯形遞減和等比遞減三種,如圖2.3 所 示。而門檻值若下降的太快,一旦在過程中找不到可接受的解,可能導致之後的執行也 無法搜尋可接受的解,使得TA 快速的收斂,無法達到預期的效果。由此可知門檻數列 的設定關係著TA 的求解品質。 圖2.3 TA 門檻數列遞減型態4 資料來源:楊智凱[46]2.3.2 可回溯式門檻接受法(BATA)
Tarantilis et al. [30] 提 出 一 種 改 良 式 門 檻 接 受 法 , 稱 為 可 回 溯 式 門 檻 接 受 法 (Backtracking Adaptive Threshold Accepting, BATA)。它與傳統的門檻接受法最大的不同 在於門檻數列的型態:以往門檻接受法的門檻數列皆呈現出逐漸遞減的型態,而可回溯 式門檻接受法在完成一次搜尋迴圈之後,若搜尋到可接受解,即降低門檻值;反之,則 回溯放鬆(提高)門檻值再進行搜尋。如此門檻數列的型態,便呈現出有增有減而逐漸收 斂的情形如圖2.4 所示。 圖2.4 BATA 門檻數列變化型態示意圖5 資料來源:卓裕仁、朱佑旌[42] 而此方法回溯門檻值的機制,是假設在每次進行鄰域搜尋之後,若在期間有至少一 次移動(找到可接受的解),則減低門檻值;否則即提高門檻值,但不可超過上一次被接 受的門檻值。而其回溯公式為:Tn =Tc+(Tp -Tc )×b,其中 Tn 為得到的新門檻值,Tc 為目前的門檻值,Tp為前一次被接受的門檻值;b 則為門檻回溯的比例值,由於門檻回 溯放鬆後不可以超過上一次被接受的門檻值,故此時b < 1。 可回溯式門檻接受法另一個與傳統門檻接受法的差異,在於停止法則除了達到原先 預定的門檻數列長度之外,當已經連續回溯一個預設次數,卻沒有找到任何一個可接受 的解,即直接停止。 可回溯式門檻接受法應用於組合最佳化問題在文獻上還不多見。Tarantilis et al. [30] 提出此方法時,被設計應用於 HFFVRP (Heterogeneous Fixed Fleet Vehicle Routing Problem)。近年來有卓裕仁與朱佑旌[42]以 BATA 方法設計一套兩階段可回溯式門檻接 受法(TBTA)求解 HVRPBTW(Heterogeneous Fleet Vehicle Routing Problem with Backhauls and Time Windows)。廖昱傑[47]則應用 BATA 結合 GENIUS 與其他傳統鄰域搜尋法結合 求解VRP 問題,並修改門檻值回溯公式為Tn =Tc+ Tp −Tc ×b,其中b 值可以大於 1, 使其門檻回溯後可以超越前一次被接受之門檻值。結果發現門檻回溯比率值b > 1 時, 求解效果相當不錯,與目前國際標竿題庫比較,發現14 題例題中共有 7 題找到最佳結
果,平均誤差 0.87%,且求解時間相當快。陳仲豪[43]應用時窗離散策略與 BATA 求解 VRPBTW 問題,於 15 題標竿例題之中,在車輛數方面與已知最佳解平均誤差 0.87%, 且有5 題找到文獻已知最佳結果;而在旅行成本方面平均誤差 5.32%。由以上文獻顯示 BATA 應可成為相當不錯的巨集啟發式方法。
2.4 小結
目前,巨集啟發式解法所發展的概念大致可歸納為深度搜尋(Intensification Search) 與廣度搜尋(Diversification Search)兩種高階策略。乃是想像在依龐大的解空間當中,不 僅要策略地決定搜尋的方向,也要有優秀的搜尋工具快速地搜尋到其區域最佳解。可回 溯式門檻接受法調控門檻值的概念即符合此作法,當門檻值較小時,較偏重深度搜尋; 當門檻值加大,則偏向廣度搜尋。 本研究採用可回溯式門檻接受法(BATA)為基本的求解架構,並採用廖昱傑[47]的修 正型門檻回溯公式,使回溯比率也能同時考慮b > 1 的情形。另外,也參考陳國清[44] 兩極跳躍法,於包容性搜尋模組中的接受法則加入此概念。當前一次包容性搜尋的迴圈 中有找到可接受交換解時,包容性搜尋往深度搜尋找成本值最小者接受交換;當找不到 可接受交換解時,反向操作改採廣度搜尋找門檻以下成本值最大者接受交換,期望能夠 跳脫此區域最佳解。由以上幾項來做為本研究之改良型可回溯式門檻接受法,同時結合 傳統路線構建與鄰域搜尋改善法互相搭配設計出本研究之巨集啟發式解法。第三章
VRPB 問題之巨集啟發式解法架構設計
本研究使用改良型可回溯式門檻接受法(Modified BATA, MBATA)為基本的求解架 構,並以啟發式解法做為交換改善的核心搜尋方法,希望能夠在有效的時間內求出較為 精確的近似最佳解。3.1 節介紹本研究所採用之起始解構建方法;3.2 節說明鄰域搜尋改 善模組之設計;3.3 節則介紹可回溯式門檻接受法模組(BATA) 以及本研究所使用的改良 型可回溯式門檻接受法模組(MBATA),同時說明兩者相異之處。
開始
結束
BATA
圖3.1 本研究巨集啟發式解法流程圖63.1 起始解構建模組設計
本研究採用平行式的最遠起點之最省插入法(Farthest-start Cheapest Insertion, FCI)[48]作為起始解構建法。詳細構建流程如圖 3.2: 由於本研究選用的GJ 標竿題庫(見 4.1 節)中各題的路線數是已知且固定,今假設一 標竿例題的路線數為R 條,使用 FCI 構建起始解之步驟簡述如下: 步驟1:欲構建 R 條路線,則找尋 R 個距離場站最遠的顧客點分別構建 R 條路線。 步驟2:開始執行將顧客點插入路線。計算所有未排程的顧客點在 R 條路線中之每個插 入位置的插入成本。在滿足所有限制條件下,選擇插入後成本最小者進行插入。 步驟3:重複步驟 2 的插入準則,直到所有顧客點都排入路線為止。 少數情形由於各車輛總送貨量已接近飽和,會造成部分顧客點無法排入路線。若遇
到此種情況,則將先前所構建之路線之服務順序、總送貨量、總取貨量與路線成本等所 有資料清除,重新構建起始解。且用前一輪無法排入路線的顧客點優先與場站連結分別 構建路線。再選取還未排程顧客點中距離場站最遠者分別構建路線,直到構建完成R 條 路線。有了R 條路線後,接下來再依序執行上述步驟 2 與步驟 3 進行起始路線之構建。 ` 圖3.2 起始解構建流程圖7
3.2 鄰域搜尋改善模組設計
起始解構建模組將起始解構建完成之後,接著進入鄰域搜尋改善模組。本研究之鄰 域搜尋改善模組分為路線間交換法與路線內交換法兩種。 在路線間交換法的部分,使用1-0節點交換法、1-1交換法與2-Opt*節線交換法。而 路線內交換的部分,採用2-Opt與Or-Opt兩種交換法進行路線內部顧客點服務先後順序的 調整。藉由這些路線間與路線內的節點節線交換法,對於所產生的起始解做鄰域搜尋改 善,以降低旅行程本。 進行鄰域改善搜尋時,決定與哪一個鄰解進行交換的選擇策略通常有三種: (1)最佳改善(Best Improvement):從所有搜尋的鄰解中,選擇改善最多的鄰解進行交換。 (2)首先改善(First Improvement):意指當找到可行的交換後即接受,進行交換。 (3)半最佳改善(Semi-best Improvement):半最佳改善是針對特定一點所能找到的鄰解 中,選擇改善最多的鄰解進行交換。 目前此三種策略在改善效果方面尚未證實有明顯差異,本研究在鄰域搜尋模組中所 採用的策略均為半最佳改善。 接著簡述本研究所使用的路線間與路線內交換法: 一、路線間交換法 (1) 1-0 節點交換法 如圖3.3,今考慮 A、B 兩路線,若節點 j 由路線 A 中拔出並插入路線 B 中 k 與 k+1 間,兩路線仍滿足先送後取以及車容量限制並能使總旅行成本下降,且為插入路線B 所 有可能位置中成本改善最大者即接受交換。由圖可知,1-0 節點交換法,是將一個節點 由一條路線拔出插入另一條路線。這種節點交換法具備減少車輛數與旅行成本的功能, 惟本研究所使用的 Goetschalckx and Jocabs-Blencha [16]標竿題庫,各例題皆有指定的車 輛數(即路線數),因此必須加以限制。若進行 1-0 節點交換後有使路線減少的情況在本 研究中為不可行的交換,這是本研究所使用的1-0 交換法較一般不同之處。 Depot Depot j - 1 k j j - 1 j j j + 1 j + 1 j k k + 1 k + 1 路線A 路線A 路線B 路線B 圖3.3 1-0 節點交換法之概念示意圖8(2) 1-1 節點交換法 圖3.4 說明 1-1 交換法之概念。今考慮路線 A 中的一個節點 j 要與路線 B 中的一個 節點做交換,若與路線B 中的節點 k 做交換後,兩路線仍滿足先送後取以及容量限制, 而且有造成旅行成本的改善且改善程度為路線B 中所有節點中最大者,即進行節點的互 換。 圖3.4 1-1 節點交換法之概念示意圖9 (3) 2-Opt*節線交換法
為Potvin and Rousseau(1993) 所提出的一種路線不會有反轉的節線交換法。其大致 概念如圖3.5,若兩路線中各有( j, j + 1)與( k, k + 1)兩節線,此兩節線斷開後,連結( j, k + 1)與( k, j + 1)兩節線將可改善其解。而這樣子的交換並不會產生有節線方向反轉的情 況。 圖3.5 2-Opt*節線交換法之概念示意圖10 二、路線內交換法 (1) 2-Opt 節線交換法 如圖3.6 所示,2-Opt 節線交換法其基本的概念為同一路線內不相鄰的兩節線( j, j+1) 與( k, k + 1)斷開,然後連接( j, k)與( j + 1, k + 1)兩節線,將有可能改善其解。但此種交 換方式會造成某些節線會有方向反轉的情況發生。
圖3.6 2-Opt 節線交換法之概念示意圖11 (2) Or-Opt 節線交換法 Or-Opt 的解題觀念如圖 3.7,若換掉原路線中( i ,i + 1)、( j, j + 1)及( k, k + 1)三條節 線,再連接( i, j + 1)、( k, i + 1)與( j, k + 1)三條節線,而成為改善後之路線,將可能改善 其解且節線不必有方線反轉的情況。其中節點i 與 j + 1 之間的點可以是一至三點( P = 1 ~ 3)。而本研究使用的 Or-Opt 交換法是依序執行(P=3)、(P=2)與(P=1)。 圖3.7 Or-Opt 節線交換法之概念示意圖12 本研究鄰域搜尋改善模組共使用1-0、1-1、2-Opt*、2-Opt 與 Or-Opt 五種鄰域交換 改善方法。若每種鄰域交換改善均執行一次,共有120 種不同的順序排列方式。之後將 測試這120 種不同的交換法順序排列方式對起始解的改善率,然後再選取改善效果較佳 的幾組作為往後測試使用的鄰域搜尋模組。
3.3 改良型可回溯式門檻接受法(MBATA)模組設計
本研究之巨集啟發式解法是以Tarantilis and Kiranoudis [30]所使用的BATA架構為基 礎。並且採用廖昱傑[47]之修改型門檻回溯公式,討論回溯比率可以大於1的情況,另外 再針對有門檻回溯的情況發生時,設計一包容性搜尋模組為找尋門檻值範圍內成本值最 大的一組解做交換,期望能增加搜尋機制的廣度並跳脫局部最佳解的束縛。
在3.3.1節中,會先以BATA構建一個巨集啟發式解法,其目的除了方便說明BATA與 本研究之改良型可回溯式門檻接受法(Modified BATA, MBATA)之相異之處以外;另一個 目的是為了後續測試時可以將BATA與本研究設計之MBATA之求解結果做一比較與分
析之用。而3.3.2節則提出本研究的主要求解架構所使用的MBATA,而此方法也是後續 測試題庫與參數的主要求解架構。 3.3.1 BATA模組 若以BATA構建一個巨集啟發式解法求解VRPB如圖3.8所示,首先以平行式的最遠 起點之最省插入法構建出一組起始解,並由前述之鄰域搜尋改善模組進行改善,最後將 此改善的解投入BATA架構中。 在BATA的架構中,核心搜尋模組依序使用1-0、1-1、2-Opt*、2-Opt與Or-Opt五種, 而包容性搜尋的接受策略是採用半最佳 (Semi-best Improvement) 策略。首先搜尋一組 暫存解Xt,在這一組暫存解 C(Xt)中找尋小於現有解 C(Xc)加上現有門檻值 Tc,且同時 為暫存解中成本最小者接受交換同時更新現有解,並檢查該解有無小於所記錄的暫時最 佳解,若有則同時更新暫時最佳解。接著再回到判斷是否已考慮所有交換。若包容性搜 尋得到的所有新解皆大於現有解加上門檻值則直接跳回上一層判斷是否考慮所有交換。 若所有交換尚未考慮完畢則重複執行上述步驟;若已考慮所有交換則再執行一次嚴 格性接受法則之鄰域搜尋改善模組。 在迴圈之中有發生過接受交換的情形(H > 0),門檻值即遞減。而門檻值遞減型態與 Tarantilis and Kiranoudis [30]相同,採用等比數列,並有門檻下降比率 r 來控制下降速 度;另外,回溯幅度受到門檻回溯比值 b 的控制,由於 Tarantilis and Kiranoudis [30] 提出的BATA門檻回溯發生時,新的門檻值不可超過前一次被接受的門檻值,故 b < 1 。 其公式為 Tn = Tc + (Tp - Tc) ×b 。其中 Tp 是前一個曾經接受交換的門檻值,Tc 為現有 門檻值,下一個門檻值為 Tn。因此在控制參數方面有起始門檻 T0 、門檻下降比率 r、 門檻回溯比率 b 。停止法則為完成 K 次的鄰域搜尋與連續放鬆 C 次的門檻皆無法找 到可接受的解。若已達到停止條件則結束演算法,否則更新現有門檻值再繼續執行前述 步驟。其步驟如圖3.8。整個演算法停止後,記錄中之暫時最佳解即為所得之結果。
3.3.2 MBATA模組 如圖3.9 為本研究設計之以 MBATA 求解 VRPB 問題之啟發式解法流程架構圖。 MBATA 和 BATA 主要不同之處在於: 1. 門檻回溯比率 b 可以大於 1,採用修改之門檻回溯公式。 2. 結合兩極跳躍的概念於包容性接受法則之中。 MBATA 以廖昱傑[47] 提出之修改型門檻回溯公式 Tn = Tc + |Tp - Tc| ×b 代替。其 中 Tp 是前一個曾經接受交換的門檻值,Tc 為現有門檻值,新的門檻值為 Tn。因此在 控制參數方面有起始門檻 T0 、門檻下降比率 r、門檻回溯比率 b ,且此 b 值可包含 b > 1 的情形。停止法則為完成 K 次迴圈與連續放鬆 C 次的門檻皆無法找到可接受的解。 MBATA 結合了兩極跳躍法(Flip Flop Method, FF)之概念,執行包容性搜尋時,會先 判斷前一次包容性搜尋迴圈是否有找到可接受交換的解,以判斷所要找尋的解為成本小 於門檻中最小或最大者。 若j = 0 即沒有門檻回溯的情形發生,代表前一次迴圈有找到可接受交換的解進行 交換或本次迴圈為初次執行,此時包容性搜尋法則為接受小於現有解加上該回合門檻值 之中成本值最小者進行交換。這部分與BATA 模組相同。 但當j > 0 也就是前一次迴圈中有門檻回溯的情形,代表前一次包容性搜尋的迴圈 之中並沒有找到可接受的交換,此時包容性搜尋的方式為半最佳策略,但目標改為搜尋 小於現有解加上門檻值之中成本值最大者(可接受的最劣解)進行交換,希望能夠增加搜 尋的廣度並幫助跳脫局部最佳解的束縛而找到更好的解。這也是MBATA 與 BATA 最大 的不同之處。 此概念來自兩極跳躍法,本研究將其應用在BATA 的包容性搜尋接受法則中。當第 一次執行迴圈或前一次迴圈有找到可交換的解時,就找門檻值以內成本值最小者接受; 若前一次迴圈完全沒有找到可接受的解(也就是前一次迴圈所有新解成本值皆大於門 檻,而使門檻回溯),即改跳往門檻值之內成本值最大者做接受。主要目的即在於當目 前解已陷入區域最佳解而難以改善時,使其在一個可接受的範圍(門檻值)內進行反向操 作的搜尋,期望能跳脫此區域最佳解,再往另一個區域解做改善。 MBATA 模組為本研究後續對標竿題庫以及參數測試時使用的求解架構。整體求解 流程架構如圖 3.9 所示。起始解構建模組使用 3.1 節所述之平行式的最遠起點之最省插 入法;鄰域搜尋改善模組使用3.2 節所述之交換法;而包容性搜尋之核心搜尋模組依序 使用1-0、1-1、2-Opt*、2-Opt 與 Or-Opt 五種,接受法則亦為半最佳策略。
開始 起始解構建 鄰域搜尋改善 i<=K i=1; j=0; Tn=Tp=T Reset Tc=Tn, H=0 已考慮所有交換 H=0 j > C 結束 降低門檻值: Tn=Tc*r; j=0; Tp=Tc 門檻值回溯放寬: Tn=Tc+|Tp-Tc|*b; j=j+1 i=i+1; 是 否 是 是 是 否 j = 0 是否存在一新解Xt為 Max{C(Xt) : C(Xt) <=C(Xc)+Tc} 接受交換更新現有解 H = H + 1 否 否 是 包容性搜尋新解Xt 是否存在一新解Xt為 min{C(Xt) : C(Xt) <=C(Xc)+Tc} 鄰域搜尋改善 否 是 是 否 否 T:起始門檻 i:門檻數列,i=1,2,...,K K:門檻數列長度 j:目前連續放寬門檻值次數, j=0,1,2,...,C C:連續放寬門檻之最大次數 H:接受交換的次數,H=0,1,2,... r:門檻降低比率 b:門檻放寬比率 Tp:前一個被接受的門檻值 Tc:現有門檻值 Tn:下一個門檻值 圖3.9 本研究以改良型可回溯式門檻接受法求解 VRPB 架構流程圖14
第四章
VRPB 標竿題庫測試結果比較分析
本章用所設計之求解架構對標竿題庫進行測試分析。4.1 節首先介紹所測試之標竿 題庫;4.2 節針對 MBATA 模組進行測試;4.3 節測試鄰域搜尋模組之績效;4.4 節比較 MBATA 與 BATA 求解之績效;4.5 將測試結果和文獻中已知最佳解做比較。
本研究以C#進行程式撰寫,並且在 Microsoft Visual Studio 2005 中編譯,測試環境 使用Windows Vista Home Premium 的作業系統、Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz 的筆記型電腦。
4.1 VRPB 測試題庫說明
回顧國際間研究VRPB 問題之文獻可發現,為了評估求解 VRPB 績效與結果,VRPB 問題主要使用兩類的標竿題庫來做求解與測試。第一類的標竿題庫,為Goetschalckx 與 Jacobs-Blecha[16]所提出(以下簡稱 GJ 題庫);第二類的標竿題庫是由 Toth 與 Vigo[33]所 提出(以下簡稱 TV 題庫)。 GJ 題庫為 Goetschalckx 與 Jacobs-Blecha[16]在 1989 年所提出的 62 題例題。問題規 模從 25 個顧客點到 150 個顧客點共十四組不同的顧客點總數,送貨點顧客佔所有顧客 比率則有50%、66%與 80%三種。 TV 標竿題庫是由 Toth 與 Vigo[33]於 1996 年所提出的 33 題例題,是從文獻中的 11 題 CVRP 測試例題再分別考慮送貨點比率 50%、66%與 80%所得來,顧客點總數從 21 到100 個顧客點。其顧客點需求與車容量皆與原本 CVRP 問題中的數值相同。
本研究以Goetschalckx and Jocabs-Blencha [16]所提出之 62 題標竿例題作為測試例 題,這些例題可以從Goetschalckx 教授個人網頁[37]中下載得來。此例題中的顧客點 座標均勻分佈在 x 軸座標值[0, 24,000]與 y 軸座標值[0, 32,000]之間。場站則位於座標 (12,000, 16,000)的中心位置。節線( i, j)的成本定義為顧客 i 與 j 之間的歐基里德距離 (Euclidean distance)。顧客需求量是由平均值 500 標準差 200 常態分配產生。總節點數考 慮了從25 到 150 的 14 種不同數值的情形,送貨點顧客佔所有顧客比率則有 50%、66% 與80%三種。對於每一例題車容量已事先給定,使用的車輛數從 3 到 12 輛不等,最佳 化目標是總旅行程本的最小化。 表4.1 為 GJ 之 62 題標竿例題資料整理與目前文獻已知最佳解,目前已知最佳解則 由近幾年發表於國際期刊的文獻 [3]、[14]、[25]、[27]與[36]整理而得。
表4.1 GJ62 題 VRPB 標竿例題5 例題 節點數目 車 輛 數 車 容 量 已知最佳解 例題 節點數目 車 輛 數 車 容 量 已知最佳解 編號 名稱 總數 送貨 取貨 總成本 來源 編號 名稱 總數 送貨 取貨 總成本 來源 1 A1 25 20 5 8 1550 229885.65 [14] 32 H4 68 45 23 5 6100 250220.77 [14] 2 A2 25 20 5 5 2550 180119.21 [14] 33 H5 68 45 23 4 7100 246121.31 [14] 3 A3 25 20 5 4 4050 163405.38 [14] 34 H6 68 45 23 5 7100 249135.32 [14] 4 A4 25 20 5 3 4050 155796.41 [14] 35 I1 90 45 45 10 3000 350245.28 [27] 5 B1 30 20 10 7 1600 239080.15 [25] 36 I2 90 45 45 7 4000 309943.84 [27] 6 B2 30 20 10 5 2600 198047.77 [14] 37 I3 90 45 45 5 5700 294507.38 [25] 7 B3 30 20 10 3 4000 169372.29 [14] 38 I4 90 45 45 6 5700 295988.44 [36] 8 C1 40 20 20 7 1800 250556.77 [14] 39 I5 90 45 45 7 5700 301236.00 [27] 9 C2 40 20 20 5 2600 215020.23 [14] 40 J1 94 75 19 10 4400 335006.68 [27] 10 C3 40 20 20 5 4150 199345.96 [14] 41 J2 94 75 19 8 5600 310417.21 [27] 11 C4 40 20 20 4 4150 195366.63 [14] 42 J3 94 75 19 6 8200 279219.21 [25] 12 D1 38 30 8 12 1700 322530.13 [14] 43 J4 94 75 19 7 6600 296533.16 [27] 13 D2 38 30 8 11 1700 316708.86 [14] 44 K1 113 75 38 10 4100 394071.16 [14] 14 D3 38 30 8 7 2750 239478.63 [14] 45 K2 113 75 38 8 5200 362130.00 [27] 15 D4 38 30 8 5 4075 205831.94 [14] 46 K3 113 75 38 9 5200 365694.08 [27] 16 E1 45 30 15 7 2650 238879.58 [14] 47 K4 113 75 38 7 6200 348949.39 [27] 17 E2 45 30 15 4 4300 212263.11 [14] 48 L1 150 75 75 10 4400 417896.72 [14] 18 E3 45 30 15 4 5225 206659.17 [14] 49 L2 150 75 75 8 5000 401228.80 [27] 19 F1 60 30 30 6 3000 263173.96 [14] 50 L3 150 75 75 9 5000 402677.72 [27] 20 F2 60 30 30 7 3000 265214.16 [27] 51 L4 150 75 75 7 6000 384636.33 [27] 21 F3 60 30 30 5 4400 241120.77 [25] 52 L5 150 75 75 8 6000 387564.55 [27] 22 F4 60 30 30 4 5500 233861.85 [14] 53 M1 125 100 25 11 5200 398593.19 [3] 23 G1 57 45 12 10 2700 306305.40 [27] 54 M2 125 100 25 10 5200 396916.97 [3] 24 G2 57 45 12 6 4300 245440.99 [14] 55 M3 125 100 25 9 6200 375695.41 [14] 25 G3 57 45 12 5 5300 229507.48 [14] 56 M4 125 100 25 7 8000 348140.16 [14] 26 G4 57 45 12 6 5300 232521.25 [27] 57 N1 150 100 50 11 5700 408100.62 [3] 27 G5 57 45 12 5 6400 221730.35 [14] 58 N2 150 100 50 10 5700 408065.44 [3] 28 G6 57 45 12 4 8000 213457.45 [14] 59 N3 150 100 50 9 6600 394337.86 [27] 29 H1 68 45 23 6 4000 268933.06 [14] 60 N4 150 100 50 10 6600 394788.36 [27] 30 H2 68 45 23 5 5100 253365.50 [14] 61 N5 150 100 50 7 8500 373476.30 [27] 31 H3 68 45 23 4 6100 247449.04 [14] 62 N6 150 100 50 8 8500 373758.65 [27]
4.2 改良型可回溯式門檻接受法模組測試
本研究以平行式的最遠起點之最省插入法做為起始解構建模組,起始解構建結果與 文獻中的已知最佳解平均誤差為25.1%。 由於鄰域搜尋改善模組的部分計有1-0、1-1、2-Opt*、2-Opt 與 Or-Opt 五種方法。 若每種鄰域交換改善均執行一次,共有120 種不同的順序排列方式。本研究測試這 120 種不同的順序排列方式,茲將此本研究五種交換法不同順序排列對起始解的改善率由多 到寡排列如本文後之47 頁之附表一所示。而之後的測試計畫以前 6 種(5%)交換改善率 最佳的鄰域搜尋改善法順序來測試標竿例題,而此六種對起始解改善率最佳的交換法順 序如表4.2 所示。 表4.2 六種對起始解改善率最佳之鄰域搜尋模組6 編號 交換改善法執行順序 平均誤差率 對起始解改善率NS-001 1-1, Or-Opt, 2-Opt*, 1-0, 2-Opt 10.01% 16.76%
NS-002 2-Opt*, Or-Opt, 1-0, 1-1, 2-Opt 10.05% 16.72%
NS-003 2-Opt*, 1-0, 1-1, 2-Opt, Or-Opt 10.06% 16.68%
NS-004 2-Opt*, 1-0, 2-Opt, 1-1, Or-Opt 10.07% 16.68%
NS-005 2-Opt*, 1-0, 2-Opt, Or-Opt, 1-1 10.12% 16.63%
NS-006 2-Opt*, 1-0, Or-Opt, 1-1, 2-Opt 10.12% 16.63%
4.2.1 實驗設計與參數設定 本研究在MBATA 模組測試部分,主要包含以下幾項: 1. 門檻數列長度 K 值之測試 2. 起始門檻比率 T0 值與門檻下降比率 r 值之交叉測試 3. 門檻回溯比率 b 值與門檻下降比率 r 值之交叉測試 4. 連續回溯最大次數 C 值之測試。 MBATA 的架構如圖 3.9 所示,門檻遞減型態為 Tn = Tc × r 之等比遞減;門檻回溯 型態採用廖昱傑[47]之公式 Tn = Tc + |Tp - Tc| ×b。其他各項測試參數設定為: 1. 起始門檻比率 T0 = 0.01, 0.02, 0.03, ...0.10。 2. 門檻下降比率 r = 0.7, 0.8, 0.9, 0.99。 3. 門檻回溯比率 b = 0.5, 0.7, 0.9 ,0.98, 3, 5, 10, ...,35。 4. 門檻數列長度 K = 120, 240, 360。 5. 連續回溯的最大次數 C = 20。
4.2.2 門檻數列長度之測試 首先針對門檻數列長度K 值(K = 120, 240, 360)進行測試,這裡我們分為 b 值與 K 值,以及不同的T0、r 值與 K 值兩個部分做討論。 在b 值與 K 值的測試方面。根據廖昱傑[47]的研究中發現,將 b 值的範圍擴大到 1 以上,能夠有效跳脫現有局部最佳解的束縛,求解效果相當不錯。因此在這裡b 值的設 定方面,b < 1 測試數值為 0.5, 0.7, 0.9, 0.98;b > 1 測試的數值為 3 與 5~35 之間 5 的倍 數的整數值,總計共十二組。而在K 值的設定方面,若數列長度太短,可能導致還沒有 回溯或回溯之後尚未搜尋到更好的解便已停止搜尋,減少了找到更好解的可能。陳仲豪 [43]發現,K=240 時,求解效果較佳。而在這裡 K 值選取 120, 240, 360 分別做測試,比 較其求解效果差異。其餘的參數設定則參考廖昱傑[47]與陳仲豪[43]之建議,起始門檻 T0 = 0.01、門檻下降比率 r = 0.9、最大連續回溯次數 C = 20。而每一組參數皆以 NS1, NS2, ..., NS6 六種鄰域搜尋改善模組測試所得之誤差率做平均,代表該組參數在本測試 中與已知最佳解的誤差率。 測試結果如圖4.1,橫軸為不同的 b 值,縱軸為與 62 題標竿例題已知最佳解之旅行 成本之平均誤差(%)。由圖中可看出此次測試在 b 小於等於 20 時,此三組 K 值求解的 誤差相同並無變化。而b 值大於 5 之後平均誤差均有微幅的改善,平均誤差由 3.59%降 至3.57%;b 大於等於 20 之後有進一步的改善,求解結果均優於 b 小於 20 的情況,可 見其確實有脫離局部最佳解的效果。但整體看來這三組不同K 值所求的平均誤差除了在 b 值大於等於 20 之後有小幅差距其餘結果大致相同,以 K=360 在所測試的不同 b 值中 皆有較佳之結果。 圖4.1 不同 K 值與 b 值對於求解結果的影響(To = 0.01, r = 0.9)15 而在不同的T0、r 值與 K 值的部分。實驗分成在 r = 0.8, r = 0.99 兩種不同的門檻下 降比率的情況,比較起始門檻比率T0與門檻數列長度 K 在求解效果上的差異。而門檻 回溯比率設為b = 20。 從圖4.2 可看出當 r = 0.8 時,三組不同 K 值對求解結果並無影響。而在圖 4.3,r = 0.99
情況發現,於T0 = 0.01, 0.02, 0.03 時 K=120 比 K=240 與 360 差;而當 T0超過0.3 之後 隨著T0增加K=120, 240 的平均誤差也愈來愈大,但此時 K = 360 求解的平均誤差僅在 1%左右。其原因為隨著 T0值的增加起始門檻值就愈大,這時搭配門檻下降比率r = 0.99 使得門檻值下降較為緩慢,若門檻數列長度太短會導致門檻值還沒收斂或來不及回溯即 達到門檻數列長度而停止演算法,失去可能搜尋到更佳解的機會,在此圖中所有不同的 T0值皆以門檻數列長度K = 360 的績效最佳。 圖4.2 r = 0.8 時,不同 K 與 T0值對於求解結果的影響16 圖4.3 r = 0.99 時,不同 K 與 T0值對於求解結果的影響17 另一方面,如圖4.4 所示,隨著 K 值的增加雖然平均耗費時間也增加。但既使在 K = 360 時 62 題求解的平均時間也僅在五分鐘以內,因此在之後的測試,門檻數列長度皆 設為360,以保證有較為一致的效果。
圖4.4 不同 K 值與 T0值平均耗費的時間(r = 0.99, b = 20)18 4.2.3 起始門檻比率與門檻下降比率之交叉測試 此小節中,將針對起始門檻比率T0做測試與門檻下降比率r 作分析,並分為 b < 1 與b > 1 兩部分討論。b 值小於 1 的部分考慮 b = 0.98;大於 1 的部分測試 b = 20。其結 果如圖4.5 與圖 4.6 所示。由此兩圖可發現在各種 r 值的情況下,起始門檻比率 T0 = 0.01 求解的誤差較大,而隨著T0的增加,誤差有逐漸下降的趨勢,而當T0在0.05 ~ 0.10 間, 求解效果較佳且平均趨於穩定的狀態。其中尤以T0 = 0.07 時平均誤差率 0.94%效果最佳。 而從圖4.5 與圖 4.6 兩圖我們可以發現不論在何種 T0值的情況下,隨著r 值的增加, 整體的平均誤差是往下降的,而且折線的起伏也愈小。可觀察出較大的r 值擁有較佳且 較為穩定的求解績效。而且皆以門檻下降比率值r = 0.99 時表現最佳,其中在 T0介於0.05 與0.10 平均誤差皆在 1%左右效果不錯。 圖4.5 不同 T0值與r 值對求解結果的影響(b = 0.98)19
圖4.6 不同 T0值與r 值對求解結果的影響(b = 20)20 4.2.4 門檻回溯比率與門檻下降比率之交叉測試 接下來本研究針對門檻回溯比率 b 與門檻下降率 r 進行交叉測試。並分別考慮 T0 為0.01 與 0.07 兩種情形。 在T0 = 0.01 的情形時如圖 4.7,可以發現當 b < 1 時,平均誤差沒有因為 b 值的增加 有任何變化;而當b>1 時除了 r = 0.99 的情形以外,平均誤差大致會隨著 b 值的增加而 有下降的趨勢,與廖昱傑[47]發現 b > 1 平均誤差優於 b < 1 的結果一致。且 r 值較低 的情況平均誤差下降較為明顯。但仍可看出較大的r 值求解擁有較佳且較為穩定的績效。 圖4.7 不同 r 值對於求解結果的影響(T0 = 0.01)21 而T0 = 0.07 情況如圖 4.8,當 b < 1 時,平均誤差同樣不因 b 值的增加有所變化;而 當b > 1 時,r = 0.99 的誤差率不隨 b 值增加而有變動,其餘 r 值求得的平均誤差隨著 b 值的增加略有下降但下降幅度較T0 = 0.01 小。