首页> 中国专利> 交通数据流的聚集查询方法及系统

交通数据流的聚集查询方法及系统

摘要

本发明公开了交通数据流的聚集查询方法及系统,属于信息技术处理领域。方法获取移动对象的时空信息生成交通数据流,将数据空间划分为子单元,把频率相似的邻近的单元分组成少数的桶,基于桶的频率计算桶的卡尔曼增益,并用二叉划分树来索引桶形成当前时间戳的BPT索引,在当前时间戳结束后将BPT序列化形成历史索引;进行聚集查询,当桶频率变化过大时,利用桶频率最优估计值代替计算聚集查询值。系统包括:信息收集模块、数据处理模块、索引处理模块、应用服务模块和索引存储模块。本发明能够有效的抑制交通数据流查询过程中异常点的最大相对误差,保障聚集查询方法的可用性。

著录项

  • 公开/公告号CN104156524A

    专利类型发明专利

  • 公开/公告日2014-11-19

    原文格式PDF

  • 申请/专利权人 河海大学;

    申请/专利号CN201410378094.6

  • 申请日2014-08-01

  • 分类号G06F17/50(20060101);

  • 代理机构32200 南京经纬专利商标代理有限公司;

  • 代理人熊玉玮

  • 地址 211100 江苏省南京市江宁开发区佛城西路8号

  • 入库时间 2023-12-17 03:09:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-06

    授权

    授权

  • 2014-12-17

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20140801

    实质审查的生效

  • 2014-11-19

    公开

    公开

说明书

技术领域

本发明涉及交通数据流的聚集查询方法及系统,属于信息技术处理领域。

背景技术

随着物联网、社交网络和云计算技术等的蓬勃发展,大量的业务应用产生了 呈指数级别增长的数据流数据,使得对数据进行分析和挖掘,发现其中蕴含的自 然规律和人类活动信息,已经变得前所未有的迫切;通过扫描大量数据元组获取 统计和概要信息的聚集查询作为数据分析最常见的查询方式被广泛使用;例如: 为了分析和控制交通流、缓解交通压力,交通监控系统经常关注特定时段内特定 路段上移动车辆的近似概要信息(如:南京市新街口上下班高峰期大约有多少辆 车通过?)。由于数据流具有实时性、无限性、瞬时性、流速不定性以及元数据 无穷性等特点,尽管云计算技术具有天生的并行计算能力,也难以对整个数据集 进行聚集查询以在较短时间内获取精确的查询结果,所以,在实际应用中往往利 用高质量的近似聚集查询结果以代替精确结果。虽然近年来,近似聚集查询的研 究成果显著;但是面对人们对查询精度要求的逐步提高,滑动窗口技术、随机采 样技术、小波技术、草图索引结构、直方图技术等典型的近似聚集查询方法均以 平均查询误差的大小去衡量算法的优劣,忽略了能够产生最大相对误差或者较大 相对误差的异常点对方法本身性能的影响(聚集查询方法的可用性往往是由最大 相对误差决定),使得近似聚集查询的精度已经无法替代精确查询。

针对这种情况,本发明运用卡尔曼滤波器原理对交通流经典聚集查询方法进 行改进,通过校正状态先验估计以获得后验估计的方法,利用桶的频率最优估计 计算异常点聚集值,有效地抑制异常点的最大相对误差,为聚集查询方法的可用 性提供可靠保障。

发明内容

本发明所要解决的技术问题是针对现有近似聚集查询技术忽略了能够产生 最大相对误差的不足,采用运用卡尔曼滤波器原理通过校正状态先验估计以获得 后验估计的方法,利用桶的频率最优估计计算异常点聚集值,提出了一种交通数 据流的聚集查询方法及系统。

本发明为实现上述发明目的采用如下技术方案:

交通数据流的聚集查询方法,包括如下步骤:

步骤1,采集移动对象信息,将移动对象信息转化为计算机可处理的数据形 式,在系统时间戳到来时数据流;

步骤2,在系统时间戳到来时生成、更新索引文件:

