当前位置: 首页 > 专利查询>复旦大学专利>正文

一种多子图匹配方法、装置及设备制造方法及图纸

技术编号:35926870 阅读:13 留言:0更新日期:2022-12-14 10:10
一种多子图匹配方法、装置及设备,本申请中,多子图匹配装置在接收到多个查询图之后,根据每个查询图的哈希值对多个查询图进行分组,生成多组查询图,其中,哈希值处于同一取值范围的多个查询图属于同一组。之后,该多子图匹配装置分别将多组查询图与数据图并行进行匹配以获得匹配结果,该匹配结果为多个查询图与数据图的匹配结果。本申请的多子图匹配方法能够提高分组效率,有效提升子图匹配的效率。有效提升子图匹配的效率。有效提升子图匹配的效率。

【技术实现步骤摘要】
一种多子图匹配方法、装置及设备


[0001]本申请涉及图计算
,尤其涉及一种多子图匹配方法、装置及设备。

技术介绍

[0002]图数据能够用来表示现实世界的事物之间的关系,比如社交网络、交通网络以及生物网络等等。利用图数据能够实现对事物关系的深入研究。比如在社交网络中,可以借助图数据根据一名已知罪犯的社交网络图寻找社交网络图存在重叠的、其他可能的嫌疑犯;在生物学中,可以借助图数据寻找捕食者、被捕食者的关系。
[0003]子图查询是指从数据图中找到与查询图匹配(也即与查询图相同的)数据图的子图。目前,对于单子图查询,方式较为成熟。在接收到单个查询图后,先从数据图中查找该查询图上的节点,过滤掉数据图中无关的节点。之后,采取广度优先搜索(breadth first search,BFS)策略,从查询图中选择一个顶点作为根节点,然后逐层遍历查询图中的剩余节点,确定查询图的节点匹配顺序。之后,按照节点匹配顺序与过滤掉无关节点的数据图进行匹配,从数据图中确定与该查询图匹配的子图。
[0004]而在实际应用中,在进行子图查询时,经常需要会接收到多个查询图,如果对每一个查询图都按照上述方式进行单子图查询,子图查询速度会减慢,效率较低。

技术实现思路

