• 沒有找到結果。

以限制多目標演化演算法求解具時窗限制之車輛路由問題

N/A
N/A
Protected

Academic year: 2021

Share "以限制多目標演化演算法求解具時窗限制之車輛路由問題"

Copied!
42
0
0

加載中.... (立即查看全文)

全文

(1)國立臺灣師範大學 資訊工程研究所碩士論文 指導教授:蔣宗哲. 博士. 以限制多目標演化演算法 求解具時窗限制之車輛路由問題 A Constrained Multiobjective Evolutionary Algorithm for the Vehicle Routing Problem with Time Windows. 研究生:翁仁一. 撰. 中華民國 一○二 年 八 月.

(2) 中文摘要 「時窗限制車輛路由問題 (Vehicle Routing Problem with Time Windows, VRPTW)」在原有的車輛路由問題 (Vehicle Routing Problem, VRP) 上增添時間的 限制,增加了題目的難度,但也更符合現實生活中的需求。此問題的研究已有 20 多年歷史。過去的精確演算法對於如此困難的問題,往往不能求解規模龐大的輸 入。近年許多研究偏好採用多目標最佳化的方式解決,但因此問題的時窗限制較 難修復,較少人會提及不合法解的處理。 本研究修改自現有的 MOEA-EO [14]。在交換最佳的路由時,總是選擇客戶 數目最多的,以祈刪除最多的客戶以減少路由數目。在限制處理上,環境的選擇 會依據解的合法性,使用不同的凌越關係來分級。合法的解會使用傳統的解題目 標來分級,不合法的解會使用限制的違反量來分級。最後會以交互的方式篩選出 可以存活到下一代的個體,適當保留不合法的個體以增加搜尋的廣度。 本演算法對於客戶數目較少的問題已有不錯的表現。在 Solomon 25 個客戶的 問題中,更新了 9 個最佳解。. 關鍵詞:多目標最佳化、演化式演算法、時窗限制車輛路由問題、限制處理. i.

(3) 誌 謝 今年是我待在師大的第五個年頭,如今反而想不起來當初為什麼要念資工系 了。不知自己為何而來,也不知自己為何可以撐到今天。我承認我不是一個天才, 在師大的這五年,走得很辛苦。也許是對自己的期望吧,我想要做一個可以改變 世界的人,如此的念頭讓我堅持至今。 感謝指導教授蔣宗哲老師從我大三以來的支持。感謝國立海洋大學兩位口試 委員:鄭慕德教授、許為元教授,對論文提出許多的誠摯建議。感謝實驗室的夥 伴們:泳陖、麒安、大維、少文、冠廷、鼎基、維新、弘奇學長們。感謝只見過 一次面,提供本論文研究基礎的巍懷學長。感謝家人對我這幾年回家次數變少的 忍受。感謝系上許多親切和藹的老師們。感謝當初五年計畫的推手:李忠謀教授。 感謝資工 101 級許多的好朋友。其實這五年中累積了很多很多的感謝,無法用隻 字片語在此完述。沒有很多人的幫助,也就不會有今天的我。 最後套句系上 DJWS 學長對我說過的話: 「最佳化很無聊,但很有用」 。雖然 這篇論文目前在世人眼中,好像沒什麼價值,目前專注在啟發式演算法的人並不 多。但我個人期許不久的未來,不管是演化式計算還是車輛路由問題的實際應用, 都能在資訊科學中扮演重要的角色。. ii.

(4) 目 錄 中文摘要.......................................................................................................................... i 誌 謝............................................................................................................................... ii 目 錄.............................................................................................................................. iii 附表目錄......................................................................................................................... v 附圖目錄......................................................................................................................... v 第一章 1.1 1.2 1.3. 緒論................................................................................................................. 1 研究背景.......................................................................................................... 1 問題定義.......................................................................................................... 1 研究主軸.......................................................................................................... 4. 第二章 2.1 2.2 2.3. 文獻探討......................................................................................................... 5 精確演算法 (exact algorithms) ...................................................................... 5 路由建構法 (route construction method) ....................................................... 5 路由改善法 (route improvement method) ..................................................... 7 2.3.1. 2-opt .................................................................................................... 7. 2.3.2 Or-opt .................................................................................................. 8 2.3.3 2-opt* .................................................................................................. 9 2.3.4 CROSS-exchange ............................................................................. 10 2.4 啟發式演算法 (metaheuristics) .................................................................... 11 2.4.1 禁忌搜尋法....................................................................................... 11 2.4.2 基因演算法....................................................................................... 12 2.5 從多目標問題的觀點.................................................................................... 13 2.5.1 發現兩個解題目標的衝突性........................................................... 13 2.5.2 新的交配運算與解的表示法........................................................... 13 2.5.3 解的相似度指標和族群的發散程度............................................... 14 2.5.4 改善現有的交配和突變................................................................... 14 2.5.5 考慮車輛載重的不平衡................................................................... 15 2.6 其他相關的重要文獻.................................................................................... 16 2.6.1 使用 ejection pool 的概念以減少車輛數 ........................................ 16 2.6.2 一併解決相關的 VRPTW 問題....................................................... 16 2.7 限制處理 (constraint handling) .................................................................... 17 2.8 綜合比較........................................................................................................ 18. iii.

(5) 限制多目標演化演算法............................................................................... 19 解的表示法.................................................................................................... 19 初始族群 (initial population) 的產生 ......................................................... 19 親代的選擇 (parent selection) ...................................................................... 20 交配 (crossover)............................................................................................ 21 3.4.1 交換路由........................................................................................... 21 3.4.2 減少路由........................................................................................... 21 3.5 突變 (mutation) ............................................................................................. 22 3.6 環境的選擇 (environmental selection)......................................................... 23. 第三章 3.1 3.2 3.3 3.4. 第四章 4.1 4.2 4.3 4.4. 實驗數據與效能評比................................................................................... 25 測試問題集.................................................................................................... 25 效能指標........................................................................................................ 25 比較對象........................................................................................................ 26 實驗與觀察.................................................................................................... 26 4.4.1 選擇親代解的策略........................................................................... 26 4.4.2 選擇最佳路線的策略....................................................................... 28 4.4.3 刪除最差路線的策略....................................................................... 29 4.4.4 與目前最佳解的比較....................................................................... 30 4.4.5 與原本 MOEA-EO 的比較 .............................................................. 32. 第五章. 結論與未來發展........................................................................................... 34. 參考文獻....................................................................................................................... 35. iv.

(6) 附表目錄 表 1:選擇親代解的策略實驗表格............................................................................ 27 表 2:選擇最佳路線的策略實驗表格........................................................................ 28 表 3:刪除最差路線的策略實驗表格........................................................................ 29 表 4:25 個客戶的非凌越解比較............................................................................... 30 表 5:50 個客戶的非凌越解比較............................................................................... 31 表 6:本演算法和原有 MOEA-EO 的比較 ............................................................... 32 表 7:本論文所使用的實驗機器規格........................................................................ 33. 附圖目錄 圖 1:一個「時窗限制車輛路由問題」解的範例...................................................... 2 圖 2:2-opt 的範例 ........................................................................................................ 7 圖 3:Or-opt 的範例 ...................................................................................................... 8 圖 4:2-opt*的示意圖 ................................................................................................... 9 圖 5:CROSS-exchange 的示意圖 ............................................................................. 10 圖 6:程式語言中解的表示法.................................................................................... 19 圖 7:超時 (time-warp) 的範例 ................................................................................ 21 圖 8:族群的合併、分類和排序................................................................................ 23. v.

(7) 第一章 緒論 本章分為三個部分。第一節「研究背景」介紹本研究問題的來源與處理時會 面臨的困境。第二節「問題定義」使用了數學式明確地定義出本研究想要解決的 「時窗限制車輛路由問題」。最後再以第三節「研究主軸」介紹本研究想做出的 改進,還有此研究與其他相關研究不同的特色。. 1.1 研究背景 車輛路由問題 (Vehicle Routing Problem, VRP) 為作業研究和運輸管理中,很 重要的研究課題。此問題的延伸「時窗限制車輛路由問題 (Vehicle Routing Problem with Time Windows, VRPTW)」在原有的地理限制中,增添時間的限制,使得問題 的困難度大大地提升。此問題的生活實際應用有:宅急便貨物遞送、郵件遞送等。 傳統人工規劃未必可以求得不錯的解,而精確演算法 (exact algorithms) 面對 此 NP-Complete 的問題,無法在有限時間內處理規模龐大的輸入。因此許多研究 轉向嘗試啟發式演算法,希望即使未能求得最佳解,也能得到不錯的解,以應付 現實需求。所能處理的問題規模,也可以有效地提升,更能擴展此問題的實用性。. 1.2 問題定義 時窗限制車輛路由問題簡單的描述如下:給定一總站 (depot) 和客戶群的地 理座標,每位客戶都有各自的物品需求量,和服務時窗限制 (time window)。今想 派出物流車輛服務這些客戶,每位客戶皆只被服務一次。每台物流車皆從總站出 發,承載要遞發的物品,依序服務該台物流車所負責的客戶後,最後再返回總站。. 1.

