一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于事件时间的事件碰撞确定方法及系统与流程

2022-09-15 01:07:50 来源:中国专利 TAG:


1.本发明属于数据处理技术领域,尤其涉及一种基于事件时间的事件碰撞确定方法及系统。


背景技术:

2.针对两种类型的事件进行碰撞连接,通常使用嵌套循环的计算方式进行计算。
3.发明人发现,对于n个类型a的事件和m个类型b的事件,当n和m的数量级同时在几千到几万时,或者其中一个数量级在百万或千万同,时另一个只有几十或几百时,计算时间尚可在接受的范围内;但面对数十万以上数据同时和数十万以上数据之间的碰撞,现有的嵌套循环的计算方式计算时间将不可估量,计算效率较差。


技术实现要素:

4.本发明为了解决上述问题,提出了一种基于事件时间的事件碰撞确定方法及系统,本发明在将数据量较少的集合进行排序的基础上,对排序过的集合单层循环,使用二分查询到另一集合最近的匹配点,在该匹配点周围做比对关联,解决了采用循环嵌套的计算方式时存在的时间复杂度较高、计算效率较差的问题。
5.为了实现上述目的,本发明是通过如下的技术方案来实现:
6.第一方面,本发明提供了一种基于事件时间的事件碰撞确定方法,包括:
7.获取第一类型事件集合和第二类型事件集合;
8.对所述第二类型事件集合中的事件按照时间进行排序;
9.对所述第一类型事件集合进行遍历,选取至少一个目标事件对应的时间作为目标值;
10.以目标值为基础,在排序后第二类型事件集合中进行查找,确定第二类型事件集合中在时间上与目标值最接近的事件为预选事件;
11.计算预选事件对应的时间与目标值的差值;
12.如果差值在预设值范围内,则确定预选事件和目标事件为碰撞关联事件;否则,重新选取目标事件。
13.进一步的,所述第二类型事件集合的事件数量小于等于所述第一类型事件集合的事件数量。
14.进一步的,采用快速排序法对第二类型事件的集合按照时间排序。
15.进一步的,以目标值为基础,在排序后第二类型事件集合中进行二分查找。
16.进一步的,如果差值在预设值范围内,则预选事件和目标事件碰撞关联,以预选事件作为原点进行遍历,直到事件不能满足预设值范围的条件。
17.进一步的,先向第二类型事件集合的第一方向遍历,直到事件不能满足预设值范围的条件,再第二类型事件集合的第二方向遍历,直到事件不能满足预设值范围的条件;遍历关联后,重新选取目标事件进行查找。
18.进一步的,获取第一类型事件集合和第二类型事件集合;
19.判断所述第一类型事件集合的事件数量和所述第二类型事件集合的事件数量是否同时大于预设数量,如果否,则使用嵌套循环的方式进行计算;否则:
20.对所述第二类型事件集合中的事件按照时间进行排序;
21.对所述第一类型事件集合进行遍历,选取至少一个目标事件对应的时间作为目标值;
22.以目标值为基础,在排序后第二类型事件集合中进行查找,确定第二类型事件集合中在时间上与目标值最接近的事件为预选事件;
23.计算预选事件对应的时间与目标值的差值;
24.如果差值在预设值范围内,则确定预选事件和目标事件为碰撞关联事件;否则,重新选取目标事件。
25.第二方面,本发明还提供了一种基于事件时间的事件碰撞确定系统,包括:
26.数据采集模块,被配置为:获取第一类型事件集合和第二类型事件集合;
27.事件排序模块,被配置为:对所述第二类型事件集合中的事件按照时间进行排序;
28.目标值确定模块,被配置为:对所述第一类型事件集合进行遍历,选取至少一个目标事件对应的时间作为目标值;
29.预选事件确定模块,被配置为:以目标值为基础,在排序后第二类型事件集合中进行查找,确定第二类型事件集合中在时间上与目标值最接近的事件为预选事件;
30.比较计算模块,被配置为:计算预选事件对应的时间与目标值的差值;
31.碰撞关联事件确定模块,被配置为:如果差值在预设值范围内,则确定预选事件和目标事件为碰撞关联事件;否则,重新选取目标事件。
32.第三方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现了第一方面所述的基于事件时间的事件碰撞确定方法的步骤。
33.第四方面,本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现了第一方面所述的基于事件时间的事件碰撞确定方法的步骤。
34.与现有技术相比,本发明的有益效果为:
35.1、本发明在将第二类型事件集合中的事件按照时间进行排序的基础上,对排序过的集合单层循环,在排序后第二类型事件集合中进行查找,确定第二类型事件集合中在时间上与目标值最接近的事件为预选事件,也就是最近的匹配点,以该匹配点为基础做比对关联,解决了采用循环嵌套的计算方式时存在的时间复杂度较高、计算效率较差的问题;
36.2、本发明在将数据量较少的集合进行排序的基础上,对排序过的集合单层循环,使用二分查询到另一集合最近的匹配点,在该匹配点周围做比对关联,解决了采用循环嵌套的计算方式时存在的时间复杂度较高的问题;
37.3、本发明中在第一类型事件集合的事件数量和第二类型事件集合的事件数量均满足一定数量的基础上,采用本发明中的碰撞关联方法,否则使用传统的嵌套循环计算方式,适用于事件数量较少和较多的两种情况,保证了不同情况下的计算效率。
附图说明
38.构成本实施例的一部分的说明书附图用来提供对本实施例的进一步理解,本实施例的示意性实施例及其说明用于解释本实施例,并不构成对本实施例的不当限定。
39.图1为本发明实施例1的流程图;
40.图2为本发明实施例1的嵌套循环计算方式示意图;
41.图3为本发明实施例1的两种类型事件的集合;
42.图4为本发明实施例1的排序后两种类型事件的集合;
43.图5为本发明实施例1的差值超过碰撞的关联时间范围;
44.图6为本发明实施例1的差值不超过碰撞的关联时间范围。
具体实施方式:
45.下面结合附图与实施例对本发明作进一步说明。
46.应该指出,以下详细说明都是示例性的,旨在对本技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
47.实施例1:
48.如图1所示,本实施例提供了一种基于事件时间的事件碰撞确定方法,包括:
49.获取第一类型事件集合和第二类型事件集合;具体的,可以两种类型事件集合可以设置为第一类型事件集合ra和第二类型事件集合rb,第一类型事件集合ra的事件数量为n,第二类型事件集合rb的事件数量为m;
50.对所述第二类型事件集合中的事件按照时间进行排序;保证其中一个类型是按照时间排序的;可以选取第二类型事件集合rb或第一类型事件集合ra,按照时间通过快速排序法使其内部有序;本实施例中选取第二类型事件集合rb按照时间进行排序;
51.对所述第一类型事件集合进行遍历,选取至少一个目标事件对应的时间作为目标值;选取第一类型事件ra的集合进行遍历,取出目事件e
ai
中对应的时间t
ai
为目标值;
52.以目标值为基础,在排序后第二类型事件集合中进行查找,确定第二类型事件集合中在时间上与目标值最接近的事件为预选事件;将时间t
ai
作为目标值到第二类型事件集合rb中做二分查找,找到最接近该时间的事件e
bj
,比较事件e
bj
的时间t
bj
和时间t
ai

