第五章 實例研究與應用
5.2 模化與計算
首先根據資料,依4.1節所述之方法將基隆–新竹段的時刻表模化為max-plus線性系統。 以 下說明模化的過程和考慮的事項。
1. 列車續進限制: 在這個限制中, 原則上應該要知道每列車在站間的最小運轉時間, 但是最 小運轉時間通常要藉由運轉曲線的模擬或多車測試來得到[12], 並不能直接從時刻表中知 道。 由荷蘭的經驗, 時刻表定的運轉時間平均含有7%的餘裕[19], 如果表定的站間運轉時 間為7分鐘, 餘裕大概就是30秒。 考慮到30秒是現階段臺鐵排班時的最小時間單位, 且在 此路段中鮮少有站間運轉時間超過7分鐘,本研究採取較寬容的估計, 假設每列車在每兩 站間運轉時間的餘裕均為30秒, 所以最小運轉時間就是表定時間減去30秒。
2. 列車停站限制: 同樣的, 原則上也應該用最小停站時間, 但是這同樣不能從時刻表中得到,
1依[3]中的運行圖有二十七個車站,其中 「新貨」 旅客列車並不停靠。
表
5.1:臺鐵基隆
–新竹段各車站軌道數資料
而且當列車發生延誤時經常導致列車為了等候旅客上下車使得停站時間增加。 因為在列車 續進限制中已經偏向給予較多餘裕,所以列車停站限制就設定為最小停站時間就是表定的 停站時間,另外如果有停站待避其他列車時則設為3分鐘。
3. 運轉時隔限制: 簡單而言運轉時隔限制可分為三類: 進站時隔、 離站時隔和到開時隔, 由 於是複線運轉, 進站與離站時隔均只要考慮同方向的列車。 研究報告[12]設定同向離站時 隔設定為2.5分鐘, 同向到站時隔設定為3分鐘, 同股道到開時隔則設定為5分鐘。 但是如 果用這個數字去計算就會有許多事件間的餘裕為負值,仔細檢視時刻表後發現實際排班允 許的時隔是比上述數字要小, 因此計算結果就會顯得列車間隔不足。 然而研究報告[12]所 設定的運轉時隔是供排班用, 已經包含了若干餘裕,實際運轉允許的時隔應當比較小一些。
在不知道實際最小運轉時隔的情況下,本研究將上述的值略為減少,設定同向離站時隔為2 分鐘,同向到站時隔為2.5分鐘, 同股道到開時隔則為4分鐘。 特別值得一提的是八堵站的 情況, 因為八堵是縱貫線與宜蘭線的交會站, 兩線的列車分別使用不同的月台和軌道, 實 際的交會點在車站的下行側, 所以在進站與離站時隔的設定上, 上行側縱貫線與宜蘭線的 列車應分開考慮, 而下行側要一起考慮。
4. 站內軌道與月台數限制: 由於軌道配置的關係, 許多站都有上下行共用的軌道, 除了要滿 足個別方向的軌道數限制外, 也要滿足總軌道數的限制。 另外在七堵和樹林有到開線, 以 七堵或樹林為起終點的列車可以不占用正線軌道。 另外由於從時刻表中不能知道列車實際 的運用狀況, 也不知道抵達終點的列車是否會持續占用軌道, 只好假設列車在抵達終點後 5分鐘後即駛離並空出軌道。 雖然臺鐵規定主正線方能辦理列車通過, 不過站間每個方向 只有一軌道, 所以也不會有兩列車同時通過的狀況。 如果發生延誤使得站內的軌道都被前 方列車占用, 在運轉順序不變的前提下, 那麼要通過的列車也要於站內停等, 因此是不是 使用主正線也就不重要了。
5. 禁止列車於同一軌道追越: 因為假設系統為複線運轉, 所以這個限制自然就表現為禁止列 車於站間追越, 沒有問題。
6. 不考慮的限制:
(a) 因為是複線運轉, 當然沒有單線運轉的限制。
(b) 因為不知道列車實際的運用狀況, 因此假設上下行列車間均沒有接續關係。
7. 其他:有些列車是假日的加班車,另外有些則例假日停駛,以致於一週中每天的時刻表都有 一些不同。 但是仔細檢視運行圖時發現除了星期二之外, 其他運行圖都有不合理之處, 大 多是加班的列車於站間追越其他列車以及沒有保持運轉時隔。 不合理的時刻表可能會導致 擬反矩陣不存在, 在計算時餘裕矩陣會有部分的元為 ∞。 因為不考慮運轉整理, 所以本研 究決定以可運行的星期二時刻表進行分析。
在上述的考慮之下, 本研究以 C++ 語言撰寫電腦程式進行計算。 使用 GCC 編譯器及 Dev-C++ 4.9.9.2 開發環境, 在 Windows XPTM SP3 作業系統下執行, 並於編譯時開啟所 有最佳化選項以節省計算時間。 計算的步驟和說明如下:
1. 模化時刻表: 將時刻表中所有的到開事件編號, 然後依4.1節所述的規則確認每個事件間 的限制式,以建立描述這個系統的max-plus矩陣。 本研究分析之時刻表共有316列車,模 化為11932個事件以及30633個限制式。
2. 計算擬反矩陣: 本研究以 Jacobi iteration 計算擬反矩陣。 因為時刻表系統龐大, 所以將 矩陣以稀疏矩陣的方式儲存 (即只存非零元),並採逐列計算的方式以免耗盡記憶體。
3. 求餘裕矩陣和穩定商數: 依定義計算出餘裕矩陣後,利用式(4.6)計算穩定商數。 本研究設 定的初始延誤為5分鐘。
使用的電腦為 Intel R CoreTM 2 Duo E8200, 以及 2GB DDR2 800 的記憶體, 大約耗時 16分鐘, 其中的13分鐘以上都用於計算擬反矩陣。 就靜態的時刻表分析而言完全是可以接受的 時間, 如果要用於動態的運轉整理評估, 應可利用較好的電腦及平行運算來減少計算時間, 對於 更大的系統而言, 實作更有效率的資料結構也是可以考慮的方法。