(8) 這個問題主要有兩大限制,分別是容量限制和時窗限制。容量限制亦即每台 物流車皆有一定的承載容量上限。每台車輛所服務的客戶需求量總合,不得超過 該台物流車的容量上限。而在時窗限制車輛路由問題中,假設每台物流車的上限 皆為一固定值,且不會有任何客戶的需求量超過此值。 另一限制為時窗限制。每位客戶有各自容許的最早抵達時間 (earliest arrival time) 和最晚抵達時間 (latest arrival time) 。每台物流車抵達每位客戶位置的時間, 不得超過該客戶的最晚抵達時間。雖然此問題容許比最早抵達時間還要早到達該 客戶位置,但因還沒到達最早抵達時間,物流車只能在該客戶位置進行等待,無 法進行服務。直到最早抵達時間,才可開始進行該客戶的服務。 物流車開始服務客戶後,需要一小段卸載時間 (unloading time) 把客戶的需 求移交給客戶。此時間的長度,各個客戶皆有自行設定,不一定和此客戶的需求 量呈正比。卸載完畢後,物流車再移動到負責的下一位客戶位置繼續服務,或是 遞送完畢移動回到總站。 此問題想要求的解為:如何使用最少的物流車輛數,和最小的物流車移動距 離總和,在不違反所有條件限制下,分配每台物流車各自需服務的客戶群和服務 順序,完成所有客戶的物流需求。如下圖 1 所示。. 總站. 圖 1:一個「時窗限制車輛路由問題」解的範例。 圖中三角形、圓形、正方形皆代表客戶的地理位置,箭頭方向即為物流車的行進方向。 圖中的範例有 8 位客戶,共需要 3 台物流車分別進行服務。. 2.

(9) 下面參照了文獻 [1] 以數學式 (1)~(9) 明確地把這個問題定義一次,。假設 客戶依序編號為 1, 2, 3, …, N。而總站則當成虛擬的客戶,編號為 0。對於任一客 戶 i,其需求量為 qi(但 q0 = 0),時窗限制為 [ai, bi]。ai, bi 依序為「最早抵達時 間」和「最晚抵達時間」。假設問題的解一共使用了 K 台物流車做規劃,依序編 號為 1, 2, 3, …, K,每台物流車的容量上限皆為 Q。現令 cij, tij 分別代表從客戶 i 移動到客戶 j 的移動距離和所需的移動時間(此時間包含了客戶 i 的卸載時間)。 兩個變數 xijk, sik,如有規劃物流車 k 從客戶 i 移動到客戶 j,則令 xijk = 1,否則 xijk = 0。而變數 sik 則為物流車 k 抵達客戶 i 的時間。所以問題定義如下: 最小化目標: (1). K K. N. N.  c x k 1 i  0 j  0. (2). ij ijk. 問題限制: K. N. . k 1 j  0, j  i. N.  qi i 0. N. . j  0, j i. N. x j 1. 0 jk. N. . i  0,i  h. i 1. i 0k. (3). xijk  Q, k {1,..., K }. (4).  1, k {1,..., K }. xihk . N. x. xijk  1, i {1,..., N }. N. . j 0, j  h. (5). xhjk , h {1,..., N }, k {1,..., K }.  1, k {1,...K }. (6). (7). ai  sik  bi , i {0,..., N}, k {1,..., K}. (8). sik  tij  s jk , i, j {1,..., N}, i  j, k {1,..., K}. (9). 3.

(10) 目標 (1) 代表想要最小化使用的物流車輛數。目標 (2) 代表想要最小化物流 車輛移動距離的總和。 限制 (3) 代表每位客戶只會被服務一次。限制 (4) 即為前述的容量限制。限 制 (5) ~ (7) 代表了每台物流車皆從總站出發,依序服務其負責的客戶,再返回到 總站。限制 (8) 即為前述的時窗限制。限制 (9) 則表示客戶 i 的抵達時間,還要 再加上客戶 i 的卸載時間,和從客戶 i 移動到客戶 j 的移動時間,才會是客戶 j 的 抵達時間。 早期多數研究皆使用階層式的目標 (hierarchical objectives) 來排序解的好壞。 對於兩個目標 (1) 和 (2),會優先最小化目標 (1)。對於同樣的車輛數,則再最 小化目標 (2)。但後期逐漸有人開始把這問題視為多目標問題 (multiobjective problem) 來解決。. 1.3 研究主軸 本研究希望以現有的多目標最佳化演算法進行改良,針對過去處理時窗限制 車輛路由問題時,會特意避開不合法解 (infeasible solutions),而無法有效探勘解 空間的困境。在處理不合法解時,會以限制的違反量做為依據來最佳化;在處理 合法解時,仍專注最佳化原本的解題目標。在 Solomon 25 個客戶的問題 [5] 中, 本研究提出的演算法更新了 9 個最佳解。. 4.

(11) 第二章 文獻探討 本章分為八個部分,把一些過去提出的方法做個分類。本章分類的方法修改 自 [2] 的文獻探討一章。第一節至第七節分別介紹相關的解法,最後一節「綜合 比較」則再對本章所提到的方法做個討論。. 2.1 精確演算法 (exact algorithms) 1987 年 Kolen 等人 [3] 嘗試了 Branch-and-Bound 方法,解了 6~15 位客戶的 9 個問題。另外 1992 年 Desrochers 等人 [4] 使用了 linear programming relaxation 的觀點,嘗試解決 Solomon [5] 的三個問題集(R1、C1、RC1) ,但很多僅能解決 25、50 位客戶的輸入。100 位客戶的輸入則因使用的計算時間過於冗長,所以在 三個問題集的 29 個問題中,僅能求出其中 7 個問題的結果。 這顯示精確演算法,在此問題中所能處理的輸入規模,已經無法滿足現實的 需求。所以後來比較多人逐漸嘗試經驗法則 (heuristics) 的解法,希望在可以容 忍的計算時間內,求得不錯的結果。. 2.2 路由建構法 (route construction method) 路由建構法希望使用一些經驗法則,從無到有建構出品質不錯的解。1987 年 Solomon [5] 在他的研究中分析了四個建構出解的方法。其中以插入法 (Insertion heuristics) 的第一種條件設定 (Solomon’s I1 heuristic) 最為著名。後期很多方法都 以使用這方法的結果,做為他們搜尋時的初始解 (initial solution)。以下針對此 I1 插入法做詳細的說明:. 5.

(12) I1 插入法使用了兩個條件 c1(i, u, j) 和 c2(i, u, j) 嘗試把一個未排程的客戶 u 插入到已排程於同樣路線,且順序相鄰的兩個客戶 i 和 j 中間: c1 (i(u), u, j (u))  min[c1 (i p1 , u, i p )],. p  1,. ,N. c2 (i(u*), u*, j (u*))  max[c2 (i(u), u, j (u))], u 尚未被排程且合法. (10) (11). 如果找不到合法的客戶可以繼續插入,就另外開一條新的路線(意即需要多一台 物流車服務)。如此地繼續做,直到所有客戶都被安排路線為止。 先使用 c1(i, u, j) 為所有尚未被排程的客戶 u 計算在該路由中其理想的插入位 置。每個 u 會計算出其 i(u) 和 j(u),分別代表插入點之前和插入點之後的客戶編 號。c1(i, u, j) 是兩個子條件 c11(i, u, j) 和 c12(i, u, j) 的線性組合,分別計算移動距 離的增加量,和對插入點之後的客戶抵達時間的影響。 找到插入位置後,再用 c2(i, u, j) 代入剛剛得到的 u、i(u)、j(u),計算出理想 要被插入的未排程客戶 u*,最後就把客戶 u*插進該路由中兩名客戶 i(u*)、j(u*) 之 間的位置。 由於在這之前都沒有標準的測試問題,Solomon 便自行產生了六類問題集公 開給大家使用,也成為後期被廣泛引用的問題集。分別是 R1, C1, RC1, R2, C2, RC2 六類,總共有 56 個問題。同類問題集內,皆使用固定的客戶座標位置,僅 有時窗限制的設定不一樣。詳細的問題產生方式,可參考原始論文 [5]。 Solomon 的實驗結果顯示,對於六類問題集 I1 的表現較為穩定且傑出。 Solomon 也發現對於較長的「時域 (scheduling horizon)」問題,應針對時窗的限 制多做考量;而對於較短的時域問題,則應多考量客戶距離間的限制。. 6.

