1 / 47

班級:碩研資管一甲 學號: MA 2 9 0 1 1 0 姓名 : 陳 靜 宜

班級:碩研資管一甲 學號: MA 2 9 0 1 1 0 姓名 : 陳 靜 宜. 國立成功大學資訊管理研究所碩士論文 考量 目標卡路里消耗量之自行車 騎乘路線規畫問題 Biking Route Planning Based On Targert Calorie Comsumption. 第一章 . 緒論. 近年來單車運動人口呈現顯著的成長,各地方對於騎乘單車的相關公共設 施建設亦逐漸增加,加上大眾健康觀念及環保意識的提升,騎乘單車已逐漸 成為 主流運動之一 。若 可根據運動者的健身目的,協助規劃出符合運動者需求之 騎乘 路線,即可造福眾多的單車族群 。

rashad
Download Presentation

班級:碩研資管一甲 學號: MA 2 9 0 1 1 0 姓名 : 陳 靜 宜

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 班級:碩研資管一甲 學號:MA 2 9 0 1 1 0 姓名: 陳 靜 宜 國立成功大學資訊管理研究所碩士論文考量目標卡路里消耗量之自行車騎乘路線規畫問題Biking Route Planning Based On Targert Calorie Comsumption

  2. 第一章 緒論

  3. 近年來單車運動人口呈現顯著的成長,各地方對於騎乘單車的相關公共設施建設亦逐漸增加,加上大眾健康觀念及環保意識的提升,騎乘單車已逐漸成為主流運動之一。若可根據運動者的健身目的,協助規劃出符合運動者需求之騎乘路線,即可造福眾多的單車族群。近年來單車運動人口呈現顯著的成長,各地方對於騎乘單車的相關公共設施建設亦逐漸增加,加上大眾健康觀念及環保意識的提升,騎乘單車已逐漸成為主流運動之一。若可根據運動者的健身目的,協助規劃出符合運動者需求之騎乘路線,即可造福眾多的單車族群。 在過去的文獻中,我們發現直至目前為止,無論在學術或商業產品之應用上,大部分的路線規劃問題或產品皆是以汽車為主並輔以地理資訊系統(GIS)的資料來估算路線的連結方式,且大多考量最短距離或時間作為主要的路線規劃目標;然而這些文獻或產品其實不甚適用於個人休閒運動之路線規劃(如騎乘單車、慢跑、溜直排輪等),因為這類個人健身運動之路線,大部分是以路線環境在足夠安全及運動時間足夠充裕的假設前提下,以能達成預期運動健身效果(如卡路里消耗量)為目標,諸如沿線風景優美程度或經過某些特殊景點等其它需求才是次要的考量因素。 1.1研究動機

  4. 1.2研究目的 本研究問題之目的即為找尋一條最安全(最不危險),且滿足使用者目標卡路里消耗量範圍之騎乘路線。在問題的模式中,我們以最小化路線危險程度為目標式,並加入目標卡路里消耗量範圍作為限制式。 此外,為符合部分騎乘者實際狀況中不同種類型之路線需求,本研究亦將針對二類不同的騎乘路線問題:簡單路徑(simple path)及迴圈路徑(circuit route)作探討。其中,簡單路徑問題為尋找不經過相同的節線(路段)和節點(路口)的路徑問題;而迴圈路徑問題則是尋找起訖點相同之路線問題。

  5. 1.3研究範圍與限制 在本研究中,對網路圖訂有以下的假設和限制: • 假設網路圖中不存在有自我迴圈(self-loop)。 • 節線上之危險程度值及卡路里消耗量皆為非負整數。 • 網路圖結構不會於求解過程中受到改變,即為固定之網路圖。 至於二類研究問題部分,則有以下之假設: 簡單路徑問題: •網路圖中的每條節線最多只能經過一次。 •網路圖中的每個節點最多只能經過一次。 迴圈路徑問題: 1. 尤拉子圖 • 網路圖中的每條節線最多只能經過一次。 • 網路圖中的每個節點的 in-degree 與 out-degree 皆相同(尤拉性質)。 2. 一般迴圈 • 網路圖中的每條節線最多能經過 k 次。 • 網路圖中的每個節點的進入次數與出去次數皆相同

  6. 1.4論文架構

  7. 第二章 文獻回顧

  8. 2.1道路危險程度的推估方法 1. 肇事次數法: 此方法之概念為計算路段或路口在一定時間內發生交通事故的次數,藉由發生次數的多寡作為其危險程度之判定。 2. 肇事率法: 利用社經或道路建設資料為基礎,此種方式計算所得之肇事率,較屬於評估個人。 在道路上所面臨之一般性風險另一則是以旅行量資料為基礎,使用此資料來計算之概念是以旅行量作為個人曝光於潛在事故狀況中的一種量測值。 公式:曝光量 = AADV × Days × LL AADV :肇事地點每日平均交通量, Days:天數, LL:線段全長 肇事率的計算方法,由於考量到交通流量之因素,因此一般認為此方法 多少有反應出道路交通事故與流量間之關係,即在評估道路潛在危險時能降低不 同交通流量差異所造成的影響,使獲得之結果更為接近事實。 公式:肇事率 = 肇事次數 / 曝光量 曝光量:路口部分改採用交通流量 × 時間

  9. 一般來說,節點即代表現實路網的路口,通常進入到路口後接著便是從路口移動出去,而通常能移動出去之道路必為與路口相連且不逆向的路段,根據此概念我們便可將節點上的風險值移加到從節點出去的節線上面。一般來說,節點即代表現實路網的路口,通常進入到路口後接著便是從路口移動出去,而通常能移動出去之道路必為與路口相連且不逆向的路段,根據此概念我們便可將節點上的風險值移加到從節點出去的節線上面。 圖 2.1(a) 為一般計算風險值後的網路圖,轉換的方式首先便是將節點上的風險值加到從該節點出去的節線(outgoing arc),接著再將節點上風險值刪去,即節點上將不存在有風險值(如圖 2.1(b)),最後節線上之風險值則變為節點的風險值與該節線原來的風險值加總。

  10. 一般在騎乘自行車時其受力情形會如圖 2.2所示,而各路段的實際騎乘速度可能會隨騎乘者當下的喜好有所不同,如此會造成卡路里消耗量難以事先預估,導致無法達到預先規劃路徑的目的。 1.假設騎乘者施予自行車的平行施力會等於地面摩擦力、風阻力和重力引發之平行阻力的合力,即式 (2.3)。 2.由於地面摩擦力、風阻力和重力所引發之平行阻力會分別受到重力與速度之影響, 因此可歸納出此三作用力之計算方法,如式 (2.4)-(2.6)。 2.2卡路里消耗量的推估方法

  11. 至於風向對風阻大小的影響部分,由於每條路段所受的風阻大小取決於騎乘方向與目前風向所夾之角度,因此亦需考量到順風與逆風造成的正向助力與反向阻力之差異。至於風向對風阻大小的影響部分,由於每條路段所受的風阻大小取決於騎乘方向與目前風向所夾之角度,因此亦需考量到順風與逆風造成的正向助力與反向阻力之差異。 在靜力學中,有時需求取兩直線間的夾角,或求取某力與某一直線互相平行和垂直的分力。而在三維空間中,力的投影量則必須利用向量內積(inner product)方式來計算(如圖 2.3所示),因此我們可利用風向在騎乘方向的向量投影來計算該風向所造成之風阻力。

  12. 2.3具額外限制的最短路徑問題 拉氏釋限法為數學規劃中的一個技巧,主要針對某些較困難的限制式賦予拉氏乘數(Lagrangian Multiplier),並將此限制式「放鬆」至目標函式中,藉以簡化原問題來求得其極小化下限值,接著經由一連串的迭代程序修正拉氏乘數,直至收斂至最佳的拉氏乘數,即可求得原問題之解,此技巧已被廣泛的應用於求解整數規劃或具額外限制式的網路最佳化問題。針對求解 CSP 而言,以拉氏釋限法對原問題之額外限制式加以釋限後,原問題可被轉換為單純的最短路徑問題,在沒有負迴圈的情況下,利用一般的最短路徑演算法即可求解。

  13. 2.4前 K 短路徑演算法 KSP 演算法常被用在模型適合度分析、敏感度分析、求取多重可行解及具有額外求解限制的路徑選擇問題 (Eppstein, 1999),因此亦可將其應用於求解本研究的第一類問題。 KSP 演算法根據不同應用領域之網路結構及不同的路徑定義又可分為:1.簡單路徑(simple path)2.可含迴圈路徑(walk) 2.4.1前 K 短簡單路徑演算法之相關文獻 在眾多前 K 短簡單路徑演算法中,最常被提到且改良的為 Yen(1971) 提出之演算法,該演算法在 n 個節點的網路圖中求得前 K 短路徑的複雜度為 O(kn3 ) 。 2.4.3前 K 短可含迴圈路徑演算法之相關文獻 在可經過重複節線與節點之 KSP 演算法文獻中, Shier(1979) 針對此問題,以相同的核心求解概念及不同的節線處理順序,提出一系列的求解演算法,且這 一 系 列 的 方 法 根 據 其 特 性 皆 有 其 優 劣 及 不 同 的 適 用 情 況 。

  14. 2.5車輛途程問題相關文獻 網路型式部分有考慮到有方向性、無方向性或是混合性等,也有考慮單一起點或多個起點;需求設置部分則有考慮設置到節點或節線上。在過去文獻中提出的最基本車輛途程問題為具有容量限制的車輛途程問題(Capacitated Vehicle Routing Problem;CVRP),此問題是在考慮車輛有負載量限制的情況下,找出一條能服務所有顧客需求且成本最小之路線。 2.5.1具有長度限制的車輛途程問題 具有長度限制的車輛途程問題,旨在於一個具非負整數節線長度的網路圖中,找出一條總長度不會超過事先設定的長度上界(假設為 L)且距離為最短的車輛路徑。 2.5.2具有時窗限制的車輛途程問題 1.硬 時 窗: 限 制 車 輛 必 須 在 時 窗 內 到達 2.軟時窗:相較於硬時窗則主要是增加緩衝的空間,即車輛過早或過晚到達改以懲罰值來代替等待及拒絕車輛

  15. 2.6啟發式演算法 演化式演算法中之基因演算法及粒子群演算法,在過去文獻中其求解效能及效率皆有不錯之表現,因此本研究將使用此兩種演算法為基礎,發展能用於求解本研究問題之方法。 2.6.1基因演算法

  16. 2.7小結 KSP 的部份我們則根據是否可含有迴圈來介紹過去學者提出之相關演算法。再來我們針對車輛途程問題作簡單的文獻回顧,其中包含具長度限制的車輛途程問題及具時窗限制的車輛途程問題。最後則介紹啟發式的 GA 及 PSO 演算法之運作概念,並條列出此兩個演算法之流程步驟。

  17. 第三章 具長度限制之簡單路徑規劃問題

  18. 模式建構的主要目的為: 從一有向網路圖中找出一條以節點 s 為起點及節點 t 為訖點之簡單路徑。 每 條 節 線 有 一 類 長 度 rij( 即 道 路 危 險 程 度 ) , 求 得 之 簡 單 路 徑 的 rij總 長(即 r)為最小值。 每條節線另有第二類長度 wij(即卡路里消耗量),限制此 wij的總和(即w)必須在事先給定的範圍區間 [Lb, U b] 內。 3.1模式建構與問題限制

  19. (3.2) 為流量守恆限制式,亦即可將原問題想像成自起點 s 送一單位流量至訖點 t。 (3.3) 限制總卡路里消耗量應在給定的 [Lb, U b]目標範圍內。 (3.4) 限制 xij為 0,1 變數。 (3.5) 為排除子迴圈限制式(subtour elimination constraints;SECs)。 (3.5) 中之左式為組成該子圖 S 中可能的節線個數,右式為該子圖 S 中的節點個數減一。 由於節線為兩個節點所相連,因此節點個數減一即為該相連該子圖最少需要的節線個數,即一覆蓋樹(spanning tree)。 根據覆蓋樹之定義,只要在多加上一條節線其便會組成一個迴圈(即子迴圈),也就是說此限制式之概念便是計算出集合 S 組成覆蓋樹最多需要的節線數,當集合 S 中之節線總數大於此個數便將此集合 S 限制住,根據這樣的機制此限制式便可排除所有可能產生的子迴圈。

  20. 3.2求解演算法 由於本問題可視為一個 CSP 問題,因此首先參考文獻提出改良式的拉氏釋 限法及兩階段的 KSP 演算法來求解此問題,接著亦參考過去文獻中提出之編碼方式,設計出可用於求解具長度限制的簡單路徑問題的 GA 及 PSO 演算法。由於本研究採用的是間接的編碼方式,因此需要輔以解碼方式來轉換原染色體或粒子為一可行解(即簡單路徑)。 3.2.1拉氏釋限法 首 先 構 建 一 具 額 外 限 制 式 的 簡 單 路 徑 問 題 ( 即 CSP 問 題 ) 之 整 數 規 劃 模式,其中式 (3.8)、(3.9) 為卡路里消耗量之上界及下界限制式:

  21. (3.8) 及 式 (3.9) 乘 上 其 對 應 之 拉 氏 乘 數 (Lagrangian Multiplier)µ1 、µ2 ,並放置於目標函式中,即可得到新的目標式(如式 (3.11)),最後再將模式中的式 (3.8) 及式 (3.9) 去掉,即可得如下之新模式: 由於式 (3.8) 及式 (3.9) 為小於等於 0 之不等式,因此式 (3.11) 相當於原目標式加上一個非負整數,故可推得 L(µ) ≤ Z。 透過不斷修正下界的方式使其逐漸逼近原問題之最佳解,亦即可以經由最佳化拉氏問題(式 (3.14))來求得原問題之最佳解。 在本問題中我們使用式 (3.15) 來更新 µ1 、式 (3.16) 來更新 µ2 值及式 (3.17) 來更新 θk值,其中 λk為一純量且其值介於 0 ∼ 2 之間,U 則為 L∗ 的上界值,即目標式未放鬆前的最佳解。

  22. 3.2.2前 K 短簡單路徑演算法 首先我們根據不同長度作參考將其分為以下兩種解法︰ (1)以道路危險程度為主及(2)以卡路里消耗量為主。 以道路危險程度為主的作法為先求出前 K 條危險程度最低之路徑,再由低至高檢驗其卡路里消耗量是否符合限制之範圍,若能通過檢驗即為可行解;反之,則為不可行解。若以卡路里消耗量為主,則是先找出卡路里消耗量最低的前 K 條路徑,再將位於限制範圍之間的路徑挑出來,並從中找出危險程度最低之最佳解。 共通點為可設定要尋找幾條危險程度低又符合卡路里範圍之路徑,比起求解整數規劃模式及 LR 較具有多種選擇之優勢;而不同之處則是前者在找尋單一或少數幾個最佳解時,找到後即可停止,因此求解速度較快;但後者則是先將所有可行解都挑選出來,再透過排序來得到最佳解,因此於求取大量最佳解時會較有效率。

  23. 3.2.3基因演算法 使用基因演算法求解問題,最重要的部分是染色體的編碼方式、重組染色體的方法及適應函式(fitness function)的選擇,因此我們參考 Gen, Cheng, andWang(1997) 及 Lin and Gen(2009) 提出專屬的編碼方式、解碼演算法及交配和突變方法。

  24. 3.2.3.1染色體的編碼及解碼方法 解碼染色體的演算法步驟如下所示: Step 1: (Initialization) 初始化 V = s, p = s, W = 0, R = 0,並設置 f [s] = 1。 Step 2: (Termination test) 若是到達訖點 t 或找不到節點移動,則到 Step 4; 否則到 Step 3。 Step 3: (Path extension) 從網路圖中找到一個與 p 相鄰、權重最大且 f [k] = 0 的 節 點 k, 然 後 將 其 加 入 V 中 , 且 設 置 p = k、f [k] = 1、R = R + Rpk及W = W + Wpk,並移動到 Step 2。 Step 4: (Complete path) 如果得到的路徑訖點不為 t,則回傳此染色體的解 為不可行解;否則回傳可行解 V 及 W 與 R 值。

  25. 若以圖 3.6的網路圖及染色體為例,透過此 Find-path 演算法可以得到一個 1 − 4 − 5 − 2 − 3 − 6 的 s − t 路徑,如圖 3.7所示。

  26. 3.2.3.2染色體的交配、突變及適應函式 首先找出一交配點 C,接著交換要交配的染色體中交配點 C 以後之基因,然後再各別修正交換後的染色體,使染色體中不存在有相同的權重值,如圖 3.8(a) 所示;而突變的方法則是從單一染色體中任意挑選兩個基因位元做交換,如圖 3.8(b) 所示。適應函式(式 (3.18))部分則參考LR 目標式的概念,將限制式移項並乘上一足夠大的 M 值,再加入目標式中,其中乘上足夠大的 M 值主要在引導染色體能往符合 [Lb, U b] 的方向演進。

  27. 3.2.4粒子群演算法 在粒子群演算法(PSO)中,我們參考 Mohemmed et al.(2008) 使用之以權重為基礎的編碼方式,此編碼相似於 GA 所使用之編碼方式,但由於粒子群演算法中粒子表示為位置的特性,粒子中之權重可以為任何整數,並不需要跟節點編號之區間大小一樣,如圖 3.9所示。 PSO 演算法在更新粒子速度時,會考慮每個粒子過去最好的位置(p best)及 全 部 粒 子 於 過 去 中 表 現 最 好 的 位 置 (g best) 。 舉例 來 說 ,PSO 在 每 一 次 迭代中皆會有一 p best 及 g best,首先使用亂數產生器產生介於 [0, 1] 間的亂數作為p best 及 g best 的影響比例,藉以探索更多解空間。

  28. 3.3前處理方法 一般來說當網路圖的規模愈大時,通常會產生較多的限制式而造成較長的 求解時間。若能事先縮小網路圖之規模,便有可能降低大案例的求解時間,因此有許多學者研究事先將網路圖簡化藉以縮小的方法。網路圖前處理即是將網路圖簡化的一種方法,其概念是透過將不可能存在於可行解中的節點與節線事先予以刪除,藉以縮小網路圖之規模。 3.4有效不等式 當每次求得之解為含有子迴圈之解時,分析此這些不符限制的子迴圈,並將排除這些子迴圈之限制式加入至模式中,持續此流程直至求得之解為一可行解。 3.4.1節點優先權不等式 假設有一給定之網路圖G = (N, A) 及一固定的總長度限制 W ,而節點優先權不等式則如式 (3.20) 所示:

  29. 假設考量之 (i, j) 節線為 (1, 3),以式 (3.19) 來看首先需要找出所有由節點3 出去之節線,即為 (3, 4) 與 (3, t) 節線,接著計算經過節線 (3, 4) 及經過 (3, t) 的路徑長度,經過節線 (3, 4) 之最短 s − t 路徑長度為 3 + 1 + 2 + 3 = 9 > 8,不符合上限 8 的限制;而經過 (3, t) 之最短 s − t 路徑長度為 3 + 1 + 2 = 6 < 8,符合上限值之+限制,因此 Fij = (3, t),即此問題下之節點優先權不等式為 x13 ≤ x3t 。 再加入此限制式後,可在求解過程中引導經過節線 (1, 3) 之解,若要求得可行解一定要再經過節線 (3, t),藉以避免走過其它不可行節線而加快其求解速度。

  30. 3.4.2不等式的加入機制 然而當網路圖規模較大時,原本的模式中可能已經包含許多限制式,若再加入有效不等式將可能大幅增加整數規劃模式中之限制式個數,因此接下來將說明於求解過程中逐一加入此類不等式之方法,其概念為偵測到有被違反之有效不等式後,再將其加入求解模式中。 3.5數值測試與比較 1. 系統:Microsoft Windows XP Professional Version 2002 Service Pack3。 2. 電腦:Inter(R) Core(TM) 2 Quad CPU 2.34GHz, 2.33Ghz,3.64GB 的 RAM。 3. 整數規劃求解軟體:ILOG CPLEX 9.1。 4. 程式設計工具:Microsoft Visual C++ 2003 3.5.1模式求解與演算法之比較 王逸琳、賴致豪、尹珮瑜、劉家瑜及李翌瑄(2009)根據其數值結果提出LR CPLEX 的求解方法較無法於短時間內求得一解,主要是因為其使用 CPLEX求解釋限後的模式需要加入排除子迴圈限制式,造成其在求解釋限後的模式便花費不少時間,使得 LR 法每一次迭代的求解效率不佳,導致 LR CPLEX 演算法整體變得相當沒有效率。

  31. 3.5.2前處理對求解效率之影響 在前處理測試部分,首先我們使用 3.3節介紹的 AAN preprocessing 前處理演算法和事先設置好的起訖點及卡路里限制來縮減網路,接著用整數規劃模式求解「無前處理」及「有前處理」的網路圖,並比較其求解之效率。 3.5.3有效不等式對求解效率之影響 從 表 3.19− 表 3.22中 我 們 可 以 觀 察到,加入此類的有效不等式不一定會加快求解速度,且在某些案例中甚至出現求解時間較長之情況,其主要原因應是由於在求解前需要先將所有有效不等式產生出來,因此若網路圖稍大,則產生有效不等式的時間便會影響到總求解時間。

  32. 第四章 具長度限制之迴圈路徑規劃問題

  33. 4.1尤拉子圖問題 本節探討之問題為找出一 r 的總長度為最小、 w 總長度要在給定之目標範圍內,並經過某一節點 s 之尤拉子圖路徑。首先我們依據研究的目的構建出一整數規劃模式,接著提出修改的排除獨立子迴圈限制式及討論此模式中獨立子迴圈限制式對求解過程造成之影響,最後則針對前處理及數值測試部分作討論。 4.1.1模式建構與問題限制 在本問題中,模式建構的主要目的為: 從一有向網路圖中找出一個尤拉子圖路徑,其不限制節點或節線必須要完全被經過,只需要滿足限制條件及必須要經過某一個作為起訖點的 s 節點。 每 條 節 線 有 一 類 長 度 rij( 即 道 路 危 險 程 度 ) , 求 得 之 尤 拉 迴 圈 的 rij總 長(即 r )為最小值。 每條節線另有第二類長度 wij(即卡路里消耗量),限制此 wij的總和(即 w)必須在事先給定的範圍區間 [Lb, U b] 內。

  34. 4.1.2排除獨立子迴圈之討論 以圖 4.1(b) 來看,假設圖 4.1(b) 中子迴圈的節點集合為 P ,而子迴圈以外之節點為 P 。若使用式 (4.7),由於該子迴圈擁有四條節線,因此可以得到4> 4 − 1 = 3 的結果,其並不符合限制式,所以在實際求解中式 (4.7) 會限制住圖 4.1(b) 中之子迴圈,而求得如圖 4.1(a) 之解(即不包含子迴圈 P 之網路);反之,若以式 (4.6) 來求解(假設 M 值為 100),由於該子迴圈有一條節線連出P ,還有另一條節線從 P 連進來,即i∈P,j∈P(xij+ xji ) = (1 + 1) ,因此可得到4 − 100(1 + 1) = −196 ≤ 3 的合理結果,因此式 (4.6) 於實際求解中可能求解如圖4.1(b) 之解。

  35. 4.1.3求解演算法 求解演算法的部分將分別介紹我們發展的基因演算法及粒子群演算法。 提出一個使用二元(binary)編碼方式的基因演算法(GA-I),其編碼方式的 0 與 1 表示該節線是否被選取,此方法之概念直覺且容易瞭解。 第二個基因演算法(GA-II)使用變動長度染色體的表現方式,其概念為直接將染色體表示為一個迴圈路徑。 雖然每個染色體可能呈現不同長度,且迭代過程中同一染色體的長度亦會隨之變動,但透過此變動長度的染色體編碼方式,可避免二元編碼的轉換步驟。 4.1.3.1基因演算法一(GA-I) 第一個基因演算法我們使用二元的編碼方式,即當該節線存在於可行的迴圈路徑時則設為 1;反之將其設置為 0。首先我們說明染色體的編碼方式,接著考量二元編碼方式之特性提出適用的交配及突變機制,最後則針對此問題的適應函式作討論。

  36. (1). 染色體編碼 在此編碼方式下,可將每一條染色體對應到一個尤拉子圖( 或是一個迴圈 )。 舉例來說,若網路圖中存在有一個 A − B − C − F − E − B − A的尤拉子圖,該子圖將分別對應到 1, 2, 10, 14, 7, 3 的節線編號,因此染色體中這些位置的基因位元之值皆設為 1,其它位置的基因位元則設為 0,如圖4.2所示。 (2). 染色體的交配與突變 常見用於二元編碼方式的交配方法有:單點交配(one-point crossover)、兩點交配(two-point crossover)和均勻交配(uniform crossover)等,但這些方法皆無法直接應用於本基因演算法上,主要是由於這些方法是以隨機選取的方式挑選基因位元做交換,無法確定在經過交配後得到之新染色體是否仍可為一連通解。 為了確保交配後之染色體仍可為一連通解,我們提出新的染色體交配方法,用以確保在交配過後仍可為一連通解。

  37. (3). 適應函式 當適應函式值愈大時,表示染色體生存能力愈佳;反之,則容易被淘汰。此外,由於本研究為一個最小化的問題,因此將適應函式值以倒數的方式來使用。 4.1.3.2基因演算法二(GA-II) 針對染色體的編碼提出說明,接著針對此編碼方式之交配與突變方法作討論。由於此 GA-II 是改良於 GA-I 的方法,因此在 GA-II 中亦使用相同之適應函式來評估染色體的好壞。 (1). 染色體編碼 直接以路徑作為染色體的概念,將染色體直接用來表示一個尤拉子圖(如圖 4.6),即使用此方法可免除一來一往的轉換過程,亦能降低處理染色體之複雜度。

  38. (2). 染色體的交配與突變 O1 的尤拉子圖為 A − B − C −F − E − D − A,隨機從尤拉子圖中挑選一個 B − C path(即 B− C),接著從原本網路圖中找尋另一條 B − C path(即 B − E − F − C),然後用 B − E − F − C 取代 B − C 即可得到一個新的染色體 O1 (A − B − E − F − C − F − E − D − A),如圖 4.8所示。 4.1.3.3基因演算法三(GA-III) GA-III 染色體的編碼方式使用的是以權重為基礎的編碼方式,由於此編碼方式為間接的編碼方式,因此將針對此編碼方式提出專屬的解碼演算法,接著則討論此編碼方式的交配與突變之方法。此外,GA-III 亦使用相同之適應函式。

  39. (1). 染色體編碼 給予權重之對象為節線而不是節點(如圖 4.9),主要是因為若仍然以節點權重來編碼,將不易解碼求得到一尤拉子圖。 (2). 染色體的解碼方法 若以圖 4.9的網路圖及染色體當例子,並假設卡路里消耗量的限制為 650, 750],透過 Find-circuit 演算法可得到一為 A − B − E − D − E − B − A 的尤拉子圖路徑(圖 4.10)。

  40. 4.1.3.4粒子群演算法 在粒子群演算法部分,因為其演算法之特性較適合處理連續型的數值,所 以參考以權重為基礎的編碼方式,並將其修改用於求解具長度限制的尤拉子圖路徑規劃問題。 4.1.4前處理方法 此前處理方法與3.3節介紹的方法概念差不多,只是加入另一個能更有效刪除節線及節點的假設,其假設為在符合限制的情況下任意找到一解的路徑長度作為門檻 U ,若在刪除節點及節線的過程中,發現經過某一節點 i、或某一節線 (j, k) 的路徑總長大於 U ,即表示經過節點 i 或節線 (j, k) 之路徑不可能為最佳解,因此可將其刪除掉;若小於 U 則更新門檻 U 之值,再繼續往下檢查是否有可刪除的節點或節線。 4.1.5數值測試與比較 實際測試環境則如下所示: 1. 系統:Microsoft Windows XP Professional Version 2002 Service Pack3。 2. 電腦:Inter(R) Core(TM) 2 Quad CPU 2.34GHz, 2.33Ghz,3.64GB 的 RAM。 3. 整數規劃求解軟體:ILOG CPLEX 9.1。 4. 程式設計工具:Microsoft Visual C++ 2003

  41. 4.2一般迴圈問題 具長度限制的一般迴圈路徑規劃問題為一尤拉子圖的延伸問題,其放鬆尤 拉子圖中只以「有經過」與「沒經過」(二元變數)來表示每條節線的限制。 4.2.1模式建構與問題限制 從一有向網路圖中找出一個迴圈路徑,且不限制節點或節線必須要完全被經過,只需要滿足限制條件及必須要經過某一個作為起訖點的 s 節點。 每條 (i, j) 節線經過的次數最多不能超過 Fij。 每 條 節 線 有 一 類 長 度 rij( 即 道 路 危 險 程 度 ) , 求 得 之 一 般 迴 圈 的 rij總 長(即 r )為最小值。 每條節線另有第二類長度 wij(即卡路里消耗量),限制此 wij的總和(即 w)必須在事先給定的範圍區間 [Lb, U b] 內。 4.2.2粒子群演算法 在啟發式求解演算法之部分,一般迴圈問題將節線改以整數表示,直接使用染色體來表現有節線是否有被經過的 GA-I 及 G-II 演算法便無法用於求解此問題。而 GA-III 或 PSO ES 方法由於使用間接編碼的表現方式,因此只需要針對解碼演算法作修改,即可用於求解此一般迴圈的路徑規劃問題。

  42. 4.3小結 主要分為兩個子主題作討論,首先我們針對每條節線只能經過一次的具長度限制的尤拉子圖路徑規劃問題作探討,其中我們根據其特性構建一整數規劃模式,並針對其特別的排除獨立子迴圈作討論,此外亦設計出其它可行之啟發式演算法。 至於第二個子主題:具長度限制的一般迴圈路徑規劃問題,不同於尤拉子圖路徑規劃問題,其將每條節線只能經過一次的限制放鬆為經過 Fij次。 結果顯示 B&C GC 的求解效率不是很好,許多案 例皆需花費不少的求解時間;而 PSO GC 的求解時間則呈現較為穩定的狀態,且其求解品質亦有不錯的表現。

  43. 第五章 結論與未來研究方向

  44. 5.1結論與貢獻 本研究參考三維的地理資料、騎乘者的重量及騎乘速度、自行車的重量、風向與風速等因素,計算出之騎乘該路段卡路里消耗量,並以最小化路線的危險程度及滿足目標卡路里消耗量之限制,率先提出探討自行車的騎乘路線規劃問題。本論文中我們主要針對最常見的兩類騎乘路線(簡單路徑、迴圈路徑)規劃問題,提出其數學規劃模式與數種求解機制。 5.1.1具長度限制之簡單路徑規劃問題 本研究之第三章主要針對簡單路徑路線作討論,該類型之路線主要在滿足 需要起訖點為不同,且希望不重複經過景點與路段之單車族群。本研究首先參考文獻提出改良式的 KSP 演算法及拉氏釋限法,並設計出其專屬的基因演算法(GA)及粒子群演算法(PSO)。 改良式的 KSP 演算法,雖其皆可 求得最佳解,但當處理規模較大之網路問題時,會因其類似窮舉的求解概念導致求解效率降低。 而前處理的部分,從實測結果中可以發現到,有使用過前處理的網路圖,其在求解時間上幾乎都比沒有使用前處理的網路圖來得快,且在不少案例中之求解時間呈現明顯且頗大的差異;至於我們所使用節點優先權有效不等式,其對於求解之效率在小案例時較沒有明顯的影響,但用於某些求解費時的案例時,即可看到其加速之效應。

  45. 5.1.2具長度限制之迴圈路徑規劃問題 首篇結合目標卡路里消耗量之路線規劃問題相關學術論文。 針對此兩類不同路線(簡單路徑、迴圈路徑)提出對應的整數規劃模式。 於第二類問題中提出符合此問題假設的新排除獨立子迴圈限制式。 提出可用於規劃具長度範圍限制之簡單路徑的改良式 KSP 及 LR 演算法。 提出可用於規劃具長度範圍限制之簡單路徑的 GA 及 PSO 演算法。 提出可用於規劃具長度範圍限制之尤拉子圖路徑的二元編碼 GA 演算法。 提出可用於規劃具長度範圍限制之尤拉子圖的變動長度染色體 GA 演算法。 提出可用於規劃具長度範圍限制之尤拉子圖的權重編碼 GA 及 PSO 演算法。 提出可用於規劃具長度範圍限制之一般迴圈的 PSO 演算法。 嘗試加入有效不等式於具長度限制的簡單路徑整數規劃模式中。 嘗試加入前處理方法於求解簡單路徑及尤拉子圖路徑規劃問題。

  46. 5.2未來研究方向 延伸議題部分,除尤拉子圖可放鬆每一條節線只能經過一次的限制,將其 延伸為一般迴圈問題外,亦可根據其它不同之需求將其對應之限制加入問題定義之中。 5.2.1延伸議題之討論 可含迴圈路徑(walk)規劃問題 環形(ring)路線規劃問題 考量特殊景色的路線規劃問題 考量節點經過次數的一般迴圈路線規劃問題 5.2.2其它可行的求解概念 研究最後提出理論上應可用於求解尤拉子圖路徑規劃問題之方法概念,然而以上的求解方式必須建構在一些假設(譬如 planar graph)上,至於在一般圖形中如何產生及結合基本迴圈等議題,似乎頗具困難度,因此我們亦建議有興趣的學者可繼續朝這個方向思考研究。

More Related