• 沒有找到結果。

各種到達時間之風險演算法

第三章 研究架構

3.6 各種到達時間之風險演算法

3.4 節以及 3.5 節所提出之演算法雖然能提供最短路徑之旅行時間誤差範 圍,但均未考慮發生機率之問題;然而實際生活中,不論任一條路線其旅行時 間誤差值可能極大,若能提供具體的旅行時間以及發生機率,對旅行者而言將 有相當大的助益。因此本節將加入風險之考量,提出第三個演算法,主要在於 探討在某一時間點從起點出發,可準時於預計時間範圍內到達的機率風險,藉 由機率之參考值可讓旅行者依據其遲到之風險自行選擇出發時間。

以下本節將先定義欲求解之問題,再說明求解方法和演算法架構,最後以 一簡單範例說明。

3.6.1 問題定義

此演算法主要在一個具有方向性之網路,且已知欲出發之時間以及欲選擇 之路徑,探討到達迄點N 的所有可能時間範圍以及其相對應的發生機率問題,

以下簡稱為「A3 演算法」。

3.6.2 求解方法

由於利用反推之演算法無法解決時間範圍所相對應之機率問題,亦即為若 設定預計到達迄點之時間範圍,往回推之計算結果為從出發點會有各種出發時 間範圍,然而每個出發時間範圍到達迄點的時間範圍之機率應互相獨立,無法 合併計算,故此演算法採用正推之方式。此外,標記設定法之時間複雜度優於 標記修正法,因此本演算法主要修正自標記設定法[8],並加入 Miller-Hooks and

Mahmassani [6]第一個演算法之機率概念。求解過程中,對每一節點而言,均 具有一個永久標籤向量,其中每一個標籤均需紀錄兩項資訊,一項提供從該節 點可能準時到達迄點的出發時間範圍,預設值為零,另一項則紀錄從該節點到 達迄點的可能發生機率。此外,需設定 SE list 用來記錄永久標籤被更新的節 點集合,由於本演算法採用反推之計算方式,因此一開始需先將迄點加入至 SE list。

基於此演算法須同時考慮各種旅行時間之情況,因此為避免造成時間複雜 度呈指數型成長,故僅針對單一路徑做探討,且須先得知欲從起點出發之時 間,故計算採用正推之方式,即從起點作為起始點,依設定之路徑順序往後推 算。演算法中的每個步驟均需計算目前節點i 之下游點 j 的每一可能出發時間 範圍和相對應之機率,設為暫時標籤,並且和節點j 目前已存在的永久標籤向 量比較,若有重複的出發時間範圍,則將其相對應之發生機率和暫時標籤加 總,並更新至目前的標籤中,否則即加入至節點j 永久標籤向量;如此反覆計 算直到SE list 為空集合即可求解。

不同於Miller-Hooks and Mahmassani [6]之概念在於本演算法不僅提供最 短路徑之最小旅行時間可能性,並探討此路徑上之所有可能旅行時間以及相對 應之發生可能性;此外,本演算法不侷限於針對最短路徑作討論,而可隨著起 始設定路徑之不同而加以計算,故亦能探討所有路徑之各種可能性。

3.6.3 求解步驟

步驟一:初始化並建立 Scan Eligible List。

設定上午尖峰、下午尖峰以及離峰時段之範圍,令欲從起點 O 出發之時 間為 ,且 = ,其發生機率 。從迄點N 開始計算,並加入 至SE list。

1 1 2

2

nt

O

nt

O

nt

O

p

O

= 1

根據欲選擇之路徑,記錄該路徑中各節點之下游點標籤 ,其中迄點N 的下游點 ,將欲選擇路徑之各節點加入至SE list,list 之順序從

ns

2i

N

ns

N

=

起點O 開始依序加入,最後為迄點 N,因此演算法之計算從起點 O 開始。

1

一節線的時間範圍個數, v 為預設路徑中所經節點之個數。

證明:

在本演算法初始化時,需將預設路徑中的所有節點加入至SE list,任一節 點只有被加入SE list 一次的機會,一旦計算完被移除後,就不可能再加到 SE list,因此假設該路徑的經過節點數為 v,節線數為 v-1,則 SE list 之節點個數 最多為v。

計算SE list任一節點時,未跨越時段之情況下,每一節線的時間範圍個數 為I,整條路徑須計算的節線數為v-1,因此至多須計算 次,如圖3-3 所示,

節點X

Iν1

1紀錄的到達時間範圍個數為 1,從節點X1至X2的節線時間範圍個數為

I,因此到達X2的時間範圍增為I個,至節點X3則增為I2個,依此類推。

圖 3-3 A3 演算法未跨越時段之網路

若需跨越時段,經過分割後最糟情況,每一節線的時間範圍個數會由原 本的I個增加為α個,若從起點至迄點總共跨越時段次數為β,則跨越時段的節 線須紀錄之時間範圍個數為 個,未跨越時段須記錄個數減為 ,如圖 3-4 所示,節點X

α

β Iν−1β

1紀錄的到達時間範圍個數為1,跨越節點X1至X2的節線屬於 不同時段,因此該節線時間範圍個數為α,因此到達X2的時間範圍增為α個,

從節點X2至X3未跨越時段,因此節點X3需記錄到達時間範圍增為Iα個,依此 類推,故得知時間複雜度為Ο(

α

β

I

ν1β)。

X1 ․․․

1

X2

I I I I

XD

X3

Iv-1 I2

I

X1 ․․․

1

X2

I

α α

XD

α X3

αβIv -1-β αI

α

1

圖3-4 A3 演算法含跨越時段之網路

▌ 根據論點8 得知此演算法的時間複雜度過於龐大,因此為減少運算次數,

並且避免不必要的資訊,可先過濾過小的機率值,即不予紀錄機率值太小的時 間範圍;此外,若有重複的時間範圍,則將其可能發生的機率值合併,可有效 減少每個節點所需紀錄的時間範圍個數,如此可避免隨著網路節點數的增加,

造成最後迄點所需紀錄的時間範圍個數顯著的成長。

3.6.5 演算法之範例

測試範例網路同3.4.4 節之網路範例,並以 3.4.4 節所求得之最短路徑 1-

>2->4 作為預設之選擇路徑。欲求解早上八點三十分從起點 1 出發,則到 達迄點4 之各種旅行時間範圍以及相對應之機率問題。以下為方便計算均將時 間顯示轉化成以分鐘為單位表示。

Iteration 1 步驟一:

V = {1,2,4}

A = {a,d}

定義尖離峰時間範圍

上午尖峰時段 = AM 7:30 ~ AM 9:00 = 450 ~ 540 下午尖峰時段 = PM 5:00 ~ PM 7:30 = 1020 ~ 1170 離峰時段 = 一天中尖峰時段以外的時間

起點O = 1

預計出發時間

nt

11 =

nt

12 =AM 8:30 = 510

預計出發時間的機率值

p

1 = 1

步驟四:更新節點標籤

γ

41[1]=540,

γ

42[1]=546.75

536---540 0.056 540---546.75 0.084 1—2—4

540.5---549.429 0.06

540.727---552.375 0.56 543---553.714 0.24 假設在每個時間範圍內的每個時間點之機率為均值分配,將結果以每 15 分鐘為範圍表示,則經過合併簡化後,最後結果可顯示如表3-8。

表3-8 合併到達時間風險之測試結果

路徑 到達時段 相對應機率

536---540 0.056 1—2—4

540---553.714 0.944

相關文件