免疫演算法於自動販賣機貨物配送路線規劃問題之探討
許正良
1*謝益智
2 1*,2國立虎尾科技大學工業工程與管理研究所(632 雲林縣虎尾鎮文化路 64 號)
*mike0015713@yahoo.com.tw
摘要本研究探討販賣機貨物配送路線規劃問題,此問題屬於週期性車輛路徑問題(Period Vehicle Routing Problem, PVRP),是車輛路徑問題(Vehicle Routing Problem, VRP)的延伸問題。本問題為多個需求點,且 皆有不同的需求量,而各需求點之補貨頻率分為兩天補貨一次與兩天補貨二次,並在車輛容量有限制下, 使用二輛貨車進行補貨。本研究提出一個新的編碼方式,同時解決週期性的配送地點組合與排序,並運 用免疫演算法(Immune Algorithm, IA)來求解最短之 貨物配送 路徑。本 研究 以 桃園某一區域為例,其數 值結果顯示,本研究的免疫演算法能有效解決此販賣機貨物配送路線規劃問題。 關鍵字: 週期性車輛路徑問題、免疫演算法、自動販賣機 1. 前言 隨著經濟的快速發展與消費型態的改變,人們與便利商店的關係越來越緊密,但便利商店的開設需 要尋找合適的地點以及耗費相當大的資金,於是就有了自動販賣機的出現。早在19世紀時,日本就有自 動販賣機的出現,可是直到第二次世界大戰之後才真正的普及,世界上擁有自動販賣機的國家,密度最 高的是日本。據1998年的統計,在日本全國各地共設有550萬台自動販賣機,銷售額達6兆8969億4887萬 日圓, 為世界第一。雖然日本的自動販賣機總台數低於美國的689萬台,但是,從人口占有數來看卻是 世界上最高的,美國平均35人占有一台, 而日本為23人占有一台。(上海商業週刊,2003) 自動販賣機是一種無店舖的經營模式,不受時間與空間的限制的影響,能夠二十四小時全年無休的 提供服務且不需要店面與營業員的人事成本,除此之外,其設置成本與營運成本相對低廉。但相較於便 利商店而言,自動販賣機能販賣的商品種類比較少,例如:自動販賣機只能賣一些飲料、餅乾等標準化 較高的商品,不像便利商店能賣關東煮、茶葉蛋等要經過再處理之商品。以存貨來看,自動販賣機因為 體積小不像便利商店有倉庫,所以存貨量不如商店,因此自動販賣機必須時常進行補貨作業,以維持機 台有貨物可供正常營運。商品配送的成本便成為了自動販賣機業者在進行補貨作業的主要成本,因此, 如何減少補貨作業的成本便成為一個自動販賣機行業的重要問題。 現行自動販賣機的商品配送規劃,主要以人員既有的經驗來處理配送路線問題,此法雖能得到可行 的配送路線,但不能保證配送路線之效率與品質。車輛的載運量則以補足所有配送點為原則,一般而言 每車次約會剩餘三分之一車貨物,載運超過實際需求的商品數量,將會增加配送人員的負擔(張志鴻, 1992)。本研究探討販賣機貨物配送路線規劃問題,將提出一個新的編碼方式,同時解決週期性的配送地 點組合與排序,並運用免疫演算法(Immune Algorithm, IA)來求解最短之貨物配送路徑。
2. 文獻探討
2.1 貨物配送路線規劃相關文獻
(a) 國內關於路線規劃的相關文獻包括:黃信穎(2005)運用 2-Opt 節點交換法配合模擬退火法(Simulated Annealing, SA)解決同時處理收貨與送貨業務的問題;毛嘉慧(2011)應用車輛途程規劃,在有限的時間
內,解決醫院供應室中器械包盤配送至各科室之配送問題;張欣萍(2012)應用基因演算法探討配送場 站區位的選址問題,並且同時加入配送場站與車輛的容量限制及多產品型態的顧客需求進行車輛路徑 指派的評選;陳每(2011)應用了粒子群最佳化演算法(Particle Swarm Optimization, PSO)先處理客戶位 置分群問題,再搭配模擬退火法(SA)處理拜訪客戶的路線規劃問題。
(b) 國外的文獻包括:Yu et al. (2009)運用改良過的蟻群演算法(Improved Ant Colony Optimization, IACO) 來解決作業研究資料庫內的 VRP 問題,並與用同樣資料運用禁忌搜索法以及模擬退火法所得出來的 解來做比較。
2.2 週期性車輛路徑問題(PVRP)
週期性車輛路徑問題(Period Vehicle Routing Problem, PVRP)是考慮在一定週期內,如何同時決定運送 時間與車輛路徑的組合決策型態,並在服務水準之範圍內,達到運送總成本最小、總距離及總時間最短 之目標。此類問題的型態與實際上所面臨的情形相近,因此 PVRP 在實務應用上十分廣泛且重要。由於 PVRP 是屬於 NP-hard,因此應用於實務上的解法皆為啟發式解法。卓裕仁(2001)將接受劣解、變換鄰域、 擾動成本與多重起點等巨集策略融合在深度搜尋與廣度搜尋的概念中,發展出一套「包容性深廣度搜尋 (Generic Intensification and Diversification Search, GIDS)」的巨集啟發式方法,來求解多車種車輛路徑問題 (Heterogeneous Fleet Vehicle Routing Problem, HVRP)與週期性車輛路徑問題(PVRP)。
2.3 自動販賣機貨物配送路線規劃問題 自動販賣機因為體積小,所以存貨空間不足,須常常進行補貨作業,因此補貨成本為其主要的營運 成本,如何減少補貨成本便成了重要課題。國內有許多研究探討販賣機的貨物配送問題,包括:劉奕青(2003) 應用了模擬退火法(SA)解決同時考慮指派服務日期形態、車輛途程問題以及各產品裝載數量問題的自動 販賣機存貨途程問題;呂志航(2007)應用模擬退火法(SA)來求解一個非固定間隔天數的自動販賣機補貨作 業問題;謝騰飛(2010)運用蟻群演算法(ACO)來求解自動販賣機補貨車隨機需求車輛路徑問題(Vehicle Routing Problem with stochastic demands, VRPSD)。
3. 問題假設與研究方法 3.1 問題假設 本研究的基本假設如下: (a) 考慮送貨,每個補貨點的需求量不同。 (b) 每天有兩輛車來服務所有補貨點。 (c) 車輛每次都由停車場出發,先至倉庫載貨,再至補貨點進行補貨作業。 (d) 當車輛所攜帶之貨物不足時,必須再回倉庫載貨。 (e) 當完成所有補貨作業後,車輛須再返回停車場。 (f) 補貨時段不限,但各補貨點之補貨頻率分為兩種類型:兩天補貨一次、兩天補貨二次(即每天補貨一次)。 3.2 免疫演算法(IA) 免疫系統主要是為了保護人體避免病原體的侵犯而發展出之防禦機制,其中免疫細胞具有辨識功 能,除了可以偵測外來病原體並釋放抗原與抗體結合與之對抗之外,還能夠在感染此病原體後,記憶該 病原體,透過不斷無性繁殖與複製產生新抗體並留在記憶區內,在下次同樣的病原體侵入時能夠快速反
應。免疫演算法具有下列四種特性(鄧宗倫,2010): (a) 專一性(Specificity):每個淋巴球細胞皆有其獨特性,並經由抗原活化產生抗體,針對某種抗體或性質 接近的抗原產生專一性的結合,以區分各種不同抗原。 (b) 自體辨識性(Self/Non-self):免疫系統具有辨識之功能,並消滅非自身抗原。 (c) 異常偵測性(Abnormal Detection):免疫系統能夠針對不同構造之抗原,迅速偵測並產生免疫反應。 (d) 記憶性(Memory):當有相同之抗原入侵人體時,藉由記憶性之細胞的快速反應,迅速產生專一性細胞 抗體來消滅抗原。 因此,免疫演算法(IA)不僅著重於單一最佳解,而是利用模擬免疫機制大量繁殖抗體的方式,來搜 尋問題最佳解,所以免疫演算法具有提供多重解之可能。李新秋(2010)與黃泊晴(2010)在車輛路徑問題上 分別運用免疫演算法(IA)、基因演算法(GA)與粒子群演算法(PSO)做比較,結果顯示免疫演算法(IA)之求 解效果優於其他兩種演算法,因此本研究採用免疫演算法(IA)。根據 Jerne(1973)對免疫系統的定義,本研 究將免疫演算法(IA)之架構與步驟詳述如下: 步驟一:隨機產生初始抗體族群。 步驟二:評估族群中每個抗體,計算出每個抗體與抗原之親和性函數值。 步驟三:根據步驟二評估每個抗體之親和性函數值結果,從族群中選擇 n 個最佳抗體。 步驟四:將步驟三所選擇出來的抗體族群進行複製(無性繁殖),每個抗體複製的數目會隨著評量結果的比 例決定,即親和性越高,被複製的數量越多,反之越低,複製的數量相對就少(鄧宗倫,2010)。 步驟五:由步驟四所複製之抗體族群,進行基因運算,其包含了交換與突變的演化過程(Michalewicz, 1996)。 步驟六:經由步驟五基因運算後所產生的新抗體族群,進行重新評估親和性作業,選出新族群中能改善 記憶區內既有抗體群,將其加入記憶區內並淘汰原記憶區內被取代的舊有抗體(較差之抗體)。當 記憶區更新後,將部份結構相似性過高之抗體去除,藉以保持記憶區抗體之多樣性。 步驟七:檢查所預設之結束條件是否到達?若達到結束條件則至步驟八,反之若未達到結束條件則至步 驟二。 步驟八:結束,從記憶區輸出整體最佳規劃解或近似最佳規劃解。 其機制架構如圖 1 所示: 圖 1 免疫演算法的機制架構(鄧宗倫,2010)
3.3 例題 本研究的免疫演算法之個體編碼方式,主要是建構在連續正整數的排序,我們以下面的例題來說明。 假設需要補貨的補貨點為 8 個,各補貨點的補貨次數分別為:兩天兩次、兩天一次、兩天一次、兩 天兩次、兩天一次、兩天兩次、兩天兩次、兩天一次,而每天有兩輛貨車可供使用,即C=(C1, C2)=(2,2)。 對於此問題,本例題採用 1~16(=2 天×8 個補貨點)的正整數之隨機排序來建構可行解。例如:隨機產生 1~16 之正整數隨機排序為:15、11、4、1、12、14、16、9、10、5、8、3、6、2、7、13。因為各補貨點的補 貨週期分別為兩天兩次、兩天一次、兩天一次、兩天兩次、兩天一次、兩天兩次、兩天兩次、兩天一次, 我們將其補貨天數以灰階標示,最後利用下面兩項規則,將表格一之車輛別橫列數值予以填入: 規則一:若天數之位置無灰階或者(C1, C2)= (1,1),則車輛別為 1。 規則二:若天數之位置有灰階且每天可使用之車輛數大於 1,則車輛別為 1+mod(隨機排序數值,每天可 使用之車輛數)。 根據上面兩個規則,我們可以得出表格 1 之各車輛數值。 表格 1 編碼方式說明
補貨點
1
2
3
4
5
6
7
8
隨機排序 15 11
4
1
12 14 16
9
10
5
8
3
6
2
7
13
天數
2
1
2
1
2
1
1
2
1
2
2
1
2
1
1
2
車輛別
2
2
1
2
1
1
1
2
1
2
1
2
1
1
2
2
根據表格 1,按照隨機排序中 1~16 之順序,可得出初步車輛補貨順序: 第一天 車輛 1:停車場→倉庫→7→5→4→停車場 車輛 2:停車場→倉庫→6→8→1→停車場 第二天 車輛 1:停車場→倉庫→2→7→6→3→停車場 車輛 2:停車場→倉庫→4→1→停車場 假設第二天的車輛 2 在補貨點 6 補完貨後,車上貨物不足以補足下一個補貨點 3,則車輛會先前往倉 庫補滿貨物,再逕行前往補貨點 3 運補,則第二天之車輛 2 補貨順序將成為:停車場→倉庫→2→7→6→ 倉庫→3→停車場。 4. 測試問題與結果 4.1 測試問題本研究之免疫演算法是以MATLAB R2009a所撰寫,在Intel○R CoreTM i7-2600 CPU3.4GHz與 3.16GB RAM的電腦環境下執行測試,在運算求解中,輸入的數據皆無捨去或刪除。
本研究以桃園中壢火車站前站的某一實際地區之道路節點為測試問題,其中包含單向道路(有箭頭道 路)與雙向道路(無箭頭道路),詳見圖 2、圖 3,而車輛容量限制分別設為 15、25。此測試問題之道路節點 總數為 212 個,其中 P(節點 209)為貨車停車場、W(節點 117)為貨物倉庫;1 為兩天補貨一次之補貨點、2 為兩天補貨兩次的補貨點,合計總共有 20 個補貨點,表 2 為各補貨點之節點與補貨量。
圖 2 中壢火車站前站地區道路(資料來源:Google map) 圖 3 中壢火車站前站地區道路簡易圖 表 2 各補貨點之補貨頻率與補貨量 補貨頻率 節點(補貨量) 兩天一次 5(8)、34(8)、47(4)、71(10)、81(6)、112(4)、132(6)、159(7)、175(5)、187(8) 兩天兩次 8(7)、12(5)、39(7)、50(3)、78(6)、127(7)、135(4)、142(5)、204(5)、211(8) 本研究測試問題之參數設定為:初始群組 100、交換率 0.96、突變率 0.01、複製後被挑選的比例 0.85、 最大演化代數為 1000 代,終止條件為最佳演化代數。本研究執行測試共 1000 次,並記錄其結果。
4.2 測試結果 當車輛容量=15、25,電腦執行 1000 次之最小目標值、目標值平均數、CPU 時間最小值、CPU 時間 平均數,詳如表 3 所示。而各點之最佳補貨順序與各補貨車輛所行駛之路徑長度,如表 4、表 5 所示。 表 3 不同車輛容量之 1000 次測試結果 車輛容量=15 車輛容量=25 目標值 CPU 時間(秒) 目標值 CPU 時間(秒) 最大值 970.4 418.41 853.3 433.5 最小值 852.7 276.8 672.9 258 平均數 892.06 362.24 735.16 373.02 標準差 18.36 24.49 23.95 28.33 表 4 各車輛運補之路徑長度與最佳順序 (車輛容量=15) 天數 車輛 總路徑長度 最佳補貨順序 第一天 車輛 1 207.2 補貨順序 剩餘貨量 P→W→50→12→8→W→135→132→204→P 0→15→12→7→0→15→11→5→0→0 車輛 2 166.2 補貨順序 剩餘貨量 P→W→142→71→W→78→39→W→127→211→P 0→15→10→0→15→9→2→15→8→0→0 第二天 車輛 1 146.8 補貨順序 剩餘貨量 P→W→50→34→47→W→78→112→W→159→211→P 0→15→12→4→0→15→9→5→15→8→0→0 車輛 2 332.5 補貨順序 剩餘貨量 P→W→81→127→W→5→12→W→39→8→W→142→ 175→135→W→187→204→P 0→15→9→2→15→7→2→15→8→1→15→10→5→1→ 15→7→2→0 P 為停車場;W 為倉庫 表 5 各車輛運補之路徑長度與最佳順序 (車輛容量=25) 天數 車輛 總路徑長度 最佳補貨順序 第一天 車輛 1 124.7 補貨順序 剩餘貨量 P→W→78→39→71→W→127→159→211→P 0→25→19→12→2→25→18→11→3→3 車輛 2 234.3 補貨順序 剩餘貨量 P→W→50→5→8→12→W→142→135→132→175→204 →P 0→25→22→14→7→2→25→20→16→10→5→0→0 第二天 車輛 1 138.1 補貨順序 剩餘貨量 P→W→81→50→34→47→112→W→127→211→P 0→25→19→16→8→4→0→25→18→10→10 車輛 2 175.8 補貨順序 剩餘貨量 P→W→78→12→8→39→W→142→135→187→204→P 0→25→19→14→7→0→25→20→16→8→3→3 P 為停車場;W 為倉庫
4.3 測試結果討論 根據表格 3-表格 5 結果,我們可以看出: (1) 當車輛容量越小,所需回倉庫(W)重新補貨的次數越多,因此車輛行徑路線的總長度會越長。例如: 當 車 輛 容 量 =25 , 車 輛 回 倉 庫 (W) 重 新 補 貨 的 次 數 為 1 次 , 其 二 天 車 輛 行 徑 路 線 的 總 長 度 為 672.9(=124.7+234.3+138.1+175.8),而當車輛容量=15,車輛回倉庫(W)重新補貨的次數為 2 次,其二 天車輛行徑路線的總長度為 852.7(=207.2+166.2+146.8+332.5)。 (2) 當車輛容量越小,演算法的平均 CPU 執行時間略低於當車輛容量較大時。例如:當車輛容量=15,演 算法的平均 CPU 執行時間為 362.24,而當車輛容量=25,演算法的平均 CPU 執行時間為 373.02。 4.4 統計檢定 本小節對本研究之車輛容量對於路徑總長度與 CPU 執行時間進行統計檢定,以免疫演算法(IA)重複 執行 1000 次所得到的觀察值進行成對 t 檢定(α=0.05),虛無假設與對立假設如下: (檢定一):H0: 車輛容量對於路徑總長度間無顯著差異 H1: 車輛容量對於路徑總長度間有顯著差異 檢定結果:P-Value = 0.000 (檢定二):H0: 車輛容量對於CPU執行時間無顯著差異 H1: 車輛容量對於CPU執行時間有顯著差異 檢定結果:P-Value = 0.000 從上述兩檢定可得知P-Value皆小於α(0.05),故捨棄H0,保留H1。表示車輛容量對於路徑總長度及CPU 執行時間皆有顯著差異。 5. 結論 本研究探討自動販賣機的貨物配送路線規劃問題,此問題為車輛路徑問題所衍生出來的週期性車輛 路徑問題。我們應用免疫演算法(IA)來求解此問題,以桃園中壢地區為例之數值結果顯示,本研究之免疫 演算法(IA)能有效解決此自動販賣機貨物配送路線規劃問題。未來研究方面,可以找尋更有效之人工智慧 演算法來求解此問題,或是求解自動販賣機廠商之實際問題,將此方法與實務作結合,以探討該方法於 實務上之表現。 6. 參考文獻 上海商業週刊:http://www.cqvip.com/QK/98163X/200304/7751100.html 毛嘉慧(2011),「器械包盤配送路徑之研究-以某醫學中心供應室為例」,碩士論文,國立臺灣海洋大學 航運管理學系。 李新秋(2010),「具平衡之週期性車輛派遣問題的探討」,碩士論文,國立虎尾科技大學工業工程與管理研 究所。 呂志航(2007),「自動販賣機補貨配送作業問題之研究」,碩士論文,國立高雄第一科技大學運籌管理所。 卓裕仁(2001),「以巨集啟發式方法求解多車種與週期性車輛路線問題之研究」,博士論文,國立交通大學 運輸工程與管理系。 黃泊晴(2010),「人工智慧最佳化於警車巡邏問題之研究」,碩士論文,國立虎尾科技大學工業工程與管理 研究所。
黃信穎(2005),「同時處理收貨與送貨業務之配送路線規劃」,碩士論文,立德管理學院應用資訊研究所。 陳每(2011),「混合式粒子群最佳化演算法解容量限制車輛途程問題」,碩士論文,大同大學資訊經營學 系(所)。 張志鴻(1992),「無線電自動販賣機商品配送作業之研究」,碩士論文,中華大學科技管理研究所。 張欣萍(2012),「應用基因演算法求解多桶格區位途程問題」,碩士論文,國立高雄第一科技大學運籌管 理研究所。 劉奕青(2003),「自動販賣機存貨途程問題之研究」,碩士論文,元智大學工業工程與管理學系。 鄧宗倫(2010),「應用人工智慧法於最佳消毒作業之時窗限制車輛途程問題」,碩士論文,國立虎尾科技大 學工業工程與管理研究所。 謝騰飛(2010),「使用螞蟻演算法求解隨機需求車輛路徑問題-以販賣機補貨車為例」,碩士論文,國立高 雄第一科技大學運籌管理所。
Jerne, N.K., 1973, “The immune system”, Scientific America, 229(1), pp. 52-60.
Michalewicz, Z, 1996, “Genetic Algorithms + Data Structures = Evolution Programs”, 3rd Edition, Springer-Verlag, NY.
Yu, B., Yang, Z.-Z., Yao, B. 2009, “An improved ant colony optimization for vehicle routing problem”, European Journal of Operational Research 196, pp. 171–176.
An Immune Algorithm For The Vending Machine Goods Delivery Routing
Problem
*Cheng-Liang Hsu and Yi-Chih Hsieh
National Formosa University Institute Of Industrial Engineering And Management (No.64,
Wunhua Rd., Huwei Township, Yunlin County 632, Taiwan)
*
mike0015713@yahoo.com.tw
ABSTRACT