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