以文化基因演算法求解大型多目標且具時窗限制之車輛路由問題
全文
(2) 誌. 謝. 在研究所的學習過程中,讓我學習到很多不同的知識與經驗。在這期間受到 許多貴人的幫助,才能完成這論文。首先感謝我的指導教授 蔣宗哲老師,感謝 他給予我的指導與糾正,才能使我完成學業及研究。也感謝兩位口試委員 鄒慶 士老師與 陳俊豪老師給予這篇論文的指教,讓這本論文能夠更完善。 感謝巍懷學長給予我在這研究主題上給予相當多的提示與幫助,讓我能夠熟 悉此一領域,也感謝實驗室的政南、志翔、孝柔學長姊給予的幫助。感謝同實驗 室也是大學同學的裕傑、鼎基和弘奇在這期間中課業與研究上的互相幫忙。也感 謝學弟冠廷、少文、大維、仁一、麒安、泳俊在研究與口試中的幫忙。感謝大學 時期宿舍的室友廷翰、震昱、梓烜、冠宇、泰全、易昌、際巧在副本中與生活中 的持續幫忙。也感謝現在的室友文騰、永安學長,讓我在求學的過程中能有愉快 的心情。同時也感謝這幾年來每週六與我有相同興趣同好們在固定聚會的互相交 流讓我見識不同領域的發展。感謝在學校門口的 7-11、臭豆腐、鍋貼雞排支持我 的飽足感與 7-11 大夜班職員 James 陪伴我度過每個熬夜與孤獨的夜晚與以及各 種節慶。感謝飛瑞 A-500 不斷電系統在我實驗過程中的協助,使我免於跳電的恐 懼。感謝益勳學長介紹我在寶健科技的工作讓我生活穩定。 最後感謝我的家人的陪伴一起跨越心靈與生活的難關,讓我順利完成學業。 因篇幅限制沒有辦法列出所有幫助過我的人,若沒有你們的幫忙與支持,我難以 完成論文與學業,在此致上我最高的謝意。 I.
(3) 中文摘要 具時間窗車輛路由問題 (Vehicle Routing Problem with Time Windows, VRPTW) 為車輛路由問題(Vehicle Routing Problem)再加上時間窗限制,而車輛 路由問題係為一個派車站派出多輛車輛服務顧客點,在生活實務上已經有相當廣 泛的運用,包括宅配、垃圾回收車路線規劃、銀行運鈔車及定點巡邏車路線規劃。 本論文以具時窗限制之車輛路由問題為主題,其求解目標為最小化車輛數和 總行駛距離,由柏拉圖最佳化觀點求解,提出文化基因演算法的求解方法。此文 化基因演算法採用共生關係,即為允許違反限制解存在於族群中,初始解產生時 會產生合法解與違反限制解,再由基因演算法以多目標進行最佳化。基因演算法 產生交配產生的子代會使用突變策略進行修復與改善,接著區域搜尋法對產生的 子代進行目標的最佳化或是對族群的多樣性加以擾動,藉此產生的子代會依一定 比例讓違反限制解存活於族群中。 測試問題集是以 Gehring 與 Homberger (1999)建立的 200 個顧客點大型問題 集,問題集中有 6 大類共 56 個問題。本研究以多目標求解問題的過程中,探討 不可行解存在於族群中對於文化基因演算法中族群演化造成的影響。. 關鍵詞:文化基因演算法、區域搜尋法演算法、具時窗車輛路由問題、多目標最 佳化、共生關係 II.
(4) 目錄 誌 謝........................................................................................................................ I 中文摘要....................................................................................................................... II 目 錄...................................................................................................................... III 附圖目錄....................................................................................................................... V 附表目錄......................................................................................................................VI 符號表........................................................................................................................ VII 第一章 緒論.................................................................................................................. 1 1.1 車輛路由問題 .............................................................................................. 1 1.2 具時間窗車輛路線問題的數學模型............................................................. 2 1.3 多目標最佳化問題......................................................................................... 4 1.4 研究目的研究方法......................................................................................... 5 1.5 全文架構......................................................................................................... 6 第二章 文獻探討.......................................................................................................... 8 2.1 建構式演算法................................................................................................. 8 2.1.1 節省法.................................................................................................. 8 2.1.2 時間導向最近鄰點法.......................................................................... 9 2.1.3 插入法.................................................................................................. 9 2.2 路線改善法................................................................................................... 10 2.2.1 K-opt ................................................................................................... 10 2.2.2 2-opt* .................................................................................................. 11 2.2.3 Or-opt .................................................................................................. 11 2.2.4 -interchange ...................................................................................... 12 2.3 啟發式演算法............................................................................................... 13 2.3.1 傳統時間窗車輛路線問題解法........................................................ 13 2.3.2 兩階段求解時間窗車輛路線問題.................................................... 14 2.3.3 違反限制............................................................................................ 16 2.3.4 多目標求解時間窗車輛路線問題.................................................... 17 2.3.5 特殊方法求解時間窗車輛路線問題................................................ 19 2.3.6 求解具時間窗大型車輛路由問題.................................................... 24 第三章 方法與步驟.................................................................................................... 25 3.1 演算法架構................................................................................................... 25 3.2 路線表示....................................................................................................... 26 3.3 基因演算法................................................................................................... 27 3.3.1 建構初始族群.................................................................................... 28 3.3.2 目標值................................................................................................ 31 III.
(5) 第一章緒論. 3.3.3 適應度................................................................................................ 32 3.3.4 親代選擇............................................................................................ 32 3.3.5 交配.................................................................................................... 33 3.3.6 區域搜尋法........................................................................................ 35 3.3.7 修復.................................................................................................... 37 3.3.8 環境選擇............................................................................................ 37 3.3.9 相似度與族群多樣性的維持............................................................ 38 第四章 實驗數據與效能評比.................................................................................... 40 4.1 測試問題....................................................................................................... 40 4.2 4.3 4.4 4.5 4.6. 測試環境....................................................................................................... 41 比較文獻....................................................................................................... 41 效能指標....................................................................................................... 41 參數設定....................................................................................................... 41 實驗與討論................................................................................................... 42 4.6.1 4.6.2 4.6.3 4.6.4. 凌越關係與限定的凌越關係結果比較............................................ 43 不可行解存活率實驗參數設定結果比較........................................ 48 最佳結果比較.................................................................................... 50 多目標最佳化結果比較.................................................................... 51. 第五章 結論與未來發展............................................................................................ 55 第六章 參考文獻........................................................................................................ 57. IV.
(6) 第一章緒論. 附圖目錄 圖 圖 圖 圖 圖 圖 圖. 1 凌越示意圖........................................................................................... 5 2 路線合併............................................................................................... 8 3 2-opt 路線交換法 ............................................................................... 10 4 2-opt* 路線交換法 ............................................................................ 11 5 Or-opt 路線交換法 ............................................................................. 12 6 -interchange 路線交換法 ................................................................. 12 7 Route-exchange crossover 圖示 ....................................................... 18. 圖 圖 圖 圖 圖. 8 Ejection Chain 示意圖 ...................................................................... 20 9 演算法流程圖.................................................................................... 25 10 路線表示法...................................................................................... 27 11 族群變化示意圖.............................................................................. 27 12 原始的 Route-exchange crossover .................................................. 34. 圖 圖 圖 圖. 13 在改良式 Route-exchange crossover 中的重新插入 ..................... 34 14 鄰域函示 Swap and relocate 的“swap”範例 ................................. 36 15 R、C、RC 問題顧客點分布示意圖 ............................................... 40 16 族群內不可行解和合法解的個體數量趨勢圖(1/2) ...................... 44. 圖 17 族群內不可行解和合法解的個體數量趨勢圖(2/2) ...................... 45 圖 18 族群平均多樣性趨勢圖................................................................... 46. V.
(7) 第一章緒論. 附表目錄 表格 表格 表格 表格. 1 2 3 4. 使用不同的凌越關係與生存選擇之解品質的比較.................... 47 各種不可行解存活率設定比較.................................................... 49 最佳結果比較................................................................................ 50 多目標最佳化結果比較................................................................ 51. VI.
(8) 符號表 K:總車輛數。 N:總顧客數。 ai:顧客點 i 的抵達時間。 wi:顧客點 i 的等待時間。 dij:顧客點 i 到顧客點 j 的距離。 cij:顧客點 i 到顧客點 j 的成本。 tij:顧客點 i 到顧客點 j 的交通時間。 ei:時窗下界,顧客點 i 的最早抵達時間。 li:時窗上界,顧客點 i 的最晚抵達時間。 si:顧客點 i 的服務時間。 qi:顧客點 i 的需求量。 Q:車輛的容量。 δi:車輛在顧客點 i 服務完的時間 (即離開顧客點 i 的時間) 。 bi:開始服務顧客點 i 的時間。若抵達顧客點 i 的時間小於時窗下界 ei, 則 bi = ei。 xijk{0, 1},1 表示車輛 k 上的顧客點 i 和顧客點 j 有邊連結。. VII.
(9) 第一章緒論. 第一章 緒論 1.1 車輛路由問題 車輛路由問題 (Vehicle Routing Problem, VRP) [1][2][3] 指的是規劃最佳車 輛發送或是收取路線問題,在已知顧客需求量 (demand) ,由派車站 (depot) 派 出 多 輛 同 質 性 (homogeneous) 的 車 輛 , 每 一 輛 車 (vehicle) 擁 有 相 同 容 量 (capacity),由這些車輛服務所有顧客點 (customer),而各顧客點只會被拜訪一次。 當車輛容量無法再容納顧客點的需求時,車輛就必須返回派車站,改派另一台車 輛前往服務。車輛路由問題的目標是最佳化總車輛數與行走總路線距離,找出最 少的使用車輛數,以及最短的總路線距離。 具 時間窗車輛路線問題 (Vehicle Routing Problem with Time Windows, VRPTW) 則是增加了時間窗 (time windows) 的限制,各顧客點擁有ㄧ個最早可 以開始服務時間,即時窗下界 (lower bound) 和ㄧ個最晚可以開始服務時間,即 時窗上界 (upper bound) 的限制。派出的車輛只能在時窗下界和時窗上界之間的 時間內開始服務顧客,若車輛早於時窗下界到達顧客點,必須等待時間到達時窗 下界才能開始服務顧客,這段時間花費稱為等待時間 (waiting time)。時間窗的 限制可以分為硬時窗 (hard time window) 和軟時窗 (soft time window) 兩類,這 兩類時間窗的限制,差別在於硬時窗指的是車輛一定得在時窗上界內開始服務顧 客,軟時窗則是車輛允許在超過時窗上界後服務顧客,但是會加入一個懲罰成本。 如同車輛路由問題,硬時窗車輛路線問題常見的兩個求解目標,第一目標是總車 1.
(10) 第一章緒論. 輛數最少,第二目標是總路線距離最短。本研究所探討的是具硬時間窗車輛路線 問題。. 1.2 具時間窗車輛路線問題的數學模型 以下是具時間窗車輛路線問題的數學模型 [5] 介紹: (1) ∑ ∑. ∑. ∑. (2). ∑. ∑. (3) ∑. a. {. }. (4). ∑. ∑. {. }. (5). ∑. ∑. {. }. (6). ∑. ∑. (7). = =. (8) (9). ∑. ∑ (. ( ). {. ) {. }. K:總車輛數。 N:總顧客數。 ai:顧客點 i 的抵達時間。 wi:顧客點 i 的等待時間。 2. }. (10) (11).
(11) 第一章緒論. dij:顧客點 i 到顧客點 j 的距離。 cij:顧客點 i 到顧客點 j 的成本。 tij:顧客點 i 到顧客點 j 的交通時間。 ei:時窗下界,顧客點 i 的最早抵達時間。 li:時窗上界,顧客點 i 的最晚抵達時間。 si:顧客點 i 的服務時間。 qi:顧客點 i 的需求量。 Q:車輛的容量。 δi:車輛在顧客點 i 服務完的時間 (即離開顧客點 i 的時間) 。 bi:開始服務顧客點 i 的時間。若抵達顧客點 i 的時間小於時窗下界 ei,則 bi = ei。 xijk{0, 1},1 表示車輛 k 上的顧客點 i 和顧客點 j 有邊連結。. (1) 和 (2) 為問題的目標函式分別表示總車輛數和總距離,(3) 為最多 R 台 車從派車站出發,顧客點 i = 0 定義為派車站, (4) 表示每一條路徑的起點和終 點必須是派車站,(5) 和 (6) 每一個顧客點只會被一輛車服務過一次,(7) 為每 一輛車容量限制,(8) 表示車輛移動的成本值等於顧客點之間的距離,也等於車 輛在顧客點間交通時間,(9)、(10) 和 (11) 為時間窗定義,(9) 表示車輛在派車 站的抵達時間、等待時間和服務時間都等於 0,(10) 表示抵達顧客點 j 的抵達時. 3.
(12) 第一章緒論. 間為前一個顧客點 i 的抵達時間加上等待時間、服務時間以及從顧客點 i 到顧客 點 j 的交通時間。. 1.3多目標最佳化問題 由上述可知道車輛路線問題是多目標問題,根據 Bräysy 與 Gendreau [4] 總 結出這兩個目標是經常互相衝突,這表示想要減少總車輛數,常會使得行走總路 線距離增加,反之要縮短行走總路線距離則可能會讓使用的總車輛數增加。 以下就多目標最佳化問題進行定義。. Minimize F(x) =. (f1(x),. , fm(x)). Subject to x ∈ Ω. (12). Ω 表示決策空間 (decision (variable) space), Rm 是目標空間域 (objective space),F:Ω → Rm 由 m 個實數目標函式組成。具硬時間窗車輛路線問題中,fi(x) 則是欲最小化的目標像是總路線或是行走總距離。 在最小化問題中,令 u = (u1, ..., um) ,v = (v1, ..., vm) 是兩個屬於 Rm 的向量, 如果對所有的 i = 1, ..., m 使得 ui vi,而且至少存在一個 j 屬於{1, ..., m}使得 uj<vj,則稱 u 凌越 (dominate) v。 對所有的 x 而言,如果不存在一個 x ∈ Ω 使得 F(x) 凌越 F(x*),x* ∈ Ω, 則稱此 x* 為非凌越解 (nondominated solution) 或是柏拉圖最佳(Pareto optimal)。. 4.
(13) 第一章緒論. F(x*) 稱為 Pareto 目標向量;PS 表示所有 Pareto optimal 點的集合,以柏拉圖最 佳解集合(Pareto set)稱之;PF 表示所有 Pareto 目標向量的集合,稱為柏拉圖最佳 前緣(Pareto front), PF ={F(x) ∈ Rm︱x ∈ PS}。如圖 1 凌越示意圖,所示, 點 1 凌越點 4、7,點 2 凌越點 4、5、6、7,點 3 凌越點 6、7,而點 1、2、3 的 集合為柏拉圖最佳前緣。. 圖 1 凌越示意圖. 1.4研究目的研究方法 時間窗車輛路線問題在生活實務上已經有相當廣泛的運用,包括宅配、垃圾 回收車路線規劃、銀行運鈔車及定點巡邏車路線規劃。 時間窗車輛路線問題屬於 NP-hard 問題,隨著顧客點的增加,求出精確解 (Exact Solution) 所花的時間會呈指數成長。時間窗車輛路線問題應用在各種現實 生活問題上,求解的時間有所限制,所以將採用啟發式演算法,在限制的時間內 求最接近精確解的近似解。 本研究以 Vidal, Crainic, Gendreau 和 Prins [8] 與 Chiang and Hsu [9]的方法為基礎 並加以改進,以文化基因演算法來求解具時間窗車輛路線問題。本研究以多目標 5.
(14) 第一章緒論. 最佳化的方式,求解具時間窗車輛路線問題。目前 Vidal 等人的方法,單一執行 一次只會得到單一解。多目標求解具時間窗車輛路線問題可以同時求出多個非凌 越解,在實務應用上,派車站可以依照不同的需求以及掌握的資源來選擇不同的 派車方式。因此,由多目標求解方式得到的各種非凌越解可以讓派車站。擁有更 多樣性的選擇來分配要使用的資源,同時滿足所有顧客的要求。 在使用基因演算法求解時間窗車輛路線問題的過程中,族群多樣性的維持是 保持演化動力的基礎。族群的全域最佳解可能會因為無法利用現有的合法解產生 更好的解而導致演化停滯。本研究嘗試將不可行解加入族群參與演化,並使用區 域搜尋法來加強改善產生的子代改善解的品質,再以一定的機率進行修復不可行 解,構成本研究提出的文化基因演算法,對解時間窗車輛路線問題進行求解。. 1.5全文架構 本篇論文共分為五個章節,以下為各章的內容概述:. 【第一章】緒論. 說明本論文的研究背景、目的、方法及架構。 【第二章】文獻探討 介紹過去求解具時窗限制之車輛路由問題常見的做法,包含路線建構法、路 線改善法以及各種求解的演算法。. 【第三章】文化基因演算法 6.
(15) 第一章緒論. 介紹本論文提出的文化基因演算法的各個步驟,特別是基因演算法與區域搜 尋法。 【第四章】實驗數據與效能評比 包含文化基因演算法建置與運行環境、實驗設計與實驗數據比較和討論。. 【第五章】結論與未來發展 對本研究進行總結與提出未來展望。. 7.
(16) 第二章文獻探討. 第二章 文獻探討 在求解時間窗車輛路線問題的過程中,常用的解題方法分為兩類,分別是建 構式演算法和路線改善法,本章將會分別探討過去對於這兩類的演算法的研究。. 2.1 建構式演算法 以下將會介紹 Solomom [4][10] 所提出的建構式演算法。. 2.1.1 節省法 節省法(Savings Heuristics)初始狀態是對每一個點產生一條路線,故有 N 個 節點則會產生 N 條路線,再藉由節省值的計算選擇節省值大的路線進行合併。 節省值的公式如 (13) 。. savij = di0 + d0j – cij, 0. (13). 每一次合併的過程皆須要檢查容量和時間可行性,使建立出來的解都不會違反限 制,如圖 2 所示。. 圖 2 路線合併. 8.
(17) 第二章文獻探討. 2.1.2 時間導向最近鄰點法 時間導向最近鄰點法(A Time-Oriented, Nearest-Neighbor Heuristic)是由派車 站開始,對未排入路線 (Un-routed) 中的每個顧客點 i,計算其考慮空間和時間 之後的花費值 Costi,將 Costi 值最小的加入到路線中的最後一個顧客點,直到剩 餘所有未排入路線的點無法再進行加入,則返回派車站,另外重新建構另一條路 線。在加入顧客點 i 的過程中須要檢查容量和時間可行性,Costi 的公式如 (14)。. Costi = 1T i j + 2dij + 3uij , 1 + 2 + 3 = 1 , 1 0, 2 0, 3 0. (14). 其中 Tij = bj – (bi + si), uij = lj – (bi + si + tij) Tij 為旅行時間加上等待時間,dij 為兩點的距離,uij 為抵達 j 點後離時間窗上界之剩餘時間。. 2.1.3 插入法 插入法(Insertion Heuristics)由 Solomom [10] 所應用在時間窗車輛路線 問題,常稱作 I1 插入法,I1 插入法將一個未排入路線的顧客點 u 插入到已存在 的路線上,過程中會使用到兩個準則,第一個準則是用來決定顧客點插入已存在 的路線中的 n 個位置並從中找出最佳位置,以 c1(i, u, j) 表示,式子如. (15). 所示。. c1(i(u), u, j(u)) =. (. ). c1(i, u, j) = 1c11(i, u, j) + 2c12(i, u, j), 1 + 2 = 1, 1 0, 2 0. 9. (15).
(18) 第二章文獻探討. c11(i, u, j) = diu +duj. β ij, c12(i, u, j) = bju. bj. bju 為插入 u 後,開始服務 j 的時間。 第二個準則是以 c2(i, u, j) 用來選擇插入路線中最佳的顧客點 u*,c2(i, u, j)計算 方式如. (16) 所示。. c2(i(u*), u*, j(u*)) = max[c2(i(u), u, j(u))]. (16). c2(i, u, j) = λd0u c1(i, u, j), λ 0 u 為尚未排程顧客點中的可行點。. 2.2路線改善法 路線改善法是藉由路線交換顧客點或邊線的方式而產生出的新路線,進行交 換改變的時候必須要符合時間窗和車載容量的限制,以下介紹常見的路線改善法 [4] 。. 2.2.1 K-opt K-opt 的概念藉由交換路線上的 K 個邊線來產生一個新的路線,K 越大表示 交換次數越大,一般而言 K 都設為 2 或 3,以 2-opt 作為例子。. 圖 3 2-opt 路線交換法 10.
(19) 第二章文獻探討. 由上圖 3 可以看到原本的路線少了 E(i, i+1) 、E(j, j+1) 多了 E(i, j) 、E (i+1, j+1)。但由於這種交換方式會導致邊線 E(j, i+1) 進行反向的動作,在對 VRP 問 題中這種顧客點服務順序的交換不會有影響,但是在 VRPTW 問題中顧客點服務 順序的交換常會導致時間窗限制的違反。. 2.2.2 2-opt* 在 K-opt 的交換邊線的方式使得路線在經過 K-opt 之後,會需要進行反向的 動作。這個動作在時間窗車輛路線問題常常會使得,新產生出來的路線會違反時 間窗限制。因此 Potvin 和 Rousseau [12] 提出了 2-opt*。如圖 4 所示,比較看到 少了 E(i, i+1) 、E(j, j+1) 多了 E(i, j+1) 、E(j, i+1) ,使其餘邊線不需要反轉。. 圖 4 2-opt* 路線交換法. 2.2.3 Or-opt 由 Or [13] 在 1976 年提出,係將路線中的單一節點或連續兩至三個節點移 除,再插入同一路線或插入到不同路線中。圖 5 表示將連續兩個顧客點 i, i+1 插 入顧客點 j, j+1 之間。. 11.
(20) 第二章文獻探討. 圖 5 Or-opt 路線交換法. 2.2.4 -interchange -interchange 是將兩條路線進行顧客點的轉換,可分為 (1, 0) 、 (1, 1) 及 (1, 2) , (1, 0)視為是顧客點的轉移,作法是將路線 A 上的顧客點插入到路線 B, (1, 1) 和 (1, 2) 則稱為 路線間的節點交換。. 圖 6 -interchange 路線交換法. 在圖 6 中以 (1, 2) 作為例子,在路線 1 選擇了 1 個顧客點 i 與路線 2 的 2 個顧客點 j 與 j+1,進行節點交換。. 12.
(21) 第二章文獻探討. 2.3 啟發式演算法 2.3.1 傳統時間窗車輛路線問題解法 Potvin 等人[14] 使用禁忌搜尋法 (Tabu Search, TS) 求解時間窗車輛路線問 題,在禁忌搜尋法中,在每次要產生鄰域解時,會使用的方法是 Or-opt 來處理 縮短路線數的問題。 Potvin 與 Bengio [15] 以基因演算法搭配區域搜尋法 (local search) 求解時間窗車輛路線問題,Homberger 與 Gehring [16] 藉由 (, ) 演化策略來求解,使用 Or-opt 來減少路線數。不過對於新插入顧客點的位置採 取了,另一種選擇的策略。PTk 式 (17) 表示路線插入顧客點 k 後,多走顧客點 k 所花的額外時間,PDk 式 (18) 則表示路線插入顧客點 k 後,多走顧客點 k 所花 的額外距離,選擇 PTk 最小當作插入位置,若是 PTk 一樣,則選擇 PDk 最小作 為插入位置。使新插入顧客點 k,所增加的成本最少。 (. ) {. ( +). a { a {δ a {δ. } }. } – (δ. –δ. ). –. ws. (17). (18). δi:車輛在點 i 服務完的時間 (即離開點 i 的時間) 。 di,k:車輛從 i 走到 k 的距離。 ek:點 k 的時窗上界。 sk:點 k 的服務時間。. 13.
(22) 第二章文獻探討. 2.3.2 兩階段求解時間窗車輛路線問題 兩階段(Two Stage)求解的想法是因為求解時間窗車輛路線問題有兩個目標, 一個是總路線數,一個是總距離,因此這種做法就是將時間窗車輛路線問題視為 兩個單目標問題,分別對這兩種單目標進行單目標最佳化。因為傳統上,認為路 線數比總距離重要,所以會先對總路線數最小化,再對總距離最小化。. Homberger 與 Gehring 提出一個 Minimal Delay (mdl) 值來評估減少路線 數的難易度。Minimal delay 值現在已經廣泛運用在兩階段解法。mdl 值會評估擁 有最少顧客點的路線被消除的難易度。DR 值為路線 R 上的總 mdl 值,Dk 表示將 點 k 插入到邊(i, i+)之間的 mdl 值。 ∑. (19). { (. (. ). (20). ). Case 1 指的是當顧客點可以不違反限制的情況下插入其他路線,則 Dk 值為 0。 Case 2 指的是當插入顧客點後,路線會違反容量限制,則 Dk 為。 Case 3 指的是當插入顧客點後,路線會違反時間窗限制。 (. ). (. ). (. ). {. (. ). {. ( ′. {. –. ). (21). }. (22) } 14. –. }. (23).
(23) 第二章文獻探討. fk: 顧客 k 的時窗下界。. i:顧客 i 的最晚抵達時間。 Bent 與 Hentenryck [17] 以模擬退火法 (Simulated Annealing Algorithm, SA) 混合大規模鄰域搜尋法 (Large Neighborhood Search, LNS) 來求解時間窗車輛路 線問題。使用模擬退火法專注於縮短路線數,Bent 與 Hentenryck 提出一個方法, 在縮短路線數之外,還會利用最大化所有路線顧客數的平方和來比較解的品質, 目標是讓單一路線儘可能容納最多顧客,例如總共有顧客數 10,分配到兩條路 線,顧客分配為 9:1 會比顧客平均分配來的好,再搭配 mdl 值的概念縮短路線數。 Lim 與 Zhang [18] 定義出 mdlload (式 (27)),並將 Homberger 與 Gehring 所 提出的 mdl 加入一個新的值 V3k (式 (26)) 並把它定義為 mdltime (式 (25) )。所以, Lim 與 Zhang 新的 mdl 值 (式(24)) 定義如下: (. ) (. a ( ). a. (. (. ). ). (. ( ). )) (. (24) ). (25). 為使用者定義的值。通常設為 1。 (. ). (. a ( -. ). {(. ). (26) ( ). - )(. ( ). - ). ( ). load(r’)+qv-Q:路線 r加入顧客點 v 超載的量。. 15. (27).
(24) 第二章文獻探討. (l0-e0) :派車站的時窗寬度。 Case 1 表示顧客點 v 可以在不違反車子容量限制插入進 r,Case 2 則表示顧 客點 v 會違反車子容量限制,需計算的 mdl 值。再對 mdltime 和 mdlload 進行求最 大者即是新的 mdl 值。 V1 和 V2 的定義與式 (22) 和式 (23)相同,V3 也是先計算出插入顧客點 k 的最晚抵達時間k,若k 小於顧客點 k 的時窗下界,則表示此次插入會不可行解。 因此,要使 V1、V2 和 V3 擁有最小值為目標,若當數值為 0 則表示顧客點 k 可 以合法插入該位置。. 2.3.3 違反限制 大部分的研究在求解時間窗車輛路線問題都是在不違反限制 (時窗限制和 容 量 限制) 的原則下求解,而 Berger 等 人 [19] 則是以違反 限制 (Constraint Violation)的解為主要族群,目的是為了縮小路線數,使用一個 CV 值(28) 來計算 違反時窗的量。Berger 等人將當前解 (路線數為 Rmin) 的其中一條路線強制插入 到其他路線,此時會導致解為不可行解 (路線數為 Rmin-1) ,將 CV 用來作為演 算法的目標值,當 CV 值經過演化變成 0 的時候,就是成功減少一條路線。 n. CVi c max{ 0, bci lc } Viol i c 1. n. :表示顧客數。. bic. :表示在解 i 中 c 點的開始服務時間。 16. (28).
(25) 第二章文獻探討. lc. :表示 c 點的最晚服務時間 (即時窗上界) 。. Violi:表示在解 i 中共有幾個違反時窗限制的顧客點。 在 Bräysy 的其他研究中也曾使用不可行解來減少路線數,但主要是使用特 殊的方法允許解暫時的違反限制,再馬上修正為合法的解,此類方法會在 2.3.5 介紹。. 2.3.4 多目標求解時間窗車輛路線問題 以多目標觀點(Multi-Objective)來求解時間窗車輛路線問題的問題是在最近 幾年才開始,Tan 等人 [20] 以基因演算法 (GA) 結合區域搜尋法稱為 HMOEA 來求解時間窗車輛路線問題,他將個體的適應度 (fitness) 定義為 (1+q),q 表示 個體 i 被族群中其餘個體凌越的次數,若個體 i 沒有被其餘個體凌越,則個體 i 的適 應度 為 1 。Tan 在這邊提出一 個特別 的 交配操作 稱 為 Route-exchange crossover,兩個親代將各自最好的路線分享給對方,親代保留從對方身上拿到的 路線,將本身的解和對方的最佳路線比較,將重複的基因刪除,產生新的子代。 最好路線的判斷是由個別路線所經過的距離除以個別路線所經過的顧客,代表該 路線上移動到一個顧客點所需的平均距離,值越小表示越好。Route-exchange crossover 表示如圖 7。. 17.
(26) 第二章文獻探討. 圖 7 Route-exchange crossover 圖示. HMOEA 的效能在找出總距離短的解,比以傳統的方法求解時間窗車輛路線 問題來的好,但所找出來的解在總路線數並沒有比較好,以多目標的觀點來看就 是多求出不被最佳解凌越的解。而 Garcia-Najera 等人 [21] 也以多目標的觀點來 求解時間窗車輛路線問題,架構以基因演算法為主。Najera 提出了不同的方式來 評估解的品質。使用階級 (Rank) 的概念來定義適應度,先將所有彼此互相不凌 越 (non-dominated) 的個體設為 Rank1,再將剩餘的個體依照同樣方式分階級, 然後將 Rank 設為 Fitness。Garcia-Najera 在這裡使用對族群裡面的解計算其相似 度,並將相似度應用在選擇親代的過程,第一個親代使用了相似度的概念來族群 多樣性的維持。在 2-Tournament 以 Fitness 來選擇第一個親代,但是第二個親代 實驗了三種不同的選擇方法,分別是 Fitness 較小的個體、與第一個親代相似度 較低的個體,與族群相似度較低的個體。Najera 經由實驗結果做出的結論是,選 擇第二個親代時,挑選與族群解相似度較低的個體,較容易維持族群的多樣性且 對兩個目標的最小化都比另外兩種方法有效。也因此,了解到族群多樣性的維持 對於求解時間窗車輛路線問題有一定程度的影響力。 18.
(27) 第二章文獻探討. Chiang and Hsu [9] 所 提 出 混 合 式 演 化 式 演 算 法 使 用 了 改 良 式 的 Route-exchange crossover 並搭配禁忌搜尋法。改良的 Route-exchange crossover, 在進行兩個個體的路線交換選擇時,會去隨機選擇最好的三條路線進行交換。並 在進行完原版的 Route-exchange crossover 的行為,再進行一個減少路線的動作。 減少路線的方式是將最差的路線重新插入到其它路線中的最好的位置。在插入最 差路線中的顧客點時,會依照顧客點在路線中的排序插入。. 2.3.5 特殊方法求解時間窗車輛路線問題 大 部 分 研 究 所 採 用 的 路 線 改 善 法 都 是 分 別 使 用 Or-opt 、 2-opt* 及 -interchange 組成,Homberger 所提出的 ( , λ) 演化策略中的鄰域函式集合,就 是由上述三個所組成,而 Bräysy [22] 所提出的 Ejection Chain (EC) 則是一個專 門用來縮短路線的方法,如圖 8 所示,要消除路線 3,但因為路線 1 和 2 的時窗 限制關係,使得路線 3 上的點 i 無法直接插入 1 或 2,此時可以考慮 1 上的客戶 j 是否可以插入到路線 2,若是可以插入到路線 2,則路線 1 因為少了顧客點 j, 所以可以空出空間給予路線 3 上的點 i 進行插入,路線 3 上的顧客點就減少一個。 另外在 Bräysy [22] 提到其他方法,執行插入步驟時,先忽視時窗限制,先直接 插入路線中,在違法的路線中找出第一個違反時窗限制的顧客點。接著為了使路 線合法,需將車輛抵達違法顧客點的時間降低,這邊有兩種作法,第一是將違法 顧客點以前的合法顧客點,改插入到違法顧客點之後的位置。第二是將違法點以 前的顧客點重新排序,目的都是為了將違反時間窗限制的值降下來。 19.
(28) 第二章文獻探討. 圖 8 Ejection Chain 示意圖. 在 2003 年時 Bräysy [24] 提出的快速的區域搜尋法中使用了類似 Ejection Chain 演算法當作鄰域函式,並且提出了多種策略來提升 Ejection Chain 演算法 的速度。. I.. 限制 Ejection Chain 的最大長度和限制單一路線中重新插入的顧客數。. II.. 限制在顧客重新插入路線後,使得路線總距離變長的距離。. III. 使用 Solomon 等人[25] 提出的 push-forward 和 push backward 的策略 來評估路線變動後的適應度。. IV. 重新插入顧客點時,會優先計算在幾何距離上較近的顧客,並且只會去 評估顧客點數最少的路線。. V.. 單一顧客在插入新的位置時,會去比較目標路線中所有顧客點的幾何距 離,若這個距離超過一個使用者定義的距離限制後,則放棄這次的插 入。 20.
(29) 第二章文獻探討. Bräysy [23] 則提出 Injection Trees (IT),Injection Trees 作法類似 Ejection Chain,IT 的做法是將圖 8 中路線 3 上的點 j 忽略容量和時窗限制直接插入到路 線 1,此時路線 1 是一個不可行的路線,接著將路線 1 的其他顧客點,盡可能插 入到其他沒參與交換的鄰近路線 (即除了路線 1 和路線 2) ,直到使得顧客點 j 可以不違反時窗限制的合法存在於路線 1 上,路線 1 改變為合法的解。Ejection Chain 和 IT 的差別在於 Ejection Chain 會每移除路線 1 上的一個顧客點,就檢查 顧客點 j 是否可以合法插入路線 1,而 IT 則是直接將顧客點 j 插入路線 1,以節 省檢查的計算效能。 Lim 與 Zhang [18] 也是提出了兩階段求解的演算法,但是他們使用了改良後 的 Ejection Chain 演算法,來進行車輛消除程序,並搭配其他路線改善法的使用。 在他們展示的結果中,可以看到車輛消除程序造成良好的影響使的車輛數明顯較 少。車輛消除程序的做法是挑選顧客數最少的路線,將上面所有的顧客放進 Ejection Pool (EP) 之中,並刪除這條路線。接著會將這些顧客依加入 EP 的順序 去嘗試安排至其他的路線之中,可以合法插入已存在路線的顧客都會優先被插入 進存在路線。在安排顧客的過程中會去計算顧客 u 插入現有路線顧客 i 和 j 之 間的插入花費(式(29)) ,並挑選花費最少的位置插入。 (. ). (. ). (. ). diu、duj、dij:分別代表顧客點 i 和 j、u 和 j、i 和 j 之間的距離。 21. (29).
(30) 第二章文獻探討. 和 :控制花費值中距離成本和時間延遲成本的比重。 (. ). (30). (. ). (31). 在式(30)和式(31)中, 表示在 u 插入 i 和 j 之件後 u 最早可以開始被服務的 時間,而且這段時間顧客 u 是可以暫時違反時間窗的限制。式(31)中, 表示 u 服務的所需的時間,. 則表示顧客 j 的最晚抵達時間,這一個時間是不能違反. 顧客 j 的時間窗限制。 若是插入顧客後導致路線上有顧客的時間窗限制被違反的話,則會進行釋放 顧客的動作(如同 Ejection Chain 演算法中的 eject 步驟),在釋放顧客時會計算節 省成本 (kick saving, ks),假設顧客 為路線上第 x 個顧客,計算節省的路線距離 成本以及增加的延遲成本,延遲成本則是計算 mdl 值得到。整個節省成本的算法 如式 (32) 所示 ( ). (. (. ). ). (. ). :表示欲移除的目標顧客點 :表示現在的路線 :表示移除顧客點. 之後的路線. :表示不包含路線 的其他路線所形成的部分解集合 22. (. ). (32). (33).
(31) 第二章文獻探討. 式(33)中的. (. ) 則是利用式(24)計算所得,在計算出節省成本之後挑. 選節省成本大的顧客移出這一條路線,並放入 EP 之中,並重複到這條路線上的 所有顧客都符合限制。接著,再從 EP 之中,挑選顧客繼續進行插入路線,直到 EP 中沒有顧客或是其他終止條件。. 23.
(32) 第二章文獻探討. 2.3.6 求解具時間窗大型車輛路由問題 在傳統的車輛路由問題是針對 Solomon[10]提出一個標準問題集,問題集中 總共有 56 個問題,每個問題有 100 個顧客。在車輛路由問題的實際應用上,常 常有機會面對要安排超出 100 個顧客點數的情況。 Vidal [8]將 Vidal 等人[11]所 提出的 Hybrid Genetic Search with Adaptive Diversity Control (HGSADC)進行改良 為 Hybrid Genetic Search with Advanced Diversity Control (HGSADC)是可以專門 對 VRPTW 大型車輛路由問題進行求解。 在 HGSADC 是採取基因演算法結合區域搜尋法的文化基因演算法(memetic algorithms),並允許違反時間窗限制的解進入族群參與演化。Vidal 等人在 HGSADC 中提出了名為允許違反限制解進行搜尋的“education”區域搜尋法並將 其結合修復違反限制解的程序,達到高速率與高效能的區域搜尋法。 “education” 區域搜尋法是採取兩種區域搜尋法交互使用的方式進行的搜尋 法,分別為針對路線改善的程序與模式改善的程序。路線改善的程序是為把亂數 順序的顧客點重新插入的程序。模式改善的程序則是使用三種路線改善法分別為 Swap and relocate、2-opt*、2-opt,來進行區域搜尋。Swap and relocate 路線改善 法為對兩個不同的路線進行隨機各交換兩組連續的顧客點,每組顧客點所含的顧 客數目在兩個以下。“education”程序是採取的執行順序為 PI、RI、PI 來達到高 速率與高效能的區域搜尋法。. 24.
(33) 第三章方法與步驟. 第三章 方法與步驟 3.1 演算法架構 本研究所採用的文化基因演算法是結合基因演算法跟區域搜尋法,以 Chiang and Hsu 混合式演化式演算法及 Vidal 等人(2013)所提出的 HGSADC 為基礎,流 程圖如圖 9 所示。. 圖 9 演算法流程圖. 本研究參考 Chiang 與 Hsu 混合式演化式演算法的基因演算法的架構與 Vidal 等人(2013)所提出 HGSADC 中的族群管理方式與 Education 區域搜尋法, 在 HGSADC 會將族群中會包含合法解和不可行解,這種方式為一種共生關係[26]。. 25.
(34) 第三章方法與步驟. 本研究將解的合法性分為,合法解為不違反任何 VRPTW 問題的限制條件;不可 行解為只違反 VRPTW 的時間窗限制條件的解。在建立初始解後,會分別先評估 並依照解的合法性,將所有解分別加入其所屬的族群。交配前選出兩個親代個體 進行交配產生子代,接著子代進入區域搜尋法進行解的改善。區域搜尋法結束後, 會將解分類進所屬的族群,若是分類在不可行解的族群則會機率性的進行修復為 合法解。若族群過於龐大則會開始環境選擇,選擇出族群裡可以存活至下一代的 解。基因演算法的演化動力來自於族群的多樣性,所以會適時地維持多樣性以利 基因演算法的進行。. 3.2 路線表示 Vidal 等人所提出的 HGSADC 使用的路線表示為採用數字序列的方式來做 為解的表示方式,優點在於可以使用簡易且快速的交配運算進行演化。但是,進 行解的目標值與適應度計算時,仍須將數字序列轉換成路線的方式表示。另外, HGSADC 再進行“education”區域搜尋的步驟時,則是使用路線為基礎的表示 法。故在本研究採用路線為基礎的解表示法,採取此法亦可以使用目前已知稍微 複雜但擁有較佳效能的交配運算子。 一條路線由多個顧客組成,而一個完整的解是由不同的路線組合而成。所以, 解的形式就是由顧客組成的序列形成路線,再把路線做成串列組成解。. 26.
(35) 第三章方法與步驟. 路線表示方式如右圖 10 所示: 這條染色體所代表的解如下. R1:(1, 4, 2),R2:(3, 6),R3:(5)。. 圖 10 路線表示法. 3.3 基因演算法 本研究的初始族群的建立是由 Solomon I1 插入法與時間導向最近鄰點法以 及採用隨機產生,並搭配使用的“education”區域搜尋法的將解當作初始解,使 用這些解作為初始族群來引導演化方向,使其在搜尋的過程中可以增加演算法的 效率,詳細內容會在 3.3.1 進行說明。. 圖 11 族群變化示意圖 27.
(36) 第三章方法與步驟. 本研究將基因演算法的族群使用了共生關係[26]顧名思義族群中包含合法解 與違反限制的解所建立族群,視為。為了評斷解的好壞我們將會計算解的目標值 與適應度。基因演算法在選擇親代時所採用的方式是 2-Tournament,而交配是採 用由 Chiang and Hsu [9] 提出改良的 Route-exchange crossover 為基礎稍作修改。 接著使用 Vidal 等人(2013)所提出的“education”區域搜尋法來改善解的品質。 而因為本研究的族群中含有不可行解的的存在,故此需要嘗試修復不可行解。為 了使優良的解可以持續的參與族群的演化,並去除差勁的解,本研究所採取的是 仿照 Vidal 等人(2012)所使用的( +)環境選擇方式。平時每個子族群各自保持超 過最小的族群大小 ,當子族群超過 +後就開始進行環境選擇再從中刪除不想 要的個解,重複這個步驟直到族群大小回到. ,而剩下的族群分子就會進入下. 一次的演化,如圖 11 所示。在圖 11 族群的個體最小數目為 8,族群個體最大 數目為 14,當族群個體數成長到族群最大數目就會進行環境選擇,若族群沒有 達到族群個體最大數目所以沒有進行環境選擇。最後,為防止族群收斂過快,本 研究也會進行族群多樣性的監控與增加族群多樣性的方法,用以維持演化的動 力。. 3.3.1 建構初始族群 起始解會影響求解速度和解的品質,因此為了加快搜尋速度並增加起始解的 多樣性及品質,本研究採用 Solomon I1 插入法和時間導向最近鄰點法及參考. 28.
(37) 第三章方法與步驟. Vidal 等人 (2013)建立隨機起始解的方式來增加解的多樣性,隨機起始解會經 “education”區域搜尋法之所產生的解來組成起始解族群,起始解族群會包含合 法解與不可行解。 時間導向最近鄰點法即是透過計算式 (14),對每個顧客點計算加入路線的花 費成本值 Costij. (i 為當前路線的最後一個顧客點,j 為剩餘未插入的顧客點) 將. 擁有 Costij 最小值的顧客點加入到當前建構中的路線的最後一個位置(每個路線 的第一個顧客點的即是離派車站的 Costij 最小的顧客點)。之後,每次加入一個顧 客點至路線中就需要重新計算剩餘未安排至路線中的顧客點的 Costij 值,當剩餘 未排入的顧客點無法加入當前建構中的路線時,就另外建構一條新路線。時間導 向最近鄰點法計算 Costij 值,所需要的三個變數 1、2 與 3 相加必須為 1,在 本研究中將這三個值評估花費成本的變數都設為 0.33,表示每種成本所占的比例 一樣,本研究只產生一個時間導向最近鄰點的解加入起始解族群。. Solomon I1 插入法是首先隨機選擇一個起始顧客點,再透過 c1(i, u, j) 準則 計算式 (15) 的方式,計算未插入顧客點 u 在每條路線中的最佳插入位置,再 以 c2(i, u, j) 準則計算式. (16) 計算決定顧客點插入的路線,目的是為了以最. 少的路線且服務到最多的顧客點。當無法將顧客點插入到現有的路線中,此時另 外建構一條新路線,並重複上述動作,直到所有顧客點都安排至路線中。Solomon I1 的 c1(i, u, j) 準則中變數1 與2 相加需要為 1,本研究將兩個變數都設定為 0.5,. 29.
(38) 第三章方法與步驟. 表示每種成本所占的比例一樣,也只產生一個 Solomon I1 解加入起始解族群。 隨機起始解建立的方式是以一個含有所有顧客點編號的序列,先將序列隨機 排序,再依照序列中顧客點出現的順序依序加入正在建構中的路線。 把顧客點加入建構中的路線有兩種方式,建立一個解的同時只使用一種方式, 兩種加入的方式為隨機使用。第一種是不違反限制的加入方式,加入顧客點的過 程中,只會尋找不違反問題限制的位置,用此方式只會產生出合法解。另一種加 入方式為允許顧客點時間窗的限制不被遵守。因此,加入顧客點的過程中會亂數 插入建構中路線的位置。但是,仍然遵守每條路線的車輛容量限制,用此方式會 產生出不遵守時間窗限制的不可行解。. 顧客點加入建構中的路線過程一直反覆直到無法再同一條路線加入顧客點 後,就會另外建構一條新路線,再繼續依照序列使用以上兩種方法插入顧客點, 直到所有的顧客點都被安排至路線中。. 使用以上方法產生出的解接著再利用“education”區域搜尋法進行解的改 善,使得基因演算法在搜尋時可以不用從過於差勁的族群開始搜尋,區域搜尋法 的詳細作法會在 3.3.6 進行說明。因為隨機路線建構演算法沒有考慮時間窗的限 制,所以產生的解會包含不可行解。所以,將經過“education”區域搜尋法改善 的解進行修復,而修復也不是全部的解都進行修復,解會以的機率進行修復,修 復的詳細作法會在 3.3.7 進行說明。. 30.
(39) 第三章方法與步驟. 為了將族群人口填滿,首先會先產生 4 倍族群大小(4 )的解,把產生出來的 解依合法性進行分類進所屬的子族群,此時族群的大小會超過族群大小的最大值。 此時,利用環境選擇來將需要的解留下來作為基因演算法的初始族群。環境選擇 的詳細作法會在 3.3.8 進行說明。. 3.3.2 目標值 VRPTW 的目標值為總路線數目以及總距離兩項。本研究因為允許不可行解, 所以在比較解的好壞時,需要把不可行解和合法解進行比較。不可行解在於違反 時間窗限制,所以本研究計算不可行解的違反多少時間窗限制的違反量 penalty 計算方法如下: ∑ ∑. { { ∑. ∑. (34). }. (35). }. (36). 在解 S 中,penalty 為每條路線的時間窗限制違反量(pr)得總和加權後加上解 S 進行過的修復懲罰值再加上每條路線的超重值總和(lp)的加權值。時間窗限制 違反量(pr)為計算該路線中所有顧客點車輛到達的時間減去最晚抵達時間的總和, 即為每條路線的時間窗限制的違反量。修復懲罰值為該違反限制解修復失敗的次 數的加權值。解的超重值(lp)為每條路線的總顧客需求量減去單一台車輛的容量 的總和。本研究的目標值會聚焦在總路線數目和路線總行駛距離以及違反量,這 31.
(40) 第三章方法與步驟. 三項目標的多目標最佳化。. 3.3.3 適應度 在適應度的計算上採用與 NSGA-II [28]的 Non-dominated Sorting 方式,對整 個族群的解進行階層比較,比較各解與其他解之間的目標值是否有凌越關係,把 沒有被任何解凌越的解設為階層 1,依相同概念對剩餘下的解分階層,把這階層 當作適應度值(適應度值小表示解越佳越好)。 由於本研究以多目標觀點求解,由於在交配策略和區域搜尋法的鄰域函式都 是有不低的機會產生出大量的不可行解,而凌越關係會使單一目標值極佳的不可 行解佔據演化族群。為了使族群不要被不可行解佔據,本研究使用了兩個方法來 限制不可行解。第一種方法為使用環境選擇來限制不可行解佔有族群數量的比例, 詳細作法會在 3.3.8 解釋。 第二種方法為使用有限制的凌越關係,一般的凌越關係在 3.3.2 已經敘述過。 而本研究採用的方法是合法解必定凌越不可行解。即表示目標值違反量為 0 者恆 凌越違反量大於 0 的解。此方法被實驗證明是有效的限制非法解快速佔據整個演 化族群。. 3.3.4 親代選擇 親代的選擇方式會影響基因演算法的收斂速度與多樣性的維持難易,所以親 代選擇的策略是基因演算法很重要的一環,過往的研究常常採用 k-tournament 32.
(41) 第三章方法與步驟. 方法來挑選好的個體,並利用 k-tournament 隨機選擇來保持基因多樣性,以及擁 有 k-tournament 容易實作的特性。因此採用的選擇策略是選擇 2-tournament,並 利用適應度較好的個體做為親代。而在進行親代選擇時,會去選擇整個族群,包 含合法解與不可行解。. 3.3.5 交配 本論文的交配策略是以 Chiang and Hsu [9] 所提出的改良式 Route-exchange crossover 為基礎再進行改善,原始的 Route-exchange crossover 是由 Tan 等人[20] 所提出,如圖 12 所示,標記的路線表示選擇解中最好的路線 (最好的路線為每 條的路線行駛距離除以路線上所含的顧客數,定義為路線疏散度,當路線疏散度 越大表示路線越差),Route-exchange crossover 的優點是在路線交換後,只要把 在其他路線中重複的顧客點刪除,刪除顧客點不會造成違反時窗和容量限制,但 缺點是每進行一次交配,常會令子代的路線數多 1。 Route-exchange crossover 的特性會使其他路線增加空間容量(因為刪除原本 路線上的重複的顧客點,會增加服務該路線的車輛擁有多出的剩餘容量和空閒時 間),所以 Chiang and Hsu [9] 將路線疏散度最差的路線(圖 13 中標記的路線) 上的顧客點嘗試插入到其它路線中的最佳位置,路線疏散度最差路線中的顧客 點,. 33.
(42) 第三章方法與步驟. 圖 12 原始的 Route-exchange crossover. 圖 13 在改良式 Route-exchange crossover 中的重新插入. 將依照顧客點在原本路線中的順序重新插入。 插入的顧客點想要插入在最佳的位置上,評估最佳的位置的方式 Chiang and Hsu 計算顧客點的 PTk (式 (17)) 值與 PDk (式 (18)) 值,並計算一個加權值 (式 (38),擁有最小 Cost 的顧客點優先插入本研究這邊將 a 值與 b 值都設定為 0.5), 並依此加權值來選擇最佳插入位置。. (37) Chiang and Hsu 提出改良的 Route-exchange crossover 在重新插入顧客點時, 會去尋找不違反限制最佳的位置插入顧客點。但是在演化後期交換完畢之後的路 線,最差的路線上的顧客點可能較難找到不違反限制的插入點,因此無法找達成 34.
(43) 第三章方法與步驟. 減少因 Route-exchange crossover 操作增加的路線數的目的。本研究因為容許了違 反限制解可以在族群中參與演化。所以,將只找合法的位置插入之限制去除,而 是尋找 Cost 值最小的位置進行插入。 在嘗試重新插入時,若必加以限制嘗試次數,會浪費許多運算資源在差勁的 位置上。為了增加運算效能,我們採用 Vidal 等人(2013)所提出的顧客相關計量 “customer. a. ”。對於顧客點 vi 到顧客點 vj 的顧客相關計量 r(vi, vj)是把之. 間的距離、最小等候時間、最小的懲罰值進行權重求和。 ( {. ). {. }. }. (38). rWT 和 rTW 為權重值。對於顧客點 vi 本研究在進行插入盡新的位置時,會去檢 查新位置的相鄰兩個點是否在顧客點 vi 的相關集合Γ(vi)之中。相關集合|Γ|代表 意思表示最近的顧客點集合個數,|Γ|的大小會在 4.5 進行說明。. 3.3.6 區域搜尋法 本研究的 Vidal 等人(2013)在其演算法中採用的“education”區域搜尋法再 加以修改,“education”區域搜尋法是兩個區域搜尋法所組成分別 為 route improvement procedure (RI)和 pattern improvement procedure (PI)。RI 是利用路線 改善法當作鄰域函式來改善解。PI 是則是會對路線上的顧客點重新安排,將路 線排序重建的方式來進行改善解。“education”區域搜尋法會依照 RI、PI、RI 35.
(44) 第三章方法與步驟. 的執行順序組成。 PI 程序的鄰域函式為利用一段亂數產生的序列,將出現在該數列的顧客點, 從原有的位置移除,並進行重新插入。當重新插入的顧客點後,產生的解比現有 的解好時,則直接移動到新的解,再繼續 PI 程序。 RI 程序則是利用常見的路線改善法當作鄰域函式,RI 程序選擇了三種路線 改善法分別是 swap and relocate、2-opt*、2-opt 以及 Or-opt。swap and relocate 為 隨機交換兩段路線排序,這段路線可以包含 0 到 2 個顧客點。swap and relocate 與 2-opt*在這裡允許可以交換一條空的路線線段,這表示經過這兩種改善法後解 會多一條路線數。而 swap and relocate 也可以是交換同一條路線上的兩段路線段。 圖 14 為 swap and relocate 的“swap”的操作範例。. 圖 14 鄰域函示 Swap and relocate 的“swap”範例. 在 RI 程序中鄰域函式的應用分為兩個階段,在每階段中三種鄰域函式會以 隨機順序使用。在第一階段,鄰域函式會先針對親代中沒有的路線優先探索。到 第二階段,本研究雖然採用最佳鄰域移動 (best improving move) 但是不會探索 所有的鄰域,當預先設定數量的鄰域解被探索後就會直接進行最佳鄰域移動,這. 36.
(45) 第三章方法與步驟. 是為了增進運算效能所做出的選擇。 當 PI 與 RI 在對重新安排路線和顧客點時,也會使用相關集合|Γ|的限制, 來增加運算效率。當 PI 程序要插入新的顧客點 vi 時會檢查新位置的前後的顧客 點是否在相關集合Γ(vi)之中。而在 RI 程序也是一樣,若是交換的是一段路線則 檢查路線兩端的顧客點相接的新顧客點是否個在兩端點的相關集合之中。. 3.3.7 修復 當親代交配產生的子代,在經過區域搜尋法改善過後。如果還是為不可行解, 將會採取機率性的對不可行解進行修復,若不進行修復解會直接進入族群當中。 將違法解修復的方式為將違反時間窗限制的路線第一個違反限制的解取出, 並嘗試插入到是合法的位置,在尋找插入位置的時候會使用 mdl 值(式(24))進行 評估插入位置,為了節省運算資源插入位置只會尋找符合相關集合|Γ|限制的位 置。若是嘗試插入失敗的則先將這個顧客點保留。直接繼續尋找下一個違反限制 的顧客點。若是解中已經沒有違反限制的顧客點後,則開始把把剛剛保留的顧客 點隨機取出進行嘗試。若是取出的解都不能找到合法的位置插入,則此次修復失 敗。 我們會計算解的修復失敗次數,若是修復失敗的話則會將修復失敗次數增加, 而修復次數會影響到 penalty 值。當修復次數達到 5 次的時則放棄修復。. 3.3.8 環境選擇 本研究參考 Vidal 等人(2012)的生存選擇策略 (survival selection strategy),族 37.
(46) 第三章方法與步驟. 和 +λ 之間。當族群的個體數量達到最大限制 +λ,. 群的個體數量會介於. 就會開始進行環境選擇。環境選擇會選擇族群中的適應度最差的λ個解刪除掉, 並留下適應值較得好. 個解作為新的演化族群。. 為了維持族群不被不可行解佔據失去往最佳化演化的動力以及利用不可行 解來維持族群多樣性保持演化動力,我們使用不可行解存活率 rirs (infeasible solution survival rate)來保存不可行解,代表當每次進行生存選擇時,會保留 rirs 個不可行解。假若是沒有足夠合法解或是不可行解的狀況發生時,則會違反此規 則,以補足族群最小個體數量 。. 3.3.9 相似度與族群多樣性的維持 基因演算法中族群多樣性代表著演化的動力,若是演化後期族群相似度過高, 基因演算法會原地打轉,重複產生相同的個體,因此必須維持族群多樣性,才有 機會繼續演化。故在演化進行中,設計成每過固定的演化代數會去檢查族群多樣 性。Ja a ’s s. a y. t [21] 是一種個體間比較相似度的方法,可以使. 用每個解的邊線集合,去兩兩計算解的相似程度,J (A, B) 為 1 表示解 A 和解 B 完全相同,若為 0 則完全不相同。式子(39)如下。. (. )=. |. |. |. |. (39). A (e) :解 A 的所有邊線集合。 B (e) :解 B 的所有邊線集合。 38.
(47) 第三章方法與步驟. 族群平均相似度(. ). ∑ ∑. (. ). (40). 在演化的過程中每經過一定的演化代數,就會進行維持族群多樣化的程序, 會對現在族群的所有個體兩兩計算相似度,當現在族群平均相似度大於預先設定 的族群平均相似度時,就會刪除相似度最高的個體,並加入新的用亂數產生的個 體來增加多樣性,直到族群相似度低於預先設定的族群相似度。由於計算族群相 似度的過程會花費較多的計算資源,所以為了增進演算法效能,所以計算族群相 似度的間隔,本研究採取相似度的檢查與族群多樣性維持的間隔會比較長,防止 演算法效能低落。 為了避免當進行相似度的檢查與族群多樣性維持之前,就發生族群已經同一 性過高的狀況。本研究另外採取簡易的方式進行族群多樣性維持,當演化的每個 迭代結束前會進行簡易的檢查。檢查族群中是否有任何的個體是一樣的,在這裡 本研究將兩個體依樣定義為兩個體的目標值皆相同。若檢查除有兩個體一模一樣 此時,就會刪除其中一個同樣個體,並加入新的用亂數產生的個體來增加多樣 性。 經過相似度的檢查與族群多樣性維持的操作之後,期望可以在演化的進行中 使族群中不存在相同個體,以利演化的進行,進而帶領演化脫離區域最佳的解。. 39.
(48) 第四章實驗數據與效能評比. 第四章 實驗數據與效能評比 4.1 測試問題 在本研究中評估演算法在時間窗車輛路線問題的效能,在這裡採用的測試問 題集是使用 Solomon [10] 所提出的 6 種分類,6 類問題分別是 R1、R2、C1、C2、 RC1 及 RC2。 R 表示顧客分散 (Remote),C 表示顧客集中 (Cluster), RC 表示 顧客有分散也有集中,如圖 15 所示。1 和 2 的差別在在於顧客點的時窗大小,1 表示顧客點擁有的時窗小,代表每個顧客的可服務時間短;2 表示顧客點擁有的 時窗大,代表每個顧客的可服務時間長。. 圖 15 R、C、RC 問題顧客點分布示意圖. 傳統的 Solomon 的問題集中每種問題有 100 個顧客。為了針對大規模問題 的測試,本研究使用 Gehring 與 Homberger [27] 所提出的問題集,在這問題集當 中分為 5 組,每組問題集依顧客數量分類分別包含 200、400、600、800、1000 個顧客,問題集的分組中包含 Solomon 提出的 6 種問題分類,每種分類包含有 10 個問題。. 40.
(49) 第四章實驗數據與效能評比. 4.2 測試環境 本論文的演算法採用 C++ 在 Visual Studio 2010 開發與編譯,編譯時使用 /Ox 最佳化設定。 測試環境使用 I. ®C. ™ i7-950 @3.07 GHz 搭配 6GB 記憶. 體,執行 Microsoft® Windows 7 作業系統 x86-64 架構下。. 4.3 比較文獻 本論文是以混合演化式演算法求解多目標具時間窗車輛路線問題,在 Gehring 與 Homberger 的大規模問題集選擇比較的演算法有,Vidal 等人 (2013)、 Chiang and Hsu [9]、Nagata 等人[30]和 Gehring 與 Homberger [31] 的實驗結果, 作為本研究蒐集到的目前已知最佳解(Best Known)進行比較。. 4.4 效能指標 在具時間窗車輛路線問題中,常用來比較演算法好壞的指標數據有最佳的總 車輛數、最佳的總行駛距離和每類問題的平均車輛數和平均行駛距離,因此本研 究也採用上述指標並對各類型演算法進行比較。. 4.5 參數設定 本研究會採用和主要的比較對象 Vidal 等人(2013) 和 Chiang and Hsu 相似的 實驗設定,所以會在盡量維持接近的 FFE (fitness function evaluation)的次數下, 兩個演算法所產生的解集合的品質,參數設定如下。 基因演算法參數設定:. 41.
(50) 第四章實驗數據與效能評比. 族群數目 ( ):30。. 族群增加數目 (λ):20。. 交配機率 (crossover rate):1.0。. 修復機率 (repair rate):0.5。. 懲罰值權重(wt, wr, wq):(1, 20, 2 ). 相關集合大小(|Γ|):60. 顧客相關計量權重值(rWT, rTW):(1.0, 0.2) 多樣性維持代數 (Idec):100. 平均族群相似度限制:0.6. 不可行解存活率(rirs ):0.5(減少總距離)、0.25(縮短總路線數) 探索鄰域數目(Neighborsize):60 區域搜尋法結束條件:當最佳解經過 Inon (Inon 值為 100)次或無法更新。 若沒有另外提出,則所有的實驗結果均是以研究提出之文化基因演算法執行 10 次所產生的近似最佳解集合。 懲罰值權重因為時間窗限制違反量、修復懲罰值、超重值,三者差距過大, 所以在計算懲罰值時不使用常見的參數設定方式,讓參數值介於 0 和 1 之間病史 參數總和等於 1。因此,本論文參考 Vidal 等人(2012)的參數設定方式,選擇此 種設定值。. 4.6 實驗與討論 本研究採取文化基因演算法,本研究設計了一些實驗,分別會測試不同的機 制與改變所帶來的影響。本研究採用 Gehring 與 Homberger 的 200 個顧客問題 集作為實驗標的。. 42.
(51) 第四章實驗數據與效能評比. 4.6.1 凌越關係與限定的凌越關係結果比較 本研究提出的文化基因演算法進行實驗,首先實驗的是對於適應度的計算方 式中,本研究使用有限定的凌越關係。由於適應度會影響到親代選擇以及生存選 擇,進而影響到整個文化基因演算法的演化方向和演化動力。本研究為此設計一 實驗比較一般凌越關係與限定的凌越關係兩者對演化效能差異。在這實驗中我們 不使用區域搜尋法只運行基因演算法的部分。但在建立初始解過程使用區域搜尋 法的程序仍然會保留,只是在子代產生後不使用區域搜尋法改善子代。而生存選 擇的部分,也不使用不可行解存活率的設定,只使用單純的生存選擇。多樣性的 維持也是不使用的狀況。如此,較能直接觀察到一般凌越關係與限定的凌越關係 的差異。 本研究在 6 種問題集中各選出一個題目以折線圖的方式展示基因演算法演 化過程合法解和不可行解在族群中的存在狀況,這邊選出的問題以代表著該種問 題集中族群內部的狀況。在圖 16 和圖 17 中 DNRDP 代表使用一般凌越關係, DNRF 代表使用限定的凌越關係,以下這兩符號若還有出現也代表相同意思。圖 中縱軸表個體的數量,橫軸代表演化代數。. 43.
(52) 第四章實驗數據與效能評比. 圖 16 族群內不可行解和合法解的個體數量趨勢圖(1/2). 44.
(53) 第四章實驗數據與效能評比. 圖 17 族群內不可行解和合法解的個體數量趨勢圖(2/2). 由此圖表可以見到在大部分的狀況中一般凌越關係與限定的凌越關係皆會 使族群裡的個體組成往其中一方集中。一般凌越關係會使族群中個體往不可行解 的方向集中,使得族群皆會充滿不可行解。反之,限定的凌越關係會使族群中個 體往合法解的方向集中,使得族群皆會充滿合法解。由於兩者造成的影響都是相 當迅速就可以使族群內充滿不可行解和合法解。 不過在 C2_2_1 和 R2_2_1 問題中使用一般凌越關係的狀況下,合法解佔有 率並沒有像其他問題的合法解的佔有率降到極低的狀況,仍然有和不可行解的佔 有率相近或甚至可以超過,另外 RC2_2_1 也有這種趨勢發生的情況雖然沒有很 明顯的有高佔有率,這種情況可能和問題的性質有關。在 C2、R2 和 RC2 是同 屬於每個顧客點時間窗寬度大的問題,在這類問題可能是因為找到的合法解容易 成為區域最佳解,所以在生存選擇時區域最佳解就不容易被淘汰,使得合法解的. 45.
(54) 第四章實驗數據與效能評比. 佔有率可以提高。 由於使用限定的凌越關係使得,合法解在族群中的佔有率提高容易使的族群 相似度提高,而不可行解也容易使得族群相似度降低,所以本研究使用族群的平 均相似度觀察兩種凌越關係在族群多樣性方面的影響。. 圖 18 族群平均多樣性趨勢圖. 由圖 18 的比較中可得知使用一般凌越關係在演化的任何時段族群內的相 似度都是偏低的狀況。當族群內充滿不可行解時,族群平均相似度是處於較低的 狀態,正代表著族群多樣性過高。這也代表著演算法演化方向過多,使得族群不 容易向單一方向演化,使得演算法較困難演化出我們所期望的解。 而當族群內充滿合法解時,容易使得族群平均相似度是處於較高的狀態,表 示族群容易向單一方向演化。但也因此容易使喪失演化動力,所以本研究使用的 生存選擇並引入不可行解存活率的策略。 為此我們需要比較兩者之間解的品質,而我們也將兩種凌越關係都搭配使用,. 46.
(55) 第四章實驗數據與效能評比. 本研究提出的生存選擇並引入不可行解存活率的策略,在此項實驗中,我們先將 不可行解存活率設為 0.5。在此使用的效能評比方式採用每類問題的平均車輛數 和平均行駛距離。在表格 1 之中 S 代表使用沒有引入不可行解存活率的生存選 擇,RS 代表使用有引入不可行解存活率的生存選擇。 表格 1 使用不同的凌越關係與生存選擇之解品質的比較. Parameters. Instances. C1. C2. R1. R2. RC1. RC2. 23.1. 7. 20.1. 6.7. 20.5. 4.9. 5145.933. 2354.446. 5513.676. 2616.974. 4870.902. 3318.514. 23.1. 7.2. 20.3. 4.4. 20.7. 5.3. 4098.582. 2612.977. 4965.839. 3689.891. 4195.346. 3236.358. 23.1. 7.1. 19.6. 4.2. 20.2. 5. 4924.725. 2369.999. 5818.892. 3470.857. 5059.192. 3133.96. 22.5. 6.9. 20.2. 4.4. 20.4. 5.1. 4274.55. 2396.855. 5192.203. 3334.494. 4476.04. 3103.515. S+DNRDP. S+DNRF. RS+DNDP. RS+DNRF. 在表格 1 之中可以發現到在上方沒有引入不可行解存活率的生存選擇的兩 種凌越關係在解的品質都互有領先,C1、R1、RC1 和 RC2 是使用限定凌越關係 的解在總距離表現比較好,有部分問題總路線數方面雖然品質稍差,但是差距也 都小於 0.5,不過在 C2 和 R2 問題的表現就差勁許多,這可能是因為限定凌越關 係的族群多樣性不足造成無法發現較多的可探索路徑所導致。 表格 1 下方有引入不可行解存活率的生存選擇的兩種凌越關係在解的品質 比較。在使用一般凌越關係的方式即使在引入不可行解存活率的生存選擇後和使 用原初的生存選擇的解品質並沒有太大差距。而使用限定的凌越關係的方式在引. 47.
(56) 第四章實驗數據與效能評比. 入不可行解存活率的生存選擇後解的品質是上升的,在總距離方面 C2、R2、RC2 有較多的進步,在總路線數方面 C1 是有較多的提升,不過在 R1 和 RC1 的總路 線數則是稍稍退步。 因為使用限定的凌越關係和引入不可行解存活率的生存選擇的方式,有機會 提升解的品質所以採用這兩種策略引入本研究至提出的文化基因演算法。. 4.6.2 不可行解存活率實驗參數設定結果比較 由於從上個實驗得知使用限定的凌越關係對於族群演化,會使得族群平均相 似度是處於較高的狀態,容易使得演化喪失動力,無法持續更新目前的解的品質。 為此本研究使用的生存選擇並引入不可行解存活率的策略,用此方式維持族群的 多樣性保持演化動力。因此如何設定不可行解存活率(rirs )變成是一重要課題。 為此本研究嘗試不同的不可行解存活率(rirs)設定進行實驗,用以挑選較好的 不可行解存活率。本實驗設計使用完整的本研究提出的文化基因演算法,但是使 用不同的不可行解存活率(rirs),分別為 0、0.25、0.5、0.75、1。本實驗的效能評 比方式採用每類問題的平均車輛數和平均行駛距離。. 48.
(57) 第四章實驗數據與效能評比. 表格 2 各種不可行解存活率設定比較(每個欄位中,上方為總路線數,下方為總距離). Instances C1. C2. R1. R2. RC1. RC2. 20. 6.2. 19.4. 4.4. 19.2. 5.1. 2962.72. 2039.72. 3988.4. 3094.27. 3525.25. 2592.77. 19.8. 6.1. 19.1. 4.4. 19.3. 5.1. 2894.71. 2036.96. 4088.3. 3112.88. 3463.52. 2634.86. 19.9. 6.2. 19.2. 4.3. 19.2. 5.2. 2909. 1955.72. 4002.71. 3041.44. 3465.72. 2591.39. 20.3. 6.8. 19.6. 4.4. 19.2. 5.1. 2901.96. 1981.583. 4134.64. 3239.62. 3526.83. 2776.29. 23.2. 8.2. 20.7. 6.2. 20.7. 6.5. 4171.62. 3619.94. 4776.6. 4541.1. 4121.5. 3646.86. 不可行解存活率. 0. 0.25. 0.5. 0.75. 1. 由上表可以看出不可行解存活率(rirs)在設定為 0.5 的時候在縮短總距離有較 佳的表現,代表當族群內合法解和不可行解大約各佔一半時。不可行解存活率(rirs) 在設定為 0.25 在減少總路線有較佳的表現。的由於這個數值在於一般直覺上認 為這不可行解存活率的數值稍大,所以在此對於親代選擇造成的影響進行分析, 由於本研究使用限定的凌越關係進行適應度的計算,本研究又使用 2-tournament。 所以,限定的凌越關係會影響到親代的機率,進而影響到不可行解被選擇為親代 的參與演化的機率。在考慮到以上因素後不可行解被選擇進入親代的機率(. ). 如下: (41) 為合法解在族群中的數目,. 為不可行解在族群中的數目。若依照此機. 率計算當 rirs 在設定為 0.5 的時候,不可行解被選擇進入親代的機率為 0.4375。 49.
(58) 第四章實驗數據與效能評比. 當 rirs 在設定為 0.25 的時候,不可行解被選擇進入親代的機率為 0.121。,因此 當 rirs 愈低時,. 降低的也愈快使得不可行解非常困難才能參與演化。故本研. 究選擇將 rirs 設為 0.5 作為縮短總距離的不可行解存活率的參數,而將 rirs 設為 0.25 作為減少總路線數的不可行解存活率的參數。. 4.6.3 最佳結果比較 在此本研究將會比較使用本研究提出的演算法與 Vidal 等人(2013)所提出的 HGSADC 與蒐集到的目前已知最佳解(Best Known)的效能進行比較。本實驗的效 能評比方式採用每類問題的平均車輛數和平均行駛距離。 表格 3 最佳結果比較(每個欄位中,上方為總路線數,下方為總距離) Instances C1. C2. R1. R2. RC1. RC2. 18.9. 6. 18.2. 4. 18. 4.3. 2718.41. 1831.59. 3611.86. 2929.41. 3176.33. 2535.88. 18.9. 6. 18.2. 4. 18. 4.3. 2718.41. 1831.59. 3613.16. 2929.41. 3180.48. 2536.20. Chiang and Hsu (minimal. 18.9. 6. 18.2. 4. 18. 4.3. number of vehicles). 2718.41. 1831.59. 3611.93. 2929.41. 3176.23. 2535.88. Chiang and Hsu(minimal. 19.7. 6.3. 19.0. 5.9. 19.0. 6.5. total distance). 2679.95. 1843.12. 3670.07. 2770.72. 3225.19. 2355.89. Proposed (minimal. 19.8. 6.1. 19.1. 4.3. 19.2. 5.1. number of vehicles). 2894.71. 2036.96. 4088.3. 3041.44. 3465.72. 2634.86. Proposed (minimal total. 20.3. 7. 20.4. 6.9. 19.6. 6.6. distance). 2848.5. 1912.1. 3888.7. 2836.7. 3425.22. 2472.64. Algorithms. Best Known. Vidal et al. (2013). 由上表可得知,本研究提出的文化基因演算法大部分都差於比較對象的結果。 在減少車輛方面雖然實驗結果與比較對象差距較小,但是減少車輛數的困難度相. 50.
Outline
相關文件
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
本論文之目的,便是以 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 轉換
此外,由文獻回顧(詳第二章)可知,實務的車輛配送路線排程可藉由車 輛路線問題(Vehicle Routing
This paper formulates the above situation to the Multi-temperature Refrigerated Container Vehicle Routing Problem (MRCVRP), and proposes a two-stage heuristic which consists of
Abstract: This paper presents a meta-heuristic, which is based on the Threshold Accepting combined with modified Nearest Neighbor and Exchange procedures, to solve the Vehicle
針對上述問題及根據其他接駁配送方式,本研究提出「多重補貨點接駁車 輛路線問題 (Multi-Point Feeder Vehicle Routing Problem, MFVRP)」
關鍵字: : : :測驗理論 測驗理論 測驗理論 測驗理論, 基因演算法 基因演算法 基因演算法 基因演算法, Bloom 認知分類.. 認知分類