[0005]本申请提供一种多子图匹配方法、装置及设备,用以提升针对多个查询图的子图匹配效率。
[0006]第一方面,本申请实施例提供了一种多子图匹配方法,该方法可以由多子图匹配装置执行,也可以由多子图匹配系统中的装置配合执行,这里以多子图匹配装置执行该方法为例进行说明。由多子图匹配系统中的装置配合执行该方法与多子图匹配装置执行该方法的方式类似,区别在于多子图匹配系统中的装置配合执行该方法时,其中一个装置用于完成其中部分方法,装置之间可以存在数据交互。在本申请实施例中多子图匹配是指针对多个查询图的子图匹配。
[0007]在该方法中,该多子图匹配装置可以先接收多个查询图,该多个查询图中的每个查询图用于表征多个节点以及节点之间的连接关系。该多子图匹配装置在接收到多个查询图之后,可以对该多个查询图进行分组。例如,多子图匹配装置可以根据每个查询图的哈希值对多个查询图进行分组,生成多组查询图,其中,哈希值处于同一取值范围的多个查询图属于同一组。之后,该多子图匹配装置能够分别将多组查询图与数据图并行进行匹配以获得匹配结果。该匹配结果为多个查询图与数据图的匹配结果。
[0008]通过上述方法,通过对该多个查询图进行分组,获得多组查询图,之后,采用并行的方式对该多组查询图与数据图进行子图匹配,能够有效的提升子图匹配的效率。而通过哈希值对该多个查询图进行的分组,能够加快分组效率,从整体上保证子图匹配的高效性。
[0009]在一种可能的实施方式中,多子图匹配装置在该多个查询图进行分组时,还可以
考虑查询图的负载均衡,使得该多组查询图中的每组查询图的查询代价处于同一范围内,其中,查询代价用于指示对属于同一组的多个查询图进行匹配时所消耗的工作量。
[0010]通过上述方法,该多组查询图中的每组查询图的查询代价处于同一范围,使得在对该多组查询图与数据图并行进行匹配时,对每一组查询图与数据图进行匹配时所消耗的工作量大致相同或接近,能够尽可能同时或者同一时间范围内获取每组查询图与查询图的匹配结果,以达到负载均衡的效果。
[0011]在一种可能的实施方式中,多子图匹配装置分别将多组查询图与数据图并行进行匹配以获得匹配结果时,还可以划分数据图,生成多个数据子图;之后,再并行执行多个匹配任务,每个匹配任务用于将多个数据子图中的一个数据子图与多组查询图中的一组查询图进行匹配。
[0012]通过上述方法,数据子图的划分,能够进一步减少对一组查询和数据图进行匹配过程中可能存在的无效的匹配操作,以保证多子图匹配的高效性。
[0013]在一种可能的实施方式中,对于一个匹配任务中涉及的数据子图,该数据子图包括该匹配任务涉及的一组查询图中所有查询图的节点。也就是说,多个匹配任务包括第一匹配任务,第一匹配任务用于将第一数据子图与多组查询图中的第一组查询图进行匹配,其中,第一数据子图包括第一组查询图中的所有查询图的节点。
[0014]通过上述方法,一个匹配任务中的该数据子图包括该匹配任务涉及的一组查询图中所有查询图的节点,能够提高数据子图与该组查询图的匹配的成功率,以提高能够从该数据子图中获取与该组查询图中的查询图匹配的子图的可能性,保证多子图匹配的准确率。
[0015]在一种可能的实施方式中,以执行第一匹配任务为例,对执行匹配任务的方式进行说明,在执行第一匹配任务时,可以从第一数据子图中确定第一组查询图的每个查询图的任务子图,查询图的任务子图中包括查询图的所有节点;在本申请实施例中,多个查询图可以对应一个任务子图,那么,该任务子图则包括所对应的多个查询图的所有节点。一个查询图也可以只对应一个任务子图,那么该任务子图则包括所对应的一个查询图的所有结果。在确定了各个查询图的任务子图之后,多子图匹配装置可以对每个查询图的任务子图与公共子图进行匹配,公共子图为第一组查询图中各个查询图包括的公共部分;对于任一查询图,在该查询图的任务子图与公共子图匹配成功的情况下,多子图匹配装置可以对查询图的任务子图与查询图中除公共子图外的部分进行匹配,获得查询图的任务子图与查询图的匹配结果。
[0016]通过上述方法,先对查询图的任务子图以及该组查询图的公共子图进行匹配,在匹配成功之后,再对该查询图的剩余部分进行匹配。也就是说,在查询图的任务子图以及该组查询图的公共子图匹配失败之后,就不需要执行后续动作,能够提升效率。另外,对于多个查询图对应同一个任务子图的情况,该任务子图只需与该组查询图的公共子图匹配一次,不需要针对该多个查询图的每个查询图,都执行一次与该组查询图的公共子图匹配的操作,可以减少多余的匹配操作,提升匹配效率。
[0017]在一种可能的实施方式中,当查询图的任务子图与公共子图匹配不成功,多子图匹配装置可以直接确定匹配结果为失败,也就是说,在第一数据子图中不存在与查询图匹配的子图,进一步的,在该数据图中也不存在与查询图匹配的子图。
[0018]通过上述方法,查询图的任务子图与公共子图匹配不成功的情况下,直接获得匹配结果,效率较高。
[0019]在一种可能的实施方式中,每个查询图的哈希值是根据LSH获取的。
[0020]通过上述方法,LSH函数速度快、复杂度低,在采用LSH函数在对查询图进行分组时,可以加快分组速度,进一步,提高子图匹配效率。
[0021]第二方面,本申请实施例还提供了一种多子图匹配装置,该多子图匹配装置具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,装置的结构中包括接收模块、分组模块、匹配模块,这些模块可以执行上述第一方面方法示例中的相应本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多子图匹配方法,其特征在于,所述方法包括:接收多个查询图,所述多个查询图中的每个查询图用于表征多个节点以及节点之间的连接关系;根据所述每个查询图的哈希值对所述多个查询图进行分组,生成多组查询图,其中,哈希值处于同一取值范围的多个查询图属于同一组;分别将所述多组查询图与所述数据图并行进行匹配以获得匹配结果。2.如权利要求1所述的方法,其特征在于,所述多组查询图中的每组查询图的查询代价处于同一范围内,其中,所述查询代价用于指示对属于同一组的多个查询图进行匹配时所消耗的工作量。3.如权利要求1或2所述的方法,其特征在于,所述分别将所述多组查询图与所述数据图并行进行匹配以获得匹配结果,包括:划分所述数据图,生成多个数据子图;并行执行多个匹配任务,每个匹配任务用于将所述多个数据子图中的一个数据子图与所述多组查询图中的一组查询图进行匹配。4.如权利要求3所述的方法,其特征在于,所述多个匹配任务包括第一匹配任务,所述第一匹配任务用于将所述第一数据子图与所述多组查询图中的第一组查询图进行匹配,其中,所述第一数据子图包括所述第一组查询图中的所有查询图的节点。5.如权利要求3或4所述的方法,其特征在于,所述执行第一匹配任务,包括:从所述第一数据子图中确定所述第一组查询图的每个查询图的任务子图,所述查询图的任务子图中包括所述查询图的所有节点;对每个所述查询图的任务子图与公共子图进行匹配,所述公共子图为所述第一组查询图中各个查询图包括的公共部分;对于任一所述查询图的任务子图与所述公共子图匹配成功的情况下,对所述查询图的任务子图与所述查询图中除所述公共子图外的部分进行匹配,获得所述查询图的任务子图与所述查询图的匹配结果。6.如权利要求5所述的方法,其特征在于,所述方法还包括:若所述查询图的任务子图与所述公共子图匹配不成功,确定在所述第一数据子图中不存在与所述查询图匹配的子图。7.如权利要求1~6任一所述的方法,其特征在于,所述每个所述查询图的哈希值是根据局部哈希算法LSH获取的。8.一种多子图匹配装置,其特征在于,所述装置包括:接收模块,用于接收多个查询图,所述多个查询图中的每个查询图用于表征多个节点以及节点之间的连接关系;分组模块,用于根据所述每个查询图的哈希值对所述多个查询图进行分组,生成多组查询图,其中,哈希值处于同一取值范围的多个查询图属于...

【专利技术属性】
技术研发人员:田桢郑卫国朱俊华
申请(专利权)人:复旦大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1