(13) 2.3 路由改善法 (route improvement method) 路由改善法由一個前述路由建構法產生的初始解開始,使用反覆改善法 (iterative improvement) 進行區域搜尋 (local search),直到陷入區域最佳解 (local optima) 為止。在文獻中,很多傳統解決車輛路由問題的鄰域函式 (neighborhood function),被嘗試引用來解決此問題。但常會打破時窗限制的滿足,後來便漸有 人開發新的鄰域函式,針對時窗限制上做加強。較為人所知的有 2-opt, Or-opt, 2-opt*, CROSS-exchange 四個。以下針對這四個鄰域函式做詳細的說明:. 2.3.1. 2-opt. 2-opt(或是 2-exchange)為原本 1965 年 Lin 提出 k-opt [6] 的特例。k-opt 即 為在單一路由中,挑選出其中的 k 個邊 (edge),把這 k 個邊使用另外的 k 個邊取 代,希望能因此改善解的品質。 6. 總站 1 2. 3. 6. 總站. 5. 1. 4. 5. 2. 4. 3. 圖 2:2-opt 的範例。 圖中客戶 2~5 這個區段(灰色部分) ,因為虛線的兩個邊做交換的關係, 區段內所有邊的方向都會顛倒,以完成一條封閉式的 (closed) 路由為目的。. 而在 2-opt 中取代後的結果,為了能讓路由能符合此問題中「從總站出發, 最後要回到總站」的限制,通常會再把這兩個邊之間的路由顛倒行進方向,如上 圖 2 所示。 可是通常路由中的客戶參訪順序會跟時窗的先後順序有關,所以 2-opt 常常 會違反題目的時窗限制。選到的兩個邊之間不能有太多的客戶,才能降低對時窗 的影響。 7.

(14) 2.3.2. Or-opt. 西元 1976 年 Or 在他的博士論文 [7] 裡提出的鄰域函式,原本是用來解決旅 行推銷員問題 (Traveling Salesman Problem, TSP)。在單一路由中挑選出連續的客 戶,移動到同一個路由中或是另一個路由中合法的位置。如下圖 3 所示:. 總站. 總站. 1. 1. 2. 4. 3. 2. 4. 3. 總站. 總站. 圖 3:Or-opt 的範例。 圖中客戶 2 和 3 這個區段(灰色部分) ,被挪到客戶 4 和總站之間的位置。 為方便讀者看出變化,把原本封閉的路由展開成為直線狀,圖中的總站也跟著被畫了兩次。. 由於不需顛倒任何參訪順序,因此相對於 2-opt,Or-opt 在時窗限制車輛路由 問題中,就不太會出現前述常常違反時窗限制的問題。 通常這個連續的長度約為 1~3 個客戶之間,過長的長度反而不容易產生出合 法的鄰域解。另外 Or-opt 也可視為 3-opt 的一個特例,對於有時窗限制的問題是 個很強大的解題工具。[8] 上圖 3 的例子中僅表示同一路由中的移動。在不同路由的移動中,若能把整 個路由的客戶,移動至其他路由,則可以因此降低使用的車輛數。1996 年 Potvin 等人的禁忌搜尋法 [8] 中則使用此技巧,來嘗試降低車輛數。. 8.

(15) 2.3.3. 2-opt*. 1995 年 Potvin 與 Rousseau [9] 提出了另一種鄰域函式:2-opt*。2-opt*每次 從兩個路由中,各自移除一個邊,然後再把剩下的四段路由使用一個尾接上另一 個頭的方式組合出另一種解。如下圖 4 所示。. 總站. 總站. a. b. a+1 1. a. b. a+1. b+1. b+1. 1 總站. 總站. 圖 4:2-opt*的示意圖。 把虛線的兩個邊所指向的目標做交換即可。 圖中 a 和 a+1 代表在同一路由中,參訪順序相鄰的客戶。b 和 b+1 亦同。. 因為 2-opt*只是純粹把路由切斷再重新接上,並不需要像 2-opt 把任何路由 顛倒行進方向。如此保留了原本的客戶參訪順序,也保留了時窗的順序。 他們將自己提出的 2-opt*和前述的 2-opt, Or-opt 還有 3-opt,使用反覆改善法 進行實驗。輸入使用了座標隨機分布的 100 位客戶問題,還有 Solomon 問題集。 結果發現 2-opt*比起原本的 2-opt 更能處理具有時窗限制的問題。另外如果採用 2-opt*和 Or-opt 混合型的搜尋方式,可以得到更好解的品質。因此 1996 年 Potvin 等人使用的禁忌搜尋法 [8] 中,則交互使用了 2-opt* 和 Or-opt 兩個鄰域函式。. 9.

(16) 2.3.4. CROSS-exchange. 1997 年 Taillard 等人提出的 CROSS-exchange [2],在兩個路由中各自挑選兩 個邊移除後,交換兩個邊中間的部分,再重新連起來。如下圖 5 所示。. 總站. 總站. 總站. a. a. m m+1. a+1. b. 總站. m a+1. m+1. n. n. b+1. 總站. b. b+1. n+1. 總站. 總站. n+1 總站. 圖 5:CROSS-exchange 的示意圖。 先把虛線的四個邊移除後,交換中間灰色的部分,再重新把移除的邊接回去。. 這個鄰域函式融合了前述的 2-opt*和 Or-opt(兩者均屬 CROSS-exchange 的 特例),對於處理時窗限制的問題有不錯的效用。可惜因鄰域 (neighborhood) 的 複雜度太過於龐大,所以他們在實作中設定了交換長度的上限。他們的演算法在 下一節還會有詳細的介紹。. 路由改善法的結果,因使用路由建構法當初始解的關係,解的品質理應比原 始路由建構法的結果為佳。但為了能脫離使用區域搜尋只能陷入區域最佳解的困 境,下一節各類的「啟發式演算法」轉而變成文獻中最多人嘗試的手段。. 10.

(17) 2.4 啟發式演算法 (metaheuristics) 本節介紹的三個研究,使用了禁忌搜尋法 (tabu search) 和基因演算法 (genetic algorithm)。其中也有研究以 VRPTW 的延伸: 「軟時窗限制車輛路由問題 (VRP with Soft Time Windows, VRPSTW)」的觀點來嘗試,放鬆時窗的限制,希望 藉此搜尋以前受限於時窗限制,所搜不到的地方。. 2.4.1 禁忌搜尋法 Potvin 等人 [8] 使用了禁忌搜尋法。他們使用著名的 Solomon’s I1 路由建構 法產生出初始解。所使用的鄰域函式則輪替地使用 2-opt*和 Or-opt。在每次產生 鄰域解前,特地使用 Or-opt 嘗試把服務客戶數目小於或等於 3 的物流車,和其他 物流車合併,以減少使用的物流車數目。另外對於鄰域解的產生,因為移動總距 離的考量,則會挑選座標相近的客戶,以減少計算量。 搜尋的深度 (intensification) 藉由使用 Or-opt 減少物流車數目,搜尋的廣度 (diversification) 則藉由交替地切換兩個鄰域函式來增加找到更好的解的機會。 另外 Taillard 等人 [2] 則從軟 時 窗限制 車 輛路由 問題 下 手。 他 們認為 VRPSTW 是原本 VRPTW 的推廣,放鬆了原本硬時窗的限制。亦即如果解決了 VRPSTW,就可以解決原本的 VRPTW。 他們的禁忌搜尋法使用了他們提出的 CROSS-exchange 路由改善法。為解決 前面提過的搜尋複雜度太大問題,他們限制了中間交換部分的最大長度,並且在 產生鄰域解時使用逐漸延長的方式,還有使用線性回歸 (linear regression) 來估測 後續時窗的影響,以加快計算速度。. 11.

(18) 他們還使用了適應性記憶 (adaptive memory) 的概念。一開始產生出一堆初 始解,並使用禁忌搜尋法優化後,把這些解裡面較好的路由存進適應性記憶。後 續則皆從適應性記憶裡,隨機挑出較好的路由,重新組成一個解。再把這個解拆 成一些部分解,分別進行不同的禁忌搜尋,最後再把結果存回適應性記憶中。 他們的實驗結果不僅追平,甚至更新了當時原有 VRPTW 的最佳解。可惜後 續嘗試軟時窗限制車輛路由問題的研究者不多,不然此研究方向對於原本 VRPTW 問題,仍是一個或許可行且待開發的領域。. 2.4.2 基因演算法 Potvin 等人嘗試過禁忌搜尋法後,因為禁忌搜尋法在解空間的移動是屬於單 點移動,而基因演算法是群體的移動,兩者搜尋的廣度有明顯的不同,於是他們 轉而嘗試使用基因演算法來解題。[10] 他們使用的基因演算法較為簡略。初始族群使用了 Solomon’s I1 路由建構法, 每個初始解所用的參數設定則隨機產生。交配 (crossover) 的鄰域函式則提出了 兩種,分別是:Sequence-Based Crossover (SBX) 和 Route-Based Crossover (RBX)。. 1 兩者被使用的機率各為 。突變 (mutation) 的鄰域函式則提出了三種,分別是: 2 One-Level Exchange (1M)、Two-Level Exchange (2M) 和 Local Search (LSM),三. 1 者被使用的機率皆為 ,都希望盡量減少使用的車輛數。 3 比起他們原本使用的禁忌演算法,所消耗的計算時間當然比較長,而解的品 質則跟原本相近。使用更多的計算時間去換取的品質提升,是否有其需求。這種 計算時間和解品質的兩難,實為啟發式演算法的一大考驗。. 12.