步骤2-1,初始化第一个系统时间戳的数据流生成的索引文件:采用合理直 方图将数据空间分割为ω·ω的单元,以当前时间戳内单元内的移动对象数量表示 该单元的频率,再将频率相似的邻近单元组成一个桶,形成n个桶,0<n≤B, ω为分辨率,B为桶数目的上限,

对于每个桶:以桶中所有单元的平均频率作为该桶的频率,计算该桶中各单 元平均频率方差的平均值、该桶的方差以及卡尔曼增益;

步骤2-2,在下一系统时间戳到来时,利用卡尔曼滤波原理更新索引文件:

步骤2-2-1,当第c单元中的数据变化时,记数据变化量为d,更新第c单元 的频率Fc=Fc+d,其中:为前一时间戳单元c的频率,1≤c≤ω2, d为任意实数;

步骤2-2-2,遍历当前时间戳的索引文件找到包含数据量变化单元的桶,对 于第b个桶,第b个桶包含有nb个单元,b<n,nb<ω·ω:

更新第b个桶的频率fb:,fb=fb-+d,Δg=fb2-fb-2,

更新第b个桶中各单元频率平方的平均值gb、方差vbgb=(nb·gb-+Δg)/nb,vb=gb-fb2,

更新第b个桶中第i单元的卡尔曼增益,Fi为第i单元的频率:

当Fi>fb时,第i单元的卡尔曼增益为:

当Fi≤fb时,第i单元的卡尔曼增益为:

计算出第b个桶中频率大于平均频率的单元数目nb1,更新第b个桶的卡尔曼 增益KgbKgb=nb1·Kgi++(nb-nb1)·Kgi-,1≤i≤nb1≤nb

步骤2-2-3-A,对于需要分裂的桶,计算每个需要分裂桶的最高分割利益和 最优划分位置,按照最优划分位置将需要分裂的桶分为两个子桶,并且设置前一 系统时间戳内两个子桶的频率均与分裂前桶的频率相等,重复步骤2-2-1;

步骤2-2-3-B,对于不需要分裂的桶,在索引中桶的数量达到上限时,利用 最小合并惩罚原理将频率集中的多个桶合并为一个桶,重复步骤2-2-1;

步骤2-2-3-C,对于不需要分裂的桶,在索引中桶的数量未达上限且当前系 统时间戳尚未结束的情况下,返回步骤1;

步骤2-2-3-D,对于不需要分裂的桶,在索引中通的数量未达上限且当前时 间戳结束的情况下,提取当前时间戳的索引文件生成历史索引;

步骤3,在生成更新索引文件的同时,根据用户的查询请求SUM(r,ts,te)对 空间区域r进行交通数据流查询,提取查询时间区间[ts,te]的系统时间戳,对于 每个时间戳执行空间聚集查询:遍历当前时间戳t的索引文件,利用如下表达式 求得当前时间戳下空间区域r在各桶的聚集查询值:

SUM=fbi·Sintr·ω2,vbi(fbi-fbi-)2[fbi-+Kgbi(fbi-fbi-)]·Sintr·ω2,vbi>(fbi-fbi-)2,

SUM为空间区域r在第bi个桶的聚集查询值,Sintr为空间区域r与第bi个桶 相交区域的面积,fbi为当前时间戳第bi个桶的平均频率,为前一时间戳t-第 bi个桶的平均频率,vbi第bi个桶的方差,

将每个时间戳的查询值求和形成最终的聚集查询值。

作为所述交通数据流的聚集查询方法的进一步优化方案,步骤2采用二叉划 分树结构来索引桶。

作为所述交通数据流的聚集查询方法的进一步优化方案,步骤2-2-3-A利用 贪心算法计算每个需要分裂桶的最高分割利益和最优划分位置。

作为所述交通数据流的聚集查询方法的进一步优化方案,步骤2中生成的历 史索引序列化存储在索引存储模块中。

作为所述交通数据流的聚集查询方法的进一步优化方案,步骤1中采集的移 动对象信息包括编号、经纬度坐标。

交通数据流的聚集查询系统,包括:

