Delivery Problem with Time Windows

114  Download (0)

Full text

(1)

時窗分割策略與調適型導引螞蟻演算法求解時間 窗限制收卸貨問題之研究 

學生:李泰琳 指導教授:賀力行博士 張靖博士

摘 要

本 研 究 利 用 時 窗 分 割 策 略(Partitioning Strategy) 與 切 割 時 窗 整 數 化 (Discretization)將時窗收卸貨問題(Pickup and Delivery Problem with Time Windows , PDPTW) 轉換為無時窗的近似 PDP 問題,即得以求解 PDPTW 不 用考慮時窗。轉換過程中進一步提出問題規模精簡策略與關連式旅行網絡結 構表,大量減少轉換過程中所衍生出來的新的限制式與決策變數的數量。本 研究除了提出此新問題數學模式外,並透過小規模例題以 LINGO 來驗證,

如果時窗切割夠細的話,新轉換近似 PDP 與原來 PDPTW 之最適解(The Optimal Solution)是相同的,即轉換後的近似 PDP 與原來的 PDPTW 相 同。應用啟發式演算法求解較大規模問題時,測試結果顯示較直接求解原 PDPTW 問 題 而 言 , 解 品 質 平 均 提 升 7.88% 而 求 解 時 間 則 大 幅 減 少 達 88.10%,確實可以在較短的時間內求出品質較佳的近似最佳解,有效提升 求解效率。

啟發式演算法方面,本研究結合導引區域搜尋技術(Guided Local Search, GLS)與本研究針對過去學者提出的各式改良式 ACO 求解機制優缺點進行分 析後所設計之調適型螞蟻演算法(Adaptive Ant Colony System, AACS),設 計調適型導引螞蟻演算法(Guided Adaptive Ant Colony System, GAACS)求解 SPDP 問題,並以國際標準題庫 VRPTW 例題利用 Lau 與 Liang(2002)方法 進行修改產生具有標竿解之 PDPTW 例題 18 題進行測試,問題規模皆為 100 個作業,結果顯示 GAACS 可以 25.9 分鐘平均時間,求得與標竿解平均 差異僅 1.8%之近似最佳解。期望本研究成果對後續學者進行 PDPTW 相關 研究應有不少助益。

關鍵詞:螞蟻演算法、導引區域搜尋法、時間窗收卸貨問題、時窗分割策略

(2)

Use the Partitioning Strategy and the Guided Adaptive Ant Colony System to Solve Pick up and

Delivery Problem with Time Windows

Student: Tai-Lin Li Advisor : Dr. Li-Shing Ho Dr. Ching Chang

Abstract

The main goal of this research is to design a Guided Adaptive Ant Colony System (GAACS) to solve the Pick up and Delivery Problem with Time Windows (PDPTW). Since the time window makes problem more complex, we use Time Window Partitioning Strategy and Discretization Method to remove all time windows. However, a PDPTW can only be transferred to be a new model which is very similar to Pick up and Delivery Problem (PDP) but with more constraints and variables. The new transferred model is called SPDP which was formulated as a 0-1 integer programming. The optimal solutions of SPDP obtained by LINGO can be equal to the optimal solutions of the original PDPTW if the time windows are partitioned small enough. However, discretizing the partitioned time windows produces more new decision variables and constraints. Since these additional derived decision variables and constraints make computation much longer, we also design a preprocessing procedure to reduce the redundant decision variables and constraints as well as a relation structured asymmetric travel cost matrix to avoid searching the infeasible solutions. There are 18 PDPTW test problems which are from the Solomon benchmark problems and modified by Lau’s method.

In order to show the contribution of the partitioning strategy, we developed a simple Meta-Heuristic algorithm to solve both PDPTW and SPDP. According to the computation results, we can use partitioning strategy to improve the accuracy about 7.88% and save the computation time 88.1%. In addition, in order to promote our solution quality, we also developed a GAACS which is integrated Adaptive ACS and Guided local search (GLS) to slove SPDP. According to the computation results, we obtained the average percentages of errors of the best published solutions among18 SPDP test instances is 1.80% and average computation time is 25.9 minutes. This shows that our proposed GAACS method

(3)

and Partitioning Strategy can solve PDPTW accurately in a reasonable time.

keywords: Ant Colony Optimization, Guided Local Search, Pickup and Delivery

Problem with Time Windows, Time Window Partitioning Strategy.

(4)

誌 謝

本論文能順利完成,首先要感謝我的父母和丈夫,感謝他們的犧牲和 奉獻,讓我可以沒有後顧之憂的做一個全職的學生,也要感謝我可愛的弟 弟,長期以來讓我隨時可以從資源完整的浩然電子期刊中,取得豐富的參 考資料,此外,還要感謝我的指導教授賀力行博士與張靖博士,老師一路 上無怨無悔的指導與教誨,讓我的論文從一無所有到面面俱到,從粗製濫 造到有條不紊,尤其是研究過程中,老師不厭其煩的細心指導,苦口婆心 的引導我正確方向,以及慈顏意堅的督促與砥礪我不斷提升研究內容的深 度與廣度,致使本論文能夠付梓。在此誠摯的向老師說聲謝謝!您辛苦 了。

口試的時候,承蒙沙永傑教授、韓復華教授、蘇純繒教授、李堯賢教 授和陳武正教授,給予很多寶貴的意見,使本論文能更趨完善,特此感 謝。同門學弟妹中我要感謝采燕、汗青、阿詮、宜祥、士淵、炎地、靜芬 與昶翰,在漫長的研究歲月中,謝謝你們陪伴我一起走過,因為有你們的 陪伴與鼓勵,研究與學習的路上我不寂寞,而且充滿歡笑與回憶。最後感 謝那些曾經幫忙過我的人,無論您的幫助是大是小,對我而言都意義非 凡,在此由衷的感謝您。

李泰琳謹誌於 中華大學科技管理所 中華民國96 年 6 月 30 日

(5)

目 錄

摘 要 ... i

Abstract ... ii

誌 謝 ... iv

目 錄 ... v

圖目錄 ... vii

表目錄 ... viii

第一章 前言 ... 1

1.1 研究動機 ... 1

1.1.1 PDPTW 轉換 PDP 優勢 ... 1

1.1.2 GLS 導入 AACS 優勢 ... 2

1.2 研究目的 ... 4

1.3 研究流程與架構 ... 5

第二章 文獻回顧 ... 7

2.1 PDP 與 PDPTW 問題定義 ... 7

2.2 PDPTW 演算法回顧 ... 10

2.2.1 PDPTW 精確解演算法 ... 10

2.2.2 PDPTW 啟發式演算法 ... 11

2.2.3 考量時間窗限制發展之 PDPTW 演算法 ... 12

2.3 區域搜尋演算法回顧 ... 13

2.4 導引式區域搜尋法 ... 18

2.5 螞蟻群落最佳化演算法回顧 ... 23

2.5.1 螞蟻系統與精英螞蟻演算法 ... 24

2.5.2 評等螞蟻系統演算法 ... 26

2.5.3 螞蟻群落系統演算法與螞蟻 Q 演算法 ... 26

2.5.4 極大-極小螞蟻系統演算法 ... 28

2.5.5 一般化插入螞蟻演算法 ... 28

2.5.6 調適型螞蟻演算法 ... 30

2.5.7 螞蟻演算法求解 VRP 問題回顧 ... 31

(6)

第三章 PDPTW 轉換 SPDP ... 33

3.1 時窗分割策略 ... 34

3.2 SPDP 問題規模精簡策略 ... 39

3.3 SPDP 問題定義與數學規劃模式 ... 44

3.4 轉換作業績效測試 ... 47

3.4.1 產生 PDPTW 測試例題 ... 47

3.4.2 產生 SPDP 測試例題 ... 49

3.4.3 小規模問題精確解求解測試 ... 51

3.4.4 大規模問題近似解品質測試 ... 52

3.4.4.1 關聯式旅行成本結構 ... 53

3.4.4.2 巨集啟發式演算法 ... 55

3.4.4.3 測試結果 ... 58

3.4.5 小結 ... 61

第四章 調適型導引螞蟻演算法 ... 63

4.1 導引式路徑構建機制 ... 65

4.2 導引式費洛蒙更新機制 ... 71

4.3 導引式路徑改善法 ... 72

4.4 調適型導引螞蟻演算法求解績效測試 ... 78

4.4.1 演算法參數測試實驗設計 ... 78

4.4.2 演算法最適參數分析 ... 81

4.4.3 演算法求解績效分析 ... 85

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

5.1 結論 ... 87

5.2 建議 ... 89

參考文獻 ... 91