(19) 2.5 從多目標問題的觀點 前述的方法均以階層式的目標排序解的好壞。2006 年的 Tan 等人 [11] 和 Ombuki 等人 [12],皆認為 VRPTW 問題本來就是個多目標問題,因此他們決定 從多目標的觀點來嘗試解決這個問題。. 2.5.1 發現兩個解題目標的衝突性 Tan 等人 [11] 直接把問題的兩個目標,當成同時都要最小化的目標。使用了 柏拉圖排序 (Pareto ranking) 來評定解的好壞。初始族群 (initial population) 是隨 機產生出一堆合法的解。針對交配則提出了新的鄰域函式: Route-exchange Crossover,會把兩個解中各自最好的路由做交換。突變則使用了三種鄰域函式, 有條件地選擇其一做突變。另外每 50 代還會從三種路由改善法中,隨機挑選其 一做區域搜尋,加快收斂的速度。 因為使用了多目標的觀點,他們發現在 Solomon 的 C 類問題集,問題的兩個 目標會呈正相關;剩下的四類問題集,兩個目標是衝突的 (conflicting)。這也說 明了為何過去(包含現在)C 類的問題集皆屬於比較好解的問題。而剩下的四類 問題集,至今還是許多人努力的方向。. 2.5.2 新的交配運算與解的表示法 Ombuki 等人 [12] 也使用了柏拉圖排序來評定解的好壞。並提出了另一種交 配鄰域函式:BCRC (Best cost route crossover) 來進行交配。此外,他們使用較不 一樣的解的表示法 (chromosome representation),只使用了一串整數字串來表示一 個解。如此便需要另外設計編碼 (encoding) 和解碼 (decoding) 的流程,交配運 算的設計也會感覺較不直觀。 13.

(20) 他們使用 Solomon 的問題集來實驗,並且和直接把兩個目標做權重和 (weighting sum) 的方法做比較。運算的結果不僅勝出權重和的方法,也更新了許 多當時的最佳解。他們的方法比起過去只能產生出單一解的方法,在實際使用上 提供使用者更多的選擇性。這也更顯示 VRPTW 問題使用多目標的觀點,是個可 行的研究方向。. 2.5.3 解的相似度指標和族群的發散程度 Garcia-Najera 和 Bullinaria [13] 也使用柏拉圖排序來評定解的好壞,但為了 使解的分布更加散開,增加搜尋的廣度,他們引用了 Jaccard 的相似度指標來計 算兩個解之間的相似度。在選擇親代 (parents) 時,一個親代會根據原始的柏拉 圖排序做選擇,另一個則選自和此親代相似度最低(差異最大)的解。 在世代保留機制上,除了原有的柏拉圖排序,剛剛的相似度指標也會納入考 量。最後他們發現了比 Tan 等人 [11] 更多的目標衝突。也引用兩個多目標最佳 化裡常用的效能指標:Hypervolume 和 Coverage 和現有的多目標演算法 NSGA-II 做比較,兩者結果皆表示他們的方法有顯著性的提升,而且族群的發散程度 (diversity) 衰減的比較緩和,證明了維持搜尋廣度的好處。. 2.5.4 改善現有的交配和突變 許巍懷與蔣宗哲 [14] 改進了 Tan 等人的 Route-exchange Crossover [11]: 「每 次做完交配後,子代 (offspring) 的車輛數會比親代的多一」 。因為 Route-exchange Crossover 是交換最好的路由,於是他們想刪去最差的路由,來修正此缺失。傳統 突變對於重新為客戶找到適合的插入點,常常因時窗限制而失敗。他們加進領域 知識,把這些客戶的時窗長度做排序,從時窗長度最小的開始試,以提高突變的 成功率。 14.

(21) 他們把自己的柏拉圖前緣 (Pareto front) 和其他六個過去結果的比較表,完整 地呈現,方便未來研究使用。也和原本改進前的交配、突變鄰域函式進行交互測 試,證明他們的改進是有效果的。. 2.5.5 考慮車輛載重的不平衡 和許多人單純選擇減少車輛數、減少總移動距離的目標相異,Baños 等人 [15] 更考慮了車輛載重的平衡度。藉由減少車輛載重的不平衡 (workload imbalance), 希望能輔助其他兩個目標的最佳化。 他們定義了三個要最小化的目標: 1.. 總移動距離 (travelling distance, TD):即為原本題目中的一個目標。. 2.. 車輛移動距離的不平衡 (distance imbalance, DI): 定義為 最長的車輛移動距離 減去 最短的車輛移動距離。. 3.. 車輛載重的不平衡 (load imbalance, LI): 定義為 最重的車輛載重 減去 最輕的車輛載重。 他們把這些目標進行了組合測試,比較的兩個對象皆為現有的多目標演化演. 算法 NSGA-II 和 SPEA2。發現 (TD, DI) 和 (TD, LI) 的目標組合皆可以達到較 好的 Hypervolume 和 Coverage,對於族群多目標的演化提供較為平均的分布。. 15.

(22) 2.6 其他相關的重要文獻 2.6.1 使用 ejection pool 的概念以減少車輛數 在許多 VRPTW 的文獻中普遍皆表示,減少車輛數比起減少總移動距離,還 要困難得多。因此 Nagata 和 Bräysy [16] 使用 ejection pool 的概念,試著從路由 中移除部分客戶後插入,以減少車輛數。 我們可以把 ejection pool 視為一個移動距離較長的鄰域函式。首先隨機挑選 出一個路由移除所有的客戶。一開始考慮合法的移動,若無法插入就暫時先考慮 不合法的移動並試著修復。若還是不行就移除更多的客戶,以提供更多的空間可 以插入。 過程中會記錄每位客戶插入的難易度。在移除更多的客戶時,會挑選難易度 總和最小的。因為此方法的計算量偏高,在搜尋時會剪枝 (pruning) 來加速。 對於車輛數,他們找到了 18 個更好的解。有趣的是減少的車輛數皆為一、 能減少的問題集皆為客戶數較多的。不過不可忽視的是,所需的計算時間都很長, 大部分的結果需花上一小時的執行時間,最多甚至要五小時才能減少車輛數。. 2.6.2 一併解決相關的 VRPTW 問題 Vidal 等人 [17] 除了想解決傳統的 VRPTW 問題外,也一併試著解決其他三 種相關的問題:MDVRPTW (multiple depots VRPTW)、PVRPTW (multiple periods VRPTW)、SDVRPTW (vehicle-site dependencies VRPTW)。 另外對於路由的一些屬性(例如:回到總站的時間) ,他們證明出一些 O(1) 的 計算公式,可以立即算出把兩個路由接在一起後的結果。如此配合上適當的前置 處理 (preprocessing),把一些較短路由的結果預先儲存起來,在處理客戶數較多 的問題時,就可以有效減少計算時間。 16.

(23) 2.7 限制處理 (constraint handling) 在解決 VRPTW 問題時,針對時窗和容量的兩個限制,如何得到取捨,並容 許部分不合法解的參與是個困難的課題。也因為很多生活上的問題都會有條件限 制,因此限制處理在近年為火熱的主題。 謝旻男等人 [18] 修改現有的 ɛ 比較法 (ɛ-comparison),針對不同難度的限 制,分別設定不同的 ɛ 值。另外要計算個體的限制違反量時,針對不同的限制設 定不同的權重,而此權重則設定為族群中違反此限制的個體數比例。 如此當某些限制較難修復時,族群中違反該限制的個體數會偏多,增加了該 限制的權重,也自動使得搜尋時較能強調該限制的修復。 Asafuddoula 等人 [19] 把族群分成合法的和不合法的,而對於不合法的族群 又再依照題目的限制個數分成若干個子族群 (sub-population)。針對每個不合法的 子族群設定不同的限制檢查順序,亦即這些子族群會各自看重不同的條件限制。 每次交配時會選擇出三個相異的親代:(1) 合法的子族群中隨機挑一個、(2) 這個不合法的子族群中隨機挑一個、(3) 整個族群中隨機挑一個。每次的環境選 擇 (environmental selection) 只會維持合法子族群的個體數目。 由於在時窗限制車輛路由問題中,時窗限制的難度會比容量限制高很多。此 方法對於各個限制名義上會有不同的重視程度,但限制難度較低的子族群會很容 易衰減個體數,難度較高的子族群並沒有因此增加個體數而提高搜尋的強度。另 外各限制子族群皆平均地分配到個體,也就是整個族群的個體數必須要大到一定 程度,子族群才能有較多的個體提供個體差異性來驅動演化前進。. 17.