信息收集模块,采集移动对象的信息,将移动对象信息转化为计算机可处理 的数据形式,在系统时间戳到来时数据流;

数据处理模块,将系统时间戳内的空间数据划分为子单元,把包含移动对象 数量相近的单元组成一个桶,生成桶的索引文件,计算桶的频率、各单元平均频 率方差的平均值、方差以及卡尔曼增益,在新的系统时间戳到来时利用卡尔曼滤 波原理更新索引文件;

索引存储模块,用以存储索引生成和更新模块生成的索引文件;

应用服务模块,调用索引存储模块查找符合查询请求的索引文件,并反馈聚 值查询值。

作为所述交通数据流的聚集查询系统的进一步优化方案,所述查询系统还包 括索引处理模块,接收当前时间戳的索引,在当前时间戳结束后将当前时间戳的 索引与历史索引序列化处理后输出至引存储模块。

本发明采用上述技术方案,具有以下有益效果:解决了现有数据流聚集查询 方法忽略最大相对误差的不足,提高了查询的精度和方法的可用性。

附图说明

图1为基于卡尔曼滤波的交通数据流聚集查询系统的结构图。

图2为基于卡尔曼滤波的交通数据流聚集查询方法的流程图。

图3为二维交通路网在时间戳0的数据分布示意图。

图4为二维交通路网在时间戳1的数据分布示意图。

图5为RH结构中桶划分示意图

图6为RH结构中BPT的示意图。

图7为RH桶分裂过程中桶数据更新情况示意图。

图8为RH桶分裂后的桶划分示意图。

图9为RH桶分裂后BPT索引的示意图。

图10为RH方法与AMH的最大误差对比分析图。

具体实施方式

下面结合附图对发明的技术方案进行详细说明。

交通数据流的聚集查询系统如图1所示,包括:信息收集模块、数据处理模 块、索引处理模块、应用服务模块和索引存储模块。

信息收集模块用以接收各种移动对象的信号(对象编号OID,位置信息LOC, 时间t),然后将这些信号转变成计算机可以处理的数据形式,当达到一个系统时 间戳后,将收集到的数据以数据流的方式发送给信息处理引擎。信息处理引擎用 以对接收到的数据流进行索引处理,如果在存储模块中没有相关的索引,就创建 新的索引文件;如果索引已经存在,就根据接收到的数据流更新索引文件;当系 统时间戳结束后,将索引输出给索引处理模块。索引处理模块用以接收当前索引, 进行序列化后生成历史索引并存储到索引存储模块。应用服务模块用以接收用户 的查询请求,对索引存储模块中的索引进行聚集查询,生成聚集查询的结果。索 引存储模块用以存储整个系统的索引,包括当前索引和历史索引(序列化存储), 在当前时间戳结束后将当前时间索引(BPT)输出给索引处理模块,在有查询请 求的时候,将全部索引输出给应用服务模块。

由于移动对象信息具有时空属性的数据流,为了便于处理,系统将时间离散 化成一系列等间隔的时间点,连续的两个时间点形成的左开右闭区间;对于时间 在该区间内的移动对象,其时间戳均以该区间的右端时间点表示。索引包括当前 索引和历史索引,当前索引是指在当前系统时间戳内的索引,历史索引是指索引 的时间戳小于当前系统时间戳的索引;为了提高检索效率和存储效率,系统利用 索引处理模块对当前索引进行序列化,生成历史索引。

聚集查询是指求和聚集查询SUM(r,t),t代表时间戳(timestamp),r代表 查询区域,其返回值是t时刻查询区域r中所包含的对象总数。如果t=0,表示 的是当前时间戳的一个查询;如果t<0,表示的是过去历史时间戳的查询。如附 图3和图4所示,将整个数据空间划分为5·5的单元网格,时间戳0和时间戳1 的数据分布分别如附图3和图4所示。令qr表示为图中阴影部分的面积,若当前 时间戳1,那么SUM(r,0)值为50(9+11+5+10+9+6),那么SUM(r,-1)的值为 35。若需要查询一个时间段的聚集值SUM(r,ts,te),则只需从时间段[ts,te]提 取出相应时间戳,分别在这些时间戳上执行上述聚集查询,将查询结果求和即可, 例如SUM(r,-1,0)的值为50+35=85。

