1、基于 R树移动对象预测位置查询 1胡国建 张祺 夏胜凯(浙江海洋学院 数理与信息学院 浙江 舟山,316004)摘要:当前对移动对象位置预测查询的研究中,索引结构是查询性能优良的关键。针对现有方法中存在的缺陷,本文提出 R-tree 索引方法。R 树算法能有效的索引移动对象的现在与预测的将来位置。R 树算法考虑移动对象的速度与方向来预测移动对象在不久将来的大致位置。实验结果表明,采用 R-tree 索引结构具有最优的查询和更新性能。关键词: R 树; 移动对象; 位置预测;Moving Object Prediction Location Query based on R-tree Hu gu
2、ojian,Zhang qi,Xia shengkai(Maths,Physics and Information College,Zhejiang Ocean University, Zhoushan Zhejiang 316000,China)Abstract: In the research of the prediction location query of the moving objects, the design of index structure is the key to performance. According to defects of the existing
3、index methods, R-tree index method is proposed in this paper. R-tree algorithm can effectively index space moving object and predict the future positions. R-tree algorithm predicts the moving objects location through the speed and direction of object mobile bound. The experimental results show that
4、R-tree index structure have a optimal search and performance.Key words:R-tree; Move objects; Location prediction;1 引 言移动计算、无线通讯和定位技术的快速发展使得跟踪和管理实际生活中的移动对象轨迹成为了现实。随着移动通信、移动定位技术的迅速发展和移动终端设备(如车载、手持设备等)的不断普及,越来越多的应用(如车载导航、智能交通、实时监控、作战指挥控制等)要求在移动过程中实现对地理空间信息的实时获取。移动对象轨迹是物体在某一个时间段内所经过的路线。对于移动对象在一定时间内的预测位置
5、查询处理技术成为了当前涉及移动对象轨迹信息的时空数据库研究领域的重点与热点之一。传统的 B 树已经不能完全的满足于社会进步,人们需求。R 树在数据库等领域做出的功绩是非常显著的。它把 B 树的思想很好的扩展到了多维空间,采用了 B 树分割空间的思想,并在添加、删除操作时采用合并、分解结点的方法,保证树的平衡性。,对移动对象位置基金项目:浙江省自然科学基金(Y12F020080),浙江省重大科技专项(2011C11046)作者简介:胡国建,男,本科生,A11 计算机。张祺,夏胜凯,男,本科生。查询索引方法大体分为两类:一类为对历史位置的提取;一类为对当前位置提取和对将来位置的预测。它很好的解决了
6、在高维空间搜索等问题。在 BiN-tree 中,引入对象标识辅助索引,搜索 B tree,直接获取被更新对象在 TPN-tree 中的存取路径(对象的更新数据可简化为(Old,P ,V ),然后执行删除和插入操作。能够有效而又简单的解决移动对象预测位置的查询。移动对象是指对象的空间数据随时间的变化而连续变化的对象,它主要可以分为移动点(moving point)和移动区域(moving region)。移动点是指随时间而变化的空间对象的位置(position)。对移动点的查询主要是要确定移动对象的位置。移动区域是指随时间而变化的空间对象的位置及其形状。对移动区域的查询主要是要确定在特定时间内移
7、动对象的位置或形状。移动对象数据库通常管理着数量非常庞大的移动对象。在查询处理时如果逐个扫描所有的移动对象显然将会极大地影响系统的性能。移动对象的索引方法通常借鉴于空间数据索引技术,不同之处在于移动对象的索引中有一维必然是时间维。已提出的移动对象索引方法主要分为两类:1) 索引移动对象过去与当前的位置;2)索引移动对象当前与将来的位置。1基于 R-tree 的移动对象索引技术迄今为止,一些好的关于移动对象索引技术的综述已被给出。例如,Gaede 等12给出了一个关于空间数据库中各种多维访问方法的综述;Mokbel 等13给出了一个关于已有的各种时空访问方法的综述。根据各种时空访问方法所支持的查
8、询类型与时间,Mokbel 等将时空索引方法分成两类:索引过去、索引现在与预测将来位置,并对每类方法进行了简单讨论。另外,他们还简单地介绍了一些开放的并且可利用的索引工具,例如,数据库系统的通用查找树(Generalized Search Tree for Database Systems, GiST)和空间划分的通用查找搜索树(Space-partitioning Generalized Search Tree, SP-GiST)等,这些索引工具可以帮助我们实现各种不同的时空访问方法。最近,Manolopoulos 等系统性给出了一个基于 R-tree 及其变体的移动对象索引方法的综述。他们
9、详细讨论了 R-tree 及其变体的适用性,精确的代价模型,诸如并发控制、恢复以及并行处理等的实现问题等,并且还介绍了由一些数据库开发商所实现的 R-tree 及其变体。虽然他们给出了一个好的基于R-tree 及其它的变体的各种移动对象索引技术的综述,但是却没有考虑基于四叉树(quadtree)的移动对象索引技术和其它的移动对象索引技术;下面我们将分别对三类移动对象索引技术及其各自相应的移动对象索引方法分别进行简单的讨论。 42 预测索引方法自从1984年Guttma n提出R-树以后,人们以此为基础,针对不同的时空操作需求提出了各种改进方案,逐渐形成R树家族。其中,对移动对象位置查询索引方法
10、大体分为两类:一类为对历史位置的提取;一类为对当前位置提取和对将来位置的预测。2.1 扩展 TPR-tree使其支持对象标识查询-ETPR_treeETPR-tree更新算法我们假定Old是所有移动对象的唯一标识,即不同对象的Oid不同。更新结构为(Oid,(P , V)更新算法分为3个步骤:步骤1:对象标识Oid查询。步骤2:删除过时的对象。步骤3:插入更新后的对象。对象标识Oid查询以更新对象的标识Oid为索引树的查找目标,确定此对象在树叶子结点中的位置。显然只需要用IdBR指示树的搜索方向,计算仅涉及一个维度(见算法1)。删除和插入处理与TRP-tree类似。算法1:对象标识查询算法Qu
11、eryld(OOid,N)if(N是叶子结点)for(N中的每一entry)if(entryOid与OOld相等)记录()在树中的位置并返回elsefor(N中的每一entry)if()OidE entryIdBR)QueryId(OOld,entrypchild);End Queryld2.2 双索引结构 R-tree解决TPR-tree不能有效支持对象标识查询缺陷的另一种方法是采用双索引结构:构建以Oid为关键字(key)的B+-tree作为辅助索引,原有的TPR-tree结构和相应算法不变。在B+-tree中,叶子结点中的每一条目记录对象标识与此对象在TPR-tree的相应位置,即(Oi
12、d,ptr),其结构如图1所示。 1 2 3 4 9 1 0 1 1 1 2 B + - t r e e T P R - t r e e图1 R-Tree索引结构在BiN-tree中,引入对象标识辅助索引,搜索B+-tree,直接获取被更新对象在TPN-tree中的存取路径(对象的更新数据可简化为(Old,P ,V ),然后执行删除和插入操作(见算法2)、R-tree的更新计算复杂度及结点访问数(I/O量)明显低于TPN-tree。当然,B+-tre的同步更新会产生附加的I/O量,但其I/O量较小(等于B+-tree的高度)。算法2的复杂度为O(H+H2)次I/O,其中H 和H2分别为B+-t
13、ree与TPN-tree的高度。算法2:BiN-tree更新算法Updatelndex(Oid,newkey)Path=IdTreeSearch()id);N= TPRTreeReadNode(Path);E=GetEntry(N,Old);NDelete(E):NewPath=TPRTreeInsert(Oid,newkey);IdTreeUpdate(Old,NewPath);End Updatelndex;2.3 索引现在与将来二元变换:Kollios等使用二元变换(Duality transformation)把在时空域上的移动对象的迹线转换到二维空间上的点。该索引方法的主要设计思想是
14、用方程式xt=at+b来表示一个二维空间中的点(a,b),其中a代表速度并作为水平维;而b代表参考位置并作为垂直维。由于移动对象杂乱的分布在二元空间上,所以基于kd树(kd-tree)的空间索引方法被用来代替R-tree。由于在初始的时空空间里的矩形区域查询被转换成在二元速度位置空间里的多边形区域查询,所以由Goldstein等提出的算法可被用来有效的处理区域查询。TPR-tree:Saltenis等提出了基于R*-tree的索引技术,称为时参R(TimeParameterized R-tree, TPR-tree)。TPR-tree能有效的索引在一维,二维,三维空间中的移动点对象的现在与预测
15、的将来位置。TPR-tree考虑移动对象的速度与方向来预测移动对象在不久将来的大致位置2。并且通过考虑在树结构中可计算的位置来减少时间函数的频繁更新问题。同时, TPR-tree的更新算法也能使其自动的调整以适应于一个动态变化的数据集。PR-tree:参数化R树(Parametric R-tree, PR-tree)与TPR-tree类似,但是PR-tree考虑用参数化矩形来表示移动对象的空间区域。每个参数化矩形都有一个时间间隔来表示移动对象运动的开始时间和结束时间。与TPR-tree考虑连续运动的对象不同,PR-tree还考虑移动对象的结束时间。因此,一个移动对象在空间上用一个多边形来表示而
16、不是连续的运动迹线。给定运动的结束时间,一系列的移动对象可以用可计算的多边形来表示。MP-tree:Lee等提出了一棵移动点树(Moving Point Tree, MP-tree),它是一个用来索引移动点对象数据的基于R-tree的索引方法。MP-tree使用投影操作(projection operation)来有效的支持诸如时间片查询与区域查询等的查询操作。但是使用投影操作带来的一个缺点就是当结点被输入时需要花费更多的时间来进行投影操作的存储,而优点则是能有效的处理分裂与查询操作,并且具有高效的空间利用率。另外,通过链表的使用,MP-tree还可以有效的处理基于迹线的查询。23 预测查询方
17、法R-tree树的构造以下面2个观察为基础。(1) 大部分移动对象在大部分时间内是在某个地理范围内或其附近运动的, 如海上船舶。 我们将这种运动速度较慢的移动对象定义为自由移动对象; (2) 移动对象的运动一般与地理环境相关。船舶移动对象通常以无规则等线状运动,由于海岛、灯塔、航道等地理环境信息很少发生改变, 因此, 我们能利用空间面状和线状目标这一个相对稳定的因素来建立索引空间的静态部分。同时, 将移动对象与其所处的地理对象相关联, 针对移动对象构造索引空间的动态部分。通过减少索引结构的动态变化来降低更新代价, 并实现对移动对象的快速检索。在持续移动对象的位置跟踪和不久的将来位置预测系统中(
18、如智能导航),一般在移动对象上安装定位设备(GPS),这些定位设备能有效地记录移动物体的运动状态(如当前所处的位置坐标、运动的速度和方向等信息)。3.1 在对将来位置的预测:指数平滑法5:虽然单个移动对象的运动是不断发生改变的,但是由于运动的连续性,移动对象当前时刻的运动。速度是和它在前几个时刻的运动速度密切相关的。因此, 可以根据移动对象历史时间戳的空间位置来计算移动对象在每个历史时间段内的运动速度, 然后利用历史速度数据来预测该对象下一时刻的运动速度。并由此计算出移动对象在将来时刻的空间位置,R预测索引表达 如图2。R 1R 2R 3r 1r 2r 3r 4q 1q 2q 3q 4q 5q
19、 6q 7 q 8q 9图2 R预测索引表达R 1 R 2 R 3r 1 r 2 r 3 r 4q 3q 1 q 2 q 4 q 5 q 6 q 7 q 8 q 9M OM O M O M O M O M O M O M OM O图3 R树预测的目录本应用中预测时间范围限制在当前时刻以后的10 min 内, 因此采用需求数据少、跟踪能力较强的指数平滑法( Exponential Smoothing, ES)来实现移动对象将来时刻的位置预测。在指数平滑法中, 预测成功的关键是平滑系数A的选择。a的大小规定了在新预测值中新数据和原预测值所占的比例, 代表了预测模型对时间序列数据变化的反应速度和对预
20、测模型修匀误差的能力,R树预测的目录如图 3。本文采用如下公式来确定平滑系数a:0 1 2,/) +(其中:ntttt ttttVa32121 1)(2)(4233213131nt ttttntttnt tttt Va式中: 表示当前时刻t 速度的观测值; ( i= 1,2, , n) 表示t 时刻之前的第i Vit个时刻的速度;n 为计算a时选取的观测值的个数。n 值过大计算代价高, n 值过小不能正确反映数据变化。在本应用中,选取某移动对象在某段道路上的当前时刻前的10个时间戳位置来计算a值。K 为预测时选择的当前时间戳之前的时间戳的数量, 可以根据下式计算:K =(2-a)/a 3.2
21、将来时间戳的位置预测对于“查询移动对象M( ) 在距现在时刻t 不久的下一时刻t + 1 的位置( )”tba, 1,tba的将来时刻查询, 其方法如下.(1) 首先找到移动对象M 所关联的空间目标,若是面状目标, 则M是类静止对象, 根据采用ES方法进行将来时间戳的速度预测计算其在t 时刻的运动速度Vt, 则移动对象M在t+1 时刻的位置范围可如下计算:tVbatt1(2) 若移动对象M 所关联的目标是路段目标S,则M 是快速运动对象。首先根据采用ES 方法进行将来时间戳的速度预测计算其在t时刻的运动速度 , 计算M在时间间隔 内的tVt移动距离d = , 判断M 是否仍然在现有的路段内,
22、若在的话, M在t+1时刻的位置如t下计算:221 221 )()(stststttt sttstttt BAVba其中: ( ), ( )为路段L的起点和终点坐标。sBA,t,若M不在现有的路段内, 则首先依据所设定的运动规则(如最短路径规则、首次匹配规则等),判断移动对象M 将经过的路段, 计算经过每条路段所需的时间, 并最终确定时刻t+1 时M 所在的路段 , 再计算其在t+ 1 时刻的位置: 221 221 )()()( stststtst stststtst BAVBbAa其中:( ) , ( )为路段 的起点和终点坐标; 为M 途经路段( 除 外) sAtL tL所需时间之和。34
23、 性能分析R-tree用C+ 编程实现,以TPR-tree源代码为基础,并做了适当修改和扩充,因此,我们利用TPR-tree的数据生成器来模拟移动对象的运动。TPN-tree的数据生成器通过给定一些参数来模拟物体在二维空间的运动,生成均匀分布或非均匀分布的数据集。利用此生成器模拟10000个移动对象(如汽车)在范围为10001000km。交通路线网络中的运动。此路线网络目的地数目(ND)为20,每个移动对象的运动速度在0km/min和3km/min间均匀分布(加速、减速和最大最小速度),运动方向随机,速度更新平均时间间隔UI=60min(更新时间间隔在0和2UI间均匀分布),总时长为600mi
24、n,查询窗口w 分别为0、30、60、120、240、480生成6组性能测试混合事务工作流。对BiN-tree执行上述6组事务流(更新操作分别为97837,98671,98767,97985,97345和98757次),其平均I/0次数基本上不变动。执行2400次窗口查询的平均I/O次数也是基本不变动。3结束语:在本文提出R树的计算方法实用并针对于移动对象预测位置的查询,并且引用指数平滑方法实现了移动对象运动信息未知情况下的将来时刻的位置的预测查询。R-tree结构能在保证查询性能的前提下,还能有效地解决TPRtree的更新缺陷。由于Rtree并不改变TPR-tree原有的算法和结构(对对象标
25、识建立B+-tree索引),因此这种建立辅助索引的方法可以应用到现有的其他索引结构中,解决其存在的更新缺陷。对于移动对象位置预测查询很有效果。参考文献:1 Chen L, Ozsu M T, Oria V. Robust and fast similarity search for moving object trajectories. In Proc. the ACM SIGMOD Int. Conf. on Management of Data, Baltimore, MarylandM, 2005, pp.491-502. 2 赵卿松,卢炎生. 移动对象位置预测的索引方法C.2006, pp.5-63 詹 平,郭 菁,郭 薇. 基于时空索引结构的移动对象将来时刻位置预测 . 2007, pp.6-7. 4 李春. D移动对象轨迹的最近邻居查询研究D.2007, pp.65-68.5 唐炎森. 确定平滑系数的新方法J. 统计与信息论坛, 1997, vol.3 .pp.15- 18.