城市路网上基于r树的全时态移动对象索引方法

文档序号:10724931阅读:229来源:国知局
城市路网上基于r树的全时态移动对象索引方法
【专利摘要】本发明公开了城市路网上基于R树的全时态移动对象索引方法,首先根据移动对象位置更新信息m查找基于x?y的上层索引,找到移动对象所处的封闭路段e,并取出其相关信息;然后形成运行矢量mv=(mid,t,v,rid,pos),通过rid访问道路索引表,取得道路对应的R?tree;根据mid访问轨迹单元哈希表,获得轨迹单元链表,访问链表尾结点lu?tail;根据lu?tail是否为空,生成链表轨迹单元LU;将连续轨迹单元和活动轨迹单元相继添加到链表尾部,建立索引,同时维护链表信息。本发明引入了动态链表和移动对象哈希表,可直接得出移动对象的历史轨迹信息,无需搜索整个层移动对象树森林。采用了指数平滑法预测移动对象的速度,提高了速度预测的精度,支持移动对象的全时态位置查询。
【专利说明】
城市路网上基于R树的全时态移动对象索引方法
技术领域
[0001] 本发明属于移动对象数据管理技术领域,尤其涉及城市路网上基于R树的全时态 移动对象索引方法。
【背景技术】
[0002] 随着无线通信与GPS等空间定位技术的发展,通过对移动终端的位置进行追踪管 理以提供相关查询服务变得越来越普及。现实生活中人们真实的运动场景往往被限制在一 定固定区域内,比如常见的城市路网,因此研究路网中移动对象索引结构具有现实意义。路 网中存在规模巨大的移动对象,利用单层的R-tree或者R*_tree对移动对象进行索引会忽 略了静态路网自己的特点,得不到很好的查询效果。针对R-tree和R*-tr ee不能很好地索引 移动对象的情况,Saltenis等人基于R*_tree提出了 TPR-tree移动对象索引结构,TPR-tree 中的最小边界矩形(minimum bounding rectangle,MBR)含有速度等参数信息,能够随着时 间参数变化,但是,由于没有存放历史轨迹,TPR-tree及其变种仅能支持移动对象当前以及 短暂将来位置的查询,不支持对过去位置信息的查询。
[0003] 目前基于路网的移动对象位置索引结构的研究还处于起始阶段,大部分结构只能 满足部分需求。Frentzos等人提出双层索引结构FNR-tree,由一个2D R-tree和一个1DR-tree森林构成,由于仅存储进入和离开边的数据,导致窗口范围查询结果的准确性比较低, 而且只能索引移动对象的历史轨迹,而无法索引移动对象的实时位置。MON-tree是对FNR-tree进行改进而提出来的索引结构,其支持对移动对象的窗口查询和历史轨迹信息查询, 但缺乏对时间信息的管理和网络拓扑空间持续性优化,所以时间片查询效率低。丁治明等 人提出的NDTR-tree索引结构不仅可以可以快速地出路对移动对象过去可能位置的查询, 而且能够对其当前和未来的可能位置进行高效的查询处理。但其在移动对象轨迹查询方面 效率不高。
[0004] 公开号为CN103235831A、名称为〃基于路网的移动对象位置索引结构及索引方法〃 的发明专利提供了一种基于路网的移动对象位置索引结构和索引方法,其优点是在下层R-tree索引中增加了静态对象R-tree,能够很好地支持最近邻查询,其缺点是采用了R-tree 构建静态路网索引,查询效率低、构建索引时节点分裂次数多。

【发明内容】