53.计算预选事件对应的时间与目标值的差值;
54.如果差值在预设值范围内,则确定预选事件和目标事件为碰撞关联事件;否则,重新选取目标事件。
55.本实施例中,可以假设假如a类型事件与b类型时间在前后5分钟范围内相继发生,则认为a类型事件与b类型事件相关联,所以进行差值判断时选取的预设值范围可以设置为5分钟以内。
56.所述第二类型事件集合的事件数量小于等于所述第一类型事件集合的事件数量。
57.本实施例中,如果差值在预设值范围内,则预选事件和目标事件碰撞关联,以预选事件作为原点进行遍历,直到事件不能满足预设值范围的条件;本实施例中,先向第二类型事件集合的第一方向遍历,直到事件不能满足预设值范围的条件,再第二类型事件集合的第二方向遍历,直到事件不能满足预设值范围的条件;遍历关联后,重新选取目标事件进行
查找。具体的,如果时间t
bj
和时间t
ai
的差值超过碰撞的关联时间范围,则取出第一类型事件ra的下一个事件进行查找;如果时间t
bi
和时间t
ai
的差值在碰撞的关联时间范围内,则预选事件e
bj
与目标事件e
ai
关联,并以预选事件e
bj
作为原点,先向后遍历(也可以先向前遍历)事件e
bj 1
,e
bj 2
,e
bj 3


