CN115795115B - 一种基于图存储的多轨迹集合相似性搜索方法 - Google Patents
一种基于图存储的多轨迹集合相似性搜索方法 Download PDFInfo
- Publication number
- CN115795115B CN115795115B CN202310098801.5A CN202310098801A CN115795115B CN 115795115 B CN115795115 B CN 115795115B CN 202310098801 A CN202310098801 A CN 202310098801A CN 115795115 B CN115795115 B CN 115795115B
- Authority
- CN
- China
- Prior art keywords
- track
- similarity
- vertex
- edge
- attribute
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于图存储的多轨迹集合相似性搜索方法,属于轨迹相似性搜索技术领域。首先获取多种不同类型的轨迹集合,为相同类别的轨迹和不同类别的轨迹选择轨迹相似性度量方法。对任意两个轨迹对进行轨迹相似性计算。以轨迹的ID为顶点,两个不同ID为边,轨迹的相似性度量方法名称为边的属性,属性的取值为轨迹的相似性。在图数据库中创建顶点表、关系表、属性表,将轨迹ID、轨迹相似性等数据存储到图数据库中。以轨迹ID,度量方法,相似性阈值为输入进行图查询,返回与目标轨迹高度相似的轨迹集合。本发明通过预计算的方式,提前计算轨迹相似性并保存在图存储***中,避免了传统搜索方法中耗时的计算步骤,加速了查询过程。
Description
技术领域
本发明涉及一种基于图存储的多轨迹集合相似性搜索方法,属于轨迹相似性搜索技术领域。
背景技术
随着移动互联网、传感器网络和物联网技术的高速发展,城市中部署了多种无线传感网络。城市居民的日常出行被多种传感网络感知,产生了很多轨迹数据。这些轨迹数据包括不限于手机信令轨迹、车辆GPS轨迹、公交票卡轨迹、和WiFi信号轨迹。这些轨迹包含了城市居民个体的出行信息,也包含了数以百万计居民的移动规律。对这些数据的挖掘和利用是城市规划、交通***建设、公共服务和应急管理的基础。以公交场景为例,如何判断公共汽车实际行驶路线是否与预定线路一致。以智慧警务为例,警察想了解某位企业家的车辆是否被人跟踪。这两种情况都涉及到轨迹相似性计算的问题。
然而,如何存储和索引这些轨迹数据面临着两个巨大的挑战。首先,海量轨迹数据的管理对计算和存储资源要求越来越高。以某个一线城市为例:城市常驻人口手机信令轨迹个数超过1000万个;公共交通***日常出行人数超过500万,每个公交卡对应一个轨迹;私家车200万辆,每辆私家车都对应一个GPS轨迹。这些不同类型的轨迹最多对应数以千条的记录。并且,历史存量数据和增量数据还在不断增加。其次,这些轨迹数据来自于不同的数据采集***,轨迹长度,采样频率,轨迹精度各不一样。如何对这些多源异构的轨迹构建统一的存储解决方案没有经验可以参考。
轨迹的相似性搜索是一个经典的研究问题,学术界和工业界进行了大量的研究。
当前关于轨迹相似性搜索的研究现状有如下几个特点:
(1)大部分研究都关注的是同构轨迹的相似性搜索,所有的轨迹都为同一类型设备产生的轨迹,其轨迹长度,采样频率和轨迹精度相近,管理成本相对较低。
(2)使用时空数据库或分布式索引存储轨迹,相似性搜索过程避免不了成本较高的计算步骤(轨迹相似性计算);
(3)在相似性搜索过程中一般只能指定一个具体的轨迹相似性度量方法,不支持多种相似性度量方法。
发明内容
本发明要解决的技术问题是提供一种基于图存储的多轨迹集合相似性搜索方法,用以解决轨迹相似性搜索的问题。
本发明的技术方案是:一种基于图存储的多轨迹集合相似性搜索方法,具体步骤为:
Step1:获取多种不同类型的轨迹集合,包括但不限于车辆GPS轨迹、公交票卡轨迹、手机信令轨迹,每个集合包含多个同类设备产生的轨迹;
所述轨迹包含一个独一无二的设备编号,一段时间范围内产生的时空点,其中,每个时空点包含一个时间戳,以及一组表示地理信息位置的经度和纬度;
Step2:根据轨迹长度和采样频率,分别为每个轨迹集合内部以及不同轨迹集合之间,选择相应的轨迹相似性度量方法;
通过轨迹相似性度量方法,量化了两条不同轨迹的时空相似性,相似性取值在0~1之间,0代表两个轨迹没有任何时空交集,1代表两个轨迹完全相同;
Step3:对任意两两轨迹组合执行相似性计算并保存计算结果,具体为:
Step3.1:遍历每一个集合-集合的组合,分别对两个不同轨迹集合内部的任意轨迹组合,使用Step2中选择的轨迹相似性度量方法,执行两两相似性计算;
所述集合-集合表示的是多个轨迹集合中,任意两个集合;
Step3.2:遍历每一个集合,对该集合内部的任意轨迹组合,使用Step2中选择的轨迹相似性度量方法执行两两相似性计算;
Step3.3:保存两两相似性计算的结果;
Step4:在图数据库中创建顶点表,关系表,属性表;
所述顶点表用来存储设备ID信息,一个顶点代表一个设备ID;
所述关系表用来存储边的信息,边由起始顶点和终止顶点构成,边上可以存储属性,一条边可以存储多个不同属性,属性名称对应轨迹相似性度量方法,属性取值代表轨迹相似性;
所述属性表用来存储顶点属性,属性的值保存顶点对应设备的轨迹;
Step5:将Step3中两两相似性计算的结果保存到图数据库中,将设备ID,轨迹信息,轨迹相似性度量方法名称,轨迹相似性得分导入图数据库不同的表中;
Step6:初始化设备ID、轨迹相似性度量方法,相似性得分,调用查询接口对图数据库进行查询;
Step7:图数据库根据设备ID,相似性度量方法的名称和属性值,分别搜索顶点表,关系表和属性表,返回与目标ID轨迹高度相似的轨迹。
本发明Step5执行的是轨迹相似性搜索,使用到了Step3中的计算结果,这种方式称为预计算。通过预计算的方式,提前计算所有轨迹的相似性并保存在图存储***中,避免了传统搜索方法中耗时的计算步骤,加速了搜索过程。
所述图存储涉及三个表,分别是顶点表,关系表和属性表;
图存储的方式是以设备ID为顶点,两个不同设备为边的起始和终止顶点,每条边有多个属性,属性的取值分别为两个不同顶点在多种不同度量方法条件下的轨迹相似性,每个顶点有一个属性,属性的值为该顶点对应设备的轨迹。
Step2所述两个轨迹的相似性度量方法具体过程为:
每个设备对应一个轨迹,轨迹由一个独一无二的设备编号和一系列时间上有序的时空点构成,每个时空点涉及一个时间戳和一组表示位置信息的经纬度表示;
点的形式为:
(1)
公式(1)中,t代表时间戳,lat代表纬度,lon代表经度;
轨迹的形式为:
(2)
公式(2)中,devID表示独一无二的设备编号,n为该设备对应轨迹的点的个数;
(3)
公式(3)中,TRa和TRb分别为两个不同的轨迹,method为轨迹相似性度量方法,TrSimCalculate为轨迹相似性计算函数,coeff是函数返回值,代表轨迹TRa和TRb在method度量方法条件下的轨迹相似性,取值在0~1之间。
所述顶点表,每行记录的格式如下:
(4)
式(4)中,vertexID为顶点ID,无符号整形,4个字节;devID为设备编号,字符串类型,20个字节;nextEdgeID为该顶点的下一条边ID,无符号整形,4个字节;nextProID,为该顶点的下一个属性ID,无符号整形,4个字节;
每条记录的字节数固定,为32个字节,顶点表中的记录按devID字典顺序排列,
对应字段vertexID从1开始,按步长为1连续生成,vertexID为顶点表的索引字段;
所述关系表,每行记录的格式如下:
(5)
式(5)中,edgeID为边ID,无符号整形,4个字节;startVID为起始顶点的编号,无符号整形,4个字节;endVID为终止顶点ID,无符号整形,4个字节;coLCSS、coJC、coDTW、coEDR分别为startVID和endVID对应两条轨迹在不同度量方法下的相似性,相似性取值在0.00~1.00之间,四个变量均为无符号浮点形,均为4个字节。sPreEID为起始顶点的前一个边的编号,无符号整形,4个字节;sNextEID为起始顶点的后一个边的编号,无符号整形,4个字节;
每条记录的字节数固定,为36个字节。边表中字段edgeID从1开始,按步长为1连续生成,edgeID为边表的索引字段。
所述属性表格,每行记录的格式如下:
(6)
式(6)中,proID为属性ID,无符号整形,4个字节;property为属性名称,无符号整形,4个字节;value为属性的值,以100个字节存储属性的值,此处属性property为“轨迹”,value为轨迹包含的一系列时间上有序的时空点;
每条记录的字节数固定,为108个字节,边表中字段proID从1开始,按步长为1连续生成,proID为属性表的索引字段。
所述Step3.1具体为:
Step3.1.1:输入三个参数:轨迹集合TrSetA,轨迹个数为m,轨迹集合TrSetB,轨迹个数为n,轨迹相似性度量方法名称Method;
Step3.1.2:初始结果列表ABList, ABList 用于保存形如(TRa, TRb,method,coeff)的四元组;
Step3.1.3:初始化变量i=1,j=1; i代表集合TrSetA的遍历下标;j代表集合TrSetB的遍历下标;
Step3.1.4:判断i与m的关系:如果i小于m,转下一步Step3.1.5;否则转Step3.1.13;
Step3.1.5:获取TrSetA中当前下标对应的轨迹TRs=TrSetA[i];
Step3.1.6:判断j与n的关系:如果j小于n,转下一步Step3.1.7;否则转Step3.1.13;
Step3.1.7:获取TrSetB中当前下标对应的轨迹TRe=TrSetB[j];
Step3.1.8:使用公式coeff=TrSimCalculate(TRs,Tre,Method)计算TRs和TRe的轨迹相似性:
coeff=TrSimCalculate(TRs,Tre,Method)
Step3.1.9:构建结果元组tuple=(TRs.devID, TRe.devID,JC,coeff);
Step3.1.10:将结果tuple保存到结果列表ABList: ABList.add(tuple);
Step3.1.11:j=j+1,转Step6;
Step3.1.12:i=i+1,转Step4;
Step3.1.13:返回结果列表ABList。
步骤Step3.1.1中的输入两个轨迹集合TrSetA和TrSetB,形如公式(7);
(7)
式(7)中,TrSetA代表所有公交票卡产生的轨迹集合,集合中有m条不同轨迹,每条轨迹由不同的公交卡产生,TrSetB代表所有移动设备产生的轨迹集合,集合中有n个不同轨迹,每条轨迹由不同的终端设备产生;
步骤Step3.1.8中轨迹相似性计算函数,形如公式(8):
(8)
式(8)中,TRs为第一个轨迹,TRe为第二个轨迹,method代表轨迹相似性度量方法,coeff代表相似性取值;
步骤Step3.1.9中的轨迹相似性计算结果保存在形如公式(9)描述的元组中
(9)
式(9)中,devS为第一个设备ID,devE为第二个设备ID,method代表轨迹相似性度量方法,coeff代表相似性取值,所述相似性取值是0~1之间的任意浮点数;
所述Step3.2具体为:
Step3.2.1:输入两个参数:轨迹集合TrSetC,轨迹个数为k,轨迹相似性度量方法名称Method;
Step3.2.2:初始结果列表CRList, CRList 用于保存形如(TRa, TRb,method,coeff)的四元组;
Step3.2.3:初始化变量i=1, i代表集合TrSetC的遍历下标;
Step3.2.4:判断i与k的关系,如果i=k,转最后一步结束;否则,转下一步Step3.2.5;
Step3.2.5:获取TrSetC中当前下标对应的轨迹TRs=TrSetC[i],当前下标下一个相邻的轨迹TRe=TrSetC[i+1];
Step3.2.6:使用公式coeff=TrSimCalculate(TRs,Tre,Method)计算TRs和TRe的轨迹相似性:
coeff=TrSimCalculate(TRs,Tre,Method)
Step3.2.7:构建结果元组tuple=(TRs.devID, TRe.devID,JC,coeff);
Step3.2.8:将结果tuple保存到结果列表CRList: CRList.add(tuple);
Step3.2.9:变量i自增1,i=i+1,转Step3.2.4;
Step3.2.10:返回结果列表CRList;
步骤Step3.2.1的轨迹集合TrSetC,形如公式(10);
(10)
式(10)中,TrSetC代表某一类设备产生的轨迹集合,设备个数为k,集合中有k条不同轨迹;
所述查询接口为:
(11)
式(11)中,resList表示返回结果,是一组满足查询条件的设备,devID为设备编号;
Method指的是轨迹相似性度量方法,Threshold为阈值,取值在0~1之间,用于在查询中过滤不满足条件的候选设备。
Step7具体为:
给定顶点表vertexTable、边表edgeTable、属性表proTable,搜索过程如下:
Step7.1:输入搜索参数目标设备编号,srcDevID,轨迹相似性度量方法Method,相似性阈值threshold,结果数量N;
Step7.2:初始化结果列表ResList<devID, coeff, Tr>,结果中保存三元组,三元组第一个元素为设备ID,第二个元素代表轨迹相似性,第三个元素代表设备对应的轨迹;
Step7.3:根据设备编号devID,在vertexTable中进行折半查找,定位设备编号对应的顶点编号vertexID所在的记录,记为vertexR;
Step7.4:获取该记录包含的下一个边ID,edgeID=vertexR.nextEdgeID;
Step7.5:根据边的编号edgeID,每个边记录对应的字节数nBytes,计算edgeID在边表中的偏移量:
(12)
Step7.6:边表根据偏移量offset定位并获取edgeID对应的记录:
(13)
Step7.7:判断edgeR.coLCSS与threshold的关系,如果edgeR.coLCSS大于threshold,转Step7.8,否者转Step7.10;
Step7.8:生成结果元组 tuple=(endVID,edgeR.coLCSS, null),此处Tr为空,后续会通过查找填充;
Step7.9:将结果元组加入到结果列表中,ResList.add(tuple);
Step7.10:判断edgeR中起始顶点的下一个边ID是否为空:edgeID=edgeR.sNextEID,如果edgeID不为空,转Step5;否则转Step7.12;
Step7.11:遍历ResList每个元组,对每个元组做如下处理:根据元组中的顶点编号endVID,获取设备编号devID;根据设备编号devID,获取设备对应的轨迹Tr,更新元组,tuple=(devID,edgeR.coLCSS, Tr);
Step7.12:返回结果ResList。
本发明的有益效果是:
(1)支持异构轨迹的相似性搜索,不需要考虑轨迹的长度,采样频率和精度。
(2)通过预计算的方式,提前计算轨迹的相似性并将结果保存在图数据库中,在轨迹相似性搜索过程中避免了耗时的计算过程,加速了搜索速度;
(3)在相似性搜索过程中可以任意指定一个轨迹相似性度量函数和阈值,或者多个相似性计算函数的组合作为查询条件。
本发明可以管理多源异构的轨迹集合,通过预计算加速查询过程,支持多种轨迹相似性度量方法,比现有方法功能强,效率高,更具有普适性。
附图说明
图1是本发明多源异构轨迹相似性示意图;
图中描述了顶点代表设备,每个设备有自己对应的轨迹,A、B、和C分别代表三种不同类型的轨迹,两个设备之间有一条边,边上有四个属性,分别是LCSS、DTW、JC和ED四种轨迹相似性度量方法,属性的取值代表边上两个顶点对应轨迹的相似性,相似性取值在0~1之间;
图2是本发明存储结构和轨迹相似性搜索示意图;
图中第一个表(上)是顶点表,第二个表(下)是关系表,顶点表的每一行描述了一个顶点信息,包括顶点编号(***生自动成)、设备ID、和该顶点对应的下一个边ID,关系表的每一行描述了一条边的信息,包含起始顶点、终止顶点;四个相似性度量方法名称,不同度量方法对应的相似性取值;下一条边的编号;
图中的箭头代表轨迹相似性搜索的过程,直接定位,没有暴力搜索,此搜索过程对应的查询接口包含(设备编号devID、相似性度量方法method、阈值threshold,结果个数N),此处四个参数的取值分别为B2,LCSS,0.50,5。
具体实施方式
下面结合附图和具体实施方式,对本发明作进一步说明。
实施例1:如图1-2所示:一种基于图存储的多轨迹集合相似性搜索方法,具体为:
Step1:采集某城市轨道交通***两个月的公交卡刷卡记录和WiFi信号记录。使用Spark进行数据预处理,对原始的记录型数据进行格式规整,按设备ID进行分组排序,生成不同设备对应的轨迹。具体来讲,包含697.6万张不同公交卡对应的轨迹,每张公交卡有一个独一无二的设备ID,也称为公交***;1401万个移动设备对应的WiFi信号轨迹。WiFi信号对应的设备类型为MAC,每个移动设备会有一个唯一的MAC编号。这些轨迹数据以(DevID,Trajectory)形式保存在分布式HDFS中。
Step2:使用JC方法(杰卡德集合相似性)度量公交票卡集合内部的轨迹相似性、度量WiFi信号轨迹集合内部的轨迹相似性,使用LCSS(最长公共子序列)度量票卡轨迹和WiFi信号轨迹之间的相似性。
JC方法具体为:
StepA.1:输入轨迹TR1和TR2;
StepA.2:分别获取两个轨迹的时空点,形成集合A和B;
StepA.3:计算集合A和B的交集;
StepA.4:计算集合A和B的并集;
StepA.5:分别计算交集和并集中元素的个数;
StepA.6:计算杰卡德相似性系数,计算公式如公式(1)所示;
(1)
如果元素个数为4,元素个数为5,则杰卡德相似性值为0.8。
StepA.7:返回四元组(TR1.devID,TR2.devID, JC,coeff)。四元组中的元素分别为轨迹TR1对应的设备ID,轨迹TR2对应的设备ID,轨迹相似性度量方法JC,轨迹的相似性coeff(此处值为0.8)。
LCSS方法具体为:
StepB.1:输入轨迹TR1和TR2;
StepB.2:分别获取两个轨迹的时空点,形成集合A和B;
StepB.3:计算集合A和B的最长公共子序列C;
StepB.4:计算LCSS相似性系数,计算公式如公式(2)所示;
(2)
如果元素个数为5,|A|和|B|的元素个数分别为9和11,则TR1和TR2的LCSS相似性值为0.5。
StepB.5:返回四元组(TR1.devID,TR2.devID, LCSS,coeff)。四元组中的元素分别为轨迹TR1对应的设备ID,轨迹TR2对应的设备ID,轨迹相似性度量方法LCSS,轨迹的相似性coeff(此处值为0.5)。
Step3:用Spark集群对Step2中描述的三组不同场景执行轨迹两两相似性计算。对计算结果执行过滤。过滤策略如下:对任意一个设备,保存相似性得分最高的前20个设备ID。最后,将过滤以后的结果保存在分布式文件***HDFS中。计算结果以(devA,devB,method,score)的形式保存。
Step4:在图数据库Neo4j上创建,顶点表,关系表,和属性表。顶点表用来存储设备ID,关系表用来存储起始设备ID,终止设备ID,相似性度量方法名称,相似性取值;属性表用来存储设备ID及其对应的轨迹。
Step5:使用Java多线程将计算结果从HDFS读取数据,并导入到图数据库Neo4j的顶点表、关系表和属性表中。
Step6:根据轨迹长度中位数选择10个公交***,指定相似性度量方法LCSS,查询相似性阈值大于等于0.5的MAC。
Step7:使用Java程序建立到Neo4j的连接。建立连接以后开始计时当前时间为ts。
Step8:设定请求提交的次数为10。提交查询请求,请求涉及的参数为一个形如(devID,LCSS,0.5)的三元组。
Step9:查询请求执行10次以后,计时结束,将结束时间记为te。
Step10:计算10次查询消耗时间总量,执行10次查询的耗时为Δt=(te-ts),平均每次查询消耗的时间latency=(Δt/10)。
Step11:对每张***的平均查询时间进行平均,得到该查询对应的最终时延。
对2000多万个顶点(697.6万个公交卡设备ID,1401万个MAC), 8.39亿条边进行查询,耗时在0.11~0.13秒之间。
以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (7)
1.一种基于图存储的多轨迹集合相似性搜索方法,其特征在于:
Step1:获取多种不同类型的轨迹集合,包括但不限于车辆GPS轨迹、公交票卡轨迹、手机信令轨迹,每个集合包含多个同类设备产生的轨迹;
所述轨迹包含一个独一无二的设备编号,一段时间范围内产生的时空点,其中,每个时空点包含一个时间戳,以及一组表示地理信息位置的经度和纬度;
Step2:根据轨迹长度和采样频率,分别为每个轨迹集合内部以及不同轨迹集合之间,选择相应的轨迹相似性度量方法;
通过轨迹相似性度量方法,量化了两条不同轨迹的时空相似性,相似性取值在0~1之间,0代表两个轨迹没有任何时空交集,1代表两个轨迹完全相同;
Step3:对任意两两轨迹组合执行相似性计算并保存计算结果,具体为:
Step3.1:遍历每一个集合-集合的组合,分别对两个不同轨迹集合内部的任意轨迹组合,使用Step2中选择的轨迹相似性度量方法,执行两两相似性计算;
Step3.2:遍历每一个集合,对该集合内部的任意轨迹组合,使用Step2中选择的轨迹相似性度量方法执行两两相似性计算;
Step3.3:保存两两相似性计算的结果;
Step4:在图数据库中创建顶点表,关系表,属性表;
所述顶点表用来存储设备ID信息,一个顶点代表一个设备ID;
所述关系表用来存储边的信息,边由起始顶点和终止顶点构成,边上存储属性,一条边存储多个不同属性,属性名称对应轨迹相似性度量方法,属性取值代表轨迹相似性;
所述属性表用来存储顶点属性,属性的值保存顶点对应设备的轨迹;
Step5:将Step3中两两相似性计算的结果保存到图数据库中,将设备ID,轨迹信息,轨迹相似性度量方法名称,轨迹相似性得分导入图数据库不同的表中;
Step6:初始化设备ID、轨迹相似性度量方法,相似性得分,调用查询接口对图数据库进行查询;
Step7:图数据库根据设备ID,相似性度量方法的名称和属性值,分别搜索顶点表,关系表和属性表,返回与目标ID轨迹高度相似的轨迹;
Step7具体为:
给定顶点表vertexTable、边表edgeTable、属性表proTable,搜索过程如下:
Step7.1:输入搜索参数目标设备编号,srcDevID,轨迹相似性度量方法Method,相似性阈值threshold,结果数量N;
Step7.2:初始化结果列表ResList<devID, coeff, Tr>,结果中保存三元组,三元组第一个元素为设备ID,第二个元素代表轨迹相似性,第三个元素代表设备对应的轨迹;
Step7.3:根据设备编号devID,在vertexTable中进行折半查找,定位设备编号对应的顶点编号vertexID所在的记录,记为vertexR;
Step7.4:获取该记录包含的下一个边ID,edgeID=vertexR.nextEdgeID;
Step7.5:根据边的编号edgeID,每个边记录对应的字节数nBytes,计算edgeID在边表中的偏移量:
(8)
Step7.6:边表根据偏移量offset定位并获取edgeID对应的记录:
(9)
Step7.7:判断edgeR.coLCSS与threshold的关系,如果edgeR.coLCSS大于threshold,转Step7.8,否者转Step7.10;
Step7.8:生成结果元组 tuple=(endVID,edgeR.coLCSS, null),此处Tr为空,后续会通过查找填充;
Step7.9:将结果元组加入到结果列表中,ResList.add(tuple);
Step7.10:判断edgeR中起始顶点的下一个边ID是否为空:edgeID=edgeR.sNextEID,如果edgeID不为空,转Step5;否则转Step7.12;
Step7.11:遍历ResList每个元组,对每个元组做如下处理:根据元组中的顶点编号endVID,获取设备编号devID;根据设备编号devID,获取设备对应的轨迹Tr,更新元组,tuple=(devID,edgeR.coLCSS, Tr);
Step7.12:返回结果ResList。
2.根据权利要求1所述的基于图存储的多轨迹集合相似性搜索方法,其特征在于,所述图存储涉及三个表,分别是顶点表,关系表和属性表;
图存储的方式是以设备ID为顶点,两个不同设备为边的起始和终止顶点,每条边有多个属性,属性的取值分别为两个不同顶点在多种不同度量方法条件下的轨迹相似性,每个顶点有一个属性,属性的值为该顶点对应设备的轨迹。
3.根据权利要求1所述的基于图存储的多轨迹集合相似性搜索方法,其特征在于,Step2所述两个轨迹的相似性度量方法具体过程为:
每个设备对应一个轨迹,轨迹由一个独一无二的设备编号和一系列时间上有序的时空点构成,每个时空点涉及一个时间戳和一组表示位置信息的经纬度表示;
点的形式为:
(1)
公式(1)中,t代表时间戳,lat代表纬度,lon代表经度;
轨迹的形式为:
(2)
公式(2)中,devID表示独一无二的设备编号,n为该设备对应轨迹的点的个数;
(3)
公式(3)中,TRa和TRb分别为两个不同的轨迹,method为轨迹相似性度量方法,TrSimCalculate为轨迹相似性计算函数,coeff是函数返回值,代表轨迹TRa和TRb在method度量方法条件下的轨迹相似性,取值在0~1之间。
4.根据权利要求2所述的基于图存储的多轨迹集合相似性搜索方法,其特征在于:所述顶点表,每行记录的格式如下:
(4)
式(4)中,vertexID为顶点ID,无符号整形,4个字节;devID为设备编号,字符串类型,20个字节;nextEdgeID为该顶点的下一条边ID,无符号整形,4个字节;nextProID,为该顶点的下一个属性ID,无符号整形,4个字节;
每条记录的字节数固定,为32个字节,顶点表中的记录按devID字典顺序排列,对应字段vertexID从1开始,按步长为1连续生成,vertexID为顶点表的索引字段;
所述关系表,每行记录的格式如下:
(5)
式(5)中,edgeID为边ID,无符号整形,4个字节;startVID为起始顶点的编号,无符号整形,4个字节;endVID为终止顶点ID,无符号整形,4个字节;coLCSS、coJC、coDTW、coEDR分别为startVID和endVID对应两条轨迹在不同度量方法下的相似性,相似性取值在0.00~1.00之间,四个变量均为无符号浮点形,均为4个字节;sPreEID为起始顶点的前一个边的编号,无符号整形,4个字节;sNextEID为起始顶点的后一个边的编号,无符号整形,4个字节;
每条记录的字节数固定,为36个字节,边表中字段edgeID从1开始,按步长为1连续生成,edgeID为边表的索引字段;
所述属性表格,每行记录的格式如下:
(6)
式(6)中,proID为属性ID,无符号整形,4个字节;property为属性名称,无符号整形,4个字节;value为属性的值,以100个字节存储属性的值,此处属性property为“轨迹”,value为轨迹包含的一系列时间上有序的时空点;
每条记录的字节数固定,为108个字节,边表中字段proID从1开始,按步长为1连续生成,proID为属性表的索引字段。
5.根据权利要求4所述的基于图存储的多轨迹集合相似性搜索方法,其特征在于,所述Step3.1具体为:
Step3.1.1:输入三个参数:轨迹集合TrSetA,轨迹个数为m,轨迹集合TrSetB,轨迹个数为n,轨迹相似性度量方法名称Method;
Step3.1.2:初始结果列表ABList, ABList 用于保存形如(TRa, TRb,method,coeff)的四元组;
Step3.1.3:初始化变量i=1,j=1; i代表集合TrSetA的遍历下标;j代表集合TrSetB的遍历下标;
Step3.1.4:判断i与m的关系:如果i小于m,转下一步Step3.1.5;否则转Step3.1.13;
Step3.1.5:获取TrSetA中当前下标对应的轨迹TRs=TrSetA[i];
Step3.1.6:判断j与n的关系:如果j小于n,转下一步Step3.1.7;否则转Step3.1.13;
Step3.1.7:获取TrSetB中当前下标对应的轨迹TRe=TrSetB[j];
Step3.1.8:使用公式coeff=TrSimCalculate(TRs,Tre,Method)计算TRs和TRe的轨迹相似性:
coeff=TrSimCalculate(TRs,Tre,Method)
Step3.1.9:构建结果元组tuple=(TRs.devID, TRe.devID,JC,coeff);
Step3.1.10:将结果tuple保存到结果列表ABList: ABList.add(tuple);
Step3.1.11:j=j+1,转Step6;
Step3.1.12:i=i+1,转Step4;
Step3.1.13:返回结果列表ABList。
6.根据权利要求4所述的基于图存储的多轨迹集合相似性搜索方法,其特征在于,所述Step3.2具体为:
Step3.2.1:输入两个参数:轨迹集合TrSetC,轨迹个数为k,轨迹相似性度量方法名称Method;
Step3.2.2:初始结果列表CRList, CRList 用于保存形如(TRa, TRb,method,coeff)的四元组;
Step3.2.3:初始化变量i=1, i代表集合TrSetC的遍历下标;
Step3.2.4:判断i与k的关系,如果i=k,转最后一步结束;否则,转下一步Step3.2.5
Step3.2.5:获取TrSetC中当前下标对应的轨迹TRs=TrSetC[i],当前下标下一个相邻的轨迹TRe=TrSetC[i+1];
Step3.2.6:使用公式coeff=TrSimCalculate(TRs,Tre,Method)计算TRs和TRe的轨迹相似性:
coeff=TrSimCalculate(TRs,Tre,Method)
Step3.2.7:构建结果元组tuple=(TRs.devID, TRe.devID,JC,coeff);
Step3.2.8:将结果tuple保存到结果列表CRList: CRList.add(tuple);
Step3.2.9:变量i自增1,i=i+1,转Step3.2.4;
Step3.2.10:返回结果列表CRList。
7.根据权利要求1所述的基于图存储的多轨迹集合相似性搜索方法,其特征在于:所述查询接口为:
(7)
式(11)中,resList表示返回结果,是一组满足查询条件的设备,devID为设备编号;
Method指的是轨迹相似性度量方法,Threshold为阈值,取值在0~1之间,用于在查询中过滤不满足条件的候选设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310098801.5A CN115795115B (zh) | 2023-02-11 | 2023-02-11 | 一种基于图存储的多轨迹集合相似性搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310098801.5A CN115795115B (zh) | 2023-02-11 | 2023-02-11 | 一种基于图存储的多轨迹集合相似性搜索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115795115A CN115795115A (zh) | 2023-03-14 |
CN115795115B true CN115795115B (zh) | 2023-05-02 |
Family
ID=85430864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310098801.5A Active CN115795115B (zh) | 2023-02-11 | 2023-02-11 | 一种基于图存储的多轨迹集合相似性搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115795115B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080084504A (ko) * | 2007-03-16 | 2008-09-19 | 제주대학교 산학협력단 | 도로 네트워크 공간에서 이동객체의 유사 궤적 클러스터링방법 |
CN111783739A (zh) * | 2020-07-29 | 2020-10-16 | 中国人民解放军国防科技大学 | 一种通信辐射源相似运动轨迹比较方法 |
CN111949701A (zh) * | 2020-06-30 | 2020-11-17 | 武汉烽火众智数字技术有限责任公司 | 一种基于轨迹相似度的移动对象出行规律分析方法及装置 |
CN112131325A (zh) * | 2019-06-25 | 2020-12-25 | 杭州海康威视数字技术股份有限公司 | 轨迹确定方法、装置及设备、存储介质 |
CN113051359A (zh) * | 2021-03-30 | 2021-06-29 | 大连理工大学 | 一种基于多级索引结构的大规模轨迹数据相似性查询方法 |
CN113326337A (zh) * | 2020-04-30 | 2021-08-31 | 阿里巴巴集团控股有限公司 | 轨迹表示及查询方法、装置、电子设备及计算机存储介质 |
CN114996598A (zh) * | 2022-08-01 | 2022-09-02 | 武汉大学 | 一种基于通信大数据的时空关联分析方法、装置及设备 |
CN115344795A (zh) * | 2022-10-17 | 2022-11-15 | 云南师范大学 | 一种基于多路归并的地铁乘客轨迹相似性搜索方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914563A (zh) * | 2014-04-18 | 2014-07-09 | 中国科学院上海微***与信息技术研究所 | 一种时空轨迹的模式挖掘方法 |
CN106844409A (zh) * | 2016-06-16 | 2017-06-13 | 南京航空航天大学 | 快速连续历史轨迹距离查询技术 |
CN109815993B (zh) * | 2019-01-03 | 2023-05-23 | 西北大学 | 基于gps轨迹的区域特征提取、数据库建立及路口识别方法 |
CN110543539B (zh) * | 2019-08-29 | 2022-09-16 | 河海大学 | 一种分布式的路网环境下移动对象轨迹相似性查询方法 |
US11994863B2 (en) * | 2019-12-03 | 2024-05-28 | International Business Machines Corporation | Trajectory similarity search |
CN111078634B (zh) * | 2019-12-30 | 2023-07-25 | 中科海拓(无锡)科技有限公司 | 一种基于r树的分布式时空数据索引方法 |
CN111343585B (zh) * | 2020-02-28 | 2021-11-02 | 重庆邮电大学 | 一种基于隐马尔可夫模型的移动用户轨迹地图匹配方法 |
CN111475596B (zh) * | 2020-04-05 | 2023-04-07 | 中国人民解放军国防科技大学 | 一种基于多层级轨迹编码树的子段相似性匹配方法 |
CN111523577A (zh) * | 2020-04-13 | 2020-08-11 | 南京烽火星空通信发展有限公司 | 一种基于改进的lcss算法的海量轨迹相似度计算方法 |
-
2023
- 2023-02-11 CN CN202310098801.5A patent/CN115795115B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080084504A (ko) * | 2007-03-16 | 2008-09-19 | 제주대학교 산학협력단 | 도로 네트워크 공간에서 이동객체의 유사 궤적 클러스터링방법 |
CN112131325A (zh) * | 2019-06-25 | 2020-12-25 | 杭州海康威视数字技术股份有限公司 | 轨迹确定方法、装置及设备、存储介质 |
CN113326337A (zh) * | 2020-04-30 | 2021-08-31 | 阿里巴巴集团控股有限公司 | 轨迹表示及查询方法、装置、电子设备及计算机存储介质 |
CN111949701A (zh) * | 2020-06-30 | 2020-11-17 | 武汉烽火众智数字技术有限责任公司 | 一种基于轨迹相似度的移动对象出行规律分析方法及装置 |
CN111783739A (zh) * | 2020-07-29 | 2020-10-16 | 中国人民解放军国防科技大学 | 一种通信辐射源相似运动轨迹比较方法 |
CN113051359A (zh) * | 2021-03-30 | 2021-06-29 | 大连理工大学 | 一种基于多级索引结构的大规模轨迹数据相似性查询方法 |
CN114996598A (zh) * | 2022-08-01 | 2022-09-02 | 武汉大学 | 一种基于通信大数据的时空关联分析方法、装置及设备 |
CN115344795A (zh) * | 2022-10-17 | 2022-11-15 | 云南师范大学 | 一种基于多路归并的地铁乘客轨迹相似性搜索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115795115A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dai et al. | Personalized route recommendation using big trajectory data | |
Ding et al. | Network-matched trajectory-based moving-object database: Models and applications | |
CN100523735C (zh) | 一种基于小网格路网组织结构的快速地图匹配方法 | |
CN108362293B (zh) | 一种基于关键点技术的车辆轨迹匹配方法 | |
CN106931974B (zh) | 基于移动终端gps定位数据记录计算个人通勤距离的方法 | |
Xu et al. | Taxi-RS: Taxi-hunting recommendation system based on taxi GPS data | |
Lai et al. | Urban traffic Coulomb’s law: A new approach for taxi route recommendation | |
CN111681421A (zh) | 基于手机信令数据的对外客运枢纽集疏空间分布分析方法 | |
CN103106280A (zh) | 一种道路网络环境下不确定时空轨迹数据的范围查询方法 | |
CN105677793A (zh) | 地点数据库的建立和候选乘车地点的推荐方法及装置 | |
CN107818412A (zh) | 一种基于MapReduce的大规模公交乘客OD并行计算方法 | |
CN110836675B (zh) | 一种基于决策树的自动驾驶搜索决策方法 | |
CN102915346A (zh) | 面向物联网智能感知的数据索引建立与查询方法 | |
CN107145526B (zh) | 一种路网下地理社交关键字反最近邻查询处理方法 | |
CN107167136A (zh) | 一种面向电子地图的位置推荐方法及*** | |
US9104729B2 (en) | Querying spatial events in a vehicle network, and optimized querier | |
CN112579921B (zh) | 基于倒排序索引及前缀树的轨迹索引和查询方法及*** | |
CN104346444B (zh) | 一种基于路网反空间关键字查询的最佳选址方法 | |
CN111339230B (zh) | 一种车辆信息显示方法、装置、电子设备和存储介质 | |
CN111190891A (zh) | 一种多语义轨迹数据分段存储方法 | |
TW202146852A (zh) | 路線偏差量化和基於其之交通工具路線學習 | |
CN114265833A (zh) | 车辆轨迹引导地理时空特征可视化分析平台 | |
CN111242352A (zh) | 基于车辆轨迹的停等聚集效应预测方法 | |
CN110750730B (zh) | 基于时空约束的群体检测方法和*** | |
CN114253975B (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 |