附錄一 求解 SPDP 例題的 LINGO 程式碼 ... 100

附錄二 GAACS 演算法參數測試結果總表 ... 104  

(7)

圖目錄

圖1.1 研究流程架構圖………..6 

圖2.1 Or-Opt 交換法示意圖 ... 15

圖2.2 路線間(1-0)與(1-1)交換法示意圖 ... 16

圖2.3 GENIUS 的 2 種插入型態的示意圖 ... 29

圖3.1 固定時間值分割時間窗示意圖 ... 35

圖3.2 SPDP 子作業間路段網絡示意圖 ... 36

圖3.3 SPDP 子作業旅行成本矩陣中子作業決策變數刪除示意圖 ... 43

圖3.4 巨集啟發式演算法測試架構圖 ... 55

圖3.5 起始可行路徑構建架構圖 ... 56

圖3.6 路徑改善法架構圖 ... 58

圖4.1 GAACS 演算法架構圖 ... 64

圖4.2 一隻螞蟻出發構建可行路徑的作業流程圖 ... 66

圖4.3 GAACS 前進機制中選擇插入作業的流程圖 ... 70

圖4.4 導引式區域搜尋法改善 SPDP 問題可行解架構圖 ... 74

圖4.5 路徑間 1-0 節點交換法執行架構圖 ... 75

圖4.6 路徑間 1-1 節點交換法執行架構圖 ... 76

圖4.7 路徑中節點交換法執行架構圖 ... 77

(8)

表目錄

表 2.1 PDP 問題中參數與集合定義  ……….8

表2.2 PDP 數學規劃模式中的決策變數 ... 8

表2.3 PDPTW 問題中增加的參數與集合定義 ... 9

表2.4 PDPTW 數學規劃模式中增加的決策變數 ... 9

表2.5 GLS 演算法符號定義表 ... 21

表2.6 ACO 變數符號定義表 ... 24

表3.1 PDPTW 範例問題資料表 ... 33

3.2 利用時間窗分割 δ=60 分割範例問題的結果 ... 37

表3.3 SPDP 子作業旅行成本矩陣表 ... 38

表3.4 SPDP 子作業旅行成本矩陣中路段決策變數刪除示意圖 ... 41

表3.5 SPDP 子作業旅行成本矩陣中路段決策變數刪除結果 ... 41

表3.6 SPDP 問題數學規劃模式符號定義 ... 45

表3.7 PDPTW 問題作業點編號與原 VRPTW 問題作業點編號對應關係 .. 48

表3.8 測試例題題目名稱、問題規模與最佳解數據列表 ... 49

表3.9 時間窗分割參數與求得 PDPTW 問題最佳解之關係(小規模問題) .. 50

表3.10 時間窗分割參數與求得 PDPTW 問題最佳解之關係(大規模問題) .. 51

表3.11 小規模問題精確解求解績效比較表 ... 52

表3.12 關連式旅行網絡結構表 ... 54

表3.13 起始門檻值最適參數測試結果 ... 59

表3.14 轉換作業提升大規模 PDPTW 問題解品質績效的測試結果 ... 60

表4.1 符號定義表 ... 67

表4.2 較適參數組合測試結果表 ... 81

4.3 GAACS 適合的 α 與 β 參數組合 ... 82

4.4 GAACS 中 MACS2 機制適合的權重變化長度值 w(t) ... 83

4.5 GAACS 適合的 GLS 懲罰值權重 λ ... 84

表4.6 GAACS 求解績效分析結果表 ... 85

(9)

第一章 前言

現今提供物流服務的汽車貨運業者眾多,該型態作業多為點對點運輸,

客戶提供貨物資訊要求貨運公司派車至某處收貨再送至另一處,業者為提升 競爭力,必須提供快速、穩定、正確,且客製化的服務,意即在約定好的時 間區間內,在某地收取約定好的貨物量,並在約定好的另一時間區間內送達 另一地,因此關於時窗限制收卸貨問題(Pickup and Delivery Problem with Time Windows , PDPTW)的研究將益發重要,對於服務需求在指派前多為 已知的業者而言,是降低成本、提高顧客滿意度的重要關鍵之一;對於服務 需求在指派前多為未知的業者而言,隨著時間的推進,客戶需求可能不定時 的出現,而已指派的需求也可能因為某些突發狀況而需重新指派,須要使用 動態指派作業,然而近年學者所提出的動態指派策略,亦是反覆的更新即時 資訊後執行靜態指派作業、或靜態指派局部作業【17、43、49】,因此靜態 指派作業求解績效愈佳、反覆次數愈頻繁,就愈能在動態環境中達到最佳指 派結果,因此如何縮短PDPTW問題靜態指派作業所需時間與提昇指派結果 品質,將是一個重要的課題。

本研究利用時窗分割策略(Partitioning Strategy)將PDPTW轉換為無時窗 的近似PDP問題(Similar Pickup and Delivery Problem, SPDP),將問題簡單 化,即得以求解PDPTW不用考慮時窗,有效降低求解時間。啟發式演算法 方面,本研究結合導引區域搜尋技術(Guided Local Search, GLS)與本研究針 對過去學者提出的各式改良式ACO求解機制優缺點進行分析後所設計之調 適型螞蟻演算法(Adaptive Ant Colony System, AACS),設計調適型導引螞 蟻演算法(Guided Adaptive Ant Colony System, GAACS)求解SPDP問題。動 機、目的與架構分別詳述於后。

1.1 研究動機

1.1.1PDPTW 轉換 PDP 優勢

PDP 為車輛途程問題(Vehicle Routing Problem ,VRP)問題的延伸,顧客 的每一項服務需求將同時包括一個收貨作業與一個卸貨作業,分別有不同的 作業地點,必須以同一車輛進行服務,且須先完成收貨作業才可進行卸貨作 業,當每個作業點的服務時間受到限制或有特殊要求時,則稱為 PDPTW。

(10)

模增加而呈指數性的成長,無法在合理的時間內求得精確解,因此近年許多 屬於NP_hard 問題皆已朝向巨集啟發式演算法的方向發展。

PDPTW 啟發式演算相較於針對 VRP 與 PDP 等較一般化的車輛途程問 題所設計的啟發式演算法又複雜許多,因為多了收、卸作業服務順序與服務 時間窗的限制,相對地,在搜尋過程中,無論是在已構建的可行路徑中加入 新的服務需求(或稱節點、作業)、交換路徑中各需求的服務順序、或是將不 同可行路徑中的需求交換服務等可行解搜尋作業或可行解改善作業,都必需 一再重複確認被移動的需求所包括的收、卸貨作業的各項服務限制是否仍舊 滿足,其中與服務時間相關的運算式,以及與服務順序相關的判斷式,占了 總運算作業的極大比例,且其中許多相同的運算步驟又不斷重複的被執行,

造成搜尋時間攏長,效率低落,因此提出一個有效減少 PDPTW 啟發式演算 法中無效的與重複的運算步驟持續不斷出現的方法,是值得重視的,相信亦 應是提升PDPTW 啟發式演算法求解績效的重要關鍵之一。

有鑑於此,本研究結合時間窗切割策略,針對 PDPTW 設計一套轉換模 式,首先將 PDPTW 中的時間窗限制消除,轉換為無時間窗的 SPDP,其優 勢在於可以減少求解過程中所有與時間相關的運算過程,同時可以沿用過去 學者針對 PDP 所設計的較為成熟且求解績效較佳的啟發式演算法。詳細內 容敘述於4.1 小節。

值得注意的是前述轉換所得的 SPDP 會衍生出許多新限制式與決策變數

【96】,擴大問題規模,為彌補此缺失,本研究提出問題規模精簡策略,縮 小問題規模,並設計關聯式旅行成本結構,大量減少啟發式演算法求解過程 中無效的與重複的運算步驟,提高搜尋效率,經實驗測試,降低求解時間方 面的效果尤其顯著。問題規模精簡策略敘述於 4.2 小節,關聯式旅行成本結 構敘述於5.3.1 小節,相關參數測試、績效測試與實驗設計列於第五章。

1.1.2 GLS 導入 AACS 優勢

PDPTW 屬於高複雜度的 NP-hard 問題,隨著問題規模漸趨龐大、求解 品質要求、以及求解的時效性,使得結構簡單的啟發式演算法(Heuristics Method)已無法滿足實務應用之需求。進行相關研究之學者們多採用基於人 工智慧概念,或藉由自然界生態,及生物習性觀察等結果,所發展的巨集啟

(11)

發式演算法(Meta-heuristics Method),例如:禁制搜尋法(Tabu Search, TS)、