,直到事件e
bj x
不能满足关联时间范围的条件,再向前遍历e
bj-1
,e
bj-2
,e
bj-3


,直到事件e
bj-y
不能满足关联时间范围的条件,所有满足时间范围条件的事件

,e
bj-1
,e
bj-2
,e
bj-3
,e
bj 1
,e
bj 2
,e
bj 3


也都与事件e
ai
关联,前后遍历关联后,取出第一类型事件ra的下一个事件进行碰撞关联判断。
58.在其他实施例中,获取第一类型事件集合和第二类型事件集合;
59.判断所述第一类型事件集合的事件数量和所述第二类型事件集合的事件数量是否同时大于预设数量,如果否,则使用嵌套循环的方式进行计算,预设数量为常数,比如十万或百万等;否则:
60.对所述第二类型事件集合中的事件按照时间进行排序;
61.对所述第一类型事件集合进行遍历,选取至少一个目标事件对应的时间作为目标值;
62.以目标值为基础,在排序后第二类型事件集合中进行查找,确定第二类型事件集合中在时间上与目标值最接近的事件为预选事件;
63.计算预选事件对应的时间与目标值的差值;
64.如果差值在预设值范围内,则确定预选事件和目标事件为碰撞关联事件;否则,重新选取目标事件。
65.针对n个a数据与m个b数据间的碰撞(m》=n),采用循环嵌套的方式时,时间复杂度为mn;在一般情况下n》》k,k为平均每个a事件关联的b事件数,而使用本实施例中的算法,快速排序阶段的平均时间复杂度为nlogn,遍历二分查找阶段的平均复杂度为mlogn,该算法的平均时间复杂度为mlogn,当m和n越大时,由于logn的增长率远低于n,时间减少程度越大。
66.实施例2:
67.本实施例提供了一种基于事件时间的事件碰撞确定系统,包括:
68.数据采集模块,被配置为:获取第一类型事件集合和第二类型事件集合;
69.事件排序模块,被配置为:对所述第二类型事件集合中的事件按照时间进行排序;
70.目标值确定模块,被配置为:对所述第一类型事件集合进行遍历,选取至少一个目标事件对应的时间作为目标值;
71.预选事件确定模块,被配置为:以目标值为基础,在排序后第二类型事件集合中进行查找,确定第二类型事件集合中在时间上与目标值最接近的事件为预选事件;
72.比较计算模块,被配置为:计算预选事件对应的时间与目标值的差值;
73.碰撞关联事件确定模块,被配置为:如果差值在预设值范围内,则确定预选事件和目标事件为碰撞关联事件;否则,重新选取目标事件。
74.所述系统的工作方法与实施例1的基于事件时间的事件碰撞确定方法相同,这里不再赘述。
75.实施例3:
76.本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处
理器执行时实现了实施例1所述的基于事件时间的事件碰撞确定方法的步骤。
77.实施例4:
78.本实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现了实施例1所述的基于事件时间的事件碰撞确定方法的步骤。
79.以上所述仅为本实施例的优选实施例而已,并不用于限制本实施例,对于本领域的技术人员来说,本实施例可以有各种更改和变化。凡在本实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献