如附图4所示,为本发明的RH(Reasonable Histogram)结构图,RH将2 维的网格把数据空间分割为ω·ω(ω为“分辨率”)单元,每个单元c(1≤c≤ω2)对 应有一个频率Fc(当前时间戳单元c内移动对象的数量),如图4所示;RH将频 率相似的邻近的单元分组成一个桶,采用二叉划分树(Binary Partition Tree,BPT) 来索引桶,如图5所示,最初,BPT只有一个叶子节点,直方图只有覆盖整个数 据空间的桶,通过桶的分裂来产生新的桶(叶子节点),但是桶的个数(n)不能超 过系统设定的上限(记为B),如图6所示;对于每个桶b需要存储桶的矩形范 围RE,桶中所有单元的平均频率fb(记为桶的频率),这些单元平均频率平方的 平均值gb以及桶的方差vb和卡尔曼增益Kgb

对于RH的每个桶b,nb表示桶中的单元数量,则有:

单元的平均频率(均值):

fb=(1/nb)Σcin>Fc---(1)

桶的变化量(方差):

vb=(1/n)Σc in>(Fc-fb)2---(2)

RH的目标是所有桶的变化量总和(Weighted Variance Sum,WVS)最小。

WVS=Σi=1~n(ni·vi)---(3)

对于b需要存储的信息包括:桶的矩形范围RE,RE中所有单元的平均频率 fb,以及这些单元平均频率平方的平均值。

gb=(1/n)Σc>Fc2---(4)

因此,对RH的查询过程就是遍历BPT找出每个与查询区域相交的桶,计 算出相交的面积Sintr,然后计算出与查询区域相交面积所覆盖的单元数量Sintr·ω2, 则对于的求和聚集查询值为:

SUM=fb·Sintr·ω2   (5)

分析式-(5)可以发现,若直接采用式-(5)计算桶聚集值,利用桶的平均频率f 去代替Fc,当桶的方差较大时,将会形成较大相对误差,影响聚集查询方法的 可用性,本发明采用卡尔曼滤波对聚集查询值进行优化,利用桶频率的最优估计 代替当前桶的平均频率f;具体思路如下:

将卡尔曼滤波器的状态估计方程应用于RH,则当前时刻桶频率的最优估计 值为:

f^b=[fb-+Kgb(fb-fb-)]---(6)

其中表示前一时刻的桶的平均频率,fb表示当前时刻桶的平均频率, Kgb为桶的卡尔曼增益;需要说明的是,这里采用下标来表明Kgb为桶的卡尔 曼增益,后面本发明将采用Kg为桶中单元c的卡尔曼增益。

利用代替当前的桶频率,以抑制异常点聚集查询的最大相对误差,则式-(5) 变化为:

SUMintr=[fb-+Kgb(fb-fb-)]·Sintr·ω2---(7)

由于卡尔曼滤波器的原理可知,Kgb≥0。

对式-(6)分析,当时,可得:

Kgb=f^b-fb-fb-fb----(8)

对于RH中的桶b,其变化量vb可以定义为:

vb=1nΣc in>(Fc-fb)2---(9)

由于采用式-(5)的误差来源于Fc与fb之间差值,当利用fb代替Fc进行聚集 查询时,为了能够有效的抑制最大相对误差,需要使桶中所有单元具有相同方差, 式-(9)可以转换为:

vb=(1/n)·n·(fb-fb)2=(fb-fb)2---(10)

这样相对于fb更加趋近Fc,这里的对应于式-(8)中的所以:

f^b=fb±vb---(11)

将式-(11)带入式-(8),可得:

Kgb=fb±vb-fb-fb-fb-0---(12)

分析式-(12)可得:

vb(fb-fb-)2---(13)

若则无需计算卡尔曼增益,直接利用式-

证明如下:

1)当fb-fb->0