模擬鍛鍊法(Simulated Annealing, SA)、門檻接受法(Threshold Accepting, TA)、基因演算法(Genetic Algorithm, GA)、與螞蟻群落最佳化演算法(Ant Colony Optimization, ACO)等,已成為求解高複雜度組合最佳化問題的主流 方法,且持續有新演算法被提出。

就目前已提出之巨集啟發式演算法發展與應用而言,早期的 TS、SA、

TA 與 GA 等方法在求解 PDPTW 方面各有相當不錯的成果,然 ACO 則是近 年新興的巨集啟發式演算法【29】,目前已陸續成功地應用於求解多種複雜 的組合最佳化問題(Combinatorial Optimization Problems)上,例如:旅行推銷 員問題(Traveling Salesman Problem, TSP)、VRP、二次指派問題(Quadratic Assignment Problem)、工作站排班問題(Job Shop Scheduling Problem)與圖形 著色問題(Graph Coloring Problem)等【24、25、26、27、28、30、55、63、

77、78、80、82】,但應用於求解 PDPTW 之研究成果則相對稀少。近十五 年來,隨著對求解機制執行細節的不同,已有許多種改良式螞蟻演算法陸續 被提出,這些改良的方法被統稱為 ACO【28】,其中應用 AACS 求解 TSP 問題時的求解績效相當優異【2】,因此本研究繼續延伸 AACS 作為設計求 解PDPTW 巨集啟發式演算法的基礎。

AACS 是以群體為基礎所發展出的演算法,屬於廣度搜尋策略方法,將 求解過程所求得的品質不錯的可行解,透過費洛蒙激素記錄在路段上。然而 許多研究指出【16、51、75、76、77】,這種僅具廣度搜尋策略的方法,必 須搭配有力的區域搜尋方法,增加深度搜尋能力,才能有效提升其績效,因 此配合強而有力的區域搜尋技術,乃是提升AACS 效能的重要因素之一。

近年來,某些以區域搜尋為基礎所發展出的巨集啟發式演算法,例如:

1995年時Tsang 與Voudouris提出的導引式區域搜尋法(Guided Local Search, GLS) 【 84 】, 以 及 1997 年 時 Mladenović 與 Hansen 提 出 的 變 動 鄰 域 搜 尋 法 (Variable Neighborhood Search, VNS)【59】,皆可以有效的提升傳統區域搜尋 演算法的求解績效。NVS的執行概念為在區域搜尋過程中,有系統地更換不 同大小的鄰域機制,避免單一鄰域機制陷入局部最佳解困境,相較於其他以 區域搜尋為基礎的巨集啟發式方法,VNS並非僅遵循單一個特定的交換程 序,而是逐漸擴大其鄰域搜尋的範圍,與AACS相同屬於廣度搜尋策略的方 法,不易提升AACS深度搜尋的能力。

(12)

GLS是一種以懲罰為基礎的方法,能夠讓演算機制或電腦程式思考如何 避免落入局部最佳解之束縛,導引傳統區域搜尋演算法朝向存在全域最佳解 的空間趨近,能更有效率地執行尋優過程。反觀ACO演算法中螞蟻選擇前 進方向時,雖需要同時考慮路段費落蒙濃度與路段意念函數,但是路段意念 函數值為路段成本的倒數,在求解過程中始終是固定不變的,不似路段費落 蒙濃度會隨著演算過程累積接資訊,逐漸突顯出最佳路徑資訊。因此,若導 入GLS懲罰解特徵的機制於ACO演算法中(在車輛途程問題中,多將各個路 段設定為特徵),藉由懲罰來增加部分較差或曾經行走過的路段的成本,即 可使路段意念函數也能累積可行解資訊,且與路段費落蒙濃度所累積的資訊 並不相同,因為路段費落蒙濃度累積的是較佳、較建議行走的路段,而導入 GLS概念的路段意念函數則是引導螞蟻避開較差、較不建議行走的路段。再 者GLS是以區域搜尋為基礎所發展出的巨集啟發式演算法,可彌補AACS深 度搜尋能力不足的缺失。

有鑑於上述原因,本研究選擇將GLS與AACS巨集啟發式演算法結合,

設計兼具搜尋深度與廣度的GAACS演算法。

1.2 研究目的

PDPTW 問題為車輛途程問題中複雜度較高的問題類型,亦是實際作業 中確實會遇到的問題類型,因此如何縮短求解時間與提升求解品質,相當值 得深入探討。本研究利用時窗分割策略將PDPTW 轉換為無時窗的近似 PDP 問題(SPDP),即得以求解 PDPTW 不用考慮時窗。在啟發式演算法方面,本 研究結合GLS 與本研究過去針對近年學者們所提出的各式改良式 ACO 求解 機制優缺點進行分析後所設計之調適型螞蟻演算法(AACS),設計調適型 導引螞蟻演算法(GAACS)求解 SPDP 問題,並利用 Lau 與 Liang (2002)

【50】提出的方法,將國際標準題庫 VRPTW 例題轉換產生具有相同標竿解 之 PDPTW 例題進行測試。研究目的條列如下,期望本研究成果對後續學者 進行PDPTW 相關研究應有不少助益。

1. 應用時窗分割策略將 PDPTW 轉換並為 SPDP,減少求解過程中所有與 時間相關的運算過程,同時可以沿用過去學者針對 PDP 所設計的較為 成熟且求解績效較佳的啟發式演算法進行求解。

2. 設計問題規模精簡策略,縮小 SPDP 問題規模;再設計關聯式旅行成本

(13)

結構,大量減少啟發式演算法求解 PDPTW 過程中無效的與重複的運算 步驟,提高搜尋效率。

3. 探討 GLS 的導引搜尋概念,並將 GLS 之概念導入 AACS 中螞蟻前進機 制 與 費 略 蒙 更 新 機 制 , 設 計 GAACS 求解 SPDP 問題,進而提高 PDPTW 問題的求解品質。

1.3 研究流程與架構

本研究流程如圖 1.1 所示,各章節內容敘述於后。第一章為前言,闡述 研究動機、目的與架構;第二章節為相關研究目標與研究方法的文獻回顧,

包括 PDPTW 問題演算法之發展現況、巨集式啟發式演算法、分析近年較著 名的改良式 ACO 演算法的優缺失,以及本研究過去所提出之 AACS 演算 法;第三章節詳細敘述 PDPTW 轉換為 SPDP 的轉換步驟、SPDP 問題定 義、SPDP 與 PDP 之間的差異、構建 SPDP 問題的數學規劃模式,以及測試 轉換作業的績效;第四章節中敘述調適型導引螞蟻演算法(GAACS)的設計 方法與求解架構,以及測試 GAACS 適合使用的參數設定值,與求解績效分 析;最後第五章節為本研究結論與後續研究方向的建議。

(14)

確立研究目標(PDPTW)

回顧PDPTW演算法發展 現況與求解模式分析

確定研究方法

產生具有最佳解的 PDPTW 測試例題【50】

測試時窗分割參數最佳設定值 用時窗分割技術分割PDPTW問

題,並設計問題規模精簡策略

PDPTW測試例題 轉換為SPDP測試例題

建立SPDP數學規劃模式

撰寫Lingo測試程式

應用小規模問題測試轉換 作業降低精確解求解時間

的績效

設計關連式旅行成本結構

微調PDP啟發式演算法以 求解SPDP問題

應用大規模問題測試轉換 作業提升求解品質的績效

GAACS演算法求解SPDP 問題,最適參數值測試

GAACS演算法求解SPDP 問題績效測試與分析

結論 與 建議

回顧ACO演算法發展現況

回顧GLS演算法發展現況 回顧車輛途程問題與相關

求解模式的發展現況

設計GAACS演算法

  圖1.1 研究流程架構圖

(15)

第二章 文獻回顧

本章內容分析 PDP 與 PDPTW 問題定義與數學規劃模式差異,接者回 顧過去學者所提出的相關演算法模式,啟發式演算法與近年新興之巨集式啟 發式演算法發展現況等珍貴的研究成果資料,進而分析彼此間的優劣得失,

與應用領域,以輔助本研究能夠設計有效提升演算法求解績效的改善策略。

2.1 PDP 與 PDPTW 問題定義

PDP 問題是 VRP 問題的延伸,顧客的需求為一組收送貨作業,送貨作 業與收貨作業是可以交錯服務的,但是同一組作業中的收貨作業必須在卸貨 作業前完成,PDPTW 與 PDP 問題間的差異僅在於 PDPTW 問題中的作業點 存在服務時間限制【71】。

一、問題定義

PDP 問題與 VRP 問題相似,唯需求變為一組收送貨作業,須由同 一輛車全程服務,且送貨作業需在收貨作業前完成,問題定義如下。