(24) 2.8 綜合比較 過去強調的精確演算法有扎實的理論根據,但研究困難度還有演算法的複雜 度就令人望之卻步。另外對於規模較大的輸入,也未必能夠勝任。 路由建構法和路由改善法,為後來的研究提供了材料。但如何妥善組合、使 用,以及是否需要自行創造出新的方法,仍待商榷。 相對於禁忌演算法,基因搜尋法可以有效的提升搜尋的廣度,但需要妥善的 設計,否則容易不小心使用過多的計算時間。 多目標的觀點對於 VRPTW 問題,顯而較為直觀。但無法較能像以前階層式 的評比,有很明確的比較依據。近來文獻中,多數使用多目標觀點來解題,但比 較時為了能使用過去的文獻數據,仍常常沿用過去的階層式比較。 隨著最近越來越多人傾向使用多目標的觀點,解決 VRPTW 問題。但較少人 會去碰觸不合法解 (infeasible solution) 的搜尋,也許是不合法解很難去量化的關 係。在理論中,合法解和不合法解的界線,會限制搜尋的區域。 在族群的演化中,為了能夠容許不合法解,更需要限制處理的技術。VRPTW 問題的研究少說也有二十多年了,合法解的空間應已被歷年的研究者探索得差不 多。界線外的另一邊是否有更好的解,將是本研究的主要課題。. 18.

(25) 第三章 限制多目標演化演算法 本研究提出的方法,基於許巍懷與蔣宗哲提出的 MOEA-EO [14],容許不合 法解的參與,並對不合法解進行限制處理。. 3.1 解的表示法 一個 VRPTW 的解,我們可以把它表示成許多路由的集合。若不考慮路由中 各個客戶的地理位置,我們可以將其想像為一堆客戶的參訪序列。在程式語言中 我們可以用現有的串列 (list) 資料結構來儲存,而其中各個節點儲存了客戶的編 號。如下圖 6 所示:. 總站 總站. 圖 6:程式語言中解的表示法。左圖為圖 1 已經舉過的範例。. 3.2 初始族群 (initial population) 的產生 初始族群中的所有個體,使用了下列方式產生: 1 2 3 4 5 6 7 8. while ( 還有客戶尚未被排程 ){ 隨機挑選出一位尚未被排程的客戶 if ( 把此客戶加進此路由最後面,不會違反任何限制 ){ 把此客戶加進此路由最後面 }else{ 開一條新的路由,並把此客戶加進去 } }. 19.

(26) 3.3 親代的選擇 (parent selection) 每次使用 2-tournament 從族群中選擇出兩個親代進行交配。原先 MOEA-EO 會對族群中的個體進行柏拉圖排序,再使用 2-tournament 以排序後被賦予的等級 做出選擇。但考量不合法解和合法解的凌越關係,很難定義出適當的準則。本方 法便捨棄柏拉圖排序,以下面的方式對任意兩個解進行比較: 1 2 3 4 5 6 7 8. if ( 兩個解一個合法一個不合法 ){ 選擇合法的那個解 } else if ( 兩個解都是合法的 ){ if ( 兩個解使用的車輛數不同 ) 選擇 車輛數較少的解 else 選擇總移動距離較短的解 } else { 選擇 超時 (time-warp) 較少的那個解 } 上面的「超時」引用自 Nagata 等人 [20] 的定義。為了更精確算出車輛在時. 窗限制的違反量,假設車輛在每個客戶的遲到後,可以賦予一段時間回復到該客 戶的最晚抵達時間,然後再繼續服務之後的客戶。如下頁圖 7 的範例。 由於偏好合法的解(第 2 行),希望演化過程中合法解的個數,不會過於衰 減。在演化過程中雖然容許不合法解參與,但仍以合法解作為演化的主力。當兩 個解均為合法時,則使用原本的階層式目標比較解的優劣(第 4~5 行),如此便 能偏好使用車輛數較少的解。因為這些解之中會有服務較多客戶的路由,以祈在 後面的交配可以刪除掉更多的客戶,提高產生空路由的機會,以減少車輛數。最 後因時窗限制比起容量限制較難達成,針對不合法的解,本方法會優先解決時窗 限制(第 7 行)。. 20.

(27) 圖 7:超時 (time-warp) 的範例。此圖引用自 [17]。 假設車輛依序服務 v1, v2, v3, v4, v5 五個客戶。在客戶 v2 因提早抵達該客戶位置,必須等待。 在客戶 v4 因超過該客戶的最晚抵達時間,車輛被賦予一段超時,回復到該客戶的最晚抵達時間, 以免影響其後 v5 的服務。. 3.4 交配 (crossover) 3.4.1 交換路由 MOEA-EO 的交配方式為兩親代選擇出最好的路由做交換。最好的路由在該 文獻定義為「移動距離 ÷ 客戶數目」最小的。但少數客戶有時因地理或時窗關 係,真的必須單獨的物流車來服務。而且在許多較好的排程中,路由中的客戶數 目往往偏多。因此本方法試著改寫原定義,交換「客戶數目」最多的路由。如此 不僅比較直觀,交換後可以移除掉的客戶數目也可以最多。 另外考慮到可能使擁有一堆違反條件客戶的路由受惠,此定義便更趨嚴苛, 變成為:「是『合法的路由』且『客戶數目』最多的」。. 3.4.2 減少路由 和 MOEA-EO 的交配方式一樣,交換後的路由數目會多一個。但前述方法總 是挑選客戶數目較多的路由做交換,可以移除的客戶也最多,甚至有機會產生空 路由以減少車輛數目。. 21.

(28) 為了減少路由,MOEA-EO 會移除最差的路由並嘗試插入。為提高插入成功 的機率,本方法則改成移除客戶數目最少的路由,如此便和 [8] 減少路由的方式 相似。但這裡的插入僅純粹考慮縮短總移動距離,就算產生出不合法的路由也無 所謂,演化中每一代最後的突變機制會想辦法修好它。 每當要插入一個客戶,會隨機從所有的路由中挑選一個點插入,嘗試「題目 的客戶數目」次後,從中選擇總移動距離最小的,如此便完成一個客戶的插入。 目前僅依照被移除路由中的客戶參訪先後順序一一做插入。. 3.5 突變 (mutation) 文獻 [14] 指出突變的影響客戶數量需夠多(至少要 20 個以上),才有機會 減少車輛數。因此本方法使用的突變運算如下: 1 2 3 4 5 6 7 8. while ( 已嘗試次數 < 題目的客戶數目 ){ 隨機移除一個客戶後將其隨機插入 if ( 被影響的兩個路由中,合法的路由數和原本一樣或增加 ){ 移動到影響後的結果 } else { 恢復成原本的解 } } 這個突變運算可以視為一種區域搜尋 (local search) ,每次運算會嘗試移動. 「題目的客戶數目」次。被影響的兩條路由(「被移除」的和「被插入」的),若 合法的路由數目可以不變或增加,就可以移動至影響後的結果。合法的路由數目 不變就移動,可視為一種擾動;合法的路由數目增加就移動,則可視為一種修復 (repair operator)。 有時移除該客戶後可以產生空路由,則此空路由仍會被視為合法路由。儘管 這樣可能會破壞解的合法性,但可以提升減少路由數的機會。 22.

(29) 3.6 環境的選擇 (environmental selection) 首先把原始族群和產生的子代合併為一個大的族群,然後開始進行篩選,使 用 ( μ + λ ) 的策略,這裡的 μ = λ。 在篩選前,會先把族群中的所有個體依照合法性來分類,分成兩個子族群。 兩個子族群再分別使用不同的凌越關係進行柏拉圖排序,如下圖 8 所示。合法的 子族群使用原本題目的兩個目標(最少車輛數、最短總移動距離)定義出凌越關 係;不合法的子族群則使用題目的兩個限制違反量(最少的總超重 (overload)、 最少的總超時 (time-warp) )定義出凌越關係。. 原本的族群. 產生的子代們 合併. 合併後的族群 依合法性分類 合法解. R1. R2. R3. 不合法解. …. R1. R2. …. 依不同的凌越關係 做排序. 圖 8:族群的合併、分類和排序。. 不合法的子族群使用限制違反量進行柏拉圖排序,如此就不必特別考慮兩個 限制的難易程度,直接讓子族群中個體的限制違反量自行決定。即使如此,因 VRPTW 時窗的限制較難修復,不合法的個體不太會違反容量限制,浪費了原本 使用「多目標」縮小限制違反量的美意。因此在不合法的凌越關係中,本方法會 額外考量車輛數的減少。. 23.

