×

×

欧姆龙开发自动检票机用嵌入式软件

发布日期:2012-08-27 10:07浏览次数:103393

     欧姆龙社会解决方案公司的自动检票机内置了31个票价表(数据库),参照这些票价表能够以很小的计算量瞬间计算出票价。但其中的问题在于,如何确认计算出的票价是准确的。
    轨道交通系统自动检票机的一项重要功能就是瞬间计算出票价,也就是说,必须要在0.05秒内,使用检票机中嵌入的2MB左右的存储器计算出票价。而且,每次有车站、线路及不同公司线路间的连接站点增加,都要修改自动检票机中内置的票价计算程序。日前,自动检票机开发商欧姆龙社会解决方案公司表示,在开发自动检票机的嵌入式票价计算软件时采用了独特的方法。
日本关东地区的票价多达1040种
    票价计算通常以模板匹配为基础,具体而言,就是根据车票或IC卡中的上车站及换乘记录,参照自动检票机中内置的票价表来计算。车站数量及铁路公司越多,票价模板就越多,尤其是关东地区,不仅车站数量多,而且多家铁路公司之间的线路还相互连接,情况极为复杂。仅是组合上下车站与线路,票价模板种类就多达1030,如果再加上使用月票的情况,理论上可达到1040之多。
    欧姆龙社会解决方案公司的自动检票机内置了31个票价表(数据库),参照这些票价表能够以很小的计算量瞬间计算出票价。但其中的问题在于,如何确认计算出的票价是准确的。尤其是关东地区,不仅线路多,而且还存在换乘优惠、特定站点的例外处理,以及上下站点相同但儿童票与成人票各自的最便宜路线不同等多种情况,可以说条件和限制因素非常多。这样一来,在每次更新票价计算程序时都要验证计算结果是否准确,但要想将数量庞大的票价模板全部验证是很难办到的。欧姆龙社会解决方案公司解决方案事业本部开发中心核心技术开发部幡山五郎介绍说:“实际只有能验证大约数百万种票价模板的时间。”为了解决这一问题,该公司采用以下两种方法来提高验证工作的效率。
用完全不同的两个程序来对照验证
    一是精简验证模板。制定指南,用来建立去除已明确模板的验证用模板。根据这一指南,将1040种模板简精为107种的验证用模板。
    另一个方法是在实机用程序之外再作一个验证用的票价计算程序。也就是说,利用实机用和验证用这两个程序来计算简精后的数百万种验证模板的票价。用完全不同的两个程序来计算同一线路的票价,并将其结果进行对照,以此来检查算法是否存在问题。不过,如果两个程序所使用的算法相似的话,只要出现相同的错误,就不会发现问题。这就要求两个程序具有独立性。
    因此,验证用程序与实机用程序是由不同的开发小组来开发的,开发时使用了不同的编程语言和算法,而且验证用程序是在个人电脑而非检票机上运行。具体而言,实机用程序的开发语言使用的是C++,而验证用程序使用的是Java。用于验证的票价表也减为19个。这是因为个人电脑的存储容量大,验证用程序使用的运行区域不受限制,因此并不是以实机用程序那样的模板匹配为主,而是采用了动态计算票价的算法。这一验证体制的建立,使以前不可能做到的全部验证成为了可能。