1. 各車輛行駛路線(Rk)的起、迄點必須為單一場站(O)

2. 訂單 i 指派給車輛 k 進行服務,則車輛 k 的行駛路線(Rk)必須包 括訂單 i 的收貨作業(N ),與卸貨作業(i+ N ),且在行駛路線(Ri k) 中,N 的服務順序必須在i+ N 之前。 i

3. 每項訂單只能指派給一輛車進行服務,且只有一個收貨作業地 點與一個卸貨作業地點。

4. 車輛 k 必須行經其服務路線(Rk)中的所有作業點(Vk)僅 1 次。

5. 車輛 k 的載貨量無論何時皆不能超過車容量上限(Q)。

6. PDP 問題的可行解(R)為所有車輛路線(Rk)的集合 7. 作業點完成後立即離開,並前往下一個作業點

PDPTW 問題與 PDP 問題差異僅在於各項需求作業新增了服務時間 窗的限制,因此問題定義較PDP 問題又新增了下列 3 項。

8. 到達作業點 i 的時間(A )若早於作業點 i 的最早開始服務時間i (ei),則必須等待到ei時間點時,才能開始服務。

9. 作業點i 需停留一段時間(si)進行服務,服務完成後方能離開。

(16)

10. 離開作業點 i 的時間(D ),若晚於作業點 i 的最晚完成時間i (li),則出現延遲狀況。

二、數學規劃模式

PDP 數學規劃模式目標為式(2.1),期望以最少車輛與最短旅行成本服 務所有需求,限制式如式(2.2)~式(2.12),參數與集合定義於表 2.1,決策變 數定義於表 2.2。PDPTW 之數學規劃模式增加與調整的限制式如式(2.13)~

式(2.17),額外增加的參數與集合定義於表 2.3,決策變數定義於表 2.4。

ij ijk

k M i V j V

Min P m d x

∈ ∈ ∈

⋅ +

∑ ∑∑

(2.1)

表2.1 PDP 問題中參數與集合定義 N 訂單集合,n=|N|,n 為訂單數量

N+ 收貨作業點集合,N 表示訂單 i 之收貨作業的地點,i+

iN

N- 卸貨作業點集合,N 表示作業 i 之卸貨作業的地點,i

iN

V 所有作業點的集合,V =N+N

Vk 車輛 k 行經的作業點集合 Rk 車輛 k 的行駛路線

O 所有車輛路線的起、迄地點 M 車輛集合,

kM

m 被指派的車輛數 Qk 車輛 k 的車容量上限 P 車輛指派的固定成本

qi 作業點 i 的運載貨量,若i∈ N+,則qi ≥0,若i∈ N,則qi ≤0 dij 作業點 i 與 j 間的行駛距離

tij 作業點i 與 j 間的行駛時間 si 作業點i 所需的服務時間

表2.2 PDP 數學規劃模式中的決策變數

k

zi

iN

kM

,若訂單i 指派給車輛 k 進行服務,則zik=1,

否則為0

k

x

ij i, jVO,i ≠ j,車輛 k 從作業點 i 行至作業點 j,則

x

ijk=1,

否則為0

y i

iVO

,到達作業點i 時,車上已負載的貨量 D 離開作業點 i 的時間,也稱為作業點 i 的完成時間 i

R 收、卸貨指派與路線規劃結果,R:= UkMRk

(17)

表2.3 PDPTW 問題中增加的參數與集合定義

[ei , li] 作業點 i 的服務時間窗限制。其中 ei為作業點 i 的最早開始服務 時間,li為最晚完成服務時間

表2.4 PDPTW 數學規劃模式中增加的決策變數 A i 到達作業點i 的時間

Ti 作業點i 的開始服務時間,D = Ti i + si

iV

N i z

M k

k

i = ∀ ∈

1 , (2.2)

∑∑

∈ ∈

=

M

k j V

k

ij i V

x 1 , (2.3)

∑ ∑

∈ ∈

=

=

V

i j V

k u k uj k

iu x z u V k M

x , , (2.4)

=

V i

k

iO k M

x 1 , (2.5)

=

V j

k

Oj k M

x 1 , (2.6)

O V j i M k q

y x x y

y

j

=

j

( 1 −

ijk

) +

ijk

(

i

+

i

) , ∀ ∈ , ∀ , ∈ ∪

(2.7) V

i

yi ≥0 , ∀ ∈ (2.8)

V j M k x

Q y

V i

k ij

j

∀ ∈ ∀ ∈

, , (2.9)

=0

DO (2.10)

O V j i M k s

t D x

D

j

=

ijk

(

i

+

ij

+

j

) , ∀ ∈ , ∀ , ∈ ∪

(2.11)

N

i N d N p D

D

p

d

, =

i+

, =

i

, ∀ ∈

(2.12) PDPTW 問 題 較 PDP 問 題 僅 增 加 與 時 間 窗 相 關 的 限 制 式 , 如 式

(18)

(2.13)~(2.17)。式(2.13)是由 PDP 模式中的式(2.11)修改而得,因為 PDP 問題 定義任一項作業點完成後立即離開並前往下一個作業點,因此,式(2.11)中 的不等式符號可以用「等於」,但在 PDPTW 問題中,由於各個作業點都有 時間窗限制,過早到達會出現閒置等待時間,因此離開作業點的時間,應大 於或等於完成時間(式 2.13),以及小於或等於其最晚完成時間(式 2.14)。

O V j i M k s

t D x

D

j

ijk

(

i

+

ij

+

j

) , ∀ ∈ , ∀ , ∈ ∪

(2.13)

i

i l

D ≤ (2.14)

V i l

T

eiii , ∀ ∈ (2.15) Ti =Max A e{ , }i i (2.16)

( ) ,

k

j ij i ij

A = x D t + , ∀ ∈ k M , ∀ i j V ∈ ∪ O

(2.17) 2.2 PDPTW 演算法回顧

PDPTW 問題運算時間會隨著例題規模增加而呈指數性的成長,不易在 有效的時間內求得精確解,因此在有限的資源限制下,同時兼顧求解品質及 其效率,往往是在求解此類問題時重要的考量因素。從過去 PDPTW 相關研 究的解法上可以發現,可以求出精確解(Exact Solution)的辭書搜尋法、分枝 定限法、分枝截面法等求解效率皆不佳,且僅止於求解較小型的問題【34、

47、50、54】,因此多數學者皆已朝向巨集啟發式演算法(Meta-Heuristics)的 方向發展,原因在於巨集啟發式演算法能夠跳脫求解過程中陷入局部最佳解 的困境,與改善傳統啟發式演算法的效率。

2.2.1PDPTW 精確解演算法

Psarafis 學者針對單一車種 PDPTW 問題,提出一個複雜度為 O(n23n)的 動態可成式演算法【66、67】,求取精確解,目標函數為求取最小顧客服務 不便(例如服務延遲),但僅能求解很小規模問題,最大需求量必須小於 10。

Sexton 等【72、73】也針對相同的問題,提出組合式演算法求取精確 解,該方法將單一車種 PDPTW 問題中,有關於路線規劃方面的問題,轉換 為整數規劃問題;而關於指派作業方面的問題,則轉換為線性問題,再利用

(19)

演算法依序個別求解,其可以在 18 秒內有效求解出需求規模介於 7~20 之 間的PDPTW 問題。

Lu 探討多車種 PDP 問題(Multiple Vehicle Pickup and Delivery Problem, MPDP)的精確解【54】,研究中設計混合型線性整數規劃問題模式來表示 MPDP 問題,模式特色為僅使用單一二元變數表示路徑走向,不用增加額外 的變數來表示收、卸貨節點間的配對關係、服務車輛編號、以及各客戶之 收、卸貨服務須同車處理的限制。該模式可以在3 小時 CPU 時間( [Unix 系 統] SUN Fire 4800 server)內,解出所羅門國際題庫之 VRP 題型中,C 型問 題(5 輛車 17 個顧客),以及 R 型問題(5 輛車 25 個顧客)之精確解。

綜上所述,目前所發展可應用於求解 PDPTW 問題精確解之演算法仍無 法有效降低求解時間,且在合理時間內可求得精確解之問題規模亦不超過 30 個顧客。

2.2.2PDPTW 啟發式演算法

Dumas等學者提出Column Generation方案與十個可以改善路線成本的方 法【34】,設計數種改善解組合,求解考量車容量、時窗、服務優先順序、

與需求合併的VRPPDTW單場站問題,組合式改善法雖可提升求解的品質,

但求解時間亦相對增加。