(30) 最後使用交互 (interleaving) 的方式決定可以存活到下一代的個體:從合法的 Rank1 開始,再來是不合法的 Rank1,合法的 Rank2,不合法的 Rank2 ……依此 類推。最後若無法整個 Rank 一起存活的情況,則優先考慮合法的,再考慮不合 法的,從中隨機填進剩下的空缺。 之所以會從合法的 Rank1 開始是希望最後輸出非凌越解 (non-dominated solutions) 時,可以直接使用這裡的結果。而最後的空缺之所以會優先考慮合法的, 是希望不要讓太多的不合法解存活到下一代。. 24.

(31) 第四章 實驗數據與效能評比 4.1 測試問題集 實驗所使用的測試問題集均為 1987 年 Solomon [5] 所產生的測試資料。客戶 數目分別有 25、50 和 100 個。 依據客戶的地理位置分布可分為 R、C、RC 三大類。R 類的位置分布最隨機, C 類的客戶位置形成了若干個小群落,RC 類則是使用 R 類和 C 類的地理資料混 合而成。 每一類又依時窗的大小和車輛的容量大小又各自分為 1、2 兩類。1 類問題車 輛容量較小,每台車輛所能服務的客戶較少,所以此類問題會比較簡單。2 類問 題車輛容量較大,每台車輛可以服務較多的客戶,所以此類問題會較難解決。. 4.2 效能指標 使用傳統的階層式目標:先優先降低車輛數。同樣車輛數目的解,則再比較 總移動距離,越短越好。 針對 Solomon 六類的問題,各類分別計算平均的車輛數目、平均的總移動距 離。不單獨考慮極好和極差的情況,巨觀比較演算法各類設定的求解效能差異。 在多目標具有複數個非凌越解的情況,視實驗需求,有時會取車輛數目最少 的當代表,有時則會把全部的非凌越解列出。. 25.

(32) 4.3 比較對象 對於 25、50 個客戶的問題,使用文獻 [21] 的表格 1 和表格 2。這兩張表格 列出了每一個問題目前為止的最佳解,包含其車輛數和總移動距離。 對於 100 個客戶的問題,使用文獻 [21] 的表格 3、表格 4 和文獻 [14] 的表 格 1。前者列出了截至 2012 年為止的最佳解,和 18 個相關文獻的結果比較。後 者列出了 2006~2012 年 7 個文獻的非凌越解。. 4.4 實驗與觀察 4.4.1 選擇親代解的策略 使用 25 個客戶的問題集,測試兩種選擇親代解的策略。 (1). mix:不管解的合法性,使用傳統的階層式目標選擇出親代。. (2). timewarp:考慮解的合法性,同本論文 3.3 節所述的策略。 56 個問題兩種演算法會各執行 20 次,把這 20 次的執行結果求平均。若有複. 數個凌越解出現,則會取車輛數最少的來計算。表格最下面一列,會把該類問題 的結果求平均,使用各類問題的結果比較此兩策略的效能差異。若車輛數較少或 總移動距離較少,則該欄數字會以粗體表示。實驗結果見下頁表 1。 經由表格可以觀察出,若考慮解的合法性,針對較隨機的測資(R 類)似乎 在車輛數目上有較好的解題效果。而若不考慮解的合法性,則會在 C 類問題集表 現較突出。 由於文獻中許多做法在 C 類問題集已有不錯的表現,實驗中的兩個策略,我 們將會採取第 (2) 個策略,以期在非 C 類的問題集能有不錯的表現。. 26.

(33) 表 1:選擇親代解的策略實驗表格。 每一列依序代表各類問題集中,每一個測試問題的表現。 兩個數字由左而右依序表示執行 20 次平均的車輛數目和總移動距離。. 問題. (1) mix:不管解的合法性,使用傳統的階層式目標選擇出親代. 編號. R1. C1 3.0 3.0 3.0 3.0 3.0 3.0. 7 8 9 10. 4.0 4.0 4.0 4.1. 449.7 3.0 252.7 3.0 300.4 1.0 485.5 1.0 295.6 2.0 491.9 427.3 3.0 249.2 3.0 304.1 1.0 501.5 1.0 259.2 1.2 403.8 467.5 3.0 276.1 1.0 441.1 460.8 1.3 553.2. 11 12. 4.3 462.8 1.0 417.7 4.0 432.4 4.88 489.3 3.00 253.8 3.25 355.1 1.30 526.7 1.13 280.1 1.51 484.1. 問題. (2) timewarp:考慮解的合法性,同本論文 3.3 節所述的策略. 1 2 3 4 5 6 7 8. 8.0 7.0 4.6 4.0 5.0 5.0 4.0 4.0. 9 10 11 12. 4.1 4.0 4.1 4.0. 624.8 576.0 486.4 431.3 556.7 485.3 451.6 427.5. 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0. 204.6 244.7 326.0 322.2 225.2 210.0 251.3 237.4. 2.0 2.0 2.0 1.0 1.0 1.0. RC1 4.0 3.0 3.0 3.0 4.0 3.0 3.0 3.0. 587.2 617.7 701.1 498.2 514.7 475.3. 2.0 1.0 1.0 1.0 1.0 1.0. R2. 463.0 353.4 338.3 318.0 412.5 347.8 300.7 302.5. 469.4 3.0 273.5 461.5 459.0 426.7 4.82 488.0 3.00 255.0 3.25 354.5. 27. 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0. 581.6 606.7 705.5 500.4 509.3 474.0 485.5 487.4. 219.2 239.8 268.0 364.7 301.3 292.8. RC2. 625.6 579.6 493.1 430.6 555.6 486.1. C1. 466.0 353.2 337.9 318.5 413.2 347.1. C2. 8.0 7.0 4.8 4.0 5.3 5.0. R1. 4.0 3.0 3.0 3.0 4.0 3.0. R2. 1 2 3 4 5 6. 編號. 199.5 244.7 300.1 335.3 216.8 209.7. RC1. C2 2.0 1.0 1.0 1.0 1.1 1.0 1.0 1.0. 217.5 234.5 278.6 393.3 295.3 294.7 293.1 254.2. 2.0 1.9 1.0 1.0 2.0 1.0. 551.8 571.0 459.5 401.0 511.5 482.2. RC2 2.0 2.0 1.0 1.0 2.0 1.0 1.9 1.3. 540.1 569.3 448.0 399.7 506.1 485.5 491.3 397.7. 1.0 441.8 1.1 526.7 1.2 463.3 1.30 525.6 1.14 282.7 1.53 479.7.

(34) 4.4.2 選擇最佳路線的策略 在交配時需要交換最佳的路線。此實驗比較本方法所使用的策略和原有 MOEA-EO 提出的策略。使用 25、50 個客戶的問題集,56 個問題兩種演算法會 各執行 20 次,把這 20 次的執行結果求平均。若有複數個凌越解出現,則會取車 輛數最少的來計算。「目前最佳」的效能數據引用自 [21] 的表格 1、表格 2。執 行結果如下表 2 所示: 表 2:選擇最佳路線的策略實驗表格。 每一格中的兩個數字,由上而下依序表示執行 20 次平均的車輛數目和總移動距離。 粗體表示在同樣的客戶數目中,該目標值的平均表現在三者中為佳。. 客戶 數目. 最佳路線選擇策略 客戶數目最多的. 25. 最小的. 客戶數目最多的. 目前最佳. 3.01. RC1 3.25. R2 1.47. C2 1.13. RC2 1.54. 628.48 265.36 356.79 555.65 295.12 509.38 4.95. 3.02. 3.25. 1.54. 1.13. 1.69. 493.35 264.11 355.71 569.07 296.55 520.07 4.67. 3.00. 3.25. 1.91. 1.63. 1.88. 475.01 190.59 349.75 394.56 235.55 352.54 8.59. 5.81. 6.86. 3.23. 2.69. 3.28. 862.51 635.62 776.93 1432.04 980.03 1464.60 8.55. (移動距離 ÷ 客戶數目) 最小的. C1. 8.00. (移動距離 ÷ 客戶數目). 目前最佳. 50. R1. 5.82. 6.89. 3.28. 2.73. 3.45. 874.62 604.38 776.89 1432.76 984.76 1490.59 7.42. 5.00. 6.50. 2.00. 2.00. 2.38. 780.00 361.33 729.88 664.36 398.25 671.25. 我們可以發現本方法的策略,比起原有 MOEA-EO 提出的策略更能減少車輛 數目。在 25 個客戶的問題中,R2、C2、RC2 三類問題,甚至可以得到比目前最 佳還要更好的結果。 不過值得注意的是,在 50 個客戶的問題集中,兩種策略在車輛數上,都遠 遠落後「目前最佳」的車輛數目。 28.

