第五章 乘客預約派車系統雛型之開發與測試
第一節 乘客預約派車系統架構
乘客預約派車系統分成兩個部份 ,一個部份為實際運作系統 ,其中包含乘 客預約以及當班司機;另一部份為預約派車系統 ,其中又包含,派車模組與車 輛班表。由於目前沒有真正的乘客進行預約 ,因此實際運作系統部分,將會轉 換成電腦模擬,使用電腦隨機產生需求 ,旅次要求至派車模組並與車輛班表進 行媒合,尋找適合的班次,並回應結果給乘客與進行車輛 派遣之動作,最後由 當班司機進行載客,乘客預約派車系統測試架構如圖 21 與圖 22 所示。
圖 21 乘客預約派車系統測試架構 -實際運作系統
圖 22 乘客預約派車系統測試架構 -電腦模擬
系統開發共分成乘客需求產生 、固定時刻表、產生配對結果、臨時插入點 之時刻表、每輛車載客數、乘客平均等候時間、車輛平均偏離時間七大項 ,並 詳細說明如下:
1. 乘客需求產生
利用 C#語言隨機產生亂數,並以此亂數來決定顧客產生間隔時間 、方向性 以及顧客需求位置站點。分述如下,顧客產生間隔時間假設為指數分配 ,利用 隨機亂數所對應的機率來反推間隔時間,並做適合度檢定,詳見附錄 B;方向 性以機率 0.5 為區隔分辨往捷運亞東醫院站或是往樹林火車站;顧客需求位置站 點取亂數除以站數之餘數 。
2.固定時刻表
利用實際路線距離來算出車輛各站間行駛時間,時速是以每小時 35 公里計 算,且每個站點多加 30 秒上下車時間,共有 13 個固定站點,並累加分鐘數,
得知行駛一圈約為 35 分鐘。下圖為不同班距的時刻表。
49 圖 23 班距 30 分鐘的原始班表
圖 24 班距 20 分鐘的原始班表
50 圖 25 班距 18 分鐘的原始班表
圖 26 班距 15 分鐘的原始班表
3.產生配對結果
派車模組邏輯是利用推估到站時間與乘客需求時間來進行媒合 ,以找到最 符合的班次來進行載客。媒合完成會顯示以下資訊:方向性、顧客需求位置點、
派遣車輛、顧客預計上車時間,若為臨時插入點,則會顯示出插入點的位置 。 4.新增臨時插入點之推估到站時間
共有 3 個臨時站點,若有乘客預約才會繞行經過載客 。臨時站點插入邏輯 是將所有可能的組合列出,如表 14,計算每種組合車輛額外行駛時間 ,且尋找 最符合乘客的需求時間並插入臨時點 ,若有停靠臨時站點,將會影響推估到站 時間,因此產生新的推估到站時間 。
表 14
臨時站點可插入位置點
沙崙國小 溪福里 大觀路
樹林火車站─北極宮 北極宮─溪州公園 沙崙里─亞東醫院
北極宮─溪州公園 溪州停車場─思夢樂廣場 溪州國小─溪崑郵局 金門街─溪州國小 溪崑郵局─活力廣場
5.每輛車載客數
車輛載客數將會影響車輛的型態規劃 ,因此計算出每輛車載客數 ,才能得 以規劃車輛型態。
6.乘客平均等候時間
乘客產生時間點不一定有車輛可以進行載客 ,大部份必須等候,因此 C#語 言撰寫方式為,利用媒合出的顧客預計上車時間減掉乘客產生時間點 ,即為每 位乘客等候時間,進行全部加總再依照人數進行平均,亦即乘客平均等候時間。
7.車輛平均偏離時間
原本行駛一圈為 35 分鐘,但是若有停靠臨時站點,將會延長車輛服務時間,
因此 C#語言撰寫方式為,利用有臨時插入點之時刻表的終點時間扣除固定時刻 表的終點時間,就能算出每輛車的偏離時間 ,意指每輛車因為繞行至臨時點 , 車輛額外的行車時間,最後進行全部加總再依照班次數進行平均 ,亦即車輛平 均偏離時間。
程式介面如圖 27 所示,共有五個空格可輸入數值,分別為總時間、顧客數、
班次間距、班次數與車輛數,而輸出乘客需求、固定班表、產生配對結果、新 增臨時插入點之推估到站時間 、每輛車載客數、乘客平均等候時間、車輛平均 偏離時間七大項資訊。
53 圖 27 程式介面