第三章 研究架構
3.4 可準時抵達目的地之最晚出發時間之分析
3.4.3 求解步驟
步驟一:初始化並建立 Scan Eligible List。
設定上午尖峰、下午尖峰以及離峰時段之範圍,令欲到達迄點 N 之時間 為 ,其他節點出發時間 = -1,其中 i ={1,2,…,N-1},且 ,。
並將迄點N 加入至 SE list。
nt
Nnt
ins
2N= N
步驟二:選擇目前節點。
判斷 SE list 是否為空集合,若是則跳至步驟五;若否,則從 list 集合中選 取第一個節點,令為節點j。
步驟三:建立暫時的標籤ϑi1及ϑi2。
1. 搜尋節點 j 的所有上游點
i
∈Γ−1(j
)(即∀i
( ji
, )∈Α)2. 記錄目前節點 j 為節點 i 的下游點標籤ϑi2。
3. 判斷目前節點 j 所屬時段,並根據節線(i,j)在此時段所相對應的最 小旅行時間
t
1i, j,決定上游點i 之出發時間ϑi1,如式(9)所示。ϑi1=
nt
j-t
i1, j ………(9)4. 判斷ϑi1和
nt
j是否屬於同一時段,若是則跳至步驟四;若否則往下一步驟。
1
論點 3 :若經過一節線
(i,jx)∈A前後屬於不同時段,只有當
11 完整路網(complete graph),則迄點的上游點最多可能包含 v-1 個節點,因此 須將這些節點將入至SE list 中,亦即為第一個 Iteration 結束後 SE list 有 v-1
3.4.5 演算法之範例
本小節將以前述之演算法求解一簡單範例。首先,建立一具有方向性並包含 四個節點之小型網路,如圖3-2,其相關的網路資料見表 3-5。
圖3-2 Miller-Hooks and Mahmassani 演算法範例說明之網路圖[6]
表3-5 範例網路之相關資料
節線 節點 i 節點 j 時段 旅行時間1(機率) 旅行時間2(機率)
上午尖峰 15~20(0.2) 20~25(0.8)
下午尖峰 13~18(0.4) 18~23(0.6)
a 1 2
離峰時段 10~15(0.1) 15~20(0.9)
節線 節點 i 節點 j 時段 旅行時間1(機率) 旅行時間2(機率)
上午尖峰 20~25(0.3) 25~30(0.7)
下午尖峰 12~17(0.4) 17~22(0.6)
b 1 3
離峰時段 7~12(0.8) 12~17(0.2)
上午尖峰 18~23(0.9) 23~28(0.1)
下午尖峰 25~30(0.7) 30~35(0.3)
c 2 3
離峰時段 12~17(0.1) 17~22(0.9)
上午尖峰 11~16(0.7) 16~21(0.3)
下午尖峰 16~21(0.4) 21~26(0.6)
d 2 4
離峰時段 8~13(0.5) 13~18(0.5)
上午尖峰 24~29(0.8) 29~34(0.2)
下午尖峰 15~20(0.6) 20~25(0.4)
e 3 4
離峰時段 11~16(0.1) 16~21(0.9)
求解若欲在早上九點十分前到達節點4,可最晚從節點 1 出發之時間以及 相對應的路徑。此外,以下為方便計算均將時間顯示轉化成以分鐘為單位表 示。計算過程如下:
Iteration 1 步驟一:
V = {1,2,3,4}
A = {a,b,c,d,e}
定義尖離峰時間範圍
上午尖峰時段 = AM 7:30 ~ AM 9:00 = 450 ~ 540 下午尖峰時段 = PM 5:00 ~ PM 7:30 = 1020 ~ 1170 離峰時段 = 一天中尖峰時段以外的時間
迄點N = 4
預計到達迄點時間
nt
4= AM 9:10 = 550預計到達其他節點的時間先設定為一極小值,
nt
i = -1 for i = {1,2,3}令迄點4 的下游點為自己,故ns24 =4 將迄點加入至SE list 中,SE = {4}
步驟二: 從 SE list 取出第一個節點,設為 j = 4,則 SE = {}
步驟三: 對節點 4 而言,其上游點
i ∈ { 2 , 3 }
,依序計算所有上游點的最晚出 發時間,因此先選擇節點2,i = 2,其下游點暫時標籤為ϑ
22 =4。首先判斷
nt
4所屬時段,540 <nt
4= 550 < 1020,故屬於離峰時段節點 2 需經過節線 d 才能到達節點 4,因此根據 所屬時段尋找經過節 線d 所需花費的最小旅行時間 , = - = 550 - 8 = 542
nt
41 1
1
4 ,
t
2ϑ
21nt
4t
2,4判斷
nt
2所屬時段,540 <nt
2= 542 < 1020,故屬於離峰時段nt 和
4nt
2屬於同時段,因此不需改變旅行時間。i = 3
nt
3 =nt
4-t
3,4 = 550 - 11 = 539450 <
nt
3 = 530 < 540,故屬於上午尖峰時段nt 和
4nt
3屬於不同時段,因此需重新計算旅行時間,此時分段的時間點 540Q3,4 =
18 . 11 12
539 -24 540 540
1
550
4 ,
3
= − + × =
t
537.82 12.18
-4 550
,
3 = =
t
1 步驟四:比較出發時間的暫時標記和永久標記,若前者值較大,則需更新至永久標
籤,並將該節點加入至SE list
542 1}
- 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