(35) 4.4.3 刪除最差路線的策略 交配交換最佳的路線後,會把重複的客戶刪除,然而這樣會使路由被切得支 離破碎,因此需要把最差的路線試著插入到其他的路線中,以減少車輛數目。此 實驗比較本方法所使用的策略、原有 MOEA-EO 提出的策略,以及完全不移除最 差路線的三種策略。 使用 25 個客戶的問題集,56 個問題三種演算法會各執行 20 次,把這 20 次 的執行結果求平均。若有複數個凌越解出現,則會取車輛數最少的來計算。「目 前最佳」的效能數據引用自 [21] 的表格 1。執行結果如下表 3 所示: 表 3:刪除最差路線的策略實驗表格。 每一格中的兩個數字,由上而下依序表示執行 20 次平均的車輛數目和總移動距離。 粗體表示在三種策略中,並考慮目前最佳的表現,該目標值的平均表現在四者中為佳。. 客戶 數目. 最差路線選擇策略 交配後不嘗試減少路由 客戶數目最少的. 25. (移動距離 ÷ 客戶數目) 最大的 目前最佳. R1. C1. 4.95. 3.02. RC1 3.25. R2 1.54. C2 1.13. RC2 1.69. 493.35 264.11 355.71 569.07 296.55 520.07 4.88. 3.07. 3.25. 1.75. 1.15. 1.70. 508.21 292.65 372.98 610.89 299.96 563.92 4.87. 3.04. 3.25. 1.71. 1.13. 1.70. 510.65 290.06 373.71 602.01 300.64 564.38 4.67. 3.00. 3.25. 1.91. 1.63. 1.88. 475.01 190.59 349.75 394.56 235.55 352.54. 出乎意料地,由表中可以觀察出若不減少路由,可能會比較好。推測可能原 因是減少路由的過程中,只單純看重減少總移動距離,不注重解的合法性。另外 也有可能交配時把解給做爛了,但後面的突變過於隨機並沒有能力修好它。不過 在 C2 類別的問題,使用 MOEA-EO 提出的策略,仍是可以不相上下。. 29.

(36) 4.4.4 與目前最佳解的比較 最後仿造 [14] 的表格 1,列出了針對 25、50 個客戶的問題,每個問題執行 10 次後求得的非凌越解。如下表 4 和下頁表 5 所示: 表 4:25 個客戶的非凌越解比較。 底線者為文獻 [21] 表格 1 整理出的目前最佳解,並擁有本演算法目前無法達到的車輛數。 粗體則為本演算法更新的解,多數均為車輛數的減少。 粗體並底線者,為本演算法和目前最佳解持平的解(車輛數和總移動距離皆相同) 。. 問題 R101 R102 R103 R104 R105 R106 R107 R108 R109 R110 R111 R112 RC101 RC102 RC103 RC104 RC105 RC106 RC107 RC108 R201 R202 R203. 車輛數 8 7 4 5 4 5 5 6 4 5 4 5 4 4 4 5 4 5 4 5 4 5 3 3 3 4 3 3 3 2 3 4 2 3 2 3 4. 移動距離 624.634 614.407 473.39 529.101 464.084 564.840 556.716 553.505 543.81 518.033 477.106 579.762 448.926 460.522 445.80 520.663 460.517 501.576 486.018 585.547 464.575 528.094 360.556 358.986 352.036 430.986 358.717 329.163 328.933 677.697 699.377 685.722 624.589 639.266 660.287 709.812 725.414. 問題 R204 R205. R206 R207 R208 R209. R210 R211 RC201 RC202 RC203 RC204 RC205 RC206 RC207 RC208. 30. 車輛數 1 2 3 1 2 3 4 1 2 1 1 1 2 3 4 2 3 4 1 2 3 2 3 2 3 1 2 3 1 2 1 2 2 3 1 2 3. 移動距離 491.944 732.022 733.055 524.164 601.379 591.737 603.520 458.178 658.247 488.446 480.223 442.121 540.280 627.674 689.492 642.807 700.852 726.689 504.887 659.361 657.248 640.583 644.124 606.267 669.537 452.858 559.719 567.366 391.079 598.375 476.768 598.850 634.605 639.162 330.314 550.589 690.049.

(37) 表 5:50 個客戶的非凌越解比較。 表示法同前頁表 4。但目前最佳解則參照了同一份文獻 [21] 的表格 2。. 問題 R101 R102 R103. R104. R105 R106 R107 R108 R109. R110 R111 R112 RC101. 車輛 數 11 12 13 10 11 12 8 9 10 11 6 8 9 10 9 10 7 9 10 6 8 9 6 8 9 7 8 9 10 7 9 10 6 9 10 6 9 10 8 9 10. 移動 距離 1100.72 1192.861 1259.026 1138.361 1135.122 1166.501 784.76 999.774 1099.677 1218.573 625.4 1061.586 1113.943 1187.365 1064.982 1128.258 857.98 977.892 1133.967 735.27 954.005 1057.072 617.7 1036.144 1113.243 801.97 965.111 1021.331 1203.976 697 1079.274 1063.922 756.66 1080.815 1047.694 630.2 1160.339 1210.619 1017.629 1017.193 1146.628. 問題 RC102 RC103 RC104 RC105 RC106 RC107 RC108 R201 R202. R203. R204. R205 R206. 車輛 數 7 8 9 6 7 8 5 6 7 8 9 10 6 7 8 6 7 8 6 7 8 2 3 4 2 3 4 5 2 3 4 5 2 3 4 5 2 3 5 2 3 4. 31. 移動 距離 822.5 939.255 1009.558 710.9 839.709 941.881 652.946 724.799 904.940 952.934 1009.222 1075.496 782.387 837.175 923.235 776.160 891.825 986.690 814.581 864.936 1034.999 967.96 1282.891 1363.114 813.35 1407.456 1477.717 1465.503 666.64 1406.896 1486.326 1541.377 506.4 1506.429 1478.400 1590.246 740.73 1405.916 1531.458 658.34 1472.891 1440.155. 問題 R207. R208 R209 R210 R211. RC201 RC202 RC203. RC204 RC205 RC206 RC207 RC208. 車輛 數 2 3 4 5 2 3 4 2 3 6 2 3 4 2 3 4 5 7 3 3 4 5 2 3 4 5 6 2 3 3 4 5 2 3 4 2 4 5 2 3 4 5 6. 移動 距離 588.38 1520.446 1425.072 1506.375 1466.623 1305.247 1455.629 659.07 1376.732 1574.509 668.72 1439.033 1471.393 553.98 1445.598 1429.872 1476.028 1502.502 1285.742 1587.359 1618.930 1718.922 674.40 1586.742 1615.120 1856.820 1841.251 482.43 1593.206 1690.648 1667.526 1799.049 755.13 1573.219 1941.936 655.81 1750.716 1759.969 511.53 1831.566 1878.574 1886.534 2062.133.

(38) 表 4 中,可以明顯看出本演算法在 9 個問題中,更新了目前最佳解。更新的 問題集皆為車輛容量較大,可以服務較多客戶的 2 類問題集。普遍來看,在 25 個客戶的問題中,本演算法皆有不錯的表現。 相對於表 4,表 5 中則沒有任何粗體數字,尤其較多的底線數字表示了本演 算法在減少車輛數的不足。另外在部分問題中(例如:R209 和 R211) ,本演算法 所能解出的車輛數,會有跳號的情形。. 4.4.5 與原本 MOEA-EO 的比較 表 6:本演算法和原有 MOEA-EO 的比較。 表格中標示粗體的數字為使用同樣比較項目、同樣客戶數目、同類測試問題中, 兩個演算法中較佳的數值。. 比較 項目. 演算法. 本演算法 平均 車輛數 MOEA-EO. 平均. 本演算法. 移動 距離. 執行. MOEA-EO. 本演算法. 時間 (單位:秒). MOEA-EO. 客戶 數目. 25 50 100 25 50 100. R1. C1. RC1. R2. C2. RC2. 4.83. 3.00. 3.25. 1.45. 1.13. 1.50. 9.00. 6.11. 6.75. 2.91. 2.13. 3.13. 16.75. 13.00. 16.25. 5.55. 4.75. 6.50. 4.67. 3.00. 3.25. 1.27. 1.13. 1.25. 7.50. 5.00. 6.50. 2.00. 2.00. 2.25. 12.50. 10.00. 12.25. 3.09. 3.00. 3.38. 25 517.92 286.56 371.35 547.72 277.02 502.48 50 1059.26 860.12 846.95 1430.08 969.37 1612.37 100 2021.49 2821.91 2162.01 2806.30 3061.70 3421.13 25 476.00 50 784.38 100 1195.94 25 50 100 25 50 100. 191.09. 351.10. 427.29. 245.44. 423.58. 362.52. 732.03. 664.06. 400.37. 692.81. 828.38. 1366.77. 925.19. 589.86. 1108.71. 27.9. 26.9. 28.9. 24.8. 16.2. 24.2. 107.7. 103.1. 122.0. 114.0. 114.7. 107.3. 392.4. 383.4. 413.8. 519.4. 577.8. 493.5. 44.9. 57.2. 62.2. 254.2. 386.1. 82.9. 100.0. 181.3. 100.3. 239.1. 194.3. 136.4. 167.8. 226.5. 142.4. 464.7. 998.5. 332.8. 32.

