第 二 章 現況評析及文獻回顧
2.3 相關演算法文獻回顧
START
FIND THE TRANSIT ROUTES ABOUT
ORIGIN
FIND THE TRANSIT ROUTES ABOUT
DESTINATION
FIND STOP-ID OF NEAREST STOP FOR ORIGIN/DESTINATIO
N LIST
COMBINATION POSSIBLE?
ORIGIN ROUTE A=
DESTINATION ROUTE C
SAVE PATH TO FILE YES
YES
END NO
A A
ARE ROUTE A &
ROUTE C REVERSED PATHS A
NO
YES
DO “A" & “C"
INTERSECT(=1)
IS “C"
REVERSED IN DIRECTION
A YES
NO
YES
COMPARE 0 AND 0.25 PATHS
NO
SAVE PATH TO FILE
DO “A" &
“C"HAVE INTERMEDIATE “B"
IN COMMON
A NO
DO “A" &
“B"INTERSECT AT 0 OR 0.25
DO “B" &
“C"INTERSECT AT 0 OR 0.25
YES
YES
SAVE PATH TO FILE NO
NO
IS “B"
REVERSED IN DIRECTION
COMPARE 0 AND PATHS
YES
NO
NO
NO
IS LOOPING PRESENT
YES YES
資 料 來 源 :【10】
圖 2.38 TRPA Algorithm
旅 次 方 案 輸 出 最 重 要 的 項 目 之 一 便 是 旅 行 時 間 , 胡 大 瀛 於 「 交 通 WWW 資訊系統之設計與實例」【4】中,則是分別探討五種不同運具(小 汽 車、航 空、鐵 路、長 途 客 運 及 都 市 公 車 或 客 運)產生旅次方案之演算 邏 輯 , 其 演 算 法 流 程(圖 2.39)當中,長途客運及市區公車之最短路徑 選 擇 以 Dijkstra algorithm 解決旅行時間計算問題,透過最短路徑距離 的 產 生 後 , 除 以 平 均 時 速 便 可 計 算 出 旅 行 時 間 。
W W W
使 用 者 輸 入 資 料
●起 迄 點O ,D
●預 計 出 發 或 到 達 時 間D T ,A T
●運 輸 工 具 選 擇 M
讀 取 資 料
●路 網 資 料
●公 車 路 線 資 料
●路 網 節 點 座 標
S Q L 資 料 庫
小 汽 車 航 空 鐵 路 長 途 客 運 都 市 公 車 或 客 運
將 不 使 用 之 運 具 的 旅 行 時 間 設 為 無 限 大
以D ijk stra a lg o rith m 解 長 途 運 具 之 最 短 旅 行 時 間 路 徑
(O,
-D 或 O -D, )
接 駁 運 具 小 汽 車
接 駁 運 具 大 眾 運 輸
將 小 汽 車 、 航 空 、 鐵 路 、 長 途 客 運 等 節 線 旅 行 時 間 設 為 無 限 大
將 小 汽 車 路 網 之 節 線 旅 行 時 間 改 為 步
行 時 間 ( 轉 換 為 步 行 路 網 ) 將 將 大 眾 運 輸 工
具 之 節 線 旅 行 時 間 設 為 無 限 大 將 將 大 眾 運 輸 工
具 之 節 線 旅 行 時 間 設 為 無 限 大
以Y E N, s K sh o rte st p a th a lg o rith m 解 小 客 車 K 條 最 短 旅
行 時 間 路 徑
以D ijk stra a lg o rith m 解 小 汽 車 最 短 旅 行
時 間 路 徑
以D ijk stra a lg o rith m 解 大 眾 運 輸 最 短 旅 行
時 間 路 徑
結 合 長 途 運 具 與 接 駁 運 具 最 短 旅 行 時 間 運 具
預 計 到 達 或 建 議 出 發 時 間 之 運 算
旅 程 規 劃 結 果 輸 出
資 料 來 源 :【4】
圖 2.39 旅程規劃運算程式流程
由 於 傳 統 的 路 徑 選 擇 上 是 考 量 全 部 的 路 網 , 故 搜 尋 時 間 上 必 須 計 算 整 個 路 網 全 部 的 節 點 , 如 此 便 會 花 費 大 量 的 運 算 時 間 。 曾 敬 文 【5】
於 「 階 層 式 路 網 選 擇 系 統 之 構 建 」 中 將 道 路 分 級 , 透 過 道 路 的 分 級 的
概 念 , 可 針 對 使 用 者 的 需 求 分 析 特 定 的 路 網 即 可 , 以 解 省 大 量 的 運 算 時 間 及 儲 存 空 間 。 汽 車 客 運 會 採 用 之 道 路 路 網 層 級 如 下 :
一、第 一 層 路 網:跨 縣 市 客 運 服 務,即 長 途 國 道 客 運 如 圖 2.40 所示 。
資 料 來 源 :【5】
圖 2.40 第一層路網
二 、 第 二 層 路 網 : 市 區 客 運 服 務 , 即 市 區 公 車 , 如 圖 2.41 所示。
資 料 來 源 :【5】
圖 2.41 第二層路網
不 同 層 級 之 路 網 相 連 的 節 點 為 Gate,分析以長途客運及市區客運 應 用 的 兩 個 層 級 後 ,Gate 於市區客運路線 A 及國道客運路線 B 之最 大 容 忍 步 行 範 圍 內 之 轉 乘 點 範 圍 。
為 了 提 供 使 用 者 有 效 且 正 確 之 步 行 導 引 地 圖 , 故 於 起 點 至 第 一 搭 乘 點 以 及 最 後 搭 乘 點 至 迄 點 間 的 兩 點 間 之 路 徑 規 劃(Route Guidance)
必 須 是 可 連 接 的 路 徑 且 應 為 最 短 路 徑 。
林 煜 晴 【3】 提 及 最 短 路 徑 問 題 基 本 上 分 為 四 類 問 題 :(1)一 對 一 最 短 路 徑(one-to-one shortest path),即路網中特定起點到特定迄點最 短 路 徑;(2)一對多最短路徑(one-to-all shortest path),即一個特定起點 到 網 路 上 其 它 點 的 最 短 路 徑 ;(3) 多 對 多 最 短 路 徑 (all-to-all shortest path),即任兩點的最短路徑;(4)k 條最短路徑(k-shortest path),即找 第 一 條 、 第 二 條 至 第 k 條的最短路徑。
在 一 對 一 及 一 對 多 最 短 路 徑 演 算 法 當 中,以 Heuristic A*演算法以 及 Dijkstra 演算法最具代表性,以下便針對這兩種演算法加以說明。
一 、Heuristic A*演算法
動 態 規 劃 法 對 於 道 路 分 布 均 勻 之 情 況 因 觀 測 點 之 擴 散 幾 乎 近 圓 形 , 相 對 於 終 點 處 的 擴 散 區 域 對 最 佳 路 徑 的 產 生 大 都 沒 有 幫 助 , 所 以 在 計 算 時 會 浪 費 許 多 時 間 ; 而 貪 心 法 則 是 以 人 類 的 思 考 方 式 運 算 , 在 不 知 走 哪 一 條 路 為 最 短 路 徑 的 情 況 下 , 通 常 會 選 擇 朝 最 接 近 終 點 的 路 走,但 是 貪 心 法 則 所 產 生 的 路 徑 經 常 非 最 短 路 徑。舉 一 最 簡 單 的 例 子 來 看,如 圖 2.42 有 A、B、C、D 四地,若 要 從A 地到 D 地明顯要走 A-B-D 最近,但若使用貪心法則(Greedy Algorithm),因為 h(b)>h(c),所以搜尋出來的路徑卻會是 A-C-D。
資 料 來 源 :【5】
圖 2.42 四個城市簡易路網圖
在 此 狀 況 下 ,A*演 算 法 應 蘊 而 生 , A*演 算 法 可 說 是 動 態 規 劃 與 貪 心 法 則 的 綜 合 體 , 此 演 算 法 運 運 一 函 數 f
( )
n ,( )
n g( ) ( )
n h nf = + 。 g
( )
n 是 從 起 點 到 點 n 的最短路徑,h( )
n 的 定 義是 從 節 點 n 到目標點最低成本的估計值,所以 f
( )
n 等 於 從 起 點 通 過 點 n 到目標點最低成本的估計值。根據前述定義,A*搜尋法可 以 說 是 一 種 最 佳 化 的 搜 尋 方 法,同 時 所 找 出 的 路 徑 也 將 是 成 本 最 小 的 。二 、Dijkstra 演算法
求 解 最 短 路 徑 問 題 最 早 也 最 常 被 運 用 到 各 個 領 域 的 是 Dijkstra 演 算 法 , 這 個 方 法 的 基 本 概 念 是給 節 點 一 個 暫 時 性 標 記 (Label),這個標號代表由起點到此節點路徑的成本,這些標號也 將 隨 著 重 複 的 演 算 步 驟 而 修 正 , 每一 個 循 環 都 有 一 個 暫 時 性 的 標 號 轉 換 成 永 久 性 標 號 。 永 久 性 標 號及 代 表 由 起 點 到 此 點 的 最 短 路 徑 長 度 。 以 下 將 說 明 其 演 算 法 及 步 驟 :
G:是一個以陣列 C=[Cij]為路徑成本的網路。
X:為其所有點的集合。
S:Start。
T:Terminal。
A(S):所有從 S 點出發可以到達的點集合,
T
∈A
(S)。 暫時性標號:代表由起點S 到此節點路徑的長度上界。永久性標號:代表由起點S 到此節點的最短路徑長度(最低成本)。
所謂最短路徑問題就是要找出從起點S 到終點 T 的最短路徑,其中 S、
X T
∈ 。步驟一:令L(Xi)為 Xi 的標號,給起點 S 永久標號且 L(S) = 0,給所有 不等於S 的 Xi 一個暫時性標號,且 L(Xi) = ∞,令 P = S,Γ(P) 為點P 以一個路段(Arc)相連的所有點集合。
步驟二:改變標號值,對所有屬於Γ(P)且具暫時性標號的 Xi,更新其 標號為:L(Xi) = min[L(Xi),L(P)+C (P,Xi)] (方程式 1)
步驟三:對所有暫時性標號找出L(X) = min[L(Xi)]的 Xi。
步驟四:定Xi 的標號為永久性的,且令 P = Xi。
步驟五:如果P=T,則此即為所求、如果 P≠T,則重複從步驟二開始。