CN112115072B - 时序图的处理方法及装置 - Google Patents
时序图的处理方法及装置 Download PDFInfo
- Publication number
- CN112115072B CN112115072B CN202010912889.6A CN202010912889A CN112115072B CN 112115072 B CN112115072 B CN 112115072B CN 202010912889 A CN202010912889 A CN 202010912889A CN 112115072 B CN112115072 B CN 112115072B
- Authority
- CN
- China
- Prior art keywords
- point
- time
- graph
- graph data
- points
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012545 processing Methods 0.000 title claims abstract description 22
- 238000010586 diagram Methods 0.000 title claims description 55
- 238000012163 sequencing technique Methods 0.000 claims abstract description 26
- 238000007781 pre-processing Methods 0.000 claims abstract description 24
- 238000013507 mapping Methods 0.000 claims description 23
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 abstract description 31
- 238000003672 processing method Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000002372 labelling Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000013138 pruning Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009141 biological interaction Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例中提供了时序图的处理方法及装置,其中,所述方法包括:读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据;根据所述时序图的边的出点时间排序,将所述磁盘中的所述图数据载入内存;遍历所述图数据,生成预处理结果。采用本申请中的方案,提高计算时间效率以及有着很好的扩展性和可使用性。
Description
技术领域
本申请涉及时序图计算技术,具体地,涉及时序图的处理方法及装置。
背景技术
时序图,是边上带有时间区间的图。很多领域产生的数据都会采用时序图,例如飞行航班图、计算机交互日志、生物交互以及交通数据图等等。
对于时序图计算方法并没有完全使用时序图的特性,对于时序图存在计算效率低下、无法适用于外存计算等缺点。
针对相关技术中,对于时序图的处理效率低下的问题,目前尚未存在有效的解决方案。
发明内容
本申请实施例提供了一种图数据处理方法及装置,以至少解决相关技术中对于时序图的处理效率低下的问题。
根据本申请实施例的第一个方面,提供了一种时序图的处理方法,包括:读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据;根据所述时序图的边的出点时间排序,将所述磁盘中的所述图数据载入内存;遍历所述图数据,生成预处理结果。
可选地,所述遍历所述图数据,生成预处理结果包括:在所述内存中遍历所述图数据得到待更新的图数据;和/或,将所述时序图中的边数据映射进所述内存。
可选地,在所述内存中遍历所述图数据得到待更新的图数据包括:将所述图数据中的有向无环图遍历一遍,得到待更新的图数据。
可选地,将所述时序图中的边数据映射进所述内存包括:确定所述边数据的数量;根据所述边数据的数量,将所述时序图中的边数据映射进所述内存。
可选地,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:将所述图数据中的每个点按照不同时间拆分,得到图数据的出点和入点,其中,所述出点对应任一条边的源点,所述入点对应任一条边的汇点;将所述图数据的出点和入点按照时间排序;在所述时间排序的结果中所述入点的出点时序不大于所述入点的情况下,将所述入点的出点合并到当前出点上;;在所述时间排序的结果中两个时间相邻的出点之间没有入点的情况下,将第一时间的出点合并到第二时间的出点,其中,所述第一时间大于所述第二时间。
可选地,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:按照所述时序图的边的出点时间排序,将所述时序图转化为有向无环图,其中,所述转化至少包括如下之一的操作:出点排序、点标号、查找枢纽点、生成新的边数据。
可选地,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:读取磁盘中储存的时序图进行出点排序操作的步骤,所述读取磁盘中储存的时序图进行出点排序操作的步骤包括:统计所述时序图中每个点的度数;根据所述每个点的度数遍历边数据,拆分出每个点的出点;对所述出点进行排序,其中,每个出点排序后的位置等于出点的编号小于当前点的所有点的度数加上当前点时间小于该点的出点个数。
可选地,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:读取磁盘中储存的时序图进行查找枢纽点的操作步骤,所述读取磁盘中储存的时序图进行查找枢纽点的操作步骤包括:基于二分搜索对入点进行二分查找,确定出点集合;根据所述出点在集合中确定满足预设时间条件的出点;根据出点排序操作结果进行点的重新编号。
可选地,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:读取磁盘中储存的时序图进行生成新的边数据的操作步骤,所述读取磁盘中储存的时序图进行生成新的边数据的操作步骤包括:根据点重新编号的结果查找出枢纽节点,其中,所述枢纽节点为出点;根据所述枢纽节点建立点到枢纽点之间的映射;根据映射结果将所述时序图中的边按照源点和汇点所对应的枢纽点连接;将每个点的枢纽点集合按时间从小到大在所处枢纽点之间建立数据边。
根据本申请实施例的第二个方面,提供了一种时序图的处理装置,包括:读取模块,用于读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据;载入模块,用于根据所述时序图的边的出点时间排序,将所述磁盘中的所述图数据载入内存;生成模块,用于遍历所述图数据,生成预处理结果。
采用本申请实施例中提供的时序图的处理方法以及装置,通过读取磁盘中储存的时序图,根据所述时序图中按照所述时序图的边的出点时间排序,将所述磁盘中的所述图数据载入内存中,遍历所述图数据,生成预处理结果。通过按照时序图的拓扑顺序扫描所有边的时序图计算引擎,够让用户使用最少的代码来完成不同应用的代码编写同时提高了处理效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中的时序图的处理方法的执行载体的计算机设备结构示意图;
图2为本申请实施例中的时序图的处理方法流程示意图;
图3为本申请实施例中的时序图的处理装置结构示意图;
图4为本申请实施例中的时序图的处理方法的原理示意图。
具体实施方式
在实现本申请的过程中,发明人发现,传统时序图计算方法并没有完全使用时序图的特性,缺点如下:1)时间效率低下;2)不能支持外存计算;3)没用统一的编程框架,用户使用困难。
针对上述问题,本申请实施例中提供了一种解决传统时序图计算方法计算速度慢、图转化速度慢、图冗余过多以及无法适用于外存计算的问题,提供了一个效率高、扩展性好、易于使用的时序图计算引擎。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请实施例所提供的方法实施例可以在移动设备、计算机设备或者类似的装置中执行。以运行在计算机设备上为例,如图1所示,计算机设备20可以包括:至少一个处理器201,例如CPU,至少一个网络接口204,用户接口203,存储器205,至少一个通信总线202,可选地,还可以包括显示屏206。其中,通信总线202用于实现这些组件之间的连接通信。其中,用户接口203可以包括触摸屏、键盘或鼠标等等。网络接口204可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通过网络接口204可以与服务器建立通信连接。存储器205可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器,存储器205包括本发明实施例中的flash。存储器205可选的还可以是至少一个位于远离前述处理器201的存储系统。如图1所示,作为一种计算机存储介质的存储器205中可以包括操作系统、网络通信模块、用户接口模块以及程序指令。
需要说明的是,网络接口204可以连接接收器、发射器或其他通信模块,其他通信模块可以包括但不限于WiFi模块、蓝牙模块等,可以理解,本发明实施例中计算机设备也可以包括接收器、发射器和其他通信模块等。
处理器201可以用于调用存储器205中存储的程序指令,并使计算机设备20执行时序图的处理操作。
如图2所示,本申请实施例中的时序图的处理方法,具体包括如下步骤:
步骤S200,读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据;
步骤S201,根据所述时序图的边的出点时间排序,将所述磁盘中的所述图数据载入内存;
步骤S202,遍历所述图数据,生成预处理结果。
采用本申请实施例中提供的时序图的处理方法以及装置,通过读取磁盘中储存的时序图,根据所述时序图中按照所述时序图的边的出点时间排序,将所述磁盘中的所述图数据载入内存中,遍历所述图数据,生成预处理结果。通过按照时序图的拓扑顺序扫描所有边的时序图计算引擎,够让用户使用最少的代码来完成不同应用的代码编写同时提高了处理效率。
在上述步骤S200中从磁盘中读取时序图,所述时序图经过了计算预处理后在所述时序图中包括按照所述时序图的边的出点时间排序得到的图数据。
在上述步骤S201中在磁盘中获取得到图数据后,再按照所述时序图的边的出点时间排序将所述磁盘中的图数据载入到内存中进行计算。
在上述步骤S202中按照图数据组织顺序遍历一遍按当前边进行图数据更新,生成的预处理结果可以包括多种应用,比如计算可达性、计算最快路径即两个点之间最快到达的时间、计算最短路径即两点之间最小路径权值、计算最近k邻居即图中一个点最近的k个点。对于预处理结果中的应用在本申的实施例中并不进行具体限定,本领域技术人员可以根据实际使用情况进行选择。
在本申请可选的实施例中,所述遍历所述图数据,生成预处理结果包括:在所述内存中遍历所述图数据得到待更新的图数据;和/或,将所述时序图中的边数据映射进所述内存。
具体实施时,主体计算流程主要分为内存环境和外存环境。在内存环境中,将磁盘中的图数据载入内存。由于载入的图数据带有着有向无环图的拓扑序,因此遍历一遍整个图数据将需要更新的数据更新一下。在外存环境中,如果图数据较大而无法被完全载入内存的情况下,使用mmap将边数据映射进内存。
优选地,在所述内存中遍历所述图数据得到待更新的图数据包括:将所述图数据中的有向无环图遍历一遍,得到待更新的图数据。
优选地,将所述时序图中的边数据映射进所述内存包括:确定所述边数据的数量;根据所述边数据的数量,将所述时序图中的边数据映射进所述内存。
在本申请可选的实施例中,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:将所述图数据中的每个点按照不同时间拆分,得到图数据的出点和入点,其中,所述出点对应某一条边的源点,所述入点对应某任一条边的汇点;将所述图数据的出点和入点按照时间排序;在所述时间排序的结果中所述入点的出点时序不大于所述入点的情况下,将所述入点的出点合并到所述当前出点上;在所述时间排序的结果中两个时间相邻的出点之间没有入点的情况下,将第一时间的出点合并到第二时间的出点,其中,所述第一时间大于所述第二时间。
具体实施时,在进行图算法的计算之前步骤如下优化过程:
首先,对图进行预处理,将图按照每个点按不同时间拆分,分为出点和入点,其中出点是某条边的源点,入点是某条边的汇点。
然后,将每个点的出点按时间从小到大排序然后在他们之间建边。
进一步地,将入点找到时间大于等于它的出点并合并到当前出点上,因为实际上每个入点是为了将它获得的信息传输到后面的出点上,因此可以将入点合并到出点上。需要注意的是,如果两个时间相邻的出点之间没有入点那将时间大的出点合并到时间小的出点。
最后,把图缩减后按照边的出点时间排序存入磁盘中。
在本申请可选的实施例中,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:按照所述时序图的边的出点时间排序,将所述时序图转化为有向无环图,其中,所述转化至少包括如下之一的操作:出点排序、点标号、查找枢纽点、生成新的边数据。
具体实施时,上述步骤中需要进行出点排序、点标号、查找枢纽点、以及生成新的边数据等操作。将有向无环图分割成适应于内存大小的块是为了后续的外存计算。实际上也可以不分割,使用系统提供的mmap来进行虚拟映射。这样会更加的方便快捷。
在本申请可选的实施例中,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:读取磁盘中储存的时序图进行出点排序操作的步骤,所述读取磁盘中储存的时序图进行出点排序操作的步骤包括:统计所述时序图中每个点的度数;根据所述每个点的度数遍历边数据,拆分出每个点的出点;对所述出点进行排序,其中,每个出点排序后的位置等于编号小于当前点的所有点的度数加上当前点时间小于该点的出点个数。
在本申请可选的实施例中,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:读取磁盘中储存的时序图进行查找枢纽点的操作步骤,所述读取磁盘中储存的时序图进行查找枢纽点的操作步骤包括:基于二分搜索对入点进行二分查找,确定出点集合;根据所述出点在集合中确定满足预设时间条件的出点;根据出点排序操作结果进行点的重新编号。
具体实施时,使用二维基数排序以及并行标号的技术缩短了有向无环图转换时间。同时,基于枢纽点的点合并方法用来进行有向无环图冗余点和边的剪枝,缩小了有向无环图的大小。
采用二维基数排序以及并行标号的技术缩短了有向无环图的转换时间。首先统计每个点的度数,可以预先把每个点标号小于它的所有的点的度数算出来;然后再继续遍历边数据,进行拆点。实际上每个点只有出点有用,入点需要合并到出点上,因此只对出点进行排序。
进一步,考虑到时序图的边数据按照时间从小到大流过来,因此每个出点排序后的位置等于编号小于它的度数加上当前点时间小于它的出点个数。通过计算位置消除了不同出点排序位置的依赖关系。将出点排好后需要进行点的重新编号,需要将入点找到对应的出点上,同时拆完后的点是二维,再将二维变成一维数据便于处理。
优选地,在点编号的过程中我们使用二分搜索,对入点(u,t)二分查找u的出点集合,从而在集合里找到拥有最小的时间s的出点(u,s)满足s>=t。
在本申请可选的实施例中,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:读取磁盘中储存的时序图进行生成新的边数据的操作步骤,所述读取磁盘中储存的时序图进行生成新的边数据的操作步骤包括:根据点重新编号的结果查找出枢纽节点,其中,所述枢纽节点为出点;根据所述枢纽节点建立点到枢纽点之间的映射;根据映射结果将所述时序图中的边按照源点和汇点所对应的枢纽点连接;将每个点的枢纽点集合按时间从小到大在所处枢纽点之间建立数据边。
具体实施时,基于有向无环图的时序图计算方法加上有向无环图剪枝方法使得计算过程能够适用于外存计算系统。
在点重新编号后就能够查找枢纽节点,其中枢纽节点一定是出点,并且它要么在当前点中时间最小要么有入点合并到这个点上。由于在点编号的过程中相当于做了入点合并的操作,因此枢纽点通过对点数据的一遍遍历能够求得然后建立映射函数,这样就能够查询出每个点它对应的枢纽点的编号。
进一步地,在建立完点到枢纽点之间的映射后,将原图中的边按照源点和汇点所对应的枢纽点连接起来,权值设定为原始边的权值。同时将每个点的枢纽点集合里按时间从小到大在它们之间建立虚边。由于时序图的边按照时间流排序,因此在建立边的过程中也按照时间顺序建立边。这样就能够保证转换后的有向无环图也是按源点的开始时间排好序的。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本实施例中还提供了一种时序图的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本申请实施例的时序图的处理装置的结构框图,如图3所示,该装置包括:
读取模块30,用于读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据;
载入模块31,用于根据所述时序图的边的出点时间排序,将所述磁盘中的所述图数据载入内存;
生成模块32,用于遍历所述图数据,生成预处理结果。
本申请实施例的读取模块30中从磁盘中读取时序图,所述时序图经过了计算预处理后在所述时序图中包括按照所述时序图的边的出点时间排序得到的图数据。
本申请实施例的载入模块31中在磁盘中获取得到图数据后,再按照所述时序图的边的出点时间排序将所述磁盘中的图数据载入到内存中进行计算。
本申请实施例的生成模块32中按照图数据组织顺序遍历一遍按当前边进行图数据更新,生成的预处理结果可以包括多种应用,比如计算可达性、计算最快路径即两个点之间最快到达的时间、计算最短路径即两点之间最小路径权值、计算最近k邻居即图中一个点最近的k个点。对于预处理结果中的应用在本申的实施例中并不进行具体限定,本领域技术人员可以根据实际使用情况进行选择。
所述载入模块31,还用于在所述内存中遍历所述图数据得到待更新的图数据;和/或,将所述时序图中的边数据映射进所述内存。
所述生成模块32,还用于将所述图数据中的有向无环图遍历一遍,得到待更新的图数据。
所述生成模块32,还用于确定所述边数据的数量;根据所述边数据的数量,将所述时序图中的边数据映射进所述内存。
所述读取模块30,还用于将所述图数据中的每个点按照不同时间拆分,得到图数据的出点和入点,其中,所述出点包括任一条边的源点,所述入点包括任一条边的汇点;将所述图数据的出点和入点按照时间排序;在所述时间排序的结果中所述入点的查询时间不小于的当前出点的出点的情况下,将所述入点合并到所述当前出点上;在所述时间排序的结果中两个时间相邻的出点之间没有入点的情况下,将第一时间的出点合并到第二时间的出点,其中,所述第一时间大于所述第二时间。
所述读取模块30,还用于按照所述时序图的边的出点时间排序,将所述时序图转化为有向无环图,其中,所述转化至少包括如下之一的操作:出点排序、点标号、查找枢纽点、生成新的边数据。
所述读取模块30,还用于统计所述时序图中每个点的度数;根据所述每个点的度数继续遍历边数据,拆分出每个点的出点;对所述出点进行排序,其中,每个出点排序后的位置通过出点的编号小于当前点的度数和当前点时间小于该点的出点个数。
所述读取模块30,还用于基于二分搜索对入点进行二分查找,确定出点集合;根据所述出点在集合中确定满足预设时间条件的出点;根据出点排序操作结果进行点的重新编号。
所述读取模块30,还用于根据点重新编号的结果查找出枢纽节点,其中,所述枢纽节点为出点;根据所述枢纽节点建立点到枢纽点之间的映射;根据映射结果将所述时序图中的边按照源点和汇点所对应的枢纽点连接;将每个点的枢纽点集合按时间从小到大在所处枢纽点之间建立数据边。
为了更好的理解上述时序图的处理方法流程,以下结合优选实施例对上述技术方案进行解释说明,但不用于限定本发明实施例的技术方案。
本发明优选实施例提供了基于有向无环图时序图计算的方法,采用时序图计算引擎可以改善传统时序图计算中时间空间效率低下、无法使用于外存计算以及没有统一的编程框架的问题。此外,所述时序图计算引擎通过将图转换为有向无环图,然后在有向无环图上按照拓扑序遍历一遍,从而提高时间效率以及有着很好的扩展性和可使用性。
如图4所示,是本申请实施例中的时序图的处理方法的流程原理图,具体包括如下步骤:
步骤S1,计算之前进行预处理将图转换成有向无环图,需要进行出点排序、点标号、查找枢纽点、以及生成新的边数据等操作。将有向无环图分割成适应于内存大小的块是为了后续的外存计算。实际上也可以不分割,使用系统提供的mmap来进行虚拟映射。这样会比较方便快捷。
预处理包括:
步骤S1.1,统计每个点的度数,可以预先把每个点标号小于它的所有的点的度数算出来。其次继续遍历边数据,进行拆点。这样做完后出点(u,t)是按照第一维也就是点标号升序排列其次按照第二维也就是时间升序排列,通过使用二维基数排序,出点排序的时间复杂度由O(ElogD)降为了O(E)。
步骤S1.2,将出点排好后我们需要进行点的重新编号,需要将入点找到对应的出点上,同时拆完后的点是二维,需要将二维变成一维数据便于处理。在点编号的过程中我们使用二分搜索,相关技术中的方法有着O(ElogD)的时间复杂度,在本申请的计算引擎中将编号操作并行化,因为他们之间没有资源竞争,因此使用并行能够大大降低时间复杂度同时有这良好的可扩展性。
步骤S1.3,点重新编号后就能够查找枢纽节点,其中枢纽节点一定是出点,并且它要么在当前点中时间最小要么有入点合并到这个点上。可以证明最后的图可以由枢纽点之间建边构建完成。由于在点编号的过程中相当于做了入点合并的操作,因此枢纽点通过对点数据的一遍遍历能够求得然后建立映射函数,这样就能够查询出每个点它对应的枢纽点的编号,这样仅仅需要O(E)的时间复杂度。
步骤S1.4,在建立完点到枢纽点之间的映射后,将原图中的边按照源点和汇点所对应的枢纽点连接起来,权值设定为原始边的权值。同时将每个点的枢纽点集合里按时间从小到大在它们之间建立虚边。由于时序图的边按照时间流排序,因此在建立边的过程中也按照时间顺序建立边。就能够保证转换后的DAG也是按源点的开始时间排好序的。
综上,预处理过程仅仅需要O(E+Elog(D)/thread_num)的时间复杂度,其中thread_num是使用的线程数。在一般情况下线程数为16时,整个预处理过程接近O(E)复杂度。
步骤S2、主体计算流程,主要分为内存环境和外存环境。在内存环境中,将磁盘中的图数据载入内存。由于载入的图数据带有着DAG的拓扑序,因此遍历一遍整个图数据将需要更新的数据更新一下。
具体地,可以抽象成公式对于边(u,v,s,t,w),dis[v]=cmp(dis[v],update(dis[u],w))。其中dis[u]代表点u的值,cmp函数是比较函数,在最短路中则返回两者最小值,update函数是更新函数在最短路中是返回两个数和。因此用户对于不同的应用仅仅需要更新cmp和update两个函数,用户只需要写非常少量的代码就可以来完成这些操作。外存环境与内存环境不同的是,图数据无法被完全载入内存,但是经过枢纽点剪枝后的点数据比传统方法减少了近90%,因此点数据可以放在内存中。
此外,在计算引擎中使用mmap将边数据映射进内存,因为是对边的顺序并且仅仅需要对数据的一遍扫描,因此这样只有E的I/O开销。相比于传统外存图计算系统,能够大大降低系统的I/O时间。
基于有向无环图的时序图计算的方法,设计实现了时序图计算引擎,用于改善传统时序图计算中时间空间效率低下、无法使用于外存计算以及没有统一的编程框架的问题。时序图计算引擎通过将图转换为有向无环图然后在有向无环图上按照拓扑序遍历一遍,这样能够大大提高时间效率以及有着很好的扩展性和可使用性。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种时序图的处理方法,其特征在于,包括:
读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据;
根据所述时序图的边的出点时间排序,将所述磁盘中的所述图数据载入内存;
遍历所述图数据,生成预处理结果;
其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据,包括:
将所述图数据中的每个点按照不同时间拆分,得到图数据的出点和入点,其中,所述出点对应某一条边的源点,所述入点对应某一条边的汇点;
将所述图数据的出点和入点按照时间排序;
在所述时间排序的结果中所述入点的出点时序不大于所述入点的情况下,将所述入点的出点合并到当前出点上;
在所述时间排序的结果中两个时间相邻的出点之间没有入点的情况下,将第一时间的出点合并到第二时间的出点,其中,所述第一时间大于所述第二时间。
2.根据权利要求1所述的方法,其特征在于,所述遍历所述图数据,生成预处理结果包括:
在所述内存中遍历所述图数据得到待更新的图数据;
和/或,将所述时序图中的边数据映射进所述内存。
3.根据权利要求2所述的方法,其特征在于,在所述内存中遍历所述图数据得到待更新的图数据包括:
将所述图数据中的有向无环图遍历一遍,得到待更新的图数据。
4.根据权利要求2所述的方法,其特征在于,将所述时序图中的边数据映射进所述内存包括:
确定所述边数据的数量;
根据所述边数据的数量,将所述时序图中的边数据映射进所述内存。
5.根据权利要求1所述的方法,其特征在于,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:
按照所述时序图的边的出点时间排序,将所述时序图转化为有向无环图,其中,所述转化至少包括如下之一的操作:出点排序、点标号、查找枢纽点、生成新的边数据。
6.根据权利要求1所述的方法,其特征在于,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:读取磁盘中储存的时序图进行出点排序操作的步骤,所述读取磁盘中储存的时序图进行出点排序操作的步骤包括:
统计所述时序图中每个点的度数;
根据所述每个点的度数遍历边数据,拆分出每个点的出点;
对所述出点进行排序,其中,每个出点排序后的位置等于编号小于当前点的所有点的度数加上当前点时间小于该点的出点个数。
7.根据权利要求6所述的方法,其特征在于,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:读取磁盘中储存的时序图进行查找枢纽点的操作步骤,所述读取磁盘中储存的时序图进行查找枢纽点的操作步骤包括:
基于二分搜索对入点进行二分查找,确定出点集合;
根据所述出点在集合中确定满足预设时间条件的出点;
根据出点排序操作结果进行点的重新编号。
8.根据权利要求7所述的方法,其特征在于,所述读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据包括:读取磁盘中储存的时序图进行生成新的边数据的操作步骤,所述读取磁盘中储存的时序图进行生成新的边数据的操作步骤包括:
根据点重新编号的结果查找出枢纽节点,其中,所述枢纽节点为出点;
根据所述枢纽节点建立点到枢纽点之间的映射;
根据映射结果将所述时序图中的边按照源点和汇点所对应的枢纽点连接;
将每个点的枢纽点集合按时间从小到大在所处枢纽点之间建立数据边。
9.一种时序图的处理装置,其特征在于,包括:
读取模块,用于读取磁盘中储存的时序图,其中,所述时序图包括按照所述时序图的边的出点时间排序得到的图数据;
载入模块,用于根据所述时序图的边的出点时间排序,将所述磁盘中的所述图数据载入内存;
生成模块,用于遍历所述图数据,生成预处理结果;
其中,所述读取模块,还用于将所述图数据中的每个点按照不同时间拆分,得到图数据的出点和入点,其中,所述出点对应某一条边的源点,所述入点对应某一条边的汇点;将所述图数据的出点和入点按照时间排序;在所述时间排序的结果中所述入点的出点时序不大于所述入点的情况下,将所述入点的出点合并到当前出点上;在所述时间排序的结果中两个时间相邻的出点之间没有入点的情况下,将第一时间的出点合并到第二时间的出点,其中,所述第一时间大于所述第二时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010912889.6A CN112115072B (zh) | 2020-09-03 | 2020-09-03 | 时序图的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010912889.6A CN112115072B (zh) | 2020-09-03 | 2020-09-03 | 时序图的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112115072A CN112115072A (zh) | 2020-12-22 |
CN112115072B true CN112115072B (zh) | 2022-06-17 |
Family
ID=73805558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010912889.6A Active CN112115072B (zh) | 2020-09-03 | 2020-09-03 | 时序图的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112115072B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1383677A (zh) * | 2000-04-21 | 2002-12-04 | 索尼公司 | 信息处理设备和方法、程序和记录介质 |
CN102890815A (zh) * | 2011-07-19 | 2013-01-23 | 上海博泰悦臻电子设备制造有限公司 | 图形处理方法 |
CN105677755A (zh) * | 2015-12-30 | 2016-06-15 | 杭州华为数字技术有限公司 | 一种处理图数据的方法及装置 |
CN106919628A (zh) * | 2015-12-28 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 一种图数据的处理方法和装置 |
CN110297811A (zh) * | 2019-06-28 | 2019-10-01 | 联想(北京)有限公司 | 数据处理方法及装置、计算机系统和计算机可读存储介质 |
CN110908587A (zh) * | 2018-09-14 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 一种用于存储时序数据的方法及其装置 |
CN111274455A (zh) * | 2020-01-15 | 2020-06-12 | 北京燧昀科技有限公司 | 图数据处理方法、装置、电子设备及计算机可读介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8456472B2 (en) * | 2010-01-08 | 2013-06-04 | International Business Machines Corporation | Ranking nodes in a graph |
-
2020
- 2020-09-03 CN CN202010912889.6A patent/CN112115072B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1383677A (zh) * | 2000-04-21 | 2002-12-04 | 索尼公司 | 信息处理设备和方法、程序和记录介质 |
CN102890815A (zh) * | 2011-07-19 | 2013-01-23 | 上海博泰悦臻电子设备制造有限公司 | 图形处理方法 |
CN106919628A (zh) * | 2015-12-28 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 一种图数据的处理方法和装置 |
CN105677755A (zh) * | 2015-12-30 | 2016-06-15 | 杭州华为数字技术有限公司 | 一种处理图数据的方法及装置 |
CN110908587A (zh) * | 2018-09-14 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 一种用于存储时序数据的方法及其装置 |
CN110297811A (zh) * | 2019-06-28 | 2019-10-01 | 联想(北京)有限公司 | 数据处理方法及装置、计算机系统和计算机可读存储介质 |
CN111274455A (zh) * | 2020-01-15 | 2020-06-12 | 北京燧昀科技有限公司 | 图数据处理方法、装置、电子设备及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112115072A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3152523B1 (en) | Customizable route planning using graphics processing unit | |
Moylett et al. | Quantum speedup of the traveling-salesman problem for bounded-degree graphs | |
JP7469026B2 (ja) | ストレージでの最適な動的シャードを生成する装置及びシステム | |
US20130132369A1 (en) | Batched shortest path computation | |
CN113015970A (zh) | 划分知识图 | |
US20180300330A1 (en) | Proactive spilling of probe records in hybrid hash join | |
CN111553466B (zh) | 信息处理方法、装置及设备 | |
CN111274455B (zh) | 图数据处理方法、装置、电子设备及计算机可读介质 | |
WO2022247869A1 (zh) | 用于数据搜索的方法、装置及设备 | |
CN113868434A (zh) | 图数据库的数据处理方法、设备和存储介质 | |
CN117785490A (zh) | 一种图神经网络模型的训练架构、方法、系统及服务器 | |
CN112115072B (zh) | 时序图的处理方法及装置 | |
CN116737511A (zh) | 基于图的调度作业监控方法及装置 | |
CN111858785B (zh) | 地图离散型要素的匹配方法、装置、系统及存储介质 | |
US20130046467A1 (en) | Method and apparatus for determining traveling route | |
CN110325984B (zh) | 在图形中进行层次社区检测的系统和方法 | |
CN115883550A (zh) | 任务处理方法、装置、电子设备、存储介质及程序产品 | |
CN112379846B (zh) | 一种用于磁盘文件的快速读取方法和系统 | |
CN114691302A (zh) | 一种面向大数据处理的动态缓存替换方法及设备 | |
Burkhardt | Graph connectivity in log steps using label propagation | |
Zhang et al. | Enhanced branch-and-bound framework for a class of sequencing problems | |
Bertuzzi et al. | Evaluation of Quantum and Hybrid Solvers for Combinatorial Optimization | |
CN116187464B (zh) | 盲量子计算处理方法、装置及电子设备 | |
Elwirehardja et al. | Web Information System Design for Fast Protein Post-Translational Modification Site Prediction | |
US20240281645A1 (en) | Method and apparatus for accelerating gnn pre-processing |
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 |