一种提高afc系统终端设备黑名单匹配效率的方法

文档序号:8381637阅读:1141来源:国知局
一种提高afc系统终端设备黑名单匹配效率的方法
【技术领域】
[0001]本发明涉及一种提高AFC系统终端设备黑名单匹配效率的方法,属于城市轨道交通智能化技术。
【背景技术】
[0002]随着城市轨道交通的迅猛发展,路网结构日趋复杂、输送客流量日益增大。城市轨道交通系统能否正常、高效地运营,不仅取决于轨道和车辆等基础设施条件,更有赖于运营管理及其技术手段的先进性。轨道交通自动售检票(AFC)系统为乘客提供快捷、简易的购票服务,实现轨道票务运营的售检票、财务、统计分析、审核等全过程的自动化管理工作。作为运营单位与公众交互的界面,轨道交通AFC系统的建设水平直接影响轨道交通的服务水平、运营效率以及公众满意度,因此也越来越得到人们的重视。
[0003]为保证轨道票务运营安全,需要限制无效、丢失、异常票卡在轨道交通AFC系统中使用,黑名单管理就是其中一种行之有效的方法。黑名单是限制使用的票卡卡号清单,一般采用逻辑卡号,车站终端设备通常采取逐条记录的方式来存储黑名单。轨道交通AFC系统将黑名单通过网络或其他途径下发到充值、消费等终端设备中,票卡在终端设备充值、消费时,设备自动检测,一旦发现黑名单票卡,即会锁卡并报警,阻止黑名单卡在AFC系统中使用。随着轨道交通AFC系统的运营,系统中黑名单数量不断增加,导致AFC系统终端设备容量不够、处理速度变慢等问题,如考虑对终端设备进行硬件升级,因涉及大量终端的改造或更换,成本巨大;另外,为减少运营负担,终端黑名单数据不宜频繁更新,终端设备难以实现对黑名单变化的实时响应,增加了黑名单卡使用而造成的损失。
[0004]有鉴于此,为提高城市轨道交通AFC系统服务水平、最大限度地减少票务损失,迫切需要一种提高AFC系统终端设备黑名单匹配效率的方法,在终端硬件不变的前提下,系统地解决终端设备黑名单匹配效率随运营过程不断降低这一难题。

【发明内容】