學者Nanry 與 Barnes提出反應式禁忌演算法(Reactive Tabu Search),以 最小旅行成本為車輛指派與路徑規劃目標,配合違反時窗與車輛超載兩種懲 罰成本函數機制,考量與違反時窗限制條件,求解PDPTW問題【61】,求解 問題規模為100個節點的問題,與Kohl【47】所求得的近似最佳解相比較,

平均差距僅0.01%,且求解時間平均減少65%。

Lau與Liang發展兩階段啟發式演算法求解PDPTW問題【50】,第一階段 利用類似掃描法的方式,針對收貨點進行路線分群,然後再將卸貨點加入對 應群中最適合的路線位置,第二階段亦配合利用禁忌搜尋法進行路線改善作 業,測試需求為100對左右規模的問題,可求得不錯的近似解。

Bent與Van Hentenryck亦提出兩階段式演算法【12】,研究中提及降低使 用的車輛數是降低總旅行成本的關鍵之ㄧ,因此第一階段主要目標為減少車

(20)

輛總數,第二階段為減少總路線成本,同時也再次減少車輛數。演算法核心 則 改 為 模 擬 退 火 法(Simulated Annealing, SA) 與 大 型 鄰 域 搜 尋 法 (Large Neighborhood Search, LNS),該演算法改善了國際題庫中200與600個顧客標 竿解達47%與76%,為求解績效極佳的啟發式演算法之ㄧ,但求解問題規模 較大時相對求解時間亦相對增加。

Mitrovic-Minic 與Laporte【58】則認為車輛在服務客戶的過程中,其閒 置時間的分布狀況,會影響新增需求指派結果,亦與整體面的最佳指派結果 息息相關,研究中將車輛總服務時間依據服務時間、服務顧客數或是固定時 段,區分為數個時區,在各個時區中,依據該時區的時間區間,與時區中所 服務客戶的時窗限制,設計四種等候策略進行求解,結果顯示研究中所設計 的高階變動式等待策略(Advanced Dynamic Waiting Strategy),較傳統等待方 式(服務完成後立即離開並前進到下一個作業地點),平均可減少4.34%~5.3%

總距離,以及減少3.19%~5.94%的使用車輛數。

以上學者們所提出的各式啟發式演算法,皆可求得高品質的近似最佳 解,但是反觀學者們所設計的各式演算法的目的與求解過程,多是針對如何 跳出區域最佳解、如何增加搜尋廣度與搜尋深度為目標,但是針對時窗限制 所提出的啟發式演算法,卻相對較少。

2.2.3 考量時間窗限制發展之 PDPTW 演算法

實際生活中所會面臨到的各式路徑規劃問題,極大多數都會存在服務時 間限制,但是相較於過去學者們提出求解考慮時間窗限制之各式路徑規劃問 題的啟發式演算法,以時間窗限制或服務時間為基礎所發展的啟發式演算法 則相對較少。Wang 將過去學者們以時窗限制為基礎所發展的啟發式演算 法,依服務時間處理方式區分為三種【96】:

一、確實考量時間窗限制

該類型處理方式為在可行路徑構建過程中,同時且優先考慮時窗限 制,相關啟發式演算法有Dantzig-Wolf 分解法 【32】,該分解法近似於 Lagrangian 鬆弛法,是一種可以求得近似最佳解的方式,藉由鬆弛較複 雜的限制式,將原問題簡化,另外尚有Kolen 等學者針對動態問題所提 出的特定區域鬆弛法(state space relaxation) 【48】。

(21)

二、時間窗限制式鬆弛法

該類型方法首先鬆弛問題中所有包含時窗的限制式,然後進行求 解,藉由每次求解回合中最後產生的不可行解,作為下一求解回合中時 窗分割的依據,然後再利用網絡鬆弛法(Network Relaxation Methods)求 解 鬆 弛 後 的 問 題 , 如 此 反 覆 求 解 。 該 種 啟 發 式 演 算 法 求 解 績 效 較 Dantzig-Wolf 分解法差,但優於 Lagrangian 鬆弛法【23】。

三、時間窗分割法

時窗分割法將具有連續時窗的作業點,分割為一群具有不同時窗的 數個作業點,並各自視為一個獨立的決策變數。該類型方法最早是由 Appelgren 求解船運排班問題(Ship Scheduling Problem)時所提出【8、

9】;Swersey 及 Ballard 應用於求解校車排班問題(School Bus Scheduling Problem),使車隊規模最小化【79】;Graharn 及 Nuttle 針對時窗分割法 的績效進行測試,發現該方式所求得的近似最佳解品質極佳,但求解時 間卻過長【42】;Wang 則應用於求解 mTSP 問題【96】,將各作業時窗 分割成數個子時窗,並將各個子時窗視為一項新的作業,針對每項子作 業設計寬鬆離開時間法則與嚴謹離開時間法則,並配合利用由大到小的 分割時段長度,產生差距愈來愈小的最佳解上、下限值,漸漸逼近至找 出最佳解的方式,然而切割時窗雖然會減小上下界的差距,也會增加問 題的規模,因此使用切割時窗法必須在解的品質與求解時間當中做取 捨,可能造成求解時間壟長的缺失,也映證了 Graharn 及 Nuttle【42】

研究中針對時窗分割法所提出的求解時間過長缺失。

時窗分割法相關啟發式演算法近年研究中較少被使用,原因在於分割後 的問題規模會倍增成長,但此種演算法求得的近似最佳解品質確實較佳,有 鑑於此,本研究採用時窗分割方式設計啟發式演算法,但為避免分割後問題 規模倍增與求解時間過長的缺失,另設計問題規模精簡策略,克服此缺失。

2.3 區域搜尋演算法回顧

區域搜尋法(Local Search)是一種解的改善方法,但是顧名思義,該方法 所搜尋到的可行解,有極大的機率只是局部最佳解。改善的方式通常是交換 現有解的部分組成元素(節點或節線),或元素排列順序,依據一個固定的交

(22)

換法則,與固定的交換程序,將現有可行解轉變成另一個品質較佳的可行解 (亦稱為鄰解),逐步改善目標函數,若交換程序結束,或持續某固定時間,

或固定改善次數後,皆無法找到有改善的可行解,即停止區域搜尋法。交換 所得的鄰解與現有解之間非常相似,故也被稱為鄰域搜尋(Neighborhood Search)法。

一、需有一個產生鄰解的程序

鄰解是經由特定程序改變現有解S的部分組成元素的排序結構,所 產生的一個新的可行解S’,產生方式為改變可行解S中,λ個元素的排序 方式後所產生的新的可行解S’。由於僅改變部分元素,因此S 與S’之間 具有很大的相似性,S’也稱為S的鄰解,但是鄰解並非唯一,由S所產生 的鄰解的集合,稱之為鄰域,而可行解與其鄰域聯集形成的解空間,則 稱為搜尋空間(Search Space)。對相同的現有解而言,採用不同的鄰域產 生機制,將有可能產生出不同的搜尋空間。

二、需有一個接受法則

因為鄰域中的可行解很多,所以要透過接受法則來選擇適合的可行 解。區域搜尋法只接受比現有解更佳的鄰解,屬於嚴格的接受法則,然 而此種方式容易快速陷入僅存在區域最佳解的解空間中,因此某些巨集 啟發式方法改採用包容性接受法則,允許接受戰劣解,意即差於現有解 的鄰解,以增加跳脫僅存在區域最佳解的解空間中的機率,提升搜尋到 全域最佳解的可能性。

三、需有一個選擇策略

符合接受法則的鄰解可能不只一個,此時必須透過選擇策略來決定 該選擇其中的哪一個。常見的選擇策略有最佳改善(Best Improvement) 與首先改善(First Improvement)兩種,選擇策略的差異性條列如下:

1. 最佳改善策略是選擇所有符合接受法則的鄰解中,改善效果最 佳的那一個;

2. 首先改善策略是選擇搜尋過程中第一個符合接受法則的鄰解。

(23)

因為存在如此差異,造成鄰域解搜尋的起始位置與順序不同時,會 影響首先改善策略的選擇結果,但並不會影響最佳改善策略所選擇出的 鄰解,且採用首先改善策略時可能造成搜尋深度不足的缺失,因此,本 研究設計啟發式演算法時將採用最佳改善策略。

交換型區域搜尋法大致可分為:節線交換法(Arc Exchange)與節點交換 法(Node Interchange)兩類,本研究求解PDPTW問題,由於作業點間有服務 順序的限制存在,若使用節線交換法改善現有解,將增加作業間服務順序控 制的困難度,因此,本研究採用節點交換法作為啟發式演算法中路徑改善法 的演算核心。節點交換法又可細分為多種不同的交換形式,分別敘述於下。

