CN110232067A - 一种基于BHR-Tree索引的共乘群体发现方法 - Google Patents
一种基于BHR-Tree索引的共乘群体发现方法 Download PDFInfo
- Publication number
- CN110232067A CN110232067A CN201910498153.6A CN201910498153A CN110232067A CN 110232067 A CN110232067 A CN 110232067A CN 201910498153 A CN201910498153 A CN 201910498153A CN 110232067 A CN110232067 A CN 110232067A
- Authority
- CN
- China
- Prior art keywords
- buddy
- tree
- index
- time slot
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000008569 process Effects 0.000 claims abstract description 15
- 230000008859 change Effects 0.000 claims description 16
- 230000015572 biosynthetic process Effects 0.000 claims description 4
- 238000003786 synthesis reaction Methods 0.000 claims description 4
- 230000003362 replicative effect Effects 0.000 claims description 2
- 238000012423 maintenance Methods 0.000 abstract description 5
- 230000007246 mechanism Effects 0.000 abstract description 4
- 230000008901 benefit Effects 0.000 abstract description 2
- 230000006872 improvement Effects 0.000 description 5
- 238000011160 research Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000008531 maintenance mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Remote Sensing (AREA)
- Human Resources & Organizations (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于BHR‑Tree索引的共乘群体发现方法,对采集到的GPS数据进行预处理,形成停留点轨迹;针对停留点轨迹,定义Buddy,Buddy表示伙伴,并对Buddy建立索引;再对每个时隙下的Buddy建立二次索引;在建立二次索引的基础上,通过位置检索发现相似出行者。本发明通过两层索引结构,可以加快出行者轨迹的检索。对建立的Buddy索引可进行快速维护更新,同时对HR‑Tree的叶子节点更新机制进行改进,可以降低HR‑Tree的空间使用率,最后可以通过进行时空查询可以快速发现可共乘的出行者。本发明在群体发现的效率和准确率上具有更大的优势。
Description
技术领域
本发明涉及一种共乘出行中群体发现方法的研究,具体涉及一种基于BHR-Tree索引的共乘群体发现方法。
背景技术
随着我国城市化进程的不断加速,城市人口规模急剧增长,随之带来的城市汽车保有量持续增长,给城市交通带来了巨大压力。共乘出行作为一种新兴的可持续交通出行方式可以有效缓解城市道路交通中的拥堵问题。通过快速的共乘群体发现可以有效的提高出行体验和共乘服务的质量,促进共乘出行的发展。大规模交通数据的产生为基于GPS轨迹的共乘群体发现提供了数据支持。
共乘出行研究中群体发现的主要问题是如何快速和准确的发现具有相似出行活动的其他出行者以构成一个出行小组。由于出行者在日常的出行活动中会出现大量的带有时间标签GPS位置信息,因此可以通过对这些GPS信息进行分析从而得到相似出行活动的出行者。然而,大量的GPS数据又为数据分析带来了困难,由于出行者的出行信息是杂乱且冗余的,直接对这些GPS数据进行分析从而得到相似出行用户的计算代价是难以接受的。
虽然当前对于共乘出行中的群体发现问题有诸多研究,而这些研究大多是直接对数据进行分析,侧重于提高共乘群体发现过程中的准确率。更多的是规划用户的出行活动计划,包括匹配司乘双方、选择见面地点、及优化路径。这些工作多是对数据的直接处理,没有考虑大规模轨迹数据的处理。目前较少工作开展建立共乘出行的轨迹索引结构及群体快速查询研究,因此有必要从轨迹检索的角度深入解决共乘群体发现问题。
发明内容
针对现有的共乘群体发现与匹配的准确率和效率较低的问题,本发明的目的是提出一种基于BHR-Tree索引的共乘群体发现方法。
为了实现上述目的,本发明采用的技术方案如下:
一种基于BHR-Tree索引的共乘群体发现方法,包括以下步骤:
步骤1,对采集到的GPS数据进行预处理,得到预处理后的轨迹数据,对预处理后的轨迹数据进行压缩,形成停留点轨迹;
步骤2,针对步骤1中的停留点轨迹,定义Buddy,Buddy表示伙伴,并对Buddy建立索引;
约束Buddy的两个条件为:
(1)O表示出行者的停留点集合,bi表示任意一个Buddy;
(2)oi∈bi,dis(oi,cen(bi))≤δs,其中cen(b)是Buddy的几何中心,δs是定义的Buddy半径阈值,oi为一个停留点,bi表示任意一个Buddy,dis(·)表示距离函数;
步骤3,对每个时隙下的Buddy建立二次索引;
步骤4,在建立二次索引的基础上,通过位置检索发现相似出行者。
本发明进一步的改进在于,步骤2中,对Buddy建立索引的具体过程为:
采用四元组Buddy=<ID,CanIds,locSet,timSet>表示,其中:
(1)ID表示Buddy的唯一标识;
(2)CanIds表示Buddy内部的停留点集合;
(3)locSet表示Buddy的中心位置集合;
(4)timSet表示Buddy经历的时隙集合;
首先在第一个时隙中将出行者的每个单独停留点作为一个Buddy,然后将最近的Buddy进行合并;
然后采用分裂-合并算法对每个时隙的Buddy进行更新;
最后,在每个时隙的Buddy更新后,如果Buddy内的成员未发生变化,则该Buddy的唯一标识ID和停留点集合CanIds保持不变,将更新后的Buddy中心位置和所在时隙编号加入到中心位置集合locSet以及时隙集合timSet中;如果Buddy内的成员发生变化,则新建一个Buddy副本,重新命名,同时根据成员的变化更新停留点集合CanIds,此时将中心位置集locSet和时隙集合timSet清空,并将当前状态下的Buddy中心位置和所在时间窗添加到中心位置集locSet以及时隙集合timSet中;在当前时隙下,更新完所有的Buddy后,如果Buddy的成员数为1,则将该Buddy删除,完成Buddy索引的建立。
本发明进一步的改进在于,采用分裂-合并算法对每个时隙的Buddy进行更新的具体过程为:先进行分裂阶段,再进行合成阶段;其中,分裂阶段:当下一个时隙时到来时,Buddy内的点不满足约束Buddy的两个条件时,将不满足的点分裂为单独的Buddy;合成阶段:在分裂后的基础上,如果分裂出的Buddy满足约束Buddy的两个条件,则将两个Buddy合并为一个Buddy。
本发明进一步的改进在于,步骤3的具体过程如下:
将每个时隙作为一个时间片,首先对第一个时间片的Buddy和未构成Buddy的停留点建立第一个时间片的R-Tree,此时将Buddy的中心位置作为位置坐标,停留点坐标作为被索引对象,并附加一个标识flag,对Buddy和停留点进行区分;
然后建立后续时间片的R-Tree;
对于所有的停留点,如果其中任意一个停留点位置未发生变化,则位置未发生变化的停留点的数据指针指向上一个时间片下的R-tree,如果其中任意一个停留点位置发生变化,则将位置发生变化的停留点重新插入到当前时间片下R-tree中。
本发明进一步的改进在于,建立后续时间片的R-Tree的具体过程如下:首先复制第一个时间片的R-Tree,对步骤2建立的Buddy索引进行检索,如果新时间片下的Buddy索引未发生变化,即没有新的Buddy生成或删除,则说明每个Buddy的内部成员未发生变化;此时,当前新时间片下的R-Tree所有的Buddy的数据指针直接指向上一个时间片下的R-tree;
如果新时间片下的Buddy索引发生变化,则重新插入新的Buddy。
本发明进一步的改进在于,步骤4的具体过程如下:
4.1)在步骤3中建立二次索引基础上,通过下面公式确定出行者当前所在的时隙,并确定当前时隙下的R-Tree;
其中,h表示当前时间下的时刻,m表示分钟,k表示所在时隙的编号;
4.2)将出行者的出发点的经纬度作为输入,对步骤4.1)确定的当前时隙下的R-Tree进行k-nn查询;
4.3)判断k-nn查询的结果是否包含带有Buddy标识的对象;
如果包含带有Buddy标识的对象,则优先对Buddy进行处理,然后继续判断该Buddy是否包含查询对象,如果包含查询对象,则将Buddy内的所有其他用户作为可共乘对象返回给出行者;如果不包含查询用户,则分别对中心位置集合locSet以及时隙集合timSet进行遍历,如果中心位置集合locSet内的中心点和时隙集合timSet内的时隙与出行者的目的点和预期到达时间相似,则将Buddy内所有其他用户作为可共乘对象返回给出行者;
如果不包含带有Buddy标识的对象,则先对查询结果的其他停留点的空间以及时间相似性进行筛选,得到候选结果集OSet,然后再对目的点和目的时间进行查询,对查询结果的其他停留点的空间以及时间相似性进行筛选,得到目的结果集Dset,对候选结果集OSet与目的结果集Dset两个集合取交集,得到新的集合,该新的集合内的出行者作为可共乘对象返回给出行者。
与现有技术相比,本发明的有益效果在于:与现有的群体发现方法不同,本发明通过联合传统的HR-Tree索引和Buddy索引提出BHR-Tree索引结构,对出行者的停留点序列进行索引。通过两层索引结构,可以加快出行者轨迹的检索。对建立的Buddy索引可进行快速维护更新,同时对HR-Tree的叶子节点更新机制进行改进,可以降低HR-Tree的空间使用率,最后可以通过进行时空查询可以快速发现可共乘的出行者。相对于传统的群体发现方法,本发明在群体发现的效率和准确率上具有更大的优势。
附图说明
图1为压缩后的出行者GPS轨迹对比图。
图2为Buddy的更新机制。
图3为HR-Tree的索引示意图。
具体实施方式
以下结合附图对本发明提出的基于BHR-Tree(面向微组的历史R-树)索引的群体发现方法进行具体的说明。
本发明包括以下步骤:
步骤1:对采集到的GPS数据进行预处理,提取其中的经度、纬度、时间用户标识信息,对出现的异常数据如重复、经纬度越界的数据进行剔除,得到预处理后的轨迹数据。由于预处理后的轨迹数据存在着大量冗余信息,所以采用停留点聚类识别的方法(Zheng Y,Zhang L,Ma Z,et al.Recommending friends and locations based on individuallocation history[J].ACM Transactions on the Web,2011,5(1):1-44.)对预处理后的轨迹数据进行压缩,形成停留点轨迹。同时,为便于后期对停留点轨迹数据的有效管理,将一天划分若干个时间窗,考虑出行者的通勤习惯,每个时间窗的窗口大小为30min。
采集到的GPS数据经过一系列数据处理前和处理后的数据格式分别如表1、表2所示,图1是停留点轨迹与GPS数据的示意图,图1中的黑点p1~pn表示为一条轨迹中的GPS数据,经过采用停留点聚类识别的方法识别后,可由白色停留点sp1~spk表示该轨迹。
表1 GPS数据的格式
出行者 | 经度 | 纬度 | 日期 | 时间戳 |
001 | 104.079033 | 30.652164 | 2016/11/1 | 18:37:34 |
001 | 103.979478 | 30.666783 | 2016/11/7 | 14:18:44 |
001 | 104.142940 | 30.681480 | 2016/11/25 | 09:49:31 |
表2停留点轨迹的格式
出行者 | 停留点经度 | 停留点纬度 | 出行间隙 |
001 | 104.079033 | 30.652164 | 11 |
001 | 103.979478 | 30.666783 | 12 |
001 | 104.142940 | 30.681480 | 13 |
步骤2:针对步骤1中的停留点轨迹,对停留点轨迹的所有的停留点构建Buddy,定义一种数据结构—Buddy,进行存储,Buddy表示伙伴,并针对Buddy建立Buddy索引,Buddy支持对Buddy索引的高效维护,下面是Buddy的定义以及建立Buddy索引的过程。
Buddy代表着一类关系紧密的对象,是一种微组,其中,因此每个Buddy内的停留点的空间距离足够近(如欧几里得距离)且数量较小。
因此,每个Buddy都需要满足下面两个条件,即约束Buddy的两个条件:
(1)O表示出行者的停留点集合,bi表示任意一个Buddy。
(2)oi∈bi,dis(oi,cen(bi))≤δs,其中cen(b)是Buddy的几何中心,δs是定义的Buddy半径阈值,oi为一个停留点,bi表示任意一个Buddy,dis(·)表示距离函数。
采用四元组Buddy=<ID,CanIds,locSet,timSet>表示,其中:
(1)ID表示Buddy的唯一标识。
(2)CanIds表示Buddy内部的停留点集合。
(3)locSet表示Buddy的中心位置集合。
(4)timSet表示Buddy经历的时隙集合。
不同于基于密度的聚类方法,Buddy并不需要在每个时隙都进行聚类。
建立Buddy索引的过程为:
首先在第一个时隙中将出行者的每个单独停留点作为一个Buddy,然后将最近的Buddy进行合并,这个过程仅需要在初始化Buddy时才进行。
然后对每个时隙的Buddy进行更新,在更新时利用分裂-合并算法进行维护。其中,利用分裂-合并算法进行维护可分为两个阶段,先进行分裂阶段,再进行合成阶段;分裂阶段:当下一个时隙时到来时,Buddy内的点不满足约束Buddy的两个条件时,将不满足的点分裂为单独的Buddy;合成阶段:在分裂后的基础上,如果分裂出的Buddy满足约束Buddy的两个条件,则将两个Buddy合并为一个Buddy。
具体的,如图2所示,当前时隙s1,所有的Buddy已经构建完成,当下一个时隙s2到来时,根据分裂-合成算法,Buddy成员b1内的成员可分别分裂成三个Buddy(图2右半部分b2`以及b3`中的灰色圆点),然后可以与Buddy成员b2、Buddy成员b3分裂出的Buddy合成为两个新的Buddy成员b2`以及b3`。
最后,在每个时隙的Buddy更新后,如果Buddy内的成员未发生变化,则该Buddy的唯一标识ID和停留点集合CanIds保持不变,将更新后的Buddy中心位置和所在时隙编号加入到Buddy的中心位置集合locSet以及Buddy经历的时隙集合timSet中。如果Buddy内的成员发生变化,则新建一个Buddy副本,重新命名,同时根据成员的变化更新停留点集合CanIds,此时将locSet和timSet清空,并将当前状态下的Buddy中心位置和所在时间窗添加到locSet以及timSet。在当前时隙下,更新完所有的Buddy后,如果Buddy的成员数为1,则将该Buddy删除,完成Buddy索引的建立。
步骤3:对每个时隙下的Buddy建立二次索引
建立双层索引,第一层是步骤2针对停留点建立的Buddy索引,第二层则在步骤2建立的Buddy索引的基础上,对Buddy进行二次索引,即建立Buddy的R树索引。
通过Buddy将可进行共乘的出行者划分到一个微组中,虽然Buddy是一类群组,但它不同于聚类后的类簇,每个Buddy内部含有的停留点远远小于类簇。在进行群体发现时,仍需要遍历大量的Buddy,降低了群体发现算法的效率,因此需要对Buddy进行有效管理,即对每个时隙下的Buddy进行二次索引。
在步骤2中,建立的Buddy索引的维护与更新是在时隙更迭的基础上,对每个时隙下的Buddy进行二次索引,新构造的索引更新必须与Buddy索引的更新机制保持一致。HR-Tree是在每个时隙的基础上进行更新与维护,与Buddy索引的更新维护机制相似,因此选择对传统的HR-Tree进行改进以对Buddy进行二次索引。
将每个时隙作为一个时间片,首先对第一个时间片的Buddy和未构成Buddy的停留点建立第一个时间片的R-树(R-Tree),此时将Buddy的中心位置作为位置坐标,停留点坐标作为被索引对象,并附加一个标识flag,对Buddy和停留点进行区分。
然后建立后续时间片的R-Tree,具体过程如下:首先复制第一个时间片的R-Tree,对步骤2建立的Buddy索引进行检索,如果新时间片下的Buddy索引未发生变化,即没有新的Buddy生成或删除,则说明每个Buddy的内部成员未发生变化。此时,当前新时间片下的R-Tree所有的Buddy的数据指针直接指向上一个时间片下的R-tree。
如果新时间片下的Buddy索引发生变化,则根据R-tree的插入算法(Guttman A.R-trees:a dynamic index structure for spatial searching[C].ACM SIGMODInternational Conference on Management of Data.1984),重新插入新的Buddy。
同时,对于所有的停留点,如果其中任意一个停留点位置未发生变化,同传统HR-tree一样,则位置未发生变化的停留点的数据指针指向上一个时间片下的R-tree,如果其中任意一个停留点位置发生变化,则将位置发生变化的停留点重新插入到当前时间片下R-tree中。
具体的,通过48个时隙的更迭,可以建立一棵完整的面向微组的历史R-树(面向微组的历史R-树,简写为BHR-Tree),完成对每个时隙下的Buddy的二次索引。
本发明对传统的HR-Tree进行改进,提出BHR-Tree,它同时支持空间查询和时间片查询。BHR-Tree的结构示意图如图3所示,其中,s1、s2为连续的两个时隙,R0,R1则分别为每个时隙下的R-树的根节点,A0,B0,C0为R0的中间节点,B1,B2为R1的中间节点。a0~e1等为叶子节点。它对每个时间片下的轨迹点建立一个R-Tree,为了节省空间,BHR-Tree可以对叶子节点进行共享,即如果连续时间片下叶子节点内对象的位置未发生变化,则不同时间片下的R-tree可以指向同一个叶子节点。
再将每个时隙作为一个时间片,然后对第一个时间片的Buddy和未构成Buddy的停留点建立第一个时间片的R-Tree。
因此,BHR-Tree树中的数据对象的格式为(loc,flag),当flag为1时,表明该对象为一个Buddy,当flag为0时,表明该对象为一个停留点,然后建立后续时间窗的R-Tree。
步骤3构建的BHR-Tree索引,可以有效管理具有相似出行时间和位置的停留点,为了快速发现发现相似出行的出行者以构成共乘出行群体,需要步骤4定义一种针对BHR-Tree的群体发现算法。
步骤4:建立基于BHR-Tree的时空查询的共乘群体发现方法,通过快速的位置检索发现相似出行者。
共乘群体内所有的出行者都具有相似的出发点以及出行时间,出发点相似是指出行者的出发点在都在一定范围的区域内,出发时间的相似性则是指出发时间在一定的时间窗内。因此,可以直接通过BHR-Tree进行时间片和k-近邻查询得到相似的出行者。其中出发点的相似性的计算方法可以直接通过欧式距离进行计算:
dist(loci,locj)=||loci-locj||∞
其中,dist(·)表示距离函数,loci,locj为包含经纬度信息的位置点。出发时间的相似性的计算方法直接通过差值进行计算:
dist(ti,tj)=|ti-tj|
其中,ti,tj分别表示两个位置点的当前时间点。
因此设计一个基于BHR-Tree索引的共乘群体发现算法:通过对出行者的出行信息作为输入,通过直接对构建的BHR-Tree进行时间和空间查询,获得具有相似出行活动的用户,从而组成共乘出行群组。
对索引进行共乘群体发现算法的具体步骤如下:
4.1)在步骤3中建立二次索引基础上,通过下面公式确定出行者当前所在的时隙,并确定当前时隙下的R-Tree;
其中,h表示当前时间下的时刻,m表示分钟,k表示所在时隙的编号。
4.2)将出行者的出发点的经纬度作为输入,对步骤4.1)确定的当前时隙下的R-Tree进行k-nn查询;
4.3)判断k-nn查询的结果是否包含带有Buddy标识的对象:
如果包含带有Buddy标识的对象,则优先对Buddy进行处理,然后继续判断该Buddy是否包含查询对象,如果包含查询对象,则将Buddy内的所有其他用户作为可共乘对象返回给出行者;如果不包含查询用户,则分别对Buddy内的locSet(中心位置集合)以及timSet(时隙集合)进行遍历,如果locSet(中心位置集合)内的中心点和timSet(时隙集合)内的时隙与出行者的目的点和预期到达时间相似,则将Buddy内所有其他用户作为可共乘对象返回给出行者。
如果不包含带有Buddy标识的对象,则先对查询结果的其他停留点的空间以及时间相似性进行筛选,得到候选结果集OSet,然后再对目的点和目的时间进行查询,这次查询仅考虑停留点位置,同样的对查询结果的其他停留点的空间以及时间相似性进行筛选,得到目的结果集Dset,对候选结果集OSet与目的结果集Dset两个集合取交集,得到新的集合,该新的集合内的出行者作为可共乘对象返回给出行者。
本发明采用改进的HR-Tree索引,对出行者的停留点轨迹进行高效索引与管理。针对旅行同伴的微型群组Buddy,同时建立Buddy索引,通过与HR-Tree的结合,提出BHR-Tree索引结构,为共乘出行提供高效和准确的共乘群体。
Claims (6)
1.一种基于BHR-Tree索引的共乘群体发现方法,其特征在于,包括以下步骤:
步骤1,对采集到的GPS数据进行预处理,得到预处理后的轨迹数据,对预处理后的轨迹数据进行压缩,形成停留点轨迹;
步骤2,针对步骤1中的停留点轨迹,定义Buddy,Buddy表示伙伴,并对Buddy建立索引;
约束Buddy的两个条件为:
(1)O表示出行者的停留点集合,bi表示任意一个Buddy;
(2)oi∈bi,dis(oi,cen(bi))≤δs,其中cen(b)是Buddy的几何中心,δs是定义的Buddy半径阈值,oi为一个停留点,bi表示任意一个Buddy,dis(·)表示距离函数;
步骤3,对每个时隙下的Buddy建立二次索引;
步骤4,在建立二次索引的基础上,通过位置检索发现相似出行者。
2.根据权利要求1所述的一种基于BHR-Tree索引的共乘群体发现方法,其特征在于,步骤2中,对Buddy建立索引的具体过程为:
采用四元组Buddy=<ID,CanIds,locSet,timSet>表示,其中:
(1)ID表示Buddy的唯一标识;
(2)CanIds表示Buddy内部的停留点集合;
(3)locSet表示Buddy的中心位置集合;
(4)timSet表示Buddy经历的时隙集合;
首先在第一个时隙中将出行者的每个单独停留点作为一个Buddy,然后将最近的Buddy进行合并;
然后采用分裂-合并算法对每个时隙的Buddy进行更新;
最后,在每个时隙的Buddy更新后,如果Buddy内的成员未发生变化,则该Buddy的唯一标识ID和停留点集合CanIds保持不变,将更新后的Buddy中心位置和所在时隙编号加入到中心位置集合locSet以及时隙集合timSet中;如果Buddy内的成员发生变化,则新建一个Buddy副本,重新命名,同时根据成员的变化更新停留点集合CanIds,此时将中心位置集locSet和时隙集合timSet清空,并将当前状态下的Buddy中心位置和所在时间窗添加到中心位置集locSet以及时隙集合timSet中;在当前时隙下,更新完所有的Buddy后,如果Buddy的成员数为1,则将该Buddy删除,完成Buddy索引的建立。
3.根据权利要求2所述的一种基于BHR-Tree索引的共乘群体发现方法,其特征在于,采用分裂-合并算法对每个时隙的Buddy进行更新的具体过程为:先进行分裂阶段,再进行合成阶段;其中,分裂阶段:当下一个时隙时到来时,Buddy内的点不满足约束Buddy的两个条件时,将不满足的点分裂为单独的Buddy;合成阶段:在分裂后的基础上,如果分裂出的Buddy满足约束Buddy的两个条件,则将两个Buddy合并为一个Buddy。
4.根据权利要求1所述的一种基于BHR-Tree索引的共乘群体发现方法,其特征在于,步骤3的具体过程如下:
将每个时隙作为一个时间片,首先对第一个时间片的Buddy和未构成Buddy的停留点建立第一个时间片的R-Tree,此时将Buddy的中心位置作为位置坐标,停留点坐标作为被索引对象,并附加一个标识flag,对Buddy和停留点进行区分;
然后建立后续时间片的R-Tree;
对于所有的停留点,如果其中任意一个停留点位置未发生变化,则位置未发生变化的停留点的数据指针指向上一个时间片下的R-tree,如果其中任意一个停留点位置发生变化,则将位置发生变化的停留点重新插入到当前时间片下R-tree中。
5.根据权利要求4所述的一种基于BHR-Tree索引的共乘群体发现方法,其特征在于,建立后续时间片的R-Tree的具体过程如下:首先复制第一个时间片的R-Tree,对步骤2建立的Buddy索引进行检索,如果新时间片下的Buddy索引未发生变化,即没有新的Buddy生成或删除,则说明每个Buddy的内部成员未发生变化;此时,当前新时间片下的R-Tree所有的Buddy的数据指针直接指向上一个时间片下的R-tree;
如果新时间片下的Buddy索引发生变化,则重新插入新的Buddy。
6.根据权利要求4所述的一种基于BHR-Tree索引的共乘群体发现方法,其特征在于,步骤4的具体过程如下:
4.1)在步骤3中建立二次索引基础上,通过下面公式确定出行者当前所在的时隙,并确定当前时隙下的R-Tree;
其中,h表示当前时间下的时刻,m表示分钟,k表示所在时隙的编号;
4.2)将出行者的出发点的经纬度作为输入,对步骤4.1)确定的当前时隙下的R-Tree进行k-nn查询;
4.3)判断k-nn查询的结果是否包含带有Buddy标识的对象;
如果包含带有Buddy标识的对象,则优先对Buddy进行处理,然后继续判断该Buddy是否包含查询对象,如果包含查询对象,则将Buddy内的所有其他用户作为可共乘对象返回给出行者;如果不包含查询用户,则分别对中心位置集合locSet以及时隙集合timSet进行遍历,如果中心位置集合locSet内的中心点和时隙集合timSet内的时隙与出行者的目的点和预期到达时间相似,则将Buddy内所有其他用户作为可共乘对象返回给出行者;
如果不包含带有Buddy标识的对象,则先对查询结果的其他停留点的空间以及时间相似性进行筛选,得到候选结果集OSet,然后再对目的点和目的时间进行查询,对查询结果的其他停留点的空间以及时间相似性进行筛选,得到目的结果集Dset,对候选结果集OSet与目的结果集Dset两个集合取交集,得到新的集合,该新的集合内的出行者作为可共乘对象返回给出行者。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910498153.6A CN110232067B (zh) | 2019-06-10 | 2019-06-10 | 一种基于BHR-Tree索引的共乘群体发现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910498153.6A CN110232067B (zh) | 2019-06-10 | 2019-06-10 | 一种基于BHR-Tree索引的共乘群体发现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110232067A true CN110232067A (zh) | 2019-09-13 |
CN110232067B CN110232067B (zh) | 2020-08-07 |
Family
ID=67859424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910498153.6A Expired - Fee Related CN110232067B (zh) | 2019-06-10 | 2019-06-10 | 一种基于BHR-Tree索引的共乘群体发现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110232067B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111615149A (zh) * | 2020-05-13 | 2020-09-01 | 和智信(山东)大数据科技有限公司 | 信令轨迹数据压缩方法及装置 |
CN115827715A (zh) * | 2023-02-08 | 2023-03-21 | 上海合见工业软件集团有限公司 | 基于用户行为和设计层次树的搜索推荐列表生成系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004771A (zh) * | 2010-11-12 | 2011-04-06 | 浙江大学 | 基于动态裁剪的移动对象反向近邻查询方法 |
US20120208565A1 (en) * | 2008-02-08 | 2012-08-16 | International Business Machines Corporation | System and method for preferred services in nomadic environments |
CN108932347A (zh) * | 2018-08-03 | 2018-12-04 | 东北大学 | 一种分布式环境下基于社会感知的空间关键字查询方法 |
CN109241126A (zh) * | 2018-06-29 | 2019-01-18 | 武汉理工大学 | 一种基于r*树索引的时空轨迹聚集模式挖掘算法 |
-
2019
- 2019-06-10 CN CN201910498153.6A patent/CN110232067B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120208565A1 (en) * | 2008-02-08 | 2012-08-16 | International Business Machines Corporation | System and method for preferred services in nomadic environments |
CN102004771A (zh) * | 2010-11-12 | 2011-04-06 | 浙江大学 | 基于动态裁剪的移动对象反向近邻查询方法 |
CN109241126A (zh) * | 2018-06-29 | 2019-01-18 | 武汉理工大学 | 一种基于r*树索引的时空轨迹聚集模式挖掘算法 |
CN108932347A (zh) * | 2018-08-03 | 2018-12-04 | 东北大学 | 一种分布式环境下基于社会感知的空间关键字查询方法 |
Non-Patent Citations (2)
Title |
---|
GUO SHUQIAO等: "Relaxed space bounding for moving objects: a case for the buddy tree", 《ACM SIGMOD RECORD》 * |
段宗涛等: "共享交通的时空轨迹检索与群体发现", 《计算机应用》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111615149A (zh) * | 2020-05-13 | 2020-09-01 | 和智信(山东)大数据科技有限公司 | 信令轨迹数据压缩方法及装置 |
CN115827715A (zh) * | 2023-02-08 | 2023-03-21 | 上海合见工业软件集团有限公司 | 基于用户行为和设计层次树的搜索推荐列表生成系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110232067B (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112182410B (zh) | 基于时空轨迹知识图谱的用户出行模式挖掘方法 | |
Deng et al. | Trajectory indexing and retrieval | |
CN102395965B (zh) | 用于在数据库中搜索对象的方法 | |
Zhao et al. | ICFS clustering with multiple representatives for large data | |
CN102779143B (zh) | 知识谱系的可视化方法 | |
CN109189959A (zh) | 一种构建图像数据库的方法及装置 | |
CN108268600A (zh) | 基于ai的非结构化数据管理方法及装置 | |
CN109934401A (zh) | 一种基于移动互联的定制公交方法 | |
CN104346444B (zh) | 一种基于路网反空间关键字查询的最佳选址方法 | |
CN110232067A (zh) | 一种基于BHR-Tree索引的共乘群体发现方法 | |
CN110232133A (zh) | 一种基于特征融合和款式分类的服装图像检索方法和系统 | |
CN114168705B (zh) | 一种基于地址要素索引的中文地址匹配方法 | |
WO2022143017A1 (zh) | 一种交通数据仓库的构建方法、装置、存储介质及终端 | |
CN106528756B (zh) | 一种基于时空关联性的网络地图数据组织方法 | |
CN108182230B (zh) | 基于位向量四叉树的移动对象汇聚模式挖掘方法 | |
WO2022022654A1 (zh) | 一种生成室内地图的方法和装置 | |
CN109753541A (zh) | 一种关系网络构建方法和装置、计算机可读存储介质 | |
CN112699955A (zh) | 一种用户分类方法、装置、设备及存储介质 | |
WO2023137700A1 (zh) | 一种面向城市决策和评估的多尺度信息目录构建系统 | |
CN101813485A (zh) | 基于地理信息数据的电子地图及其导航方法 | |
CN102043925A (zh) | 一种新型分析信息流的方法 | |
CN110175197B (zh) | 一种基于语义物联网的本体构建方法和系统 | |
WO2019024345A1 (zh) | 基于带序兴趣区域的轨迹查询的匀速搜索扩展算法 | |
CN106157651B (zh) | 一种基于语音语义理解的交通电台路况信息播报系统 | |
WO2019024343A1 (zh) | 基于带序兴趣区域的轨迹查询的扩张搜索扩展算法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200807 |