第二章、 文獻回顧
2.1 車輛路線問題求解方式
2.1.1 精確解演算法
subject to min al.(1983)、Bodin(1990)、Fisher(1995)及 Berman & Das(2005),亦可參考增進對 VRP 問題的全面了解。此外,由於本研究計畫發展的演算法與集合涵蓋問題(Set Covering Problem, SCP)有密切關係,SCP 相關文獻之回顧於 2.2 節說明。最後,有關整合自 有車隊與委外貨運服務之相關文獻,則於2.3 節加以說明。
2.1 車輛路線問題求解方式
根據Toth & Vigo(2001)所編訂的”The Vehicle Routing”一書中提到,若按照解法分 類,可分為:一、精確解演算法與二、啟發式解法。
2.1.1 精確解演算法
1. 分支定限法(Branch-and-Bound Algorithms)
分支定限法公認為可處理各式最佳化問題的演算法,尤其是離散(discrete)及組 合最佳化問題。於1960 年,由 A. H. Land 與 A. G. Doig 將離散問題放鬆視為線性規 劃問題,利用線性規劃的解題技巧處理離散問題進行計算,再透過不斷分支、定限、
檢查可行性、確認獲得更好的解,最後比較所有分支末端的解,找出最佳解。
顧名思義,分支定限法,即是由分支及定限兩個部份所組成。分支就是將可行 解區域改由許多較小的可行解區域涵蓋組成,由於此步驟將不斷遞迴、重複對各子 區域持續分割,不斷產生更小的區域,導致的所有子區域間的關係自然地形成如樹 枝狀的結構;定限則是指在子可行解區域內快速地找出上限與下限。各分支的節點 分別代表新建立的子區域。
運算的效率取決於使用的分支與定限的計算是否有效;過程中,壞的選擇將導 致重複的分支,沒有任何修剪,直到子區域變得非常小,在這樣對主區域拆解為詳 盡列舉的情況下,是不符實際需求的。至今尚無適用所有問題的定限方式,因此一 般不同範例皆需要個別量身訂作合適的分支定限運算法。
大家都知道CVRP 為 TSP 的延伸問題,換句話說 TSP 是 CVRP 問題的最簡化 型態,因此CVRP 精確解求解方式大多承襲 TSP 使用的解法,直到 1980 年代末期,
分支定限法始終扮演著最有效率的CVRP 精確解解法。Laporte and Nobert(1987)探 討了所有車輛路線問題精確解解法,也對分支定限法做出完整且詳細的分析,近來,
仍有許多較為複雜的定限方式被提出,如有些是根據拉式鬆弛原理,實質上擴大了 分支定限法可求解的問題規模。
2. 分支切面法(Branch-and-Cut Algorithms)
分支切面法為一以線性規劃為基礎(LP-based)的分支定限技術,用來解決混合整 數線性規劃(Mixed Integer Linear Programming)組合最佳化問題,也就是問題中的某 些或所有未知數被限制為必須是整數的線性規劃問題,此法為分支定限法與切面法 (Cutting Plane Method)的結合。
求解時起初忽略整數限制的約束,使用一般的簡解法(Simplex Method)解決線性 規劃問題。當獲得一最佳解,若有應為整數解的值在此解中為非整數值,則使用切 面法找出新的線性限制式,該限制符合當前解中可行的整數值解,但違反當前解中 不可行的非整數值解,求解新加入不等式限制式的線性規劃問題將有希望產生「較 完整」的最佳解,此過程將持續重複直到找到最佳整數解或沒有其他切面被發現為 止。
同時,算法中分支與定限的部份開始運作,選擇當前解中非整數值變數,將問 題劃分成二個版本,一個是加上額外限制式,訂定變數的上界,使變數小於或等於 當前解無條件進位的整數值;另一個則是增加一限制式,制定變數的下界,讓變數 大於或等於當前解無條件捨去的整數值。也就是該變數未來的解將會被規範於當前 解無條件進位與無條件捨去的整數值之中,再使用簡解法對加入新限制式的新線性 規劃問題求解,過程重複直到找到滿足所有整數限制的解。在分支和定限的過程中,
能分割出更進一步的切面,也許是全域的切面,符合所有可行的整數解;或是局部
的切面,使求解滿足當前所考慮的分支中附加的限制式。
分支切面與分支定限主要的不同在於,前者在所有的分支搜尋過程中切面與變 數動態產生,可適用大規模問題的求解。分支切面是分支定限的應用,分支定限代 表在建構搜尋樹的過程中使用線性規劃產生有效的邊界限制,切面的功效為強化線 性規劃放鬆並用以定限,使得比單一使用分支定限法來的更強大。
3. 集合涵蓋演算法(Set-Covering-Based Algorithms)
包含集合分割(Set Partitioning)與集合涵蓋(Set Covering),Balinski與Quandt(1964) 首度將CVRP轉化為集合涵蓋問題與集合分割問題形式求解。 customer f
q
customer f
1. 傳統啟發式解法(Classical Heuristics) 其中又區分為:
(1) 途程建構法(Constructive Methods):
使用的主要技巧為:根據節省值準則合併既有路線與依照插入成本逐一將節點指 派至車輛路線中,著名的節省法(Clarke and Wright Savings Algorithm)即屬此類。
(2) 二階段法(Two-Phase Methods)
包含先排程再分群(route-first, cluster-second)與先分群再安排路線(cluster-first, route-second)的演算方式,三種先分群再安排路線的方式中,最簡單的為基礎分群 法(elementary clustering methods),執行一次節點分群後,指派各車輛至各群組,
掃 描 法(Sweep Algorithm) 為 其 代 表 ; 第 二 種 為 簡 化 版 分 支 定 限 法 (truncated branch-and-bound),可產生一組良好的車輛路線集合;最後一種為花瓣法(petal