一、Or-Opt交換法

Or-Opt交換法是一種簡化的3-Opt 節線交換法【62】,也是一種路 徑間的節點交換法。該方法將某一個節點(p = 1)、連續的二個節點(一段 節線,p = 2)或連續的三個節點(連續二段節線,p = 3)自路線中抽出,

然後在不改變被抽出節點的服務順序的原則下,再重新插入原路線中的 其他節線之間,然後檢查插入結果是否是否符合新解接受法則,如此反 覆執行,期能獲得較佳的路線。交換方式如圖2.1所示,由於Or-Opt 在 交換時不需反轉任何節線,因此提高了執行的效率。Reinelt 曾提及一 個類似的方法,稱為節點/節線插入(Node/ Edge Insertion)法【68】,

實可視為是Or-Opt 的特例(p=1 或 p=2)。

圖2.1 Or-Opt 交換法示意圖 資料來源:【7】

(24)

二、路線間節點交換法

路線間節點交換法最早是由Christofides 與 Eilon所提出【20】,針 對任兩條路線,在不違反各路線車輛容量限制下,相互交換其中部分的 節點,並檢查交換後的結果是否可行並獲得改善。求解不同型態問題時 要考慮的限制條件不盡相同,若是求解有時間窗限制的問題時,要多考 慮兩條路線中,各作業的服務時間是否仍舊滿足;若求解收送貨問題 時,則需要多考慮兩條路線中,各作業間服務順序的關係。

路線間節點交換的型式很多,最基礎的包括(1-0)交換法與(1-1)交換 法,交換方法示意圖如圖2.2所示。

1. (1-0)交換法:將任一路線中的一個節點,從原路線中刪除,並試著 插入其他路線中。

2. (1-1)交換法:將任一路線中的一個節點,與其他路線中的一個節 點交換服務,並將節點插入新路徑中的最適位置。

圖2.2 路線間(1-0)與(1-1)交換法示意圖 四、驅逐鏈(Ejection Chain)法

此法是一種更複雜的路線間節點交換法,主要是由路線間節點交換 與節點插入所構成,每次交換需選擇三條不同的路徑,亦可稱之為1-1-

(25)

0 節點交換【65】。其概念是當執行1-1 節點交換時,若有某一條路線 需考慮的限制條件無法被滿足(即交換後需求量總和大於車輛容量、或 是不符合路線中各作業服務時間限制、或是各作業間若存在服務順序限 制且無法符合等等),則再將該路線中的另一節點(不可為交換進來的節 點)移出並插入至第三條路線中,當然此過程仍須滿足各自路線所需考 量的限制條件。

區域搜尋方法的種類繁多,各種交換或插入型態皆有其不同的改善功 能,本研究求解問題屬PDPTW型態,每次執行作業交換時,皆須考慮一組 收、卸貨作業,以及服務時間窗、車容量與服務順序的限制,為避免交換法 複雜度太高,將低求解效率,因此並未採用驅逐鏈法之1-1-0 節點交換法,

作為設計啟發式演算法的路線改善法核心。

相關研究中皆指出ACO 演算法配合具有搜尋深度的區域搜尋演算法,

可以有效提升求解效率【25、26】,然而ACO 演算法本質上是屬於需要較 長求解時間之演算法,因此配合區域搜尋演算法求解較大規模問題時,求解 時間將大幅增加。有鑑於此,本小節簡單回顧過去學者提出的三種增進區域 搜尋演算法執行效率的技術。

一、鄰近點名單(Neighborhood List)與候選名單(Candidate List)【13、68】

針對任一節點i,進行交換時僅考慮增加節點i 與其鄰近點名單中不 存在的節線。點i 之鄰近點名單中節點之決定方式可以是以點i 為圓 心,在某半徑構成之圓型區域中所包含的所有節點;也可以是與點i 相 連之節線距離小於某限制距離下之所有節點等。如此一來,加入點i 與 其鄰近點名單中之節點相連成的節線的距離必不會太長,交換結果得以 改善的機會愈高,亦可避免部分距離過長的無效交換動作,進而減少演 算法的執行時間,提升求解效率。

二、僅加入較短路徑(Additional Speed-Up) 【13】

每次交換時,新加入的2 條節線 (i, j) 與(k, l) 中至少須存在一條 小於被替換掉的2 條節線 (i, k) 與(j, l) 中任一條的長度,由於對稱的 原因,所以判斷若dij > dik 即可試作交換,如此可以避免新加入節線長

(26)

三、忽略部分區段(Don’t Look Bits) 【74】

該項技術中為所有節點設定一個忽略值。演算法執行初期,所有忽 略值皆為0,表示以該節點為起點進行交換動作時,仍存在可以改善目 前解的機會;反之,當一個節點作為起始節點時,確定無法找到任何在 交換後可以改善目前解的節線時,該節點的忽略值將變更為1,表示在 後續的交換步驟中將再不考慮以該節點作為起始節點的交換動作。需注 意的是若忽略值為1 的節點若因為其他交換作業而改變了與其相連之節 點順序或改變相連結之節點時,其忽略值將再變更為0。

2.4 導引式區域搜尋法

傳統啟發式方法大多是先使用基礎的路徑構建方法,例如鄰近插入法 (Nearest Inserting Method)、最遠插入法(Farthest Inserting Method )或貪心解 法(Greedy Approach)等,在短時間內先求得一個可行的起始解,再利用區域 搜尋法來進行改善。但此類方法缺乏跳脫局部最佳解的機制,因此對於高複 雜度或規模大的例題,常無法獲得較佳的結果。因此近廿年來導入智慧型解 題策略之巨集啟發式方法乃應運而出。這些智慧型解題策略大多來自於人工 智慧、腦神經科學、物理、化學與自然生物等領域,能夠讓演算機制增加跳 脫局部最佳解束縛的機會,並導引演算法能更有效率與彈性地執行鄰域尋優 步驟,與擴大搜尋空間,增加搜尋到全域最佳解的可能性,例如:變動鄰域 搜尋法(Variable Neighborhood Search, VNS)、導引式區域搜尋法(Guided Local Search, GLS)與螞蟻群落最佳化演算法(Ant Colony Optimization, ACO) 等相繼被提出。

NVS的執行概念為在區域搜尋過程中,有系統地更換不同大小的鄰域機 制,避免單一鄰域機制陷入局部最佳解困境,相較於其他以區域搜尋為基礎 的巨集啟發式方法,VNS並非僅遵循單一個特定的交換程序,而是逐漸擴大 其鄰域搜尋的範圍,與AACS同屬於廣度搜尋策略的方法,因此不易提升 AACS深度搜尋的能力。GLS是一種以懲罰為基礎的方法,搜尋過程中,

GLS的演算機制與擴增目標函數,將導引搜尋方向避開可行解較差的鄰域與 曾經搜尋過的鄰域,朝向可能存在全域最佳解的空間趨近,能更有效率地執 行尋優過程,同時亦可彌補AACS深度搜尋能力不足的缺失。

(27)

GLS由Voudouris與Tsang(1995)所提出【84】,其概念源自於GENET之類 神經網路方法【22】,與Tabu Search極為相似【45】,亦是以記憶功能為基 礎的演算法。應用領域相當廣泛,尤其是適合求解組合優選問題,目前已成 功 應 用 於 旅 行 推 銷 員 問 題(TSP) 【 93 、 94 】; 二 次 指 派 問 題 (Quadratic Assignment Problem, QAP) 【 88 】; 局 部 限 制 滿 意 問 題 (Partial Constrain satisfaction)【89、90】;工作人員排班問題(Workforce Scheduling Problem)

【84、85】;工作站排班問題(Job Shop Scheduling Problem)【10】;三維裝箱 問題(Three-Dimensional Bin-Packing Problem)【36】;廣播接收頻率指派問題 (Radio Link Frequency Assignment Problem)【92】;函數最佳化問題(Function Optimization Problem)【87】,與資源分派問題(Resource Allocation)【86】

等,亦可以簡單的與多種啟發式演算法配合使用,例如2-Opt交換法【53】, 節點重置(Relocate)與節點交換(Exchange)等【70】。

GLS利用解特徵來描繪解的特性,並應用懲罰的概念,藉由懲罰特徵來 獲得擴增目標函數,導引後續可行解的搜尋方向。擴增目標函數如式(2.18) 所示,相關符號定義於表2.5,並將專有名詞條列解釋於後。

1

( ) ( ) M i i( )

i

h s g s

λ

p I s

=

= + ⋅

(2.18)

一、特徵(Ij)

GLS根據問題的特性,為可行解定義「特徵」,在車輛途程問題 中,通常是以節線作為特徵,一條節線就視為是一個特徵;

