歐姆龍社會解決方案公司的自動檢票機內置了31個票價表(數據庫),參照這些票價表能夠以很小的計算量瞬間計算出票價。但其中的問題在于,如何確認計算出的票價是準確的。
軌道交通系統自動檢票機的一項重要功能就是瞬間計算出票價,也就是說,必須要在0.05秒內,使用檢票機中嵌入的2MB左右的存儲器計算出票價。而且,每次有車站、線路及不同公司線路間的連接站點增加,都要修改自動檢票機中內置的票價計算程序。日前,自動檢票機開發商歐姆龍社會解決方案公司表示,在開發自動檢票機的嵌入式票價計算軟件時采用了獨特的方法。
日本關東地區的票價多達1040種
票價計算通常以模板匹配為基礎,具體而言,就是根據車票或IC卡中的上車站及換乘記錄,參照自動檢票機中內置的票價表來計算。車站數量及鐵路公司越多,票價模板就越多,尤其是關東地區,不僅車站數量多,而且多家鐵路公司之間的線路還相互連接,情況極為復雜。僅是組合上下車站與線路,票價模板種類就多達1030,如果再加上使用月票的情況,理論上可達到1040之多。
歐姆龍社會解決方案公司的自動檢票機內置了31個票價表(數據庫),參照這些票價表能夠以很小的計算量瞬間計算出票價。但其中的問題在于,如何確認計算出的票價是準確的。尤其是關東地區,不僅線路多,而且還存在換乘優惠、特定站點的例外處理,以及上下站點相同但兒童票與成人票各自的最便宜路線不同等多種情況,可以說條件和限制因素非常多。這樣一來,在每次更新票價計算程序時都要驗證計算結果是否準確,但要想將數量龐大的票價模板全部驗證是很難辦到的。歐姆龍社會解決方案公司解決方案事業本部開發中心核心技術開發部幡山五郎介紹說:“實際只有能驗證大約數百萬種票價模板的時間。”為了解決這一問題,該公司采用以下兩種方法來提高驗證工作的效率。
用完全不同的兩個程序來對照驗證
一是精簡驗證模板。制定指南,用來建立去除已明確模板的驗證用模板。根據這一指南,將1040種模板簡精為107種的驗證用模板。
另一個方法是在實機用程序之外再作一個驗證用的票價計算程序。也就是說,利用實機用和驗證用這兩個程序來計算簡精后的數百萬種驗證模板的票價。用完全不同的兩個程序來計算同一線路的票價,并將其結果進行對照,以此來檢查算法是否存在問題。不過,如果兩個程序所使用的算法相似的話,只要出現相同的錯誤,就不會發現問題。這就要求兩個程序具有獨立性。
因此,驗證用程序與實機用程序是由不同的開發小組來開發的,開發時使用了不同的編程語言和算法,而且驗證用程序是在個人電腦而非檢票機上運行。具體而言,實機用程序的開發語言使用的是C++,而驗證用程序使用的是Java。用于驗證的票價表也減為19個。這是因為個人電腦的存儲容量大,驗證用程序使用的運行區域不受限制,因此并不是以實機用程序那樣的模板匹配為主,而是采用了動態計算票價的算法。這一驗證體制的建立,使以前不可能做到的全部驗證成為了可能。










共0條 [查看全部] 網友評論