因为fb±vb-fb-fb-fb-0,那么fb±vb-fb-0

所以成立,即vb(fb-fb-)2.

2)当fb-fb-<0

因为fb±vb-fb-fb-fb-0,那么fb±vb-fb-<0,

所以成立,即vb(fb-fb-)2.

综上所述,vb(fb-fb-)2.

当RH中的某个桶不满足式-(13)时,说明这个桶的变化量很大,将有很大的 概率产生极大的误差,需要通过卡尔曼滤波进行最优估计处理,用代替fb, 以抑制误差,此时的该桶的聚集查询值应采用式-(7)计算;当桶满足式-(13)时, 说明桶的变化量不大,直接利用式-(5),因此对于特定的桶,聚集查询值可以定 义为:

SUM=fb·Sintr·ω2,vb(fb-fb-)2[fb-+Kgb(fb-fb-)]·Sintr·ω2,vb>(fb-fb-)2---(14)

BPT索引存储每个桶的平均频率(f)、方差(v)和每个单元的移动对象数据 (Fc)以及kg,式-(14)给出RH的聚集值计算公式,因此还需要计算RH中单元 和桶的卡尔曼增益。分析式-(12)可得,Kg两个取值,分别记为:

Kg+=(f+v-f-1)/(f-f-1)---(15)

Kg-=(f-v-f-1)/(f-f-1)---(16)

下面分析Kg的取值,RH的目标是尽可能的逼近Fc,这样才能保证误差 最小,所有对于桶中的每个单元:

当Fc>f时,更接近这个单元的卡尔曼增益为Kg+

当Fc≤f时,更接近这个单元的卡尔曼增益为Kg-

设一个桶中单元频率大于桶的平均频率的单元数为nb1,则这个桶的卡尔曼 增益为:

Kgb=nb1·Kg++(nb-nb1)·Kg-   (17)

如附图2所示,一种基于卡尔曼滤波的交通流聚集查询方法,其创建过程包 括步骤如下:

步骤A,移动对象信息获取与预处理,具体包括如下步骤:

步骤A-1:信息收集模块获取移动对象的信号,并转换成为数据流形式;

步骤A-2:当达到一个系统时间戳时,信息收集模块将移动对象数据流发送 给数据处理模块;

步骤B,信息处理模块判断索引存储模块中是否有当前时间戳的BPT索引, 若有转向步骤D,否则转向步骤C;

步骤C,创建一个当前时间戳的新BPT索引(Kg和f-均为0),转向步骤D;

步骤D,基于卡尔曼滤波原理更新BPT索引,如算法1所示具体包含如下步 骤:

步骤D-1,对于每一个变更的单元c,计算其变化量d,更新其频率信息:

(表示前一个时间戳的频率);

步骤D-2,遍历BPT索引找到每个包含变更单元的桶b,更新桶的频率和卡 尔曼增益:

fb-=fb,fb=fb+d,Δg=fb2-fb-2,gb=(nb·gb+Δg)/nb,vb=gb-fb2;

找出桶中频率大于平均频率的单元的数量nb1,计算桶的卡尔曼增益: Kgb=nb1·Kg++(nb-nb1)·Kg-

算法1 桶更新算法

步骤E,判断BPT索引中的桶是否需要分裂,若需要转向步骤F,否则转向 步骤G;

步骤F,利用贪心算法计算每个需要分裂桶b的最高分割利益SB和最优划 分位置BSP,按照BSP将桶b分为两个子桶b1和b2,并,并且设置利用步骤D的方法更新BPT索引;

桶的分裂就是对变化量很大的桶的区域产生分割,它能提高RH的查询精度, 通过:(1)减少桶的频率的变化量;(2)减少桶的内容(减少桶内包含的单元cell 的数量)。分割算法通过使用贪心算法寻求最高分割利益(Split Benefit,SB)来 进行划分,通过寻找最优的划分位置(Best Split Position-BSP)来进行划分使得 WVS最小,具体处理步骤如算法2所示:

如附图7所示,单元数据的变化以较大的粗体字表示(相对于附图4),三 种方式划分桶b1(一个在x轴,两个在y轴),通过使用分割利益SB的计算公 式n1·v1-(n12·v12+n13·v13)计算出WVS的最大减小是出现在x轴上的划分。其 他的桶的分割利益也要进行计算,最高分割利益需要在最佳的位置进行分割,新 的桶划分如附图8和附图9所示。

步骤G,判断索引中桶的数量是否达到系统最大上限,若是转向步骤H,否 则转向步骤I;

步骤H,对索引中桶进行合并操作,基于最小合并惩罚(Merge Penalty,MP) 原理将频率集中的多个桶合并为一个桶,并利用步骤D的方法计算相应的卡尔 曼增益和更新BPT索引;

步骤I,判断当前时间戳是否结束,若结束则转向步骤J,否则转向步骤A;

步骤J,索引处理模块从索引存储模块中取出当前时间戳的BPT索引,生成 历史索引,并将其序列化存储到索引存储模块;

如附图2所示,一种基于卡尔曼滤波的交通流聚集查询方法,其聚集查询包 括如下步骤:

步骤A,解析用户的查询请求Q(r,ts,te),提取查询时间区间[ts,te]的系统时 间戳{t1,t2,…,tk|ts≤t1<t2<…<tk≤te},将这些时间戳置入栈T;

步骤B,设置聚集查询值AR=0;

步骤C,对于T中的每一个时间戳,执行空间聚集查询,具体步骤如下:

步骤C-1,遍历BPT找到所有与查询区域r相交的桶b,计算r与桶b的相 交面积Sintr,并将这些桶以<b,Sintr>的形式置入栈S;

步骤C-2,对于S中的每一个桶b,计算其聚集值;

如果桶b满足条件:vb≤(fb-fb-)2,则AR+=fb·Sintr·ω2

否则,AR+=[fb-+Kgb(fb-fb-)]·Sintr·ω2

步骤D,返回聚集查询值AR,查询结束;

针对单一时间戳的空间聚集查询,如算法3所示,对于每一个与查询区域r 相交的桶b,我们首先计算桶bk与查询区域相交部分的面积Sintr,然后我们需要 检测这个桶b是否满足条件(即是否满足式-(13)),进而做相应的处理(参照下 面罗列的算法),得到相应的中间结果fb·Sintr·ω2fk·Aintr·ω2,最后将所有的中 间结果累加以得到单一时间戳的空间聚集查询值。对于多个时间戳的查询结果是 对单一时间戳的查询结果的累加。

本发明可以采用计算机实现,本实施例选取了宁波公共交通路网所采集的数 据进行实验(数据量100万条),数据流的格式为<T,LOC,OID>,即时间、位 置信息和车辆标识,共记录了10个时刻的车辆信息(时间间隔为10s)。为了对 比分析本发明的抑制最大相对误差的效果,我们与经典的交通流聚集查询方法 AMH方法进行对分析(本发明方法记为RH)。

我们分别对RH和AMH进行了100次聚集查询(RH和AMH的桶上限 B=350,r=12,查询的时间区间包含3个时间戳),实验结果如附图10所示,AMH 最大相对误差为71.875%,平均相对误差为3.028%,最大的5个相对误差的平 均值为38.067%。(最大的5个相对误差从大到小分别为71.875%,40.946%, 36.975%,20.557%,20.000%,一共有5个异常点。)RH最大相对误差为36.957%, 平均相对误差为2.461%,最大的5个相对误差的平均值为26.853%。(最大的五 个相对误差从大到小分别为36.975%,34.247%,33.083%,15.788%,14.189%, 其中有3个异常点)。不难发现,与AMH相比,RH在抑制异常点从而降低最大 相对误差方面具有明显的优势。

综上所述,本发明所涉及的基于卡尔曼滤波的交通数据流聚集查询系统及方 法,解决了现有聚集查询方法忽略最大相对误差的问题,提高了聚集查询方法的 可用性性。本发明实施例中所涉及的编程仅为本发明的一个实施例,凡是符合本 发明宗旨的具体实施例均在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号