(39) 本實驗執行了原本 MOEA-EO 的程式,和本演算法做個比較。比較結果如上 頁表 6 所示。兩演算法實作時使用的程式語言皆為 C++,編譯器皆使用微軟 Visual Studio 2010,編譯時皆啟用−O2 最佳化選項(增加執行速度) 。兩個演算法皆使用 Solomon 的實驗集 [5] 執行 10 次。實驗所使用的機器規格如下: 表 7:本論文所使用的實驗機器規格。. 處理器 記憶體 作業系統. Intel Core i5-2400 CPU 3.10 GHz 4GB Windows 7 專業版 64 位元. 從表中可以明顯看出,雖然本演算法執行時間比 MOEA-EO 好了一些,但在 解題表現上(車輛數和移動距離)皆比 MOEA-EO 差。不過因本演算法較為隨機, 實驗過程中,每次執行所能提供的非凌越解會比原有 MOEA-EO 多,可以提供使 用者依實際需求進行恰當的選擇。. 33.

(40) 第五章 結論與未來發展 本研究提出的方法修改自 [14] 的 MOEA-EO。在交換最佳的路由時,總是 選擇客戶數目最多的,以祈刪除最多的客戶以減少路由數目。在限制處理上,環 境的選擇會依據解的合法性,使用不同的凌越關係來分級。合法的解會使用傳統 的解題目標來分級,不合法的解會使用限制的違反量來分級。最後會以交互的方 式篩選出可以存活到下一代的個體,適當保留不合法的個體以增加搜尋的廣度。 本演算法對於客戶數目較少的問題已有不錯的表現。在 Solomon 25 個客戶的 問題中,更新了 9 個最佳解。但目前對於客戶數較多的問題,車輛數目還是無法 追平原本的 MOEA-EO。推測可能是突變的機制過於隨機,對於不合法的解無法 進行有效的修復。 對於交配後的減少車輛數或許可以額外考慮解的合法性,不進行過於嚴重地 破壞。突變的機制可以不須那麼隨機,增加修復成功的機會。初始解的產生可以 使用現有的 Solomon’s I1 插入法以提供更好的演化出發點。等追平原本的 MOEA-EO 後,期望對於超過 100 個客戶的測試問題集 [22],能有更好的表現。. 34.

(41) 參考文獻 [1] Lin Tian, “Analysis of the Degree of Difficulty in Solving Vehicle Routing Problem with Time Windows,” in Proceedings of 6th International Conference on Internet Computing for Science and Engineering, pp.51–54, 2012. [2] É. Taillard et al., “A Tabu Search Heuristic for the Vehicle Routing Problem with Soft Time Windows,” Transportation Science, vol.31, no.2, pp.170–186, 1997. [3] A.W.J. Kolen, A.H.G. Rinnooy Kan, and H.W.J.M. Trienekens, “Vehicle Routing with Time Windows,” Operations Research, vol.35, no.2, pp.266–273, 1987. [4] M. Desrochers, J. Desrosiers, and M. Solomon, “A New Optimization Algorithm for the Vehicle Routing Problem with Time Windows,” Operations Research, vol.40, no.2, pp.342–354, 1992. [5] M.M. Solomon, “Algorithms for the Vehicle Routing and Scheduling Problems with Time Window Constraints,” Operations Research, vol.35, no.2, pp.254–265, 1987. [6] S. Lin, “Computer Solutions of the Traveling Salesman Problem,” Bell System Technical Journal, vol.44, pp.2245–2269, 1965. [7] I. Or, “Traveling Salesman-type Combinatorial Problems and Their Relation to the Logistics of Regional Blood Banking”, Ph.D. thesis, Northwestern University, Evanston, IL., 1976. [8] J.Y. Potvin, T. Kervahut, B.L. Garcia, and J.M. Rousseau, “The Vehicle Routing Problem with Time Windows—Part I: Tabu Search,” INFORMS Journal on Computing, vol.8, no.2, pp.158–164, 1996. [9] J.Y. Potvin, J.M. Rousseau, “An Exchange Heuristic for Routing Problems with Time Windows,” Journal of the Operational Research Society, vol.46, no.12, pp.1433–1446, 1995. [10] J.Y. Potvin, S. Bengio, “The Vehicle Routing Problem with Time Windows—Part II: Genetic Search,” INFORMS Journal on Computing, vol.8, no.2, pp.165–172, 1996. [11] K.C. Tan, Y.H. Chew, and L.H. Lee, “A Hybrid Multiobjective Evolutionary Algorithm for Solving Vehicle Routing Problem with Time Windows,” Computational Optimization and Applications, vol.34, no.1, pp.115–151, 2006. [12] B. Ombuki, B.J. Ross, and F. Hanshar, “Multi-Objective Genetic Algorithms for Vehicle Routing Problem with Time Windows,” Applied Intelligence, vol.24, pp.17–30, 2006. [13] A. Garcia-Najera, J.A. Bullinaria, “An Improved Multi-objective Evolutionary Algorithm for the Vehicle Routing Problem with Time Windows,” Computers & Operation Research, vol.38, no.1, pp.287–300, 2011.. 35.

(42) [14] W.H. Hsu, T.C. Chiang, “A Multiobjective Evolutionary Algorithm with Enhanced Reproduction Operators for the Vehicle Routing Problem with Time Windows,” in Proceedings of IEEE World Congress on Computational Intelligence (WCCI), 2012. [15] R. Baños et al., “A Hybrid Meta-heuristic for Multi-objective Vehicle Routing Problems with Time Windows,” Computers & Industrial Engineering, vol.65, no.2, pp.286–296, 2013. [16] Y. Nagata, O. Bräysy, “A Powerful Route Minimization Heuristic for the Vehicle Routing Problem with Time Windows,” Operations Research Letters, vol.37, no.5, pp.333–338, 2009. [17] T. Vidal et al., “A Hybrid Genetic Algorithm with Adaptive Diversity Management for a Large Class of Vehicle Routing Problems with Time-windows,” Computers & Operations Research, vol.40, no.1, pp.475–489, 2013. [18] M.N. Hsieh, T.C. Chiang, and L.C. Fu, “A Hybrid Constraint Handling Mechanism with Differential Evolution for Constrained Multiobjective Optimization,” in Proceedings of IEEE Congress on Evolutionary Computation (CEC), pp.1785–1792, 2011. [19] M. Asafuddoula, T. Ray, R. Sarker, “Evaluate till you Violate: A Differential Evolution Algorithm Based on Partial Evaluation of the Constraint Set,” in Proceedings of IEEE Symposium on Differential Evolution (SDE), pp.31–37, 2013. [20] Y. Nagata, O. Bräysy, W. Dullaert, “A Penalty-based Edge Assembly Memetic Algorithm for the Vehicle Routing Problem with Time Windows,” Computers & Operations Research, vol.37, no.4, pp.724–737, 2010. [21] S.W. Lin et al., “A Hybrid Approach for Vehicle Routing Problem with Time Windows,” Advances in Intelligent Transportation Systems, vol.1, no.1, pp.11–18, 2012. [22] J. Homberger, H. Gehring, “A Two-phase Hybrid Metaheuristic for the Vehicle Routing Problem with Time Windows,” European Journal of Operation Research, vol.162, no.1, pp.220–238, 2005.. 36.

(43)

參考文獻

相關文件

Think pair fluency, reciprocal teaching, circulate poster and adding on, four corners..

4.2 Copy the selected individuals, then apply genetic operators (crossover and mutation) to them to produce new individuals.. 4.3 Select other individuals at random and

A multi-objective genetic algorithm is proposed to solve 3D differentiated WSN deployment problems with the objectives of the coverage of sensors, satisfaction of detection

本論文之目的,便是以 The Up-to-date Patterns Mining 演算法為基礎以及導 入 WDPA 演算法的平行分散技術,藉由 WDPA

keywords: Ant Colony Optimization, Guided Local Search, Pickup and Delivery Problem with Time Windows, Time Window Partitioning Strategy... 第三章 PDPTW 轉換

In the proposed method we assign weightings to each piece of context information to calculate the patrolling route using an evaluation function we devise.. In the

此外,由文獻回顧(詳第二章)可知,實務的車輛配送路線排程可藉由車 輛路線問題(Vehicle Routing

針對上述問題及根據其他接駁配送方式,本研究提出「多重補貨點接駁車 輛路線問題 (Multi-Point Feeder Vehicle Routing Problem, MFVRP)」