[0005]发明目的:针对当前城市轨道交通实际运营过程中,AFC系统终端设备黑名单检索速度随运营过程不断降低的问题,本发明提出了一种提高AFC系统终端设备黑名单匹配效率的方法,在终端硬件不变的条件下,通过软件升级即可实现,是一种成本较低的解决方案。
[0006]技术方案:为实现上述目的,本发明采用的技术方案为:
[0007]一种提高AFC系统终端设备黑名单匹配效率的方法,包括如下步骤:
[0008](I)车站终端设备黑名单存储及下载
[0009](1.1)终端设备黑名单存储:采取单条黑名单记录和号段黑名单记录相结合的方法;
[0010](1.2)终端设备黑名单下载:采用时间限制方法和分布式下载方法相结合的黑名单下载方法;
[0011](2)基于单条黑名单票卡逻辑号统计规律的哈希函数及地址冲突解决方法
[0012](2.1)以单条黑名单的票卡逻辑号为关键字key,根据票卡逻辑号的组成结构及其统计分布、构造相应的哈希函数H(key);
[0013](2.2)结合给定哈希函数H (key)下的实际地址冲突状况,综合考虑黑名单规模及实际可用内存大小,选择开放寻址法或分离链接法解决地址冲突问题;
[0014](3)黑名单检索模式及检索方法
[0015](3.1)终端设备可采用脱机和联机两种检索模式;正常情况下处于脱机模式,执行交易票卡的黑名单查询操作;紧急情况下进入联机模式,获得授权后方可对终端设备内存黑名单数据进行增、删操作;
[0016](3.2)基于有序链表的号段黑名单检索方法
[0017](3.2.1)基于有序链表的号段黑名单装载
[0018]①每个运营日终端设备上电启动后,初始化进程自动运行,开辟内存空间并创建空链表;
[0019]②初始化进程将存放在终端设备外存的号段黑名单记录读入内存缓冲区,若各号段黑名单记录互不重叠,则直接创建对应节点存放号段记录中的有效字段,并按其在数轴上的相对位置插入链表;若号段记录间有相互重叠部分,则取其并集替代相关号段,得到互不重叠的号段记录序列,再按其在数轴上的相对位置插入链表;
[0020](3.2.2)基于有序链表的号段黑名单插入
[0021 ] ①创建节点Pcur来存放待插入号段记录中的有效字段;采用二分法定位待插入号段记录在链表中的位置,并利用链表节点Ppre、Pnext来标记之,则有(Ppre->1gicalID_beg<Pcur->logicalID_beg)&&(Pcur->logicaIID_end〈Pnext_>logicalID_end);其中:logicalID_beg 为起始逻辑号,logicalID_end 为终止逻辑号;
[0022]②若节点Ppre与节点Pnext之间存在中间节点,则将其删除;
[0023]③若Ppre、Pcur> Pnext中的号段记录均无重叠部分,则直接将Pcur插入到Ppre与Pnext之间;gPcur中的号段记录与Ppre中的有重叠部分、与Pnext中的无重叠部分,则令 Ppre_>logicalID_end = Pcur->1gicalID_end ;gPcur 中的号段记录与 Pnext 中的有重叠部分、与Ppre中的无重叠部分,贝Ij令Pnext_>logicalID_beg = Pcur->logicalID_beg ;若Ppre、Pcur> Pnext中的号段记录有两两重叠部分,则令Ppre_>logicalID_end =Pnext_>logicalID_end,并从链表中删除节点Pnext ;
[0024](3.2.3)基于有序链表的号段黑名单查询
[0025]当脱机终端受理一张票卡交易时,首先读取票卡逻辑号,并采用二分法在链表中查找满足logicalID_beg<交易票卡逻辑号<l0gicalID_beg的链表节点;若找到该节点,返回布尔值1,表示“查找命中”;若找不到该节点,则转入(3.3.3)进入基于哈希表的单条黑名单查询流程;
[0026](3.2.4)基于有序链表的号段黑名单删除
[0027]①采用二分法确定待删除黑名单号段[logicalID_head, logicalID_tail]在链表中的位置,将定位到的链表节点记为Pdel,则有(Pdel->logicalID_beg ( logicalID_head)&&(logicalID_taiI ^ Pdel_>logicalID_end);若定位失败,返回布尔值 0,表示“删除失败”;
[0028]②若Pdel_>logicalID_beg = logicalID_head,则令 Pdel_>logicalID_beg=logicalID_tail+l,并返回布尔值 1,表示“删除成功”;若 Pdel_>logicalID_end =logicalID_tail,则令 Pde 1->1gicalID_end = logicalID_head - 1,并返回布尔值,1,表不“删除成功”;若 Pdel_>logicalID_beg Φ logicalID_head&&Pde 1->1gicalID_end Φ logicalID_tail,则创建节点 Pnewl 和 Pnew2,使得 Pnewl_>logicalID_beg =Pdel_>logicalID_beg、Pnewl->logicalID_end = logicalID_head-KPnew2->1gicalID_beg = Pdel->1gicalID_tail+KPnew2->1gicalID_end = Pdel->1gicalID_end,随后删除节点Pdeldf PnewUPnewl依次插入其原先位置,并返回布尔值1,表示“删除成功”;
[0029](3.3)基于哈希表的单条黑名单检索方法
[0030](3.3.1)基于哈希表的单条黑名单装载
[0031]①每个运营日终端设备上电启动后,初始化进程自动运行,开辟内存空间并创建空哈希表;哈希表长度TableSize = M/ α,其中M为终端设备存放的单条黑名单记录数目,α为装填因子;
[0032]②初始化进程将存放在终端设备外存的单条黑名单记录读入内存缓冲区,并根据(3.3.2)定义的插入操作将其有效字段存入哈希表;
[0033](3.3.2)基于哈希表的单条黑名单插入
[0034]①以待插入黑名单记录的票卡逻辑号为关键字key,根据(2.1)确定的哈希函数将其映射到哈希表中对应位置H(key);若(2.2)中选择开放寻址法解决地址冲突问题,则设置探测器locatejimes = O并转②;若(2.2)中选择分离链接法解决地址冲突问题,则转④;
[0035]②若该位置未被占用,即该处1gicalID = null,则将待插入黑名单记录中的有效字段存入该位置,并返回布尔值1,表示“插入成功”;若该位置已被占用,即该处1gicalID Φ null,则令该处 hash_coll+ = 1,同时令 locate_times+ = 1,转③;所述hash_coll为该位置当前的冲突次数;
[0036]③若locate_times〈TableSize,则根据(2.2)确定的地址探测方法定位到下一个目标位置并转②;若locate_times = TableSize,则返回布尔值0,表示“插入失败”,并修改位于探测路径上所有位置的hash_coll,令hash_coll- = I ;
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1