二、特徵成本(cj)

GLS為每一個特徵設定特徵成本,在車輛途程問題中,通常是以節 線成本當作特徵成本;

三、擴增目標函數

擴增目標函數是在原問題的目標函式(g)中,為每一個特徵附加一 個 λ權重的特徵懲罰值(pi),產生新的目標函數(h),引導演算法在解空 間中的搜尋方向。新的目標函數中附加的懲罰值參數值會隨著每回合搜

(28)

尋到的區域最佳解而改變,λ用來控制特徵懲罰值在擴增目標函數中的 影響程度。

四、λ權重值

λ權重值主要目的為控制特徵懲罰值在擴增目標函數中的影響程 度,設定方式可以是在演算過程中始終不會改變的固定定值【56】,也 有學者依問題特性隨著演算過程,以遞增或遞減方式變動【57】,也有 學者設計變動方式隨著目前最佳者品質而改變【95】,在各回合的搜尋 過程中,擴增目標函數中的λ係數是固定的,但是在進入不同回合時,λ 值則會隨前一回合的局部最佳解而變,計算公式說明於式(2.19)。不同 的設定方式下,或求解不同型態的問題,適合的參數設定亦不盡相同,

但值得注意的是,λ權重值是影響GLS演算法績效的重要關鍵之一。

1

( *) ( *)

M

i

a g s Ii s

λ

=

= ⋅

(2.19)

其中s*為前一回合之局部最佳解;a 為事先設定之參數。可知λ值 主要受到前回合局部最佳解之原始目標函數值與特徵出現次數的影響。

五、效用函數與特徵懲罰值

懲罰值更新計算方式由效用函數(util)控制,式(2.20),求解過程 中,當搜尋過程陷入區域最佳解時,意即當區域搜尋找到新的局部最佳 解s時,GLS會根據根據式(2.20)計算出各特徵之效用值(utili),然後找到 具有最大效用值的特徵 Ii*,並改變該特徵的懲罰值,即令pi* = pi* + 1,(具有最大效用值的特徵可能不只一個,所有滿足極大化效用函數的 解特徵所對應的懲罰值參數,皆要累加),其他特徵的懲罰值則維持不 變。故懲罰值pi 並非固定值。其目的在於可藉由懲罰該特徵,來導引 區域搜尋離開該局部最佳解,而能繼續朝其他空間來搜尋。

( , )i i( ) i/(1 i)

util s f =I s c⋅ + p (2.20) s表示本回合找到的局部最佳解;utili(s)表示在s時,第i項特徵(Ii)

(29)

的效用值函數;ci 為特徵(Ii) 特徵成本;pi 為特徵(Ii) 特徵懲罰成本。

由式(2.20)可知,若局部最佳解s未具有某特徵時,該特徵之效用值 為0,因為 Ii(s) = 0;反之,若具有某特徵時,則其效用值會受到特徵 成本(ci)與特徵懲罰成本(pi)這兩個因素的影響。

1.若特徵(Ii) 的成本 ci 越高,其效用值越高;

2.若特徵(Ii) 的懲罰值 pi 越大,其效用值則越低。

表2.5 GLS 演算法符號定義表

g 問題原始目標函式,g (s)為可行解 s 的目標成本

h 附加懲罰值後的新目標函式,h (s)為可行解 s 的新目標成本 S 可行解集合,集合中所包括的可行解元素以s 表示

λ 附加懲罰值對原目標函式影響力參數 M 特徵數量

pi 特徵i 所對應的懲罰值

Ii(s) 特徵函數,若可行解 s 中存在特徵 i 時,Ii(s)=1,若否,則 Ii(s)=0 ci 特徵i 的特徵成本

以下簡要回顧GLS 應用於車輛途程相關問題的發展現況、應用成果與 GLS演算法執行步驟。【94】

步驟1:設定執行參數(S, g, λ, Ii,..,IM, ci,..,cM, M) 步驟2:設定參數初始值

k=0

s0:應用隨機或起始解構建方式產生的可行解 pi=0,其中 i=1~M

步驟3:若滿足停止條件,則跳至步驟 9 步驟4:產生新目標函數 h = g + λ*Σpi*Ii

步驟5:利用 h 與 sk配合區域搜尋法,產生區域最佳解sk+1

步驟6:利用可行解 sk+1與效用函數,計算所有特徵的效用函數值 步驟7:步驟 6 中所有擁有極大效用函數值的特徵的懲罰值皆加 1 步驟8:k=k+1,回步驟 3

步驟9:計算目前最佳解的原始目標成本 g (s best)

步驟10:輸出目前最佳解與目標成本,然後結束演算法

(30)

學者 Kilby 等應用 GLS 配合四種路徑改善方法【45】,求解有時間窗與 車容量限制的 VRP 問題,路網中所有節線各做為一項特徵,唯加入了服務 時間窗的考量,其懲罰函數並未附加於目標函數中,改採用經懲罰函數修改 後的路徑成本矩陣進行求解,測試所得的最適 λ 參數值為 0.2,求解所羅門 題庫中C1、C2、R1、R2、CR1 與 CR2 類型的 VRPTW 問題共 56 題,結果 顯示C1 與 C2 類型的問題由於較易求解,所以 GLS 的表現與其他區域搜尋 相關演算法【69、81】的績效皆一般優秀,求解 R2 與 CR2 的結果特別突 出,但在R1 類型的問題中則最為耗時。

Voudouris 與 Tsang【94】結合GLS 與快速區域搜尋法 (Fast local search, FLS)求解TSP,特徵設定方式與學者Kilby等1997年研究中所使用的 方式雷同【45】,Kilby等應用GLS配合四種路徑改善方法,求解有時間窗與 車容量限制的VRP問題,最適λ參數值建議0.3,測試結果顯示在GLS 架構中 使用2-Opt 為基礎之FLS 比Iterated Lin-Kernighan 交換法及基因-區域搜尋 法具有更高的解題績效。

Kilby等【46】將GLS 法應用於時間窗限制車輛路線問題(VRPTW),其 區域搜尋採用了2-Opt、Relocate、Exchange 及Cross 等方法。測試結果發現 當車輛路線較長時,GLS比其他文獻的方法表現較佳;但當路線較短時,

GLS 則表現稍差。此結果顯示GLS 似乎較適用於求解長路線的例題。而該 結論亦與學者Kilby等過去研究結果【45】相符合。

Voudouris 與 Tsang以TSP 問題為例【95】,說明如何選定特徵,其特 徵係指某些特定的節線。例如:若不希望TSP 解的節線長度太大,可選擇 某些很長的節線做為特徵,並設定其特徵成本為該節線之長度。此外,停止 法則設定為最大回合數;而參數a 之值,對2-Opt 而言,建議為1/8 ≤a

≤1/2。

Zhong 與 Cole 【98】應用GLS 法來求解時間窗限制之回程取貨車輛 路線問題(VRPBTW),此VRPBTW 考慮了有顧客優先順序及無顧客優先順 序兩種情況。其解題架構為:首先構建一個起始解(允許其為不可行解),並 提出一個提高可行性的Section Planning 方法,然後使用GLS 改善該起始解 的可行性與目標值。此GLS 法在部份VRPBTW標竿例題上已突破目前已知 最佳解。

(31)

2.5 螞蟻群落最佳化演算法回顧

螞蟻演算法(Ant Algorithms),是 Dorigo 在 1991 年所提出的一個新的巨 集啟發式演算法【29】,並已陸續成功地應用於求解多種複雜的組合最佳化 問 題(Combinatorial Optimiztion Problems) 上 , 例 如 : 旅 行 推 銷 員 問 題 (Traveling Salesman Problem, TSP) 、 車 輛 路 線 問 題 (Vehicle Routing Problem)、二次指派問題(Quadratic Assignment Problem)、工作站排班問題 (Job Shop Scheduling Problem)與圖形著色問題(Graph Coloring Problem)等

【21、22、23、24、25、26、27、28、29、30、31】。

螞蟻演算法之概念係藉由觀察螞蟻覓食行為而來。螞蟻爬行時會依據先 前螞蟻分泌在其路徑上的費洛蒙(pheromone)激素來決定前進的方向;殘留 於路徑上的費洛蒙濃度愈高,該路徑被其他螞蟻選擇的機率就愈高。此外,

費洛蒙激素也會隨著時間累進而漸漸蒸發稀釋。螞蟻演算法即是將上述的螞 蟻 覓 食 行 為 , 轉 換 成 演 算 法 求 解 的 機 制 , 主 要 包 括 : 路 徑 構 建(routes building)、轉換法則(transition rules)與費洛蒙更新(pheromone update)等機 制,演算法執行步驟條列如下。

