• 沒有找到結果。

可準時抵達目的地之最早出發時間之分析

第三章 研究架構

3.5 可準時抵達目的地之最早出發時間之分析

nt , 542 max{

nt2 =

ϑ

21 = 2 = = , ns2 =

ϑ

22 =4 ,故 SE = {2}

537.82 1}

-nt , 537.82 max{

nt

3

=

ϑ31

=

3

= =

ns

3

=

ϑ32

= 4

,故SE = {2,3}

依此類推,最後測試結果之路徑為節點1→2→4,在各節點可最晚出發時 間如表3-6。

表3-6 最快到達之最短路徑演算法之範例結果

節點 最晚出發時間 路徑

1 AM 8:48(528) 1→2→4 2 AM 9:02(542) 2→4 3 AM 8:57.82(537.82) 3→4

3.5 可準時抵達目的地之最早出發時間之分析

以本研究時間範圍之概念,最短路徑之旅行時間並非單一值,而是在某時 間範圍內都可能發生,因此除了提供最快之最短路徑外,尚需提供最短路徑之 可能花費最久之旅行時間,對旅行者而言較能掌握其遲到之風險。以下本節首 先定義欲求解之問題,再說明求解方法和演算法架構,最後以簡單範例說明。

3.5.1 問題定義

此演算法主要在一個具有方向性之網路,已知欲到達迄點N 之到達時間,

且已得到最短路徑(見 3.4 節),求解此最短路徑上任一節點可準時到達迄點 N 之可能最早需出發時間之問題,亦即求取最短路徑之旅行時間上界,以下簡 稱為「A2 演算法」。

3.5.2 求解方法

此演算法和3.4 節求解最晚可出發時間演算法觀念相同,除了初始值之設 定以及節線(i,j)之旅行時間設定值不同之外,其他步驟均一致。

3.5.3 求解步驟

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

設定上午尖峰、下午尖峰以及離峰時段。令欲到達迄點 N 之時間為 , = M,其中 ,M 為一極大數。根據 3.4 節 A1 演算 法所求得最短路徑,記錄此路徑上的各節點的上游點標籤 ,其中起點 O 的 ,並且將各節點加入至SE list,list 之順序從迄點開始,依序 加入,最後為起點。因此演算法之計算從迄點N 開始。

nt

N

nt

i

i ⊆ {shortest path}

ns

1i

O ns

1O

=

步驟二:選擇目前節點。

判斷 SE list 是否為空集合,若是則跳至步驟五;若否,則從 list 集合中選 取第一個節點,為節點j。

步驟三:建立暫時標籤 1

4

ϑi

1. 令i=ns1j

2. 判斷目前節點 j 所屬時段,並根據節線(i,j)在此時段所相對應的最 大旅行時間

t

i, j,決定上游點i 之出發時間ϑi1,如式(24)所示。

ϑ

i1 =ntj- ti,j ………..….(24)

3. 判斷η1i

nt

j是否屬於同時段,若是則跳至步驟四;若否則往下一步 驟。

4. 重新計算節線(i,j)之最大旅行時間,則如式(25)

4

證明:

由上可知,本測試範例欲求解之問題為選擇節點1->2->4 之路徑,最 早應從節點1 出發之時間,可保證在早上九點十分前準時到達節點,絕不會遲 到。計算過程如下,此外為方便計算均將時間顯示轉化成以分鐘為單位表示:

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 離峰時段 = 一天中尖峰時段以外的時間

迄點N = 4

預計到達迄點時間

nt

N = AM 9:10 = 550

先設定預計到達其他節點的最早時間為一極大值

nt

i = M = 9999 for i = {1,2}

設定預先選擇路線上所有節點的上游點,因此 ns11 =1,ns12 =1,ns14 =2

將預先選擇路線上的所有節點加入至SE list 中,因此 SE = {4,2,1}

步驟二: 從 SE list 中取出第一個節點,設為 j = 4,則 SE = {2,1}

步驟三:在選擇的路線中,對節點 4 而言,其上游點

i

=ns14 =2

首先判斷

nt

4所屬時段,540 <

nt

4= 550 < 1020,故屬於離峰時段 節點 2 需經過節線 d 才能到達節點 4,因此根據

nt

4所屬時段尋找經過 節線 d 所需花費最久的旅行時間,

ϑ

21 =

nt

4

t

24,4 = 550 - 18 = 532

判斷

ϑ

21所屬時段,450 <

ϑ

21 = 532 < 540 ,故屬於上午尖峰時段

nt

4

ϑ

21屬於不同時段,需重新計算旅行時間

此時分段的時間點Q2,4 =540

18 19.33 532

-21 540 540

4

550

4 ,

2

= − + × =

t

ϑ

21=550-19.33=530.67

步驟四:比較出發時間的暫時標記和永久標記,若前者值較大,則需更新至 永久標籤,nt2 =max{

ϑ

21 =530.67 ,nt2 =9999}=530.67

Iteration 2

步驟二: j = 2, SE = {1}

步驟三: i =1

nt = 530.67 < 540 且

2

nt

2 = 530.67 < 450 ,故屬於上午尖峰時段

1

ϑ

1 =

nt

2

t

14,2 = 530.67 - 25 = 505.67

450 <

ϑ

11 = 505.67 < 540 ,故屬於上午尖峰時段

nt 和

2

ϑ

11屬於同時段,無須重新計算旅行時間

nt = min{505.67 , 9999} = 505.67

1

Iteration 3

步驟二: j = 1, SE = {}

步驟四: SE list 為空集合,故停止演算。

選擇最短路徑為節點 1→2→4,將各節點最早應出發時間之結果與表 3-6 相比,如表 3-7。

表3-7 最慢到達之最短路徑演算法之範例結果

節點 最早出發時間 最晚出發時間 路徑

1 AM 8:25.67(505.67) AM 8:48(528) 1→2→4 2 AM 8:50.67(530.67) AM 9:02(542) 2→4

相關文件