[0005] 本发明的目的在于提供一种城市路网上基于R树的索引技术,需要解决的问题是 支持对城市路网上移动对象的全时态索引,其次,实现对移动对象全时态的预测,具有良好 的查询精度。
[0006] 为实现以上目的,本发明提出城市路网上基于R树的全时态移动对象索引方法,包 括以下步骤:
[0007] 步骤1:根据移动对象位置更新信息m查找基于x-y的上层索引,找到移动对象所处 的封闭路段e,并取出其相关信息;
[0008] 步骤2:通过e信息以及x,y坐标信息求得移动对象在所属道路上的pos位置,形成 运行矢量mv = (mid,t,v,rid,pos),其中,pose [0, 1],为对象所处道路的相对位置,t为采 集该运行矢量的时间,v表示该移动对象在t时刻的速度,rid为道路标识;
[0009] 步骤3:通过rid访问道路索引表,取得道路对应的R-tree;
[0010] 步骤4 :根据mid访问轨迹单元哈希表,获得轨迹单元链表,访问链表尾结点lu-tail ;
[0011] 步骤5:若lu-tail为空,表示初次收到该对象位置信息,则插入活动轨迹单元U (mvn)到R-tree中,并记录它在R-tree中的位置uid,通过(U,uid)生成链表轨迹单元LU,并 插入到链表;
[0012] 步骤6:若lu-tail不为空,根据lu-tail中的uid信息找到并删除R-tree中的活动 轨迹单元U(mvn),插入连续轨迹单元U(mvs,mve),插入活动轨迹单元U(mv n),最后在链表中 删除tail;
[0013] 步骤7:将连续轨迹单元和活动轨迹单元相继添加到链表尾部,建立索引,同时维 护链表信息。
[0014] 进一步,为实现对移动对象全时态的预测,本发明根据上述方法提出一种进行预 测移动对象过去、现在和未来的全时态的方法,包括如下步骤:
[0015] 一、移动对象过去位置索引
[0016] 步骤1:确认查询时间tq,判断tq所属位置更新时间,如果tq发生在位置更新的时刻 执行步骤2;如果t q发生在两个更新时刻之间执行步骤3,步骤4;
[0017] 步骤2: tq=ti,根据轨迹单元哈希表和双向链表确定tq时刻移动对象的运行矢量 mv(mid,t,v,rid,pos),移动对象的位置则为m〇q= (mid,rid,pos);
[0018] 步骤3: ti〈tq〈ti+1,当前时刻移动对象未改变道路,移动对象在tq_ti间的平均速度 为两次更新时刻移动对象速度的平均速度,则此时移动对象的位置m 〇q,
[0020] 步骤4:。〈丨(1〈。+1,当前时刻移动对象已经改变道路,由此可知在时刻七+1的更新是 因为道路的变化引起的,Srid是道路的长度,
[0022] 二、移动对象现在和未来位置的全时态位置预测
[0023] 移动对象在一段时间内tq-^的近似速度可以用移动对象过去时间内的平均速度 与路段平均速度来综合表达,其中tn为移动对象最后一次更新提交的时间,
[0024] 步骤1:移动对象过去时间段内的平均速度
[0025] Vpast = θν? +:0(1-#)ν4 + - + ,>.Α-Θ:(Χ- θγν_η 公八 3·
[0026] η为移动对象更新的次数,?1为移动对象距离当前第i次更新的速度,ie[0,n],0 为相关系数,θ£[0,1] ;
[0027] 步骤2:道路中移动对象的平均速度%
[0028] 先求得路段Α前路段的平均速度,在此之前必须确定要取路段前路段的数量w,处 于同一条道路的移动对象之间的速度影响比较大,因此W值取道路Road中处于道路段A之后 的路段数
[0029] w = Roadaii-RoadA 公式 4;
[0030] 其中Roadall为Road中路段总数,RoadA为路段A处于Road中的路段位置,对于其中 任何一个道路段内的平均速度,为了降低时间开销提高预测准确度,采用t n时刻的平均速 度t,那么段内移动对象的平均速度可用如下公式得出:
[0032] 其中ns为该段中移动对象的个数,Vl为移动对象距离^时刻最短的更新速度,那么 对于个道路段来说,平均速度可以用公式表达为:
[0033] L =心,(4 + 0(1-十仍l-W及(q + '" + 耀-仍"及(Λ,)公式 6;
[0034] 步骤3:移动对象的速度预测
[0035] 综合公式3、4、5、6可得移动对象在未来一段时间内的预测速度,移动对象的预测 速度可以由以下公式得到
[0036] I' = Ον,,·:,,: + (6(1 - ())\\ 公 r:C 7;
[0037] 移动对象的位置信息根据公式8计算得到
[0038] Μ^ =ρ〇^ + ν *^ -Q 公式 8。
[0039] 又进一步,在预测移动对象现在和未来位置的全时态位置的步骤1中,如果数据波 动较大,则Θ值应取大一些,可以增加近期数据对预测结果的影响;如果数据波动平稳,则Θ 值应取小一些。
[0040] 进一步,本发明还根据上述的城市路网上基于R树的全时态移动对象索引方法提 出一种进行索引一定时空范围内移动对象标识集合的方法,包括如下步骤:
[0041 ] 步骤1:确认查询区域(Λχ,Ay,At);
[0042]步骤2:根据查询窗口 [ (xl,yl),(x2,y2)],搜索上层R*-tree,遍历到叶子结点,借 助封闭路段信息e,求得查询窗口与封闭路段的交点;
[0043 ]步骤3:计算出交点在街道中的位置pos;
[0044] 步骤4:査询区域与一个道路可能有多个交点,对应于一个偶对(rid,period)其中 period包含一个或者多个pos信息,查询区域与多个道路相交,则对应于一组偶对,在rid对 应的下层R-tree中查询与(period, At)相交的轨迹单元,并输出轨迹单元的移动对象标 识。
[0045] 对比现有技术,本发明具有以下优点:
[0046] (1)为了提高索引移动对象轨迹信息的效率,引入了动态链表和移动对象哈希表, 通过访问哈希表和动态链表可直接得出移动对象的历史轨迹信息,而无需搜索整个层移动 对象树森林。
[0047] (2)为了应答在两次更新时间之间及最后一次更新之后的查询请求,采用了指数 平滑法预测移动对象的速度,提高了移动对象在速度预测方面的精度。
[0048] (3)该索引结构支持移动对象的全时态位置查询,包括历史轨迹查询、实时位置查 询、将来时刻位置预测和时空范围查询。
【附图说明】
[0049] 图1是本发明的移动对象索引结构图。
[0050] 图2是本发明的路网不意图。
[0051] 图3是本发明的路网下移动对象三维时空轨迹及二维投影示意图。
[0052]图4是本发明的辅助索引结构。 具体实施方案
[0053]以下结合附图对本发明做进一步描述。
[0054]本发明提供的是支持移动对象全时态查询的索引结构,具体通过以下方案实现 的:
[0055] 一、体系结构
[0056]本索引分为上下双层索引结构,对静态路网信息采用狀-tree进行索引,并设计道 路索引表来管理下层R-tree森林;对实时更新的移动对象运动轨迹采用结点更新代价较小 的R-tree进行索引,设计轨迹单元索引表和双向链表辅助结构对索引协同管理。
[0057]下面我们给出几个部分的具体说明:
[0058]上层狀-tree索引:基于x-y平面的狀-tree索引,用于索引路网中的封闭路段,其 叶子结点的数据结构为〈1&1(1,6>。'表示包含该封闭路段的冊1?,1(1为该叶子节点在索引 中的标识,e为表示封闭路段。中间节点用〈1^4(1',?>表示,1^为包含下层节点的1?1^(1' 为节点在索引中的标识,P为指向下层结点的指针。
[0059]下层R-tree索引:下层结构是一组与每条道路对应得R-tree索引,用于索引移动 对象轨迹单元。其叶子结点的数据结构为<MPt,丨(1,11^,11^,11^(1>爲1;为?〇8-1:(位置和时间) 平面中包含该轨迹的MBR,id为叶子节点的标识,mv s和mve分别表示轨迹单元起始和结束运 行矢量,如果为活动轨迹单元,则mve为空。mid表示移动对象的标识。中间结点数据结构为〈 Mpt,id ',p>,Mpt是包含下层结点的MBR,id'为中间节点标识,p为指向下层结点的指针。
[0060]道路索引表:其主要对下层基于道路的R-tree森林进行管理,其中key的值为道路 标识rid,value为道路对应的R-tree索引。
[0061 ] 轨迹单元索引表和双向链表:通过轨迹单元哈希表来管理移动对象的轨迹单元, key取值为移动对象标识mid,value为一个双向链表,用1 inkedl ist表示,包含具体移动对 象的所有轨迹单元LU,其按时间先后顺序加入到链表中,根据移动对象提供的位置信息不 断进行更新。当收到一条位置更新信息时,首先形成轨迹单元U,将其插入到R-tree中,并返 回在R-tree中的位置标识uid形成链表轨迹单元LU(U,uid)插入到1 inkedl ist中,在维护索 引的同时对linkedlist和轨迹单元哈希表进行维护。
[0062] 本索引的建立和维护的主要步骤如下:
[0063] 步骤1:根据移动对象位置更新信息m查找基于x-y的上层索引,找到移动对象所处 的封闭路段e,并取出其相关信息。
[0064] 步骤2:通过e信息以及X,y坐标信息求得移动对象在所属道路上的pos
[0065] 位置,形成运行矢量mv = (mid, t,v,rid,pos)。其中,pose [0, 1]为对象所处道路 的相对位置,t为采集该运行矢量的时间,V表示该移动对象在t时刻的速度,rid为道路标 识。
[0066] 步骤3:通过r id访问道路索引表,取得道路对应的R-tree;
[0067] 步骤4 :根据mid访问轨迹单元哈希表,获得轨迹单元链表,访问链表尾结点lu-tail ;
[0068] 步骤5:若lu-tail为空,表示初次收到该对象位置信息,则插入活动轨迹单元U (mvn)到R-tree中,并记录它在R-tree中的位置uid,通过(U,uid)生成链表轨迹单元LU,并 插入到链表;
[0069] 步骤6:若lu-tail不为空,根据lu-tail中的uid信息找到并删除R-tree中的活动 轨迹单元U(mvn)。插入连续轨迹单元U(mvs,mve),插入活动轨迹单元U(mv n),最后在链表中 删除lu-tail;
[0070] 步骤7:将连续轨迹单元和活动轨迹单元相继添加到链表尾部,进而建立索引的同 时并维护链表信息。
[0071] 本发明基于上述的索引结构,采用能够预测移动对象过去,现在和未来的全时态 的方法,具体情况如下:
[0072] 1、移动对象过去位置索引
[0073] 步骤1:确认查询时间tq,判断tq所属位置更新时间,如果tq发生在位置更新的时刻 执行步骤2;如果t q发生在两个更新时刻之间执行步骤3,步骤4;
[0074] 步骤2: tq=ti,根据轨迹单元哈希表和双向链表确定tq时刻移动对象的运行矢量 mv(mid,t,v,rid,pos),移动对象的位置则为m〇q= (mid,rid,pos) 〇
[0075] 步骤3: ti〈tq〈ti+1,当前时刻移动对象未改变道路,移动对象在tq_ti间的平均速度 为两次更新时刻移动对象速度的平均速度,则此时移动对象的位置m 〇q,
[0077] 步骤4:。〈丨(1〈。+1,当前时刻移动对象已经改变道路,由此可知在时刻七+1的更新是 因为道路的变化引起的,Srid是道路的长度。
[0079] 2、移动对象现在和未来位置的全时态位置预测
[0080] 移动对象在一段时间内tq-tn,(其中^为移动对象最后一次更新提交的时间)的近 似速度可以用移动对象过去时间内的平均速度与路段平均速度来综合表达。本专利采取指 数平滑法,指数平滑法符合了移动对象速度预测的条件,既考虑移动对象过去的速度信息, 又考虑处在移动对象前面的移动对象的速度信息,对于新数据赋予更大一些的权重而旧数 据赋予较小的权重。
[0081 ]步骤1:移动对象过去时间段内的平均速度
[0082] Vpast +Θ{\ - Θ)ν_ι +0(1-0)2v_2 + #(1-^)ην_?? 公式 3.
[0083] η为移动对象更新的次数,ν-移动对象距离当前第i次更新的速度,1£[0,1!]。0 为相关系数,θ e [0,1 ],θ的取值容易受主观影响,如果数据波动较大,值应取大一些,可以 增加近期数据对预测结果的影响。如果数据波动平稳,值应取小一些。
[0084] 步骤2:道路中移动对象的平均速度&
[0085] 先求得路段A前路段的平均速度,但在此之前必须确定要取路段前路段的数量w。 处于同一条道路的移动对象之间的速度影响比较大,因此w值取道路Road中处于道路段A之 后的路段数
[0086] w = Roadaii-RoadA 公式 4
[0087] 其中RoacUii为Road中路段总数,RoadA为路段A处于Road中的路段位置。对于其中 任何一个道路段内的平均速度,为了降低时间开销提高预测准确度,采用tn时刻的平均速 度i,那么段内移动对象的平均速度可用如下公式得出
[0089] 其中ns为该段中移动对象的个数,Vl为移动对象距离^时刻最短的更新速度,那么 对于个道路段来说,平均速度可以用公式表达为
[0090] i + -0)5(5) +沒(1 -6?)2汉(〇+'.. +沒(1-句?(嫁)公式 6
[0091]步骤3:移动对象的速度预测
[0092] 综合公式3、4、5、6可得移动对象在未来一段时间内的预测速度,移动对象的预测 速度可以由以下公式得到
[0093] v = …公式 7
[0094] 移动对象的位置信息根据公式8计算得到
[0095] m〇4 = P0sH+v^(tv-Q 公式 8
[0096] 如图1所示,本索引方案分为上下两层,上层索引是基于路网的R*-tree索引结构, 下层是基于P〇s-t平面的R-tree索引森林。下面分别对这两部分进行详细说明。
[0097]上层索引结构主要是对如图2所示的路网建立的狀-tree索引,以封闭路段为基本 索引单位。图2为路网在上层索引中的对应关系,道路rl包含2个封闭路段&1.&^1.13),于 是形成2条记录存储于包含封闭路段MBR信息的叶子节点中。图2矩形框中示例给出了MBR3 的范围。地图中的每个封闭路段被一个最小矩形框包含,所有最基本的最小边界矩形被融 合为较大的MBR中,进一步迭代,重复上述过程计算更大的MBR,最终路网被一个最大的MBR 包含。
[0098]如图1下半部分所示,下层索引结构对应R-tree森林,用于索引移动对象的轨迹单 元。移动对象基于pos-t平面的轨迹片段被下层森林管理,如图3移动对象在道路上r运动, 那么它的所有轨迹单元被道路r对应的R-tree管理,其中图3中的虚线部分表示活动轨迹单 元,如果移动对象从一条道路运动到另一条道路,那么它的轨迹单元将被两个道路R-tree 管理。
[0099]如图4所示的索引辅助结构提高了查询的效率。移动对象的运动轨迹跨越了多条 道路,为了查询器历史运动轨迹,需要自上而下遍历整个R-tree森林,而采用哈希表和双向 链表构成的辅助结构后,仅需将其加载到缓存进行维护,查找移动对象轨迹不再需要遍历 R-tree森林,极大地提高了查询的效率。
[0100] 本发明提供的是基于上述索引结构的移动对象位置的索引方法,该方法用于索引 时空范围内移动对象标识集合,其包括如下步骤:
[0101] 步骤1:确认查询区域(Λχ,Ay,At);
[0102]步骤2:根据查询窗口 [ (xl,yl),(x2,y2)],搜索上层R*-tree,遍历到叶子结点,借 助封闭路段信息e,求得查询窗口与封闭路段的交点;
[0103] 步骤3:计算出交点在街道中的位置pos;
[0104] 步骤4:査询区域与一个道路可能有多个交点,对应于一个偶对(rid,period)其中 period包含一个或者多个pos信息。查询区域与多个道路相交,则对应于一组偶对,在rid对 应的下层R-tree中查询与(period, At)相交的轨迹单元,并输出轨迹单元的移动对象标 识。
[0105] 以上所述仅为本发明的优先实施例,在本发明的精神和原则之内,所做的任何修 改、等同替换、改进,均应在本发明的保护范围之内。
【主权项】
1. 城市路网上基于財对的全时态移动对象索引方法,其特征在于包括W下步骤: 步骤1:根据移动对象位置更新信息m查找基于x-y的上层索引,找到移动对象所处的封 闭路段e,并取出其相关信息; 步骤2:通过e信息W及x,y坐标信息求得移动对象在所属道路上的POS位置,形成运行 矢量mv= (mid,t,v,;rid,pos),其中,pose [0,1],为对象所处道路的相对位置,t为采集该 运行矢量的时间,V表示该移动对象在t时刻的速度,rid为道路标识; 步骤3:通过r id访问道路索引表,取得道路对应的R-tree; 步骤4:根据mid访问轨迹单元哈希表,获得轨迹单元链表,访问链表尾结点lu-tail; 步骤5:若lu-tail为空,表示初次收到该对象位置信息,则插入活动轨迹单元U(mvn)到 R-化ee中,并记录它在R-tree中的位置uid,通过化,uid)生成链表轨迹单元LU,并插入到链 表; 步骤6:若lu-tail不为空,根据lu-tail中的uid信息找到并删除R-化ee中的活动轨迹 单元U(mvn),插入连续轨迹单元U(mvs,mve),插入活动轨迹单元U(mvn),最后在链表中删除 tail ; 步骤7:将连续轨迹单元和活动轨迹单元相继添加到链表尾部,建立索引,同时维护链 表信息。2. -种根据权利要求1所述的城市路网上基于財对的全时态移动对象索引方法进行预 测移动对象过去、现在和未来的全时态的方法,其特征在于包括如下步骤: 一、 移动对象过去位置索引 步骤1 :确认查询时间tq,判断tq所属位置更新时间,如果tq发生在位置更新的时刻执行 步骤2;如果tq发生在两个更新时刻之间执行步骤3,步骤4 ; 步骤2: tq=ti,根据轨迹单元哈希表和双向链表确定tq时刻移动对象的运行矢量mV (mid,t,v,;rid,pos),移动对象的位置则为m〇q= (mid,;rid,pos); 步骤3:ti<tq<ti + l,当前时刻移动对象未改变道路,移动对象在tq-ti间的平均速度为两 次更新时刻移动对象速度的平均速度,则此时移动对象的位置moq,祭式1 步骤4:tl<tq<tl + l,当前时刻移动对象已经改变道路,由此可知在时刻tl + 1的更新是因为 道路的变化引起的,Srid是道路的长度,公式2; 二、 移动对象现在和未来位置的全时态位置预测 移动对象在一段时间内tq-tn的近似速度可W用移动对象过去时间内的平均速度与路 段平均速度来综合表达,其中tn为移动对象最后一次更新提交的时间, 步骤1 :移动对象过去时间段内的平均速度心公式3; η为移动对象更新的次数,v-i为移动对象距离当前第i次更新的速度,1£[〇,11],0为相 关系数,θε[〇,1]; 步骤2:道路中移动对象的平均速度石 先求得路段A前路段的平均速度,在此之前必须确定要取路段前路段的数量W,处于同 一条道路的移动对象之间的速度影响比较大,因此W值取道路Road中处于道路段A之后的路 段数 w = Roadaii_RoadA 公式 4; 其中Roadaii为Road中路段总数,RoadA为路段A处于Road中的路段位置,对于其中任何一 个道路段内的平均速度,为了降低时间开销提高预测准确度,采用tn时刻的平均速度^,那 么段内移动对象的平均速度可用如下公式得出:公式5; 其中ns为该段中移动对象的个数,VI为移动对象距离tn时刻最短的更新速度,那么对于 个道路段来说,平均速度可W用公式表达为:步骤3:移动对象的速度预测 综合公式3、4、5、6可得移动对象在未来一段时间内的预测速度,移动对象的预测速度 可W由W下公式得到3. 根据权利要求2所述的城市路网上基于R树的全时态移动对象索引方法进行预测移 动对象过去、现在和未来的全时态的方法,其特征在于在预测移动对象现在和未来位置的 全时态位置的步骤1中,如果数据波动较大,则Θ值应取大一些,可W增加近期数据对预测结 果的影响;如果数据波动平稳,则Θ值应取小一些。4. 一种根据权利要求1所述的城市路网上基于財对的全时态移动对象索引方法进行索 引一定时空范围内移动对象标识集合的方法,其特征在于包括如下步骤: 步骤1:确认查询区域(Δχ,Ay,At); 步骤2:根据查询窗口 [^1,71),^2,72)],捜索上层灿-付66,遍历到叶子结点,借助封 闭路段信息e,求得查询窗口与封闭路段的交点; 步骤3:计算出交点在街道中的位置POS; 步骤4:査询区域与一个道路可能有多个交点,对应于一个偶对(rid, period)其中 period包含一个或者多个pos信息,查询区域与多个道路相交,则对应于一组偶对,在rid对 应的下层R-tree中查询与(period, At)相交的轨迹单元,并输出轨迹单元的移动对象标 识。
【文档编号】G06F17/30GK106095802SQ201610374502
【公开日】2016年11月9日
【申请日】2016年5月31日
【发明人】张深深, 郁浩春, 韩京宇
【申请人】南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1