步驟1: 參數值初值設定

步驟2: 重複步驟 2 直到所有螞蟻皆完成各自的完整的可行路線 2-1:螞蟻 k 構建一條完整的可行路線 t(k)

2-2:利用可行路線 t(k)進行路徑費洛蒙濃度即時更新作業 步驟3: 進行路徑費洛蒙濃度全域更新作業

步驟4: 反覆回合數累計一次。若滿足停止條件,則書出最佳解;若 否,則回到步驟2

演算法執行前須先設定基本參數,包括節點數( n )、螞蟻數( κ )、路徑 費洛蒙初值( τ )、回合數( t )、蒸發係數( ρ )、意念函數( η )、路徑費洛蒙權 重( α )、意念函數權重( β )等,其餘變數定義於表2.6。

(32)

表2.6 ACO 變數符號定義表

ij(t)

τ

在第 t 次反覆時,路徑 ( i , j )上的費洛蒙濃度

η

ij 螞蟻從節點 i 行走到節點 j 的意念函數,為節點 i 與 j 間距離 的倒數

k

N i 螞蟻k在節點 i 時,可選擇的尚未經過的節點集合

(t)

P

ijk 螞蟻k在第 t 次反覆時從節點 i 行走至節點j的機率值

(t)

L

k 螞蟻k在第 t 次反覆時所完成路徑的長度 (t)

Lb 第 t 次反覆中的最佳解路徑長度

(t)

L

gb 執行至第 t 次反覆時所記錄的目前最佳解路徑長度

在每一次反覆回合開始時,以隨機方式產生每隻螞蟻皆不相同的起始節 點,尋覓路徑時則利用路徑費洛蒙濃度及意念函數組合成的公式,求出該螞 蟻尚未經過之各個節點的預行走機率值( P ),再依據機率值決定螞蟻下一個 欲前往的節點,然後將該節點加入該螞蟻既有路徑中,以此類推,直到所有 節點皆經過一次後回到該螞蟻在該次循環時的起始節點才算是完成路徑,然 後進行路進費洛蒙濃度更新作業,可視為一種較佳解資訊紀錄機制,並導引 後續路徑構建作業搜尋到更優的解。執行步驟如下所示,可看出 ACO 演算 法主要可以區分為兩大主要部份,其一為路徑構建機制,其二為費洛蒙更新 機制,亦為各式改良式的螞蟻演算法的差異所在。

近十五年來,隨著對上述各機制執行細節的設計不同,已有許多種改良 式螞蟻演算法陸續被提出,較著名的有:螞蟻系統(Ant System, AS)【27、

29、30、31】,碼蟻群落系統演算法(Ant Colony System, ACS) 【25、26、

38】、螞蟻 Q 演算法(Ant-Q) 【4 0、97】、極大-極小螞蟻系統演算法(Max- Min Ant System, MMAS) 【74、75、76、77、78】 與評等螞蟻系統演算法 (Rank-Based Version of Ant System, ASrank)【16】;這些改良的方法也被統稱 為螞蟻群落最佳化 (Ant Colony Optimization, ACO) 方法【28】,回顧於後。

2.5.1 螞蟻系統與精英螞蟻演算法

最早的 ACO 演算法是 Dorigo 於 1991 年所提出螞蟻系統(Ant System, AS),並被應用於求解 TSP 問題。AS 當螞蟻位於節點 i 時,係依據式(2.21) 中之機率值決定下一個將行至的節點 j,當第 t 次反覆中所有螞蟻皆完成各 自的路徑後,即利用式(2.22)針對該次反覆中每一隻螞蟻所完成的路徑,進 行路徑費洛蒙的更新【21、29】。該研究中針對 AS 參數進行測試,其結果

(33)

顯示ρ= 0.5

Q = 100

k = n 時,{α = 1, β = 1}、{α = 1, β = 2}、{α = 1, β

= 5}與{α =0.5, β = 5} 等組合有較佳的結果,可以找到最佳解。

k i

N l

il il

ij ij

k

ij if j N

] [ (t)]

[

] [ (t)]

(t) [ P

k i

=

β α

β α

η τ

η τ

(2.21)

( ) ( ) m k( )

ij ij ij

k=1

t +1 t t

τ

=

ρτ

+

Δ

τ

(2.22)

其中

k k

ij

Q/L (t) (t)= 0 τ

Δ ⎨

Dorigo等之後續研究則設定AS 參數α= 1

β= 5

ρ = 0.5

Q = 100

k

= n,並求解TSP【25、26】。結果顯示:在問題規模小於75 個節點時多有 不錯的成效,但當問題規模大於75 個節點時則績效普遍不佳,因為每一隻 螞蟻的路徑皆用來更新路徑費洛蒙濃度,最佳路徑之資訊容易被路徑不佳的 螞蟻混淆。

因此Dorigo 等學者【31】 與Bektas 【11】 相繼發展出精英策略螞蟻 系統(Elitist Strategy Ant System, Elitist AS) ,這是第一個以AS 為基礎進行 改善的演算法,僅以目前最佳解進行路徑費洛蒙濃度的更新,但為了加強最 佳路徑上的費洛蒙濃度,即在第t 次反覆結束時,以跑出目前最佳解之螞蟻 數量,作為利用目前最佳路徑進行路徑費洛蒙更新的次數,更新方式如式 (2.23)所示。

ij ij gb

(t +1)= (t)+ e(t) L (t)

τ ρτ

(2.23)

隨著反覆次數的增加,Lgb 將不斷的更新,而每次反覆結束時行走出目 前最佳解的螞蟻數量e 也隨之更新,使得精英策略螞蟻系統存在部分缺失:

1. 當第 t 次反覆結束時,可能沒有任何 1 隻螞蟻行走出優於目前最佳 解的路徑,此時將不進行路徑費洛蒙濃度更新,而降低求解效率。

2. 當求解初期即出現多數螞蟻同時行走出目前最佳解,將造成求解過 程快速收歛而落入區域最佳解中。

如果螞蟻k 經過路段(i,j) 其他情況

(34)

2.5.2 評等螞蟻系統演算法

ASrank 是以AS 為基礎所改善出的ACO 演算法 【16】,採用與AS 相 同的路徑搜尋機制,如式 (2.21) 所示,而路徑費洛蒙之更新則採用與Elitist AS 相似機制應用目前最佳解路徑,但Elitist AS 每次反覆僅記錄目前最佳 解之資訊,在無更佳解被搜尋出之前,每次反覆後記錄之解都是相同的,造 成搜尋過程亦快速收歛並落入區域最佳解中。

ASrank 將每次反覆中所收搜尋出之解從優至劣作排序,取其中較優的r 個解與目前最佳解一起更新路徑費洛蒙濃度,更新時給予目前最佳解較高的 權重值,如式 (2.24) 中之w,而各個解之路徑中所包括的路段,則依所在 解之優劣,以不同的權重值累積費洛蒙激素至路段上,一方面可以記錄較多 的解資訊,另一方面可減少各路段間費洛蒙濃度的差異,避免部分路段之費 洛蒙濃度過高或過低。更新方式如式 (2.24) 所示。

ρ τ

τ

τ τ

τ ρ τ

=

= Δ

= Δ

Δ

⋅ + Δ

⋅ +

= +

=

=

w 1 r gb

gb ij r

r ij

1 - w

1 r

gb ij r

ij ij

ij

r 1/L

(t)

(t) 1/L (t)

(t) w

(t) r)

- (w )

- (1 1) (t

,另外

, 其中

(2.24)

r值之設定極為重要,若 r 值偏高將造成求解效率降低與路徑費洛蒙資 訊錯亂,因為部分不佳的解資訊亦被用來更新,反之,若 r 值偏低,每次 反覆後紀錄之解較少,則無法凸顯出該新增改善機制之績效。

2.5.3 螞蟻群落系統演算法與螞蟻 Q 演算法

ACS與AntQ同是以AS為基礎進行改善所得之演算法之ㄧ,為相同學者 所提出,ACS與AS間存在三項主要的差異,分別為(1)路徑構建機制;(2)路 徑費洛蒙全域更新機制;以及(3)路徑費洛蒙即時更新機制,而ACS與Ant-Q 間的差異僅存在路徑費洛蒙即時更新機制一項,分別敘述於下【26、38】。

一、ACS與AntQ的路徑構建機制如式(2.25)所示,在第t次反覆時,螞蟻從所 在節點i 行至下一節點時,存在q 的機率會選擇0

τ

il(t)[

η

il]β值最大的節

Figure

Updating...

References

Related subjects :