1.一种时空轨迹相似度计算方法,其特征在于,包括:步骤1,定义距离转角率,刻画用户兴趣点的特征;步骤2,根据经验阈值,识别用户兴趣点;根据轨迹的用户兴趣点计算其公共兴趣点;步骤3,计算分段之间的相似度以及不相似度,其中所述分段为两个公共兴趣点之间的分段;通过定义分段时间、相似分段、相似路线,计算轨迹之间的相似度以及不相似度,从而得到轨迹相似度;其中,所述步骤1还包括:步骤21,定义p
i-1、p
i到p
i+1的距离转角率LATatio(p(i-1),p(i),p(i+1)),其中p
i-1、p
i、p
i+1分别为用户兴趣点,i为兴趣点序号;距离转角率公式如下:
LATatio ( p ( i - 1 ) , p ( i ) , p ( i + 1 ) ) = LARatio ( v → ( p i - 1 , p i ) , v → ( p i , p i + 1 ) ) = 1 - cos ( θ i ) ϵ + | | v → ( p ( i ) , p ( i + 1 ) ) | | ]]> 其中,θ
i为兴趣点列i的角度,ε是满足下述条件的任意一个常量:
0 < ϵ < min { | | v → ( p ( i ) , p ( i + 1 ) ) | | } ]]> 且
ϵ + min { | | v → ( p ( i - 1 ) , p ( i ) ) | | } < min sec { | | v → ( p ( i - 1 ) , p ( i ) ) | | } ]]> 其中,
是向量
的模,
是
的第二小值;如果
ε满足以下不等式:
0 < ϵ < min th { | | v → ( p ( i - 1 ) , p ( i ) ) | | } ]]> 且
ϵ + min sec { | | v → ( p ( i - 1 ) , p ( i ) ) | | } < min th { | | v → ( p ( i - 1 ) , p ( i ) ) | | } ]]> 其中,sec和th分别表示第二和第三,因此
是
的第三小值,
为向量;所述步骤2还包括:步骤41,如果ratio>ρ,这里ρ是一个经验阈值,则认为兴趣点p(i)和p(i+1)是同一个兴趣点,IS(j)表示轨迹中的j个兴趣点;为了计算轨迹的相异程度,用IP(j)表示IS(j),IP(j)=(Long(j),Lat(j),T(j))是IS(j)中兴趣点的加权平均,其中j是兴趣点的编号,
Long ( j ) = Σ i = 1 n is rati o i Σ i = 1 n is ratio ( i ) · long ( i ) , ]]> Lat ( j ) = Σ i = 1 n is rati o i Σ i = 1 n is ratio ( i ) · lat ( i ) , ]]> T ( j ) = Σ i = 1 n is rati o i Σ i = 1 n is ratio ( i ) · t ( i ) ]]> 其中ratio
i为兴趣点i的距离转角率,ratio(i)为兴趣点(i)的距离转角率,n
is为第j个兴趣点所涉及的距离转角率的个数,long(i)为兴趣点i的精度,lat(i)为兴趣点i的纬度,t(i)为兴趣点i的时间,Long(j)为兴趣点j的精度,Lat(j)为兴趣点j的纬度,T(j)为兴趣点j的时间;步骤42,如果两个兴趣点IP(i)和IP(j)之间的距离小于d
p,称这两个兴趣点为公共兴趣点CoIP,d
p根据具体赋值而变化;所述步骤3还包括:步骤51,位于CoIP(i)和CoIP(i+1)中间的部分为tra(1)中的分段,记做seg
tra(i);下述公式计算分段的不相似程度:dif
vector(seg
i(tra
1),seg
i(tra
2))=Vdif
vector(seg
i(tra
1),seg
i(tra
2))+|n1
in-n2
in|其中,Vdif
vector(seg
i(tra
1),seg
i(tra
2))=||vq
1(seg
i(tra
1))-vq
1(seg
i(tra
2))||+||vq
2(seg
i(tra
1))-vq
2(seg
i(tra
2))||Vdif
vector为相似路线,tra
1为兴趣点列1,tra
2为兴趣点列2,seg
i(tra
1)为兴趣点列1的分段,seg
i(tra
2)为兴趣点列2的分段,n1
in为兴趣点列1中两个正常兴趣点之间非公共兴趣点的数量,n2
in为兴趣点列2中两个正常兴趣点之间非公共兴趣点的数量,其中公共兴趣点形成轨迹分段,将轨迹各分段分为2个分区,相邻两个分段构成4个分区,Vq1()和Vq2()分别为连接1、3分区和2、4分区的向量,Vq1()和Vq2()的走向与轨迹走向相同。
2.如权利要求1所述的时空轨迹相似度计算方法,其特征在于,所述步骤3还包括:步骤62,分段时间,是指用户从一个CoIP到另一个CoIP的间隔时间,如果CoIP
i=(Long
i,Lat
i,T
i),且CoIP
i+1=(Long
i+1,Lat
i+1,T
i+1),那么T
i-T
i+1为CoIP
i和CoIP
i+1在轨迹中的分段时间,Long
i+1为兴趣点的精度,Lat
i+1为兴趣点的纬度,T
i+1为兴趣点的时间;相似分段,是令seg
i(tra
1)和seg
i(tra
2)分别为tra
1和tra
2中的分段,称seg
i(tra
1)和seg
i(tra
2)为相似分段,当两个分段之间IP的数量相等;两个分段之间的分段时间的绝对差值小于一个常数,即|(T
i(tra
1)T
i+1(tra
1))-(T
i(tra
2)T
i+1(tra
2))|<t
p其中(T
i(tra
1)T
i+1(tra
1))为兴趣点列1的分段时间,(T
i(tra
2)T
i+1(tra
2))为兴趣点列2的分段时间,t
p为常数;相似路线,由分段组成,如果有多个连续的相似分段,则为相似路线;假设r
i和r
j是相似路线,则认为两条路线没有区别,即Vdif
vector(r
i(tra
1),r
j(tra
2))=0,其中r
i(tra
1)为兴趣点列1的路线,r
j(tra
2)为兴趣点列2的路线;下述公式计算轨迹之间的不相似度:
dif ( tra 1 , tra 2 ) = Σ i = 1 n p ω i dif vector ( seg i ( tra 1 ) , seg i ( tra 2 ) ) + max { n 1 ex , n 2 ex } ]]> 其中,max{n
1ex,n
2ex}是n
1ex和n
2ex的最大值,n
1ex是tra(1)位于公共点之外的non-COIPs数量,n
2ex是tra(2)位于公共点之外的non-COIPs数量,n
p是用户兴趣点的数量,在tra(1)中有两个位于公共点之外的non-CoIPs,因此n
1ex=2,tra(2)中位于公共点之外的non-CoIPs的数量为1,n
2ex=1,因此max{n
1ex,n
2ex}=2;
ω i = ( Len i ( tra 1 ) Len ( tra 1 ) · Len i ( tra 1 ) + Len i ( tra 2 ) Len ( tra 2 ) · Len i ( tra 2 ) ) Len ( tra 1 ) + Len ( tra 2 ) ]]> Len
i(tra
1)表示seg
i(tra
1)的长度,Len(tra
1)是tra
1的长度,Len
i(tra
2)表示seg
i(tra
2)的长度,Len(tra
2)是tra
2的长度,seg
i的距离与长度的含义不同,seg
i(tra
1)的距离是CoIP
i和CoIP
i+1之间的直线距离,而长度是用户从CoIP
i走到CoIP
i+1的路程。
3.一种时空轨迹相似度计算系统,其特征在于,包括:定义转角率模块,用于定义距离转角率,刻画用户兴趣点的特征;兴趣点模块,用于根据经验阈值,识别用户兴趣点;根据轨迹的用户兴趣点计算其公共兴趣点;相似度匹配模块,用于计算分段之间的相似度以及不相似度,其中所述分段为两个公共兴趣点之间的分段;通过定义分段时间、相似分段、相似路线,计算轨迹之间的相似度以及不相似度,从而得到轨迹相似度;其中,所述定义转角率模块还包括:定义p
i-1、p
i到p
i+1的距离转角率LATatio(p(i-1),p(i),p(i+1)),其中p
i-1、p
i、p
i+1分别为用户兴趣点;距离转角率公式如下:
LATatio ( p ( i - 1 ) , p ( i ) , p ( i + 1 ) ) = LARatio ( v → ( p i - 1 , p i ) , v → ( p i , p i + 1 ) ) = 1 - cos ( θ i ) ϵ + | | v → ( p ( i ) , p ( i + 1 ) ) | | ]]> 其中,θ
i为兴趣点列i的角度,ε是满足下述条件的任意一个常量:
0 < ϵ < min { | | v → ( p ( i ) , p ( i + 1 ) ) | | } ]]> 且
ϵ + min { | | v → ( p ( i - 1 ) , p ( i ) ) | | } < min sec { | | v → ( p ( i - 1 ) , p ( i ) ) | | } ]]> 其中,
是向量
的模,
是
的第二小值;如果
ε满足以下不等式:
0 < ϵ < min th { | | v → ( p ( i - 1 ) , p ( i ) ) | | } ]]> 且
ϵ + min sec { | | v → ( p ( i - 1 ) , p ( i ) ) | | } < min th { | | v → ( p ( i - 1 ) , p ( i ) ) | | } ]]> 其中,sec和th分别表示第二和第三,因此
是
的第三小值,
为向量;所述兴趣点模块还包括:经验阈值模块,用于如果ratio>ρ,这里ρ是一个经验阈值,则认为兴趣点p(i)和p(i+1)是同一个兴趣点,IS(j)表示轨迹中的j个兴趣点;为了计算轨迹的相异程度,用IP(j)表示IS(j),IP(j)=(Long(j),Lat(j),T(j))是IS(j)中兴趣点的加权平均,其中j是兴趣点的编号,
Long ( j ) = Σ i = 1 n is rati o i Σ i = 1 n is ratio ( i ) · long ( i ) , ]]> Lat ( j ) = Σ i = 1 n is rati o i Σ i = 1 n is ratio ( i ) · lat ( i ) , ]]> T ( j ) = Σ i = 1 n is rati o i Σ i = 1 n is ratio ( i ) · t ( i ) ]]> 其中ratio
i为兴趣点i的距离转角率,ratio(i)为兴趣点(i)的距离转角率,n
is为第j个兴趣点所涉及的距离转角率的个数,long(i)为兴趣点i的精度,lat(i)为兴趣点i的纬度,t(i)为兴趣点i的时间,Long(j)为兴趣点j的精度,Lat(j)为兴趣点j的纬度,T(j)为兴趣点j的时间;距离模块,用于如果两个兴趣点IP(i)和IP(j)之间的距离小于d
p,称这两个兴趣点为公共兴趣点CoIP,d
p根据具体赋值而变化;所述相似度匹配模块还包括:分段模块,用于位于CoIP(i)和CoIP(i+1)中间的部分为tra(1)中的分段,记做seg
tra(i);下述公式计算分段的不相似程度:dif
vector(seg
i(tra
1),seg
i(tra
2))=Vdif
vector(seg
i(tra
1),seg
i(tra
2))+|n1
in-n2
in|其中,Vdif
vector(seg
i(tra
1),seg
i(tra
2))=||v
q1(seg
i(tra
1))-vq
1(seg
i(tra
2))||+||v
q2(seg
i(tra
1))-v
q2(seg
i(tra
2))||,Vdif
vector为相似路线,tra
1为兴趣点列1,tra
2为兴趣点列2,seg
i(tra
1)为兴趣点列1的分段,seg
i(tra
2)为兴趣点列2的分段,n1
in为兴趣点列1中两个正常兴趣点之间非公共兴趣点的数量,n2
in为兴趣点列2中两个正常兴趣点之间非公共兴趣点的数量,其中公共兴趣点形成轨迹分段,将轨迹各分段分为2个分区,相邻两个分段构成4个分区,Vq1()和Vq2()分别为连接1、3分区和2、4分区的向量,Vq1()和Vq2()的走向与轨迹走向相同。
4.如权利要求3所述的时空轨迹相似度计算系统,其特征在于,所述相似度匹配模块还包括:相似度运算模块,用于分段时间,是指用户从一个CoIP到另一个CoIP的间隔时间,如果CoIP
i=(Long
i,Lat
i,T
i),且CoIP
i+1=(Long
i+1,Lat
i+1,T
i+1),那么T
i-T
i+1为CoIP
i和CoIP
i+1在轨迹中的分段时间,Long
i+1为兴趣点的精度,Lat
i+1为兴趣点的纬度,T
i+1为兴趣点的时间;相似分段,是令seg
i(tra
1)和seg
i(tra
2)分别为tra
1和tra
2中的分段,称seg
i(tra
1)和seg
i(tra
2)为相似分段,当两个分段之间IP的数量相等;两个分段之间的分段时间的绝对差值小于一个常数,即|(T
i(tra
1)T
i+1(tra
1))-(T
i(tra
2)T
i+1(tra
2))|<t
p其中(T
i(tra
1)T
i+1(tra
1))为兴趣点列1的分段时间,(T
i(tra
2)T
i+1(tra
2))为兴趣点列2的分段时间,t
p为常数;相似路线,由分段组成,如果有多个连续的相似分段,则为相似路线;假设r
i和r
j是相似路线,则认为两条路线没有区别,即Vdif
vector(r
i(tra
1),r
j(tra
2))=0,其中r
i(tra
1)为兴趣点列1的路线,r
j(tra
2)为兴趣点列2的路线;下述公式计算轨迹之间的不相似度:
dif ( tra 1 , tra 2 ) = Σ i = 1 n p ω i dif vector ( seg i ( tra 1 ) , seg i ( tra 2 ) ) + max { n 1 ex , n 2 ex } ]]> 其中,max{n
1ex,n
2ex}是n
1ex和n
2ex的最大值,n
1ex是tra(1)位于公共点之外的non-COIPs数量,n
2ex是tra(2)位于公共点之外的non-COIPs数量,n
p是用户兴趣点的数量,在tra(1)中有两个位于公共点之外的non-CoIPs,因此n
1ex=2,tra(2)中位于公共点之外的non-CoIPs的数量为1,n
2ex=1,因此max{n
1ex,n
2ex}=2;
ω i = ( Len i ( tra 1 ) Len ( tra 1 ) · Len i ( tra 1 ) + Len i ( tra 2 ) Len ( tra 2 ) · Len i ( tra 2 ) ) Len ( tra 1 ) + Len ( tra 2 ) ]]> Len
i(tra
1)表示seg
i(tra
1)的长度,Len(tra
1)是tra
1的长度,Len
i(tra
2)表示seg
i(tra
2)的长度,Len(tra
2)是tra
2的长度,seg
i的距离与长度的含义不同,seg
i(tra
1)的距离是CoIP
i和CoIP
i+1之间的直线距离,而长度是用户从CoIP
i走到CoIP
i+1的路程。