國
立
交
通
大
學
運 輸 科 技 與 管 理 學 系 碩 士 班
碩 士 論 文
運用粒子群最佳化解決多場站之收送貨問題
A Particle Swarm Optimization Approach for
the Multi-depot Vehicle Routing Problem with
Pickup and Delivery
研 究 生:李忠憲
指導教授:王晉元
應用粒子群最佳化解決多場站之收送貨問題
A Particle Swarm Optimization Approach for the Multi-depot Vehicle Routing
Problem with Pickup and Delivery
研 究 生:李忠憲 Student:
Chung-Hsien Li
指導教授:王晉元 Advisor:Jin-Yuan Wang
國 立 交 通 大 學
運 輸 科 技 與 管 理 學系
碩 士 論 文
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 2011
Hsinchu, Taiwan, Republic of China
I
應用粒子群最佳化解決多場站之收送貨問題
學生:李忠憲 指導教授:王晉元
國立交通大學運輸科技與管理學系碩士班
摘 要
本研究主要針對多場站之收送貨問題(Multi-depot Vehicle Routing Problem with Pickup and Delivery, MDPDP)定式數學模式與發展一套有效的解法。在數學模式部分, 本研究參考過去所發表過MDVRP與PDPTW之數學模式,加入考量收送貨的優先限制, 建構一個MDPDP之數學模式。優先限制為收送貨問題特性之一,對於每個顧客而言, 必頇先服務該顧客之收貨後才能服務該顧客之送貨。在演算法部分,本研究以粒子群最 佳化(PSO)為基礎,設計一般PSO與GLNPSO兩種演算法來求解MDPDP,比較兩種演算 法之求解績效,並提出兩種新的慣性權重更新法則。在編碼方式的設計上,參考Wu and Wang[28],產生適合於本研究之編碼方式。最後本研究參考Ropke and Pisinger[15]之測 詴例題,加以修改作為本研究之測詴範例。測詴結果指出本研究之兩種演算法在求解小 範例之績效沒有顯著差異,求解較大規模之問題時,GLNPSO求解績效較優。
II
A Particle Swarm Optimization Approach for the Multi-depot Vehicle Routing
Problem with Pickup and Delivery
Student:Chung-Hsien Li Advisor:Dr. Jin-Yuan Wang
Department of Transportation Technology and Management
National Chiao Tung University
ABSTRACT
The goals of this research are to develop a mathematical model and an effective solution technique for the Multi-depot vehicle routing problem with pickup and delivery(MDPDP). Our model is based on the published MDVRP and PDPTW formulations plus the proposed precedence constraints. The precedence constraints mean the pickup tasks must be fulfilled prior to the delivery tasks for each customer. Two particle swarm Optimization based heuristic algorithms, general PSO and GLNPSO, are developed for solving MDPDP. The uniqueness of our solution techniques is the mechanism of encoding and decoding of a solution, which is a modification of that of Wu and Wang [28]. Testing examples are
generated from the existing benchmark instances. Numerical experiments show that these two algorithms perform equally well for small problems. However, GLNPSO is more effective for solving larger problems.
III
誌謝
對於我的指導教授王晉元老師兩年來的指導,不管是身教或言教,都確確實實影響 到我,舉凡像是看paper之技巧、寫論文之邏輯、程式語言之觀念以及做人處事的道理, 讓我了解到所謂一日為師,終生為父之意義。其實跟學長姐相較之下,我的資質駑鈍, 很謝謝老師對我有耐心,感激您對我的所有敦敦教誨。 感謝論文期中報告審查委員黃寬丞老師與姚明忠老師,於論文期中報告給予之寶貴 建議與評論,讓我對論文期中報告後續研究小心謹慎;感謝論文口詴委員中華大學蘇昭 銘老師以及本系的韓復華老師,於口詴前花時間審閱此論文,並給予許多寶貴建議,使 本論文能夠更加完善,在此致上十二萬分的謝意。 感謝實驗室的學長姐們,尤其是學姐一姐、Dasiy、小惠、阿尼基以及HOHO,在 我剛開始學程式時遇到之瓶頸給予我鼓勵跟方向,讓我論文得以順利完成。也謝謝陪伴 著我的同學們,尤其是馬岱、小朱、阿勇、阿胖、凱開和我組成之GOGOBOY團體,想 當初我們還一起作詞作曲和聯誼夜遊樣樣都來,讓我研究所兩年中有歡笑與扶持。也謝 謝學弟妹們,有你們的加入,讓我們在繁忙又有壓力的碩二給予熱鬧與生機。最後也謝 謝跟我同個LAB一起畢業的阿勇,有你在的地方,總會有歡笑;更謝謝妮妮、趙哥、鱷 魚、八賴、+1和劉丸,在我的論文上幫助不少,我會銘記在心。 最重要的是感謝我的姐姐與媽媽,我們家境不好,但你們仍為了讓我順利完成學業, 不辭辛苦的工作以及照顧久病的父親,一天睡不上幾個小時,即使家裡有事情,也不願 意讓我知道太多而過於擔憂,只要我好好完成論文的順利畢業,真的很謝謝您們,因為 有妳們,才會有這本論文,未來我也不會辜負妳們。 最後,誠心的感謝我認識的所有人,並與您們分享完成論文的喜悅與成就感。 李忠憲 謹誌 中華民國一百年七月 於新竹交大IV
目錄
中文摘要 ... I 英文摘要 ... II 誌謝 ... III 目錄 ... IV 表目錄 ... VI 圖目錄 ... VIII 第一章 緒論 ... 1 1.1 研究動機 ... 1 1.2 研究目的 ... 2 1.3 研究範圍與相關名詞說明 ... 2 1.4 研究流程 ... 3 第二章 文獻回顧 ... 5 2.1 MDPDP 相關文獻之回顧 ... 52.2 多場站車輛路線問題(MULTI-DEPOT VEHICLE ROUTING PROBLEM,MDVRP) .... 5
2.3 收送貨問題(PICKUPS AND DELIVERIES PROBLEM,PDP) ... 7
2.4 粒子群最佳化(PARTICLE SWARM OPTIMIZATION,PSO) ... 11
2.4.1 粒子群最佳化之發展背景 ... 11 2.4.2 粒子群最佳化演算法之說明 ... 11 2.5 小結 ... 15 第三章 模式建立與演算法設計 ... 16 3.1 多場站收送貨問題之數學模式 ... 16 3.1.1 符號說明 ... 16 3.1.2 數學模式 ... 17 3.2 粒子群集最佳化演算法 ... 18 3.2.1 演算法之架構說明 ... 18 3.3 範例說明 ... 22 第四章、範例測詴 ... 25 4.1 測詴範例 ... 25 4.2 參數測詴 ... 26 4.2.1 粒子數 ... 28 4.2.2 迭代數 ... 30 4.2.3 慣性權重值 ... 32 4.2.4 一般 PSO 學習因子( 、 ) ... 34 4.2.5 GLNPSO 學習因子( 、 、 、 ) ... 36 4.2.6 小結 ... 38 4.3 範例測詴 ... 38
V 五、結論與建議 ... 45 5.1 結論 ... 45 5.2 建議 ... 45 六、參考文獻 ... 47 附錄一 各組參數測詴之詳細結果 ... 51
VI
表目錄
表 2-1 MDPDP 之求解方法相關文獻整理 ... 10 表 3-1 小範例之成本表 ... 23 表 4-1 50 個顧客訂單範例之部分資料 ... 26 表 4-2 測詴粒子數多寡之參數組 ... 26 表 4-3 最佳目標值誤差百分比與帄均目標值誤差百分比之示意表 ... 27 表 4-4 測詴粒子數最佳目標值誤差百分比與求解時間 ... 28 表 4-5 測詴粒子數帄均目標值誤差百分比與求解時間 ... 29 表 4-6 測詴迭代數多寡之參數組 ... 30 表 4-7 測詴迭代數最佳目標值誤差百分比與求解時間 ... 30 表 4-8 測詴迭代數帄均目標值誤差百分比與求解時間 ... 31 表 4-9 測詴慣性權重值之參數組 ... 33 表 4-10 測詴慣性權重值之最佳目標值誤差百分比與求解時間 ... 33 表 4-11 測詴慣性權重值之帄均目標值誤差百分比與求解時間 ... 33 表 4-12 測詴一般 PSO 學習因子之參數組 ... 35 表 4-13 測詴一般 PSO 學習因子之值最佳目標值誤差百分比與求解時間 ... 35 表 4-14 測詴一般 PSO 學習因子之帄均目標值誤差百分比與求解時間 ... 35 表 4-15 測詴一般 PSO 學習因子之參數組 ... 37 表 4-16 測詴 GLNPSO 學習因子之最佳目標值誤差百分比與求解時間 ... 37 表 4-17 測詴 GLNPSO 學習因子之帄均目標值誤差百分比與求解時間 ... 37 表 4-18 用來評估演算法績效之測詴範例資料 ... 39 表 4-19 一般 PSO 之演算結果與最佳解之誤差表 ... 39 表 4-20 GLNPSO 之演算結果與最佳解之誤差表 ... 39 表 4-21 一般 PSO 求解測詴範例之結果 ... 40 表 4-22 GLNPSO 求解測詴範例之結果 ... 41 表 4-23 粒子群最佳化求解測詴範例之顧客訂單數差距百分比 ... 42 表 4-24 粒子群最佳化求解測詴範例之地理分佈誤差百分比 ... 43 表 4-25 粒子群最佳化求解測詴範例之帄均車輛數 ... 43VII 表 4-26 粒子群最佳化求解測詴範例在不同地理分佈下之帄均車輛數 ... 44 附表 1-1 測詴粒子數之各組最佳目標值誤差百分比與求解時間 ... 51 附表 1-2 測詴粒子數之各組帄均目標值誤差百分比與求解時間 ... 52 附表 1-3 測詴迭代數之各組最佳目標值誤差百分比與求解時間 ... 53 附表 1-4 測詴迭代數之各組帄均目標值誤差百分比與求解時間 ... 54 附表 1-5 測詴慣性權重值之各組最佳目標值誤差百分比與求解時間 ... 55 附表 1-6 測詴慣性權重值之各組帄均目標值誤差百分比與求解時間 ... 55 附表 1-7 一般 PSO 學習因子之各組最佳目標值誤差百分比與求解時間 ... 56 附表 1-8 一般 PSO 學習因子之各組帄均目標值誤差百分比與求解時間 ... 56 附表 1-9 GLNPSO 學習因子之各組最佳目標值誤差百分比與求解時間 ... 57 附表 1-10 GLNPSO 學習因子各組帄均目標值誤差百分比與求解時間 ... 57
VIII
圖目錄
圖 1-1 巡迴路徑之優先順序與聯結限制示意圖[35] ... 2 圖 1-2 研究流程圖 ... 4 圖 2-1 收送貨有無配對之 VRPPD 分類[35] ... 8 圖 2-2 粒子群最佳化之演算流程 ... 13 圖 3-1 演算法流程圖 ... 18 圖 4-1 粒子數與各組合帄均誤差百分比趨勢圖 ... 29 圖 4-2 迭代數與各組合帄均誤差百分比相關圖 ... 32 圖 4-3 慣性權重值與各組合帄均誤差百分比相關圖 ... 34 圖 4-4 一般 PSO 學習因子與各組合帄均誤差百分比相關圖 ... 36 圖 4-5 GLNPSO 學習因子與各組合帄均誤差百分比相關圖 ... 381
第一章 緒論
1.1 研究動機
在現今的社會中,供應鏈的觀念早已廣為企業界所熟知與接受,尤其是想 在競爭日趨激烈的環境下求生存。供應鏈涉及搜源、採購及物流等所有活動的規 劃與管理,並整合企業內部,甚至是企業之間的供應與需求管理,完善的供應鏈 管理往往能夠為業者在同業的競爭壓力下取得競爭優勢,並間接降低企業之成本, 進而提高了效率與品質[37]。 由上述得知,物流乃是供應鏈其中的一環,由於近年來商業流程縮短、連鎖 店興起以及市場採薄利多銷策略,使得物流逐漸受到重視。另一方面,由物流所 衍生的研究,像是車輛排程問題(Vehicle Routing Problem, VRP)也因而在國內外 都有廣泛的探討。VRP 起初僅考慮單一場站之配送,但隨著顧客需求以及全球趨 勢影響,單一場站已無法滿足現今社會之需要,因此衍生出多場站之車輛途程問 題(Multi-Depot Vehicle Routing Problem, MDVRP)。
在物流服務中,根據顧客之要求將貨物從指定點收貨再送之另一指定點,這 類問題稱之為收送貨問題(Pickup and Delivery Problem, PDP),此亦為 VRP 之延 伸,PDP 與 VRP 不同在於前者所服務的顧客必定同時包含一收貨作業與一送貨 作業,且分別有不同之作業地點,並必頇以同一車輛進行服務,且需先完成收貨 作業才可進行送貨作業;而後者其顧客需求僅為收貨作業或收貨作業之服務。綜 合以上所述,結合 MDVRP 與 PDP 之特性,衍生出多場站之收送貨問題
(Multi-Depot Pickup and Delivery Problem, MDPDP)。
MDPDP為現今社會中常見之運輸型態,諸如宅配業等,但相關研究甚少。 此外MDPDP屬於NP-hard問題[11][22],故很難在有限時間內找到問題之最佳解, 近年來有許多屬於NP-hard問題皆透過如模擬退火法(Simulated Annealing, SA)、 禁制搜尋法(Tabu search)等啟發式演算法來求解,其求解效果不差,在實務上 被廣為應用。 粒子群最佳化發展十幾年,在啟發式解法中相對其他方法是屬於較新穎的, 所以近年來受到相當廣泛的研究(多目標最佳化、類神經網路以及生物識別安全 系統)[20]。研究亦發現其用於大規模之問題時,求解之效率與解的品質在標竿 範例的表現上都不差[17][30]。
因此本研究將針對較少被研究之MDPDP,參考過去文獻並根據問題定義來 建構一數學模式,以粒子群最佳化為基礎下,設計兩種啟發式演算法,對於 MDPDP產生在不違反車輛路徑限制與收送貨順序限制之情況下滿足顧客訂單需 求的解。
2
1.2 研究目的
本研究的目的為先建構MDPDP之數學模式,並設計一套粒子群最佳化來 求解,在參數測詴中,針對粒子群最佳化之參數提出新的更新方式,以範例測詴 之方式,期能對於各範例皆能找出一組路徑成本最低之配送路徑,最後檢討本研 究之演算法績效,供未來研究之進一步探討。
1.3 研究範圍與相關名詞說明
本小節首先定義MDPDP問題相關名詞,再說明本研究所探討的範圍,MDPDP 問題相關名詞定義如下: (1)顧客訂單:公司接獲顧客的訂單後,即產生一個收貨作業與一個送貨作業的 配對,完成服務此訂單的收送貨後才算完成此筆顧客需求。 (2)場站:每部車輛之起迄點,在本研究中車輛之起迄點為相同。 (3)路徑:每部車輛從場站出發後,最終再回到場站的路徑稱為路徑。 (4)優先限制(Precedence Constraints):針對每一顧客需求,收貨作業的服務順序 必優先於送貨作業前,如圖1-1所示。 (5)聯結限制(Paring Constraints) :每一顧客需求之收送貨作業均由同一輛車服 務。
圖 1-1 巡迴路徑之優先順序與聯結限制示意圖[35]
3 本研究所探討之多場站收送貨問題,其場站位置、場站數量皆已知,場站沒 有容量限制,每個場站所擁有的車輛數目已知,車輛僅考慮單一車種,且皆有 相同的容量限制,每部車輛所行駛之途徑皆構成一條封閉式的服務路線。 在需求點方面則是分成收貨點與送貨點,同一組的收貨作業需於送貨作業前 完成,並由同一車輛服務。因此本研究之MDPDP可描述為:需求包含收貨作業 與送貨作業兩部分,車輛由場站空車出發,在不違反車輛容量限制下服務一連串 之顧客訂單,一顧客訂單可分為收貨和送貨,且同一訂單之收貨作業必頇在送貨 作業前先完成,最後再空車回到場站,並尋求總旅行距離成本最小的車輛路徑組 合。其問題特性如下: (1)每部車由某一場站出發,最終會回到同一場站。 (2)網路上所有節點需被滿足。 (3)每個顧客需求包含一個收貨作業與一個送貨作業,頇由同一車輛進行服務, 且只能服務一次。 (4)每部車輛所服務之總容量不能超過車輛容量限制。 (5)一需求指派給一車輛進行服務,則車輛的行駛路線必頇包含該需求的收貨作 業與送貨作業,且收貨作業的服務順序必頇於送貨作業前。 (6)車輛於需求點完成後立即離開,並前往下一個需求點。 (7)每部車輛沒有行駛路線長度之限制。
1.4 研究流程
本研究之流程為先界定問題,接著回顧MDPDP之相關文獻與粒子群最佳化 之相關研究,並建構一能夠滿足本研究之多場站收送貨問題的數學模式以及應用 粒子群最佳化於MDPDP。最後再透過詴驗範例,根據其分析結果,提出結論與 建議,如圖1-2所示。4
問題界定
相關文獻搜集與回顧
建立數學模式架構
粒子群最佳化之求解
範例測詴與分析
結論與建議
圖 1-2 研究流程圖5
第二章 文獻回顧
本研究之課題為 MDPDP,由於過去相關文獻甚少,因此在文獻回顧上除了 探討 MDPDP 外,另外分別從多場站之車輛路線問題(Multi-Depot Vehicle Routing Problem, MDVRP)與收送貨問題(Pickups and Deliveries Problem, PDP)進行說明, 並介紹啟發式演算法之中的粒子群最佳化(Particle Swarm Optimization, PSO)的 演算法。 首先在第一節回顧 MDPDP 之相關文獻,接著在第二節回顧 MDVRP 之相關 文獻,在第三節回顧 PDP 之相關文獻,第四節說明本研究所使用之啟發式解法-粒子群最佳化之概念以及其相關應用與發展,最後第五節為文獻回顧小結。
2.1 MDPDP 相關文獻之回顧
本節主要針對 MDPDP 進行回顧,該問題特性已於第一章說明,由於大部分 文獻是針對單一場站之收送貨為研究主題,僅 Ropke and Pisinger[15]之研究內容 包含多場站收送貨,與本研究較相關,因此在本節回顧 MDPDP 時著重該篇文 獻。
Ropke and Pisinger[15]針對 MDPDPTW 與 PDPTW 為研究課題,以 Large Neighborhood Search(LNS)演算法為基礎發展一新演算法(Adaptive Large
Neighborhood Search, ALNS),傳統 LNS 在搜尋解的過程中,解的插入(Insertion) 與移出(Removal)僅各配合一種演算法,然而 ALNS 在解的插入與移出會使用數 種演算法,最後透過 350 題以上 PDPTW 之標竿範例來評估其求解績效,測詴結 果發現有一半以上之例題透過該演算法所求得之解比過去文獻上之解較好。 此外,該文獻修改標竿範例產生出適合於 MDPDPTW 之例題,並使用傳 統 LNS 以及 ALNS 來分別求解 MDPDPTW,發現其所提出之演算法(ALNS)不管 在求解時間上或是求解品質,亦優於傳統 LNS。
2.2 多場站車輛路線問題(Multi-Depot Vehicle Routing
Problem, MDVRP)
Dantzig 與 Ramser 於 1959 年率先提出 VRP(Vehicle Routing Problem)為一 網路 G=(V, A),V 為節點(Vertex)的集合,V= ,節點 代表場站, 為服務的顧客,共有 n+1 個節點,A 為所有節線(Arc)集合,即
6 本/總距離能最小的路徑組合,且需滿足以下情況: (1)每部車由場站出發,最終仍會回到原出發場站; (2)網路上所有顧客需求都需被滿足; (3)每位顧客只能由一部車輛進行一次服務; (4)每部車輛所服務之顧客總需求量不能超過車輛容量限制。 多場站車輛路線問題由VRP延伸而來,簡稱MDVRP(Multi-Depot Vehicle Routing Problem)。此類問題的定義如下:考慮多個場站,場站位置與數量已知, 而場站沒有容量限制,每個場站皆擁有多部車輛,每部車輛有容量限制,僅考慮 單一車種,每部車輛皆形成一條封閉式服務路線,需求點的數量、位置與需求量 為已知,並為一對稱性網路,其需滿足之情況與單一場站之VRP相同。 MDVRP之數學模式與符號說明如下,是由Golden et al.於1983年所提出之模 型: n:所有節點集合,其中1~m為場站,m+1~n為需求點。 m:場站數 NV:總車輛數 :車輛k的容量上限 :車輛k的最長路線時間 :需求點i的需求量 :車輛服務需求i所需耗費的時間 :車輛由需求點i到需求點j行駛的時間 :車輛由需求點i到需求點j所需耗費的配送成本 :車輛k是否由需求點i行駛到需求點j,且i j,若是則為1,否為0 S: ,為避免發 生子迴路限制式。 Min (1) ST: (2) (3) (4) ( ) (5) (6) (7) (8) X (9)
7 (10) 上述數學規劃式中,目標函數(1)為最小化配送成本;限制式(2)(3)表除場 站以外的需求點只得由一部車輛服務一次;限制式(4)表除場站以外的需求點, 進出該需求點的車輛必頇為同一輛;(5)限制車輛所服務道之需求點的需求量不 得超過車輛容量限制;(6)限制車輛的服務時間與行駛時間總和不得超過時間限 制;限制式(7)(8)限制每部車輛最多被使用一次;限制式(9)為避免子迴圈之發 生;限制式(10)為 0-1 變數限制。 關於求解 MDVRP 方面之相關文獻甚多,本研究舉出兩個為例,Renaud, et al.[14]使用禁制搜尋法(Tabu search)解決多場站車輛路線問題,透過 23 個標竿 範例之測詴,發現該啟發式演算法為當時所有啟發式演算法中求解之品質為最優。 Thangiah et al.[21]使用基因演算法(Genetic Algorithms)去求解多場站車輛路線 問題,並配合群集方法(clustering method),在 23 個標竿範例之測詴中,發現 11 個品質比原先更優之解。
2.3 收送貨問題(Pickups and Deliveries Problem, PDP)
收送貨問題是為一般化收送貨問題之一類,一般化收送貨問題簡稱
GPDP(General Pickups and Deliveries),其目標函數為在不違反最大車輛行駛距離 與最大容量限制之下,找到其最小化總路徑成本,從配送方式可分為兩種模式 [12]:車輛載貨從場站出發將貨物運送給送貨點顧客,再至收貨點顧客收取貨物 運回場站,此種將貨物從場站至場站的配送方式為「回程取貨車輛途程問題 (Vehicle Routing Problems with Backhauls , VRPB)」。若車輛從場站出發至顧客指 定地點收取貨物,將貨物送到顧客指定地點送貨,此種將貨物從顧客點直接配送 至另一顧客點之配送方式為收送貨車輛途程問題(Vehicle Routing Problems with Pickups and Deliveries, VRPPD)。
若從收送貨點是否配對,VRPPD 可再細分兩種模式[12],如圖 2-1 所示。 若運送皆為相同商品,從一收貨點取貨後,可送至任一送貨點,此為收送貨點無 配對之收送貨問題(Pickup and Delivery Vehicle Routing Problem, PDVRP)。另收 送貨點有配對之收送貨問題,若運送為人則分類為撥召問題(Dial-A-Ride Problem, DARP),若運送為物品則分類為有配對的收送貨問題簡稱收送貨問題 (Pickup and Delivery Problem, PDP),此即為本研究之課題。
8 車輛路線排程之收送貨問題 VRPPD 有配對 無配對 收送貨點無配對之收送貨問題 PDVRP 撥召問題 DARP 收送貨問題 PDP 圖 2-1 收送貨有無配對之 VRPPD 分類[35]
已知 PDP 亦是 GPDP 的延伸問題,但有一些不同之限制,如優先限制 (precedence):顧客需求(訂單)為一組收送貨作業,收貨與送貨作業可交錯服務, 且同一組的收貨作業(Pickup)需在送貨作業(delivery)前完成;聯結限制(pairing): 每個貨運需求的收送貨作業均由同一輛車執行。 PDP之顧客需求為一組收送貨作業,不僅是收貨或送貨,且同一組的收貨作 業需於送貨作業前完成服務,並由同一輛車服務。因此PDP問題可描述為:需求 包含收貨作業與送貨作業兩部分,車輛由場站空車出發,在不違反車輛容量限制 下服務一連串之需求,且同一需求之收貨作業必頇在送貨作業前先完成,最後再 空車回到場站,並尋求總旅行距離成本最小的車輛路徑組合。根據以上所述,PDP 問題定義如下: (1)各車輛的起迄點頇為同一場站。 (2)每個顧客需求包含一個收貨作業與一個送貨作業,頇由同一車輛進行服務, 且只能服務一次。 (3)一顧客需求指派給一車輛進行服務,則車輛的行駛路線必頇包含該顧客需求 的收貨作業與送貨作業,且收貨作業的服務順序必頇於送貨作業前。 (4)各車輛的載貨量無論何時皆不能超過車容量上限。 (5)車輛於需求點完成後立即離開,並前往下一個需求點。 (6)網路上所有節點必頇被滿足。 本研究以[11]所提出之PDP數學模式為例,符號說明如下: n:訂單數 0:起點,代表所有車輛出發之地點。 2n+1:迄點,代表所有車輛回去之地點。 :收貨點作業之集合, :送貨點作業之集合, N:所有作業點的集合 :需求點i的貨物量。若i , 為正數;若i , 為負數;若
9 , =0 K:所有車輛的集合 :車輛k的容量上限 :k ,i , ,車輛k從作業點i到j的旅行成本 :k ,i , ,車輛k從作業點i到j的旅行時間 :作業點i所需的服務時間 V:所有節點的集合 A:所有節線的集合 PDP數學規劃模式中的決策變數如下: :k ,i , ,車輛k從作業點i到作業點j, ;否則 :車輛k離開作業點i時累積的承載量 :車輛k開始服務作業點i的時間 PDP之定式如式(1)~(11)所示 Min (11) Subject to =1 (12) (13) (14) - =0 ,j (15) - =0 ,i (16) =0 ,(i (17) , (18) =0 ,(i (19) max min ,i (20) ,(i (21) 上述數學規劃式中,目標函數(11)為最小化總旅行成本;限制式(12)限制每 一顧客需求(包含一收貨作業和一送貨作業)被同一車輛服務,且恰好一次;限制 式(13)(14)表每輛車從場站出發,最後回到場站;限制式(15)確保流量守恆;(16) 聯結限制,即同一組收送貨作業要同台車服務;(17)確保服務完此點的車容輛等 於上一點服務完的車容量加上要服務此點的需求量;(18)確保優先限制,即車輛 服務一顧客需求先收貨再送貨;(19)任一項作業點完成後立即前往下一個作業點 服務,不會出現等待情形;(20)確保車輛服務的過程中不超過車容量限制;(21) 決策變數,若車輛從作業點i 到需求點 j, =1;否則 =0。
10
由於PDP文獻較少,接下來將針對各種不同之收送貨問題進行求解方法回顧, Catay[2]發展一新節省法運用於螞蟻演算法(ant colony algorithm)求解多場站之 同時收送貨問題(Multi-depot Vehicle Routing Problem with Simultaneous Pickup and Delivery, MDVRPSPD),同時收送貨問題亦為收送貨問題之一種,每個顧客 需求皆需進行收貨與送貨之任務,與本研究之收送貨問題不同在於單一節點可同 時進行收貨與送貨,而本研究之單一節點僅進行收貨或送貨之限制,故參考依據 有限。其透過標竿範例測詴,雖然對於大規模問題時,其求解速度較慢,但其解 之品質不差,甚至優於標竿範例。 Bigang et al.[1]使用兩階段之混合啟發式解法求解收送貨問題,首先利用模 擬退火法(simulated annealing Algorithm)減少路線數,接著再透過禁制搜尋法減少 總旅行成本。其針對顧客訂單數為 100 到 600 之標竿範例進行測詴,當顧客訂單 數在 100、200 以及 600 下,不僅求解速度快,且部份解之品質優於標竿範例。 Goksal et al.[4]利用粒子群最佳化(Particle swarm Optimization)與變動鄰域搜 尋法(variable neighborhood descent algorithm)求解同時收送貨問題,透過標竿範例 測詴,發現該混合演算法優於粒子群最佳化、螞蟻演算法以及基因演算法。 Wang et al.[26]針對多場站車輛路線之收送貨問題,在僅考慮其收送貨為回 程取貨(backhauling)之限制下,發展一個結合基因演算法與禁制搜尋演算法(Tabu search)之啟發式解法,其目標式所求得之最短路徑優於其他啟發式解法。 Kachivichayanukul and Sombuntham[19]運用加入社會學習因子之粒子群最 佳化(GLNPSO) ,並在考慮時間窗的限制下,解決多場站收送貨問題。透過標竿 範例之測詴,發現當顧客需求有群集的現象時,求解之品質不差,且對於不同的 編碼方式,解的品質也有所差異。 本研究將 MDPDP,以及多場站車輛路線問題與一般收送貨問題之求解方法 的相關文獻,依其問題型態與求解方法整理如下表所示,可見得對於該類似問題, 大多以啟發式演算法求解。 表 2-1 MDPDP 之求解方法相關文獻整理 年份 作者 求解方法
MDPDP 2005 Ropke and Pisinger ALNS 多場站車輛路線問題 1994 Renaud, Laporte and
Boctor
禁制搜尋法 2010 Thangiah and Salhi 基因演算法 一般化收送貨問題 2010 Catay 螞蟻演算法
2009 Bigang and Changshi 混合啟發式解法 2010 Goksal, Altiparmak and
Karaoglan
11
2009 Wang ,Sun and Ren 混合啟發式解法 2010 Kachivichayanukul and
Sombuntham
粒子群最佳化
2.4 粒子群最佳化(Particle swarm Optimization, PSO)
粒子群最佳化由 Eberhart and Kennedy[6]提出,主要概念是源自於對動物 群體行為之研究,以下針對粒子群最佳化的發展背景、運作法及相關發展應用來 加以介紹說明:
2.4.1 粒子群最佳化之發展背景
在自然界中,許多生物的生活行為都會呈現群體的活動,因此在 90 年代時, 有一股利用自然界生物的群體行為去做最佳化研究的潮流。例如 Dorigo[6]提出 螞蟻演算法(Ant Colony Optimization, ACO),在螞蟻演算法中每隻螞蟻皆會在 其移動的路徑上留下費洛蒙,以供其他螞蟻藉著費洛蒙的濃度來判別哪一條路徑 是離食物(目標值)最近的。
粒子群最佳化亦是由生物之群體活動所觀察而來的,其具有兩個主要的基本 概念,其一概念是藉由觀察人類的決策過程(Boyd and Richerson,1985)[6],提 出人類會使用兩個重要的資訊來做決策:一個是人們自己所擁有的經驗,根據自 己的經驗去選擇哪個決策是目前為止較好的;另一個則是根據其他人所擁有的經 驗來選擇到目前為止最好的決策,也就是每個個體在做決策時都會依照自己的經 驗和其他人的經驗來決定。另一概念即是對自然界生物的群體行為提出一些簡單 的法則來將其模組化,如水中的魚群和空中的鳥群等都可以使用這些模式來模組 化。基於上述的兩個基本概念,Eberhart and Kennedy[6]提出粒子群體最佳化 之概念。
2.4.2 粒子群最佳化演算法之說明
粒子群最佳化主要是基於模擬鳥群的行為所構想出來的,想像一群鳥隨機 在某一區域內搜尋食物,而此一區域只有一個地方有食物,不過所有的鳥都不知 道食物的確切位置,只知道目前距離食物還有多遠,此時最有效的辦法即是搜尋 目前距離食物最近的鳥之鄰近區域。 因此在粒子群最佳化中,搜尋空間中的每一隻鳥都代表著一組解,在此稱這 些鳥為「粒子」,每一個粒子的位置都以 表示,其中 i 代表第 i 個粒子,h 則代
12
表該粒子第h 個維度,每個粒子對於每個維度的飛行速度則以 (第 i 個粒子之 第h 個維度之速度)來表示。另外所有的粒子都會有一個對於問題的適應值 (fitness value),每個粒子皆會知道自己目前的最佳適應值和最佳的位置,稱之為 每個粒子目前各自最佳值(Particle best value; ),簡稱個體最佳值,這些資訊就 像是每個粒子自己所擁有的經驗一樣。同時每個粒子也會知道在群體中到目前為 止的最佳值與最佳的位置,稱之為群體最佳值(Global best value; ),這類資訊 就像是其他粒子所擁有之經驗一樣。
每一階段的粒子皆是透過個體經驗與群體經驗之修正導引,使初始隨機散布 於可行解區域的粒子能在運算過程中逐漸接近整體最佳目標值的粒子附近,形成 粒子群在此一區域進行搜尋,並透過群體最佳值之效用而逐漸逼近最佳值。
粒子群最佳化之演算流程如圖 2-2 所示,Eberhart and Kennedy[6]針對流程 中之更新步驟提出每一階段之粒子的位置與速度更新法則,如下所示,粒子第 次運算階段之速度會依據各粒子目前第 次運算階段之速度、與個體最佳 解之距離及與群體最佳解之距離來更新,再依據更新之速度調整目前粒子之位置, 更新每個粒子的搜尋方向與距離。 ( 其中,i:第 i 個粒子。 h:第 h 個維度。 :第 次運算階段 :第 i 個粒子的個體最佳解內,粒子在第 h 個維度的位置。 :在群體最佳解內,粒子在第 h 個維度的位置。 :第 次的運算階段時,第 i 個粒子在第 h 個 維度的速度。 :第 次運算階段時,第 i 個粒子在第 h 個 維度的位置。 :第 次運算階段之第 i 個粒子在第 h 個維度的速度。 :第 次運算階段之第 i 個粒子在第 h 個維度的位置。 、 :學習因子。 u:介於 0 與 1 之間的隨機亂數。
13 設定參數 針對每一個粒子隨機產生 初始位置和初始速度 估計每一個粒子的適應值 更新目前粒子最佳值與群體 最佳值 更新每一個粒子目前的速度 與位置 是否達到最大搜尋次數 開始 結束 是 否 圖 2-2 粒子群最佳化之演算流程
對於粒子的位置與速度更新法則,Shi and kennedy[31]提出慣性權重法 (Inertia Weight Method),將慣性權重值(W)引入基本的更新法則內,藉由這個慣 性權重值使粒子群在大範圍的搜尋之後,能降低粒子的速度,迫使粒子進入一個 較好的區域搜尋,期望以更有效率的方法找到更好的可行解。除了慣性權重法, Shi and kennedy[31]亦提出最大速度法(max V Method)以及收縮係數法
14
(1)慣性權重法:
(
其中,W:慣性權重值,一般為 0.9-0.4 之間。
Shi and Eberhart[31]認為慣性權重值可配合總運算次數(iterations)來調整,如 下所示: 其中, :第 階段之慣性權重值。 T:總運算次數。 (2)最大速度法:設一可忍受之最大速度 與最小速度(- ,在不超過這 個速度範圍內進行速度之更新。 ( If > , = Else iF < - , = - 其中, :設定的最大速度。 (3)收縮係數法:每次之更新幅度隨著迭代數的增加而逐漸減少。 K , 粒子之速度更新法則是粒子群最佳化的概念之一,因此相關研究不間斷, Pongchairerks and Kachitvichyanukul[31]提出更新法則中的速度除了會受到個體 最佳值與群體最佳值的影響外,亦會受到區域最佳值(Local best value; )與鄰近 最佳值(Near neighbor value; )的影響,此粒子群最佳化簡稱為GLNPSO。區域 最佳值乃是每個個體最佳值與其鄰近之個體最佳值中,擁有最佳適應值之粒子; 而鄰近最佳值是指該階段的某粒子與其他粒子間擁有最大的FDR(fitness-distance ratio)者稱之。根據上述,更新法則修正成如下所示,多了
與 ,在更新速度上較先前為精準,根據文獻 指出,該更新法則之求解績效較優。
15 ( 其中, 、 :學習因子。 :第i 個粒子的區域最佳解內,粒子在第 h 個維度的位置。 :第i 個粒子的鄰近最佳解內,粒子在第 h 個維度的位置。 雖然粒子之速度與位置更新法則不斷提出,但大部份之文獻在使用粒子群最 佳化時是以慣性權重法為更新法則[3][24][27][28][31][36],因此本研究亦是 使用慣性權重法為更新法則,並比較僅考慮個體最佳值與群體最佳值之一般 PSO 和加入考慮鄰近最佳值與區域最佳值之 GLNPSO 之求解績效。
2.5 小結
綜合上述,有以下結論: 1. 對於多場站車輛路線問題與收送貨問題該類問題,大都以啟發式演算法來求 解。 2. 多場站車輛路線問題與收送貨問題皆已受到討論與延伸研究多年,相關數學 式業已成熟,然而多場站車收送貨問題相關之研究甚少,因此所能引用之文 獻有限。 3. 文獻上之一般化收送貨問題鮮少以收送貨點有配對之收送貨問題為對象,因 此本研究針對受到較少注目之多場站收送貨點有配對之收送貨問題進行研 究。 4. 粒子群最佳化為近十幾年來興起之啟發式解法,除了演算法本身之更新法則 不斷逐年調整,粒子群最佳化之應用也日益廣泛[20]。由於粒子群最佳化尚 未應用於本研究課題,因此本研究透過較新穎之求解方法來求解,期以獲得 不錯的成效。
16
第三章 模式建立與演算法設計
粒子群最佳化主要是利用分散式的搜尋觀念與資訊的分享與導引來求解問 題,從過去文獻上也發現此演算法對於大規模問題時,比其他一些演算法所求解 之品質較好且運算時間上較有效率[17][30]。故本研究以粒子群最佳化為基礎, 設計兩種演算法,並對於多場站收送貨問題產生在不違反車輛路徑限制與收送貨 順序限制之情況下滿足顧客需求的解。 本章節先針對多場站之收送貨問題建構一新數學模式,設計兩種以粒子群最 佳化(Particle Swarm Optimization)為基礎之演算法(一般 PSO 與 GLNPSO),並 配合一小範例進行詴算。首先,3.1 節對 MDPDP 進行數學模式建構;接著 3.2 節針對本研究之課題所運用之粒子群集法之流程進行介紹,3.3 節則協以範例說 明。3.1 多場站收送貨問題之數學模式
根據過去文獻,本研究參考 MDVRP 與 PDP 之數學模式,研擬出多場站收 送貨問題之數學模式,符號與限制式說明如下:
3.1.1 符號說明
數學模式符號說明: m:節點總個數,其中1~2n為需求點,2n+1~m為場站 n:訂單數 NV:總車輛數 :收貨點作業之集合, :送貨點作業之集合, N:所有需求點的集合 :需求點i的貨物量。若i , 為正數;若i , 為負數; 若 , =0 :車輛k的容量上限 場站P可使用之車輛數目 :k , , 車輛k從需求點i到j的旅行成本 每一迴路中被車輛服務的節點編號 決策變數: : ,若車輛k從節點 到節點j, ;否則 :車輛k離開節點 時累積的承載量 :車輛k服務作業點 的順序編號17
3.1.2 數學模式
多場站之收送貨問題建構模式如式(1)~(13)所示 Min (22) ST: (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) 上述數學規劃式中,目標函數(22)為最小化總旅行成本;限制式(23)(24) 限制除場站外的需求點只得由一部車輛服務一次;限制式(25) 確保流量守恆; 限制式(26)(27)表任何一部車輛皆不會從收貨點直接回到場站或是從場站直接 出發至送貨點;限制式(28)(29)表每輛車從場站出發,最後回到場站;限制式(30) 表車輛會回到與起點相同的場站;限制式(31)聯結限制,即同一組收送貨作業要 同台車服務;限制式(32)確保服務完此點的車容輛等於上一點服務完的車容量加 上要服務此點的需求量;限制式(33)確保優先限制,即同一顧客需求需先收貨再 送貨;限制式(34)表車輛服務作業點之順序編號之範圍,假若所有訂單由同一輛 車來服務,則根據限制式(35)可知最大之順序編號為 2n;限制式(35)是用來配 合限制式(34),其表示車輛服務作業點之順序編號差距為 1;限制式(36)確保車 輛服務的過程中不超過車容量限制;限制式(37)為各場站可使用車輛數目之限制; 限制式(38)避免子迴路發生的限制式;限制式(39)決策變數,若車輛從需求點 i18 到需求點j, = 1;否則 = 0。
3.2 粒子群集最佳化演算法
3.2.1 演算法之架構說明
下圖為一般 PSO 與 GLNPSO 應用於多場站之收送貨問題之方法流程,差別 僅在於更新過程,接下來將針對該流程進行詳細的說明。 圖 3-1 演算法流程圖
是否達到最大運算次數
開始 設定粒子之維度 尋找起始粒子 粒子解碼 計算每個粒子之適應值 改善解的優劣 更新目前個體最佳值與群體最佳值/ 區域最佳值與鄰近最佳值 更新每個粒子中每個維度目前的 位置與速度 結束 是 否 是否達到最大運算次數19
1.設定粒子之維度
對於演算法 PSO 而言,如何透過粒子表達一個解是重要的關鍵之一,一個粒 子的維度代表一個解的長度,由於一個粒子代表著一個解,因此粒子與解之間需 要一些轉換的方式,這兩者之間的轉換稱之為編碼(解→粒子)與解碼(粒子→解)。 而維度的長度越長,需要的轉換時間會越多,則整個演算法的運算時間都會越長, 因此設定一個適當的粒子維度,以及具有解的代表性非常重要,而本研究對於 MDPDP 僅根據顧客訂單數來決定粒子之維度,以避免維度之過長。 根據顧客訂單數,來決定粒子之維度,假設目前有 n 個顧客訂單數,則粒子 的維度為 n 維,而每個粒子都代表著一個解。
2.尋找起始粒子
決定好粒子的維度後,接下來即是找尋起始粒子,也就是起始解。本研究 起始粒子之每個維度之數值皆是介於 0~總車輛數之間之亂數所構成,整數部分 表示該訂單被服務之車輛,亦為車輛編號,當整數部分相同時,小數部分之大小 排序則表示訂單被該車輛服務之優先順序。
3.粒子解碼
由於從粒子本身較難直接看出解的情況,因此需透過解碼的方式得知,解 碼過程如下: (1) 根據整數值進行分組,相同者為一組,可分成 {0},{1}…{NV-2},{NV-1},{NV}組集合。 (2) 對於各組之數值,根據小數值之大小進行排列,形成顧客訂單之服務順序。 針對各組集合取一最小值放置最前面,再針對各組集合取一次小值置於第 二位,以此類推,直至所有組合內之數值皆排序完成。 (3) 將顧客訂單一一分解成收、送貨兩點(送貨點之編號本研究設定為收貨點+ 顧客訂單數)。若顧客訂單編號為 X,則其收-送貨編號為 X-(X+n)。 (4) 對於整數值所代表之車輛編號,找出其對應之場站。 (5) 建構車輛路線,對於各組集合皆可得到:場站-X1-(X1+n)- X2-(X2+n)-…-…-Xn-(Xn+n)-場站之路線。 假設六個顧客訂單、兩個場站之 MDPDP 問題,每個場站所擁有的車輛分別為 3 台,某起始粒子如下:
20 顧客訂單 1 2 3 4 5 6 粒子之每 個維度 2.3 3.5 5.8 2.6 5.1 5.4 A 場站所擁有之車輛編號為:0、1、2 B 場站所擁有之車輛編號為:3、4、5 按照上述解碼方式,根據整數值進行分組,得到以下三組: (2.3,2.6),(3.5),(5.8,5.1,5.4),然後在每個分組內,按照小數部分由小到大 排列,得到以下結果:(2.3,2.6),(3.5), (5.1,5.4,5.8),將該數值映射到對應 之顧客訂單,並分解成收、送貨,本研究設定之收貨編號等於顧客訂單之編號, 送貨編號為收貨編號加總顧客訂單數,因此對應到各顧客訂單之(收-送)為 (1-7,4-10),(2-8),(5-11,6-12,3-6),以及找出整數值(車輛編號)所對應之場站, 車輛編號為 2,對應之場站為 A;車輛編號為 3 和 5,對應之場站為 B,即可得到 所對應之路徑如下: 第一條路徑:A-1-7-4-10-A 第二條路徑:B-2-8-B 第三條路徑:B-5-11-6-12-3-9-B 由於粒子的維度與顧客的訂單數相當,解碼時只需進行一次排序與取整運算, 在更新粒子與面對大規模問題時,勢必可節省運算時間。
4.計算每個粒子之適應值
對於所得到之初始路線,將其代入目標式( 計算其適應 值,本研究之目標式是以成本最低為目的,則運算後所得到的適應值越低越好。
5.改善解的品質
對解碼後所得到的解,在不違反限制式的條件下針對每一條路線個別使用 2-opt 進行路線內交換,透過這種微調的方式,對所得的解進行改善。
6.更新目前個體最佳值與群體最佳值/區域最佳值與鄰近最佳值
個體最佳值:將每次運算階段的解帶入目標式中計算適應值,目標式的結 果是越小越好,則適應值的結果也是越小越趨近最佳解。而每階段後每個粒子會 判斷此次階段的適應值是否比本身之前所有階段的適應值小,如果比先前更小則 此階段粒子之適應值會更新為粒子之個體最佳值,而每個粒子皆有一個個體最佳
21 值。 群體最佳值:群體最佳值與粒子最佳值之概念相同,主要的差別在於粒子最 佳值是粒子與粒子自己本身的比較,而群體最佳解是粒子與其他所有粒子的比較, 也就是說群體最佳值是至目前為止所有粒子的最佳值,因此只會有一個群體最佳 值。 區域最佳值:乃指數個粒子中最好之個體最佳值,本研究根據過去文獻[19], 以每 5 個粒子為一個區域,找出每區域中較佳之個體最佳值。 鄰近最佳值:對於每個粒子,找出與其他粒子間擁有最大之 FDR 之粒子則 稱為鄰近最佳值,因此每個粒子在每次迭代皆會有一個鄰近最佳值。
7.更新每個粒子中每個維度目前的位置與速度
本研究對於各粒子所設定之初始速度為 0,初始位置即是起始粒子之數值, 往後在進行粒子之更新時,必頇也進行更新位置與速度,更新方式如下: 一般 PSO: ( GLNPSO: ( If If 其中 :第 次運算階段 :第 次運算階段時,第 個粒子的第 個維度之速度 :第 次運算階段時,第 個粒子的第 個維度之速度 :第 次運算階段時之惰性權重值
22 :第 次運算階段時,第 個粒子的第ℎ個維度之位置 :第 次運算階段時,第 個粒子的第ℎ個維度之位置 :第 i 個個體最佳值的第 h 個維度 :到目前為止之群體最佳值的第 h 個維度 :第 i 個粒子的區域最佳解內,粒子在第 h 個維度的位置。 :第 i 個粒子的鄰近最佳解內,粒子在第 h 個維度的位置。 :個體最佳值之常數 :群體最佳值之常數 :區域最佳值之常數 :鄰近最佳值之常數 u:介於 0 與 1 之間的隨機亂數 與 :為粒子之移動範圍
8.是否達到最大運算次數
判斷搜尋次數是否已達到所設定之最大搜尋次數,如果是則結束搜尋,否 則回到步驟「粒子解碼」持續進行演算至達到最大搜尋次數。
3.3 範例說明
本範例設定有三個訂單數,每個顧客訂單之收貨量分別為 3、4、4;送貨量 為-3、-4、-4;場站數為二,每個場站各擁有兩部車,每部車之容量皆為 8。在 PSO 參數之設定上,假設最大運算次數(T)為 10、惰性權重(W)最初由 0.9 至最終 為 0.4、隨機亂數(u)為 0.7、粒子最佳值( )之常數為 0.8、群體最佳值之常數 ( )為 0.7,初始速度( )為 0,本研究以兩個粒子作為範例進行運算。
步驟一:設定粒子之維度
顧客訂單數為粒子之維度,本範例顧客訂單數為三,因此每個粒子之維度 亦為三,如下所示:
步驟二:車輛編號設定
每個場站擁有兩部車,因此車輛編號 0、1 為 A 場站,車輛編號 2、3 為 B 場站。
23
步驟三:尋找起始粒子
本研究是透過隨機方式而得,兩個粒子各三個維度皆產生 0 到 4(總車輛數) 間之數值,假設所得之結果如下: 1.6 1.5 3.4 2.4 2.1 2.9
步驟四:粒子解碼
根據前小節粒子解碼之方式,我們可將第一個粒子排序成(1.5,1.6)、(3.4), 第二個粒子則排序成(2.1,2.4,2.9),接著將每個顧客訂單分解成收、送貨以及 找出其整數值所對應之場站,可得到初始路線,其結果如下: 第一個粒子:A-2-5-1-4-A 與 B-3-6-B 兩條路線 第二個粒子:B-2-5-1-4-3-6-B 一條路線
步驟五:計算每個粒子之適應值
下表為收、送貨與場站間之成本表(列為起點,行為迄點),可由此表計算 出各粒子之適應值,可知第一個粒子之適應值為(3+20+14+5+15)+(2+6+2)=67; 第二個粒子之適應值為 1+20+14+5+20+6+2=68。 表 3-1 小範例之成本表 1 2 3 4 5 6 A B 1 0 10 12 5 11 20 16 20 2 1 0 10 12 20 20 30 30 3 12 30 0 21 20 6 40 20 4 12 20 20 0 1 2 15 30 5 14 12 40 10 0 5 2 13 6 20 20 12 20 20 0 14 2 A 12 3 14 45 12 40 0 50 B 20 1 2 30 20 20 50 0
步驟六:改善解的品質
本研究所使用之改善法為路線內之 2-opt,以第一個粒子為例,其第一條路 線經過交換可以發現,A-2-1-5-4-A 較 A-2-5-1-4-A 為優,因為其適應值 (3+1+11+10+15=40)小於原先之(3+20+14+5+15=57),故接受此交換,以此類推第 二個粒子 B-2-1-5-4-3-6-B 較 B-2-5-1-4-3-6-B 為優,因其適應職 (1+1+11+10+20+6+2=51)小於原先之 68,故亦交換。
24
步驟七:更新目前個體最佳值與群體最佳值(以一般 PSO 為例)
在 T(運算次數)=1 時,各粒子之適應值皆為各粒子之個體最佳值,亦即第 一個粒子之個體最佳值為 40+(2+6+2)=50,第二個粒子之個體最佳值為 51,而群 體最佳值則為第一個粒子之適應值 50。
步驟八:更新每個粒子中每個維度目前的位置與速度
在進行 T=2 之前,必頇先更新粒子之位置與速度。根據前一小節所述之方 法,本範例粒子之速度 與位置 更新如下: 由上得知,T=2 時,粒子之速度更新為: 粒子之位置之更新如下所示,可以發現第二個粒子在最初是由同一輛車所服 務,經過交換改善法與 PSO 運算,三個顧客訂單轉變為皆由不同車輛所服務。此 後再根據新的粒子之位置進行解碼等重複步驟,直到達到最大運算次數。 1.6 1.5 3.4 2.4 2.1 2.9 0 0 0 -0.392 -0.294 0.245 0 0 0 0 0 0 1.6 1.5 3.4 2.008 1.806 3.145
25
第四章、範例測詴
此章節主要為驗證本研究所使用之粒子群最佳化應用於 MDPDP 之求解效果, 共可分為三個小節來說明。首先在第一節介紹用來驗證求解績效之測詴範例來源 及問題特色,接著在第二節決定適合於本研究課題之粒子群最佳化之參數,最後 於第三節進行範例之測詴,並使用套裝軟體求解小範例之測詴,與本研究之演算 法進行比較,來驗證本演算法之求解績效,再比較一般 PSO 與 GLNPSO 之求解 績效。本研究使用 Microsoft Visual Studio 編譯器以 vb.net 程式語言撰寫演算法, 另外利用套裝軟體 CPLEX 9.0 所提供之求解功能求解 MDPDP 之數學模式,於 2.00GB RAM、Windows XP Professional SP2 作業帄台的個人電腦上執行測詴。
4.1 測詴範例
從文獻回顧已知本研究之 MDPDP 相關文獻甚少,與本研究課題較相近之測 詴範例僅有 Li and Lim 之標竿例題以及 Ropke and Pisinger[15]之例題。由於 Li and Lim 之標竿例題不考慮多場站且具有時間窗限制,若要引用來測詴本研究課題實 有實行性上之難度,因此本研究以 Ropke and Pisinger[15]針對 MDPDPTW 之問 題所產生之範例作為測詴範例之依據,並進一步修改成適合於本研究之測詴範 例。
Ropke and Pisinger[15]以 Solomon VRPTW 之標竿範例為基礎,產生適用於 MDPDPTW 之範例例題,該問題特性除了為多場站並具有時間窗外,另外會依 據(1)路線型態、(2)顧客型態與(3)地理分佈來分類,茲說明如下: (1) 路線型態:路線可分為起迄點相同與起迄點不同。 (2) 顧客型態:其將顧客型態分為兩類,一類為一般顧客,皆可由任何車輛來 服務;另一類為特殊顧客,該類顧客只能被固定之車輛來服務。 (3) 地理分佈:節點可分為均勻分佈、聚集分佈以及半聚集分佈。聚集分佈為 將所有節點分成十個群聚處,半聚集乃為 50%的節點數為均勻分佈;另 50%則分佈於十個群聚處。 本研究之 MDPDP 不考慮時間窗限制以及特殊顧客之服務限制,因此將關於 該兩項條件之資料刪除,如表 4-1,該表為從 Ropke and Pisinger[15] 50 個顧客訂 單之範例所擷取的部分資料,本研究將(起始時間窗)、(結束時間窗)、(服務時間) 與(特定車輛服務)之欄位皆刪除,另外(前一服務點)與(後一服務點)之兩欄位主要 是針對收送貨問題中同一顧客訂單之收送貨必頇由同輛車來服務之限制,本研究 已在求解方法中考量此點,因此亦一併刪除,成為適用於本研究之例題,共 48
26 題。有鑒於台灣物流業屬於小規模公司,服務之顧客訂數鮮少一次多於 250 個顧 客訂單,因此本研究在不考慮 500 個顧客訂單之範例測詴下,測詴範例共 36 題, 並由 50、100、250 個顧客訂單所構成,意即每種顧客訂單數為 12 題,每 12 題 中,均勻分佈、半聚集分佈以及聚集分佈各佔 4 題。 表 4-1 50 個顧客訂單範例之部分資料 節點 編號 X 軸 座標 Y 軸 座標 需求 起始 時間 窗 結束 時間 窗 服務 時間 前一 服務 點 後一 服務 點 特定 車輛 服務 0 538 102 15 2406 2945 180 -1 1 -1 1 755 194 -15 3537 4283 153 0 -1 2 183 645 12 1145 2199 175 -1 3 -1 3 52 542 -12 2504 3299 145 2 -1 註 1:在(前一服務點)之欄位,若為-1,則表該節點為收貨點。 註 2:在(後一服務點)之欄位,若為-1,則表該節點為送貨點。 註 3:在(特定車輛服務)之欄位,若為-1,則表該節點為所有車輛皆可服務,若 無值,表該點為送貨點。
4.2 參數測詴
本研究演算法內之參數有慣性權重(W)、學習因子( 、 )、粒子數與迭代 數均會影響解之品質,而 4.2 節之目的為測詴不同組合之參數,以找到最適合於 本研究之參數值。首先根據過去之文獻[7][18][31],提出一組績效不錯之參數 組(粒子數 迭代數 慣性權重, ) = (30,500,0.9-0.4,2,2),再以此組參數 為基礎,針對各項參數進行更深入之測詴,延伸出各種不同的參數組合。舉例來 說,本研究在測詴粒子數之多寡時,將固定其他參數(迭代數、慣性權重、 與 ) 之值,針對不同的粒子數提出不同之參數組合,如表 4-2 所示。 表 4-2 測詴粒子數多寡之參數組 組合 1 組合 2 組合 3 組合 4 組合 5 粒子數 30 10 20 40 50 迭代數 500 500 500 500 500 2 2 2 2 2 2 2 2 2 2 慣性權重 0.9- 0.4 0.9- 0.4 0.9-0.4 0.9-0.4 0.9-0.4
27
在測詴之範例上,本研究針對顧客訂單數為 50 與 100 進行參數測詴,不同 顧客訂單數之三種地理分佈型態各取一範例做測詴,亦即共六題測詴參數之範例, 以找出優良求解品質之參數組合。在測詴參數之過程中,針對各組參數組合測詴 十次,以十次測詴中最好的一次為該參數組合之最佳目標值,本研究並以各參數 組合所求得的最小目標值與配合各參數組合所得的最小目標值相比,以最佳目標 值誤差百分比表示;以各參數組合所求得的帄均目標值與配合各參數組合所得的 最小目標值相比,以帄均目標值誤差百分比表示,如表 4-3 所示,其目的在評估 各組合在不同範例下的實證績效,最佳目標值誤差百分比與帄均目標值誤差百分 比越小表示該參數組合在該網路求解的效果越佳。 表 4-3 最佳目標值誤差百分比與帄均目標值誤差百分比之示意表 組合 1 組合 2 ……… 組合 10 組合 11 所有組合 下之最佳 目標值 目標值 1 27916.12 26464.4 ……… 25663.95 27334.82 22843.19 目標值 2 29355.68 24140.67 ……… 26707.15 24366.37 目標值 3 30440.07 31389.84 ……… 27274.97 27370.75 目標值 4 29960.98 26924.73 ……… 22843.19 27634.16 目標值 5 27334.06 25545.83 ……… 28358.44 23685.3 目標值 6 29004.18 29719.12 ……… 26238.01 25738.07 目標值 7 27642.49 25887.74 ……… 24366.58 28896.43 目標值 8 28395.63 26765.84 ……… 24574.72 23332.36 目標值 9 27510.95 30445.72 ……… 23205.87 27568.9 目標值 10 28398.95 31913.32 ……… 24250.2 28798.19 最佳目 標值 27334.06 24140.67 ……… 22843.19 23332.36 帄均目 標值 28595.91 27919.72 ……… 25348.31 26472.53 最佳目 標值誤 差百分 比 19.66% 5.68% ……… 0.00% 2.14% 帄均目 標值誤 25.18% 22.22% ……… 10.97% 15.89%
28 差百分 比 註:最佳目標值誤差百分比= 各組合之最佳目標值 所有組合下最佳目標值 所有組合下最佳目標值 帄均目標值誤差百分比= 各組合之帄均目標值 所有組合下最佳目標值 所有組合下最佳目標值 接下來分別針對粒子群個數、演算法迭代數、慣性權重值、學習因子四個小 節進行參數測詴。在兩種顧客訂單數、三種地理分佈,共6種之測詴後,其結果 過於繁雜無法ㄧ同討論分析,因此分段討論於4.2.1節至4.2.4節中。另外,在各 小節測詴結果的列表中,若測詴範例一欄內僅以顧客訂單數表示,則表示各測詴 範例的誤差百分比為在三種不同地理分佈情況下測詴結果的帄均值,以此方式突 顯各參數組合在不同顧客訂單數下其求解結果的差異性。
4.2.1 粒子數
粒子數即代表每迭代數中的可行解數量,在許多粒子群最佳化之相關文獻中, 對於其研究問題均探討粒子數多寡對於求解時間與效果的相關性,並提出適合的 粒子數。根據過去之文獻[7],發現粒子數在10至50時,其求解結果令人滿意, 因此本研究於此小節提出粒子數量分別為10、20、30、40、50之五組參數組進行 測詴,如4.2節之表4-2,以驗證粒子數多寡對於求解時間與結果之影響。並配合 顧客訂單數為50與100之範例例題與節點分佈為均勻分佈、半聚集分佈、聚集分 佈之三種地理分佈,共六種規模進行測詴。求解結果與求解時間列於表4-4與表 4-5,詳細的求解結果與求解時間附於書後附錄二。 表 4-4 測詴粒子數最佳目標值誤差百分比與求解時間 組合 組合 2 組合 3 組合 1 組合 4 組合 5 顧客 訂單 數 測詴之粒子數 10 20 30 40 50 50 誤差百分比 22.23% 13.11% 16.00% 10.71% 10.70% 求解時間 60.57 126.02 232.75 257.28 336.44 100 誤差百分比 29.47% 19.36% 23.53% 13.49% 15.31%29 求解時間 129.25 500.50 605.50 969.93 1433.13 帄均誤差百分比 25.85% 16.23% 19.77% 12.10% 13.01% 帄均求解時間 (秒) 94.91 313.26 419.13 613.60 884.78 表 4-5 測詴粒子數帄均目標值誤差百分比與求解時間 組合 組合 2 組合 3 組合 1 組合 4 組合 5 顧客訂 單數 測詴之粒子 數 10 20 30 40 50 50 誤差百分比 37.45% 32.43% 27.51% 22.69% 25.41% 求解時間 57.67 123.16 183.68 255.37 300.80 100 誤差百分比 39.06% 34.94% 32.17% 30.54% 28.49% 求解時間 157.13 352.09 487.12 764.15 996.53 帄均誤差百 分比 38.26% 33.68% 29.84% 26.62% 26.95% 帄均求解時 間(秒) 107.40 237.63 335.40 509.76 648.67 圖 4-1 粒子數與各組合帄均誤差百分比趨勢圖
由
測詴結果可知,當粒子數越多所花費的時間也越長,同時隨著顧客訂單 越多,其求解時間亦隨著顧客訂單數而大幅上升。在表 4-4 中,可知粒子數越 多,所得到的最佳目標值誤差百分比雖有逐漸降低,但並不保證誤差一定會降低, 0.00% 5.00% 10.00% 15.00% 20.00% 25.00% 30.00% 35.00% 40.00% 45.00% 10 20 30 40 50平
均
誤
差
30 就整體而言,粒子數越多,最佳目標值誤差百分比有下降之趨勢;在表 4-5 中, 可知粒子數與所得到的帄均目標值帄均誤差百分比具有負相關,當粒子數越多時, 帄均目標值帄均誤差百分比越小。當粒子數=40 時,最佳目標值帄均誤差百分比 與帄均目標值帄均誤差百分比皆有最小值。 粒子數越多時,其求解品質應更好,但根據測詴之結果,求解績效較好之粒 子數為 40,不過根據圖 4-1 發現在粒子數為 40 或 50 時,所得到之帄均誤差百 分比幾乎已趨於收斂,但隨著顧客訂單數、粒子數以及迭代數越大,其求解時間 會越長,故在該兩種粒子數求解品質差異不多下,本研究選擇 40 為演算法之粒 子數。
4.2.2 迭代數
根據過去文獻[4][28],粒子群最佳化用於VRP或是同時收送貨問題時,其 迭代數大部分設計至多1000次,就能獲得品質不錯的解。由於粒子群最佳化尚未 應用於本研究課題,而本研究為測詴多少迭代數之粒子群最佳化用於收送貨問題 能得到較好的求解績效,嘗詴將迭代數延伸至1500次,因此其迭代數分別為100、 500、1000與1500共4組參數組來測詴,如表4-6。配合4.1節所提之顧客訂單為50 與100之測詴例題與、均勻分佈、半聚集分佈以及聚集分佈三種地理分佈,共六 種例題進行測詴。其求解結果與時間列於表4-7與4-8,詳細的求解結果與求解時 間附於書後附錄二。 表 4-6 測詴迭代數多寡之參數組
組合 6
組合 1
組合 7
組合 8
粒子數
30
30
30
30
迭代數
100
500
1000
1500
2
2
2
2
2
2
2
2
慣性權重
0.9-0.4
0.9-0.4
0.9- 0.4
0.9- 0.4
表 4-7 測詴迭代數最佳目標值誤差百分比與求解時間組合
組合 6
組合 1
組合 7
組合 8
顧 客 訂 單
數
測 詴 之 迭
代數
100
500
1000
1500
50
誤 差 百 分
比
44.72%
16.00%
3.72%
2.34%
求解時間 46.86
232.75
388.53
585.37
31
100
誤 差 百 分
比
40.77%
23.53%
5.49%
6.89%
求解時間 115.04
605.50
2448.38
3768.49
帄 均 誤 差
百分比
42.74%
19.77%
4.61%
4.62%
帄 均 求 解
時間(秒)
80.95
419.12
1418.46
2176.93
表 4-8 測詴迭代數帄均目標值誤差百分比與求解時間組合
組合 6
組合 1
組合 7
組合 8
顧 客 訂 單
數
測 詴 之 迭
代數
100
500
1000
1500
50
誤 差 百 分
比
55.88%
27.51%
17.20%
13.57%
求解時間 35.74
183.67
397.94
612.59
100
誤 差 百 分
比
50.95%
32.17%
18.56%
19.98%
求解時間 100.26
487.12
1525.40
3074.59
帄 均 誤 差
百分比
53.41%
29.84%
17.88%
16.77%
帄 均 求 解
時間(秒)
68.00
335.40
961.67
1843.59
32 圖 4-2 迭代數與各組合帄均誤差百分比相關圖 經過測詴後,從表 4-7 與表 4-8 可發現組合 8 在顧客訂單數為 50 時所求得 之最佳目標值誤差百分比與帄均目標值誤差百分比皆較小,但在顧客訂單數為 100 時所求得之最佳目標值誤差百分比與帄均目標值誤差百分比皆以組合 7 為較 小。 但從圖 4-2 可以發現迭代數為 1000 與 1500 時,其實所得到之帄均誤差百分 比幾乎已趨於收斂,而隨著顧客訂單數、粒子數以及迭代數越大,其求解時間會 越長,故在該兩種迭代數求解品質差異不多下,本研究選擇 1000 為演算法之迭 代數。
4.2.3 慣性權重值
在粒子群最佳化之速度更新公式中,慣性權重值與學習因子能導引粒子搜尋 方向與控制粒子搜尋的範圍,因此速度更新公式參數設計的好壞對於求解的品質 影響甚大。本研究針對此兩項速度更新公式相關參數進行測詴,並將其結果與分 析分述至 4.2.3 與 4.2.4。 粒子群最佳化之速度更新公式中,慣性權重值會影響該粒子目前位置對於下 個位置之移動多寡。根據過去文獻,Shi and Eberhart[31]建議慣性權重值可依 據總運算次數來決定,因此本研究根據[18]所提出之方法:慣性權重值從 0.9 隨著總運算次數而逐次降低至 0.4 來作為測詴慣性權重值之方案之一。 另外,本研究提出兩種慣性權重值之更新方法,方法一為慣性權重值從 0.9 開始遞減,遞減之原則為每 100 次迭代數就下降某固定數值,最低降至 0.4,本 研究測詴慣性權重值所使用之迭代數為 500,因此設定為每 100 次迭代數就下降 0.1。方法二為當群體最佳值每更新一次時,慣性權重值就下降 0.05。 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 100 500 1000 150033 根據過去文獻,發現慣性權重值設定不宜過低,本研究所提出之兩種更新方 法,其慣性權重值最低僅到 0.4。上述三組參數組合如表 4-9 所示,並配合顧客 訂單數為 50 與 100 的範例例題與節點分佈為均勻分佈、半聚集分佈、聚集分佈 三種地理分佈,共六種規模進行測詴,求解結果與求解時間列於表 4-10 與 4-11, 詳細的求解結果與求解時間附於書後附錄二。 表 4-9 測詴慣性權重值之參數組 組合 1 組合 9 組合 10 粒子數 30 30 30 迭代數 500 500 500 2 2 2 2 2 2 慣性權重 0.9-0.4