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

一种基于社区结构的子图匹配方法及装置制造方法及图纸

技术编号:19857847 阅读:35 留言:0更新日期:2018-12-22 11:46
本发明专利技术公开一种基于社区结构的子图匹配方法及装置,方法包括:导入包含目标模式的文件,分析目标模式结构,找出目标模式中互相匹配等价的子图;根据网络图数据生成以社区作为结点的超图,计算每个社区中各结点与本社区的邻接社区间的边数;在网络图各社区内部利用预设子图匹配算法找出各社区的与目标模式结构匹配的子图,获得第一匹配结果;在网络图中,基于网络图每个社区中各结点与本社区的各邻接社区间的边数和找出的目标模式中互相匹配等价的子图找出跨社区的与目标模式匹配的子图,获得第二匹配结果;将第一、二匹配结果汇总获得最终子图匹配结果。可提高子图匹配速度,减少时间开销。

【技术实现步骤摘要】
一种基于社区结构的子图匹配方法及装置
本专利技术实施例涉及计算机
,具体涉及一种基于社区结构的子图匹配方法及装置。
技术介绍
随着图数据在各领域的广泛应用,对图数据处理的相关算法的需求也与日俱增。其中,子图匹配算法作为图上的一个经典算法,如何进行高效的子图匹配成为了一个重要的问题。子图匹配指的是由用户指定目标模式,通过子图匹配算法在图中找到所有与目标模式同构的子图的过程。子图匹配的应用包括找满足特定条件的单个结点、找存在特定关系的若干结点等,如在社交网络中找到所有互相认识的三个人组成的结构。Ullmann算法和vf2算法是经典的子图匹配方法。Neo4j是常用的图数据库系统,它对于子图匹配没有专门的实现,而是通过进行路径匹配达到子图匹配的效果。Ullmann算法、vf2算法和Neo4j上使用的子图匹配方法在实际计算中速度均较慢,当数据量较大时,算法的时间开销很大,不能满足实际应用的需求。而且,这些算法没有充分利用图的社区结构,有较大的改进空间。鉴于此,如何进行子图匹配,以提高子图匹配的计算速度成为目前需要解决的技术问题。
技术实现思路
由于现有方法存在上述问题,本专利技术实施例提出一种基于社区结构的子图匹配方法及装置。第一方面,本专利技术实施例提出一种基于社区结构的子图匹配方法,包括:导入包含目标模式的文件,基于所导入的文件,分析目标模式的结构,找出目标模式中互相匹配等价的子图;根据网络图生成以社区作为结点的超图,计算每个社区中各结点与本社区的邻接社区中的结点存在的边数;在所述网络图中各社区内部,利用预设子图匹配算法,分别找出各社区的与目标模式相匹配的子图,获得社区内子图匹配结果;在所述网络图中所有社区之间,基于所计算的每个社区中各结点与本社区的各邻接社区间的边数和所找出的目标模式中互相匹配等价的子图,找出跨社区的与目标模式匹配的子图,获得社区间子图匹配结果;将所述社区内子图匹配结果和社区间子图匹配结果进行汇总,获得目标模式与所述网络图的子图匹配结果。可选地,所述导入包含目标模式的文件,基于所导入的文件,分析目标模式的结构,找出目标模式中互相匹配等价的子图,包括:导入包含目标模式的文件,解析所述目标模式中的结点和边及相关属性;基于解析出的所述目标模式中的结点和边及相关属性,分析目标模式的结构,找出目标模式中互相匹配等价的子图。可选地,在所述网络图中各社区内部,利用预设子图匹配算法,分别找出各社区的与目标模式相匹配的子图,获得社区内子图匹配结果,包括:并行地在所述网络图中各社区内部,利用预设子图匹配算法,分别找出各社区的与目标模式相匹配的子图,获得社区内子图匹配结果。可选地,所述在所述网络图中所有社区之间,基于所计算的每个社区中各结点与本社区的各邻接社区间的边数和所找出的目标模式中互相匹配等价的子图,找出跨社区的与目标模式匹配的子图,获得社区间子图匹配结果,包括:利用预设子图匹配算法,在所述超图上对目标模式进行结点可重复的子图匹配,将得到的分配方案存储在预设表中;当所述预设表内的元素数量大于预设阈值时,对于所述预设表中的每个分配方案s进行处理,包括:判断s中被分配到所述网络图中各社区的目标模式的结点数量是否大于该社区中的结点数量;若s中被分配到所述网络图中各社区的目标模式的结点数量小于等于该社区中的结点数量,则根据目标模式的结构,将s中被分配到各社区的目标模式中的结点作为待匹配结点,计算所述待匹配结点在所述目标模式中与被分配给除了本社区之外的其它各社区的结点间的边数,并结合网络图中本社区中结点与除了本社区之外的其它社区的边数进行剪枝,以减少目标模式中各结点对应的候选匹配结点的数量,若剪枝后目标模式中的某个结点对应的候选匹配结点的数量减少到了0,则结束对s的处理;若剪枝后目标模式中的所有结点对应的候选匹配结点的数量均不为0,则根据所找出的目标模式中互相匹配等价的子图,判断当前s是否可以通过匹配等价关系转换成索引值更小的分配方案,若不可以,则将当前s能通过匹配等价关系转换得到的所有分配方案记录在预设文件中;对于s中被分配到相同社区的目标模式中的结点,两两计算目标模式中它们在除本社区之外的其它各社区中的公共一跳邻居数;将s中被分配到相同社区的目标模式中的结点组成的目标模式的导出子图作为目标模式子图,利用预设子图匹配算法,将所述目标模式子图与网络图中的对应社区进行子图匹配,在匹配过程中,对目标模式子图中的各结点使用其对应的所述候选匹配结点进行匹配尝试,并使用计算得到的公共一跳邻居数进行剪枝,得到s中每个目标模式子图与网络图中的对应社区进行子图匹配的匹配结果;对s中每个目标模式子图与网络图中的对应社区进行子图匹配得到的匹配结果进行进一步检验,对于s中的任意两个目标模式子图在两个社区中的匹配结果,若两个目标模式子图的两个结点间有边相连,则与这两个结点匹配的结点间也应有边相连;若对于包含s中的各目标模式子图的一种匹配结果的一个匹配结果集合,且这个匹配结果集合中的匹配结果两两通过了检验,则将匹配结果集合中的匹配结果合并产生一个目标模式与网络图的匹配结果;根据所产生的所有目标模式与网络图的匹配结果,对所述预设文件中记录的所有分配方案,通过匹配等价的对应关系,计算出最终的匹配结果。可选地,在判断s中被分配到所述网络图中各社区的目标模式的结点数量是否大于该社区中的结点数量之后,所述方法还包括:若判断获知s中被分配到所述网络图中某社区的目标模式中的结点数量大于该社区中的结点数量,则结束对s的处理。可选地,在根据所找出的目标模式中互相匹配等价的子图,判断当前s是否可以通过匹配等价关系转换成索引值更小的分配方案之后,所述方法还包括:判断获知当前s可以通过匹配等价关系转换成索引值更小的分配方案,则结束对s的处理。可选地,当所述预设表内的元素数量大于预设阈值时,并行地对于所述预设表中的每个匹配s进行处理。第二方面,本专利技术实施例还提出一种基于社区结构的子图匹配装置,包括:导入模块,用于导入包含目标模式的文件,解析所述目标模式中的结点和边及相关属性;生成模块,用于根据网络图生成以社区作为结点的超图,计算每个社区中各结点与本社区的各邻接社区间的边数;分析模块,用于基于解析出的所述目标模式中的结点和边及相关属性,分析目标模式的结构,找出目标模式中互相匹配等价的子图;第一获取模块,用于在所述网络图中各社区内部,利用预设子图匹配算法,分别找出各社区的与目标模式相匹配的子图,获得社区内子图匹配结果;第二获取模块,用于在所述网络图中所有社区之间,基于所计算的每个社区中各结点与本社区的各邻接社区间的边数和所找出的目标模式中互相匹配等价的子图,找出跨社区的与目标模式匹配的子图,获得社区间子图匹配结果;汇总模块,用于将所述社区内子图匹配结果和社区间子图匹配结果进行汇总,获得目标模式与所述网络图的子图匹配结果。第三方面,本专利技术实施例还提出一种电子设备,包括:处理器、存储器、总线及存储在存储器上并可在处理器上运行的计算机程序;其中,所述处理器,存储器通过所述总线完成相互间的通信;所述处理器执行所述计算机程序时实现上述方法。第四方面,本专利技术实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述本文档来自技高网...

【技术保护点】
1.一种基于社区结构的子图匹配方法,其特征在于,包括:导入包含目标模式的文件,基于所导入的文件,分析目标模式的结构,找出目标模式中互相匹配等价的子图;根据网络图的数据生成以社区作为结点的超图,计算每个社区中各结点与本社区的各邻接社区间的边数;在所述网络图中各社区内部,利用预设子图匹配算法,分别找出各社区的与目标模式相匹配的子图,获得社区内子图匹配结果;在所述网络图中所有社区之间,基于所计算的每个社区中各结点与本社区的各邻接社区间的边数和所找出的目标模式中互相匹配等价的子图,找出跨社区的与目标模式匹配的子图,获得社区间子图匹配结果;将所述社区内子图匹配结果和社区间子图匹配结果进行汇总,获得目标模式与所述网络图的子图匹配结果。

【技术特征摘要】
1.一种基于社区结构的子图匹配方法,其特征在于,包括:导入包含目标模式的文件,基于所导入的文件,分析目标模式的结构,找出目标模式中互相匹配等价的子图;根据网络图的数据生成以社区作为结点的超图,计算每个社区中各结点与本社区的各邻接社区间的边数;在所述网络图中各社区内部,利用预设子图匹配算法,分别找出各社区的与目标模式相匹配的子图,获得社区内子图匹配结果;在所述网络图中所有社区之间,基于所计算的每个社区中各结点与本社区的各邻接社区间的边数和所找出的目标模式中互相匹配等价的子图,找出跨社区的与目标模式匹配的子图,获得社区间子图匹配结果;将所述社区内子图匹配结果和社区间子图匹配结果进行汇总,获得目标模式与所述网络图的子图匹配结果。2.根据权利要求1所述的方法,其特征在于,所述导入包含目标模式的文件,基于所导入的文件,分析目标模式的结构,找出目标模式中互相匹配等价的子图,包括:导入包含目标模式的文件,解析所述目标模式中的结点和边及相关属性;基于解析出的所述目标模式中的结点和边及相关属性,分析目标模式的结构,找出目标模式中互相匹配等价的子图。3.根据权利要求1所述的方法,其特征在于,在所述网络图中各社区内部,利用预设子图匹配算法,分别找出各社区的与目标模式相匹配的子图,获得社区内子图匹配结果,包括:并行地在所述网络图中各社区内部,利用预设子图匹配算法,分别找出各社区的与目标模式相匹配的子图,获得社区内子图匹配结果。4.根据权利要求1所述的方法,其特征在于,在所述网络图中所有社区之间,基于所计算的每个社区中各结点与本社区的各邻接社区间的边数和所找出的目标模式中互相匹配等价的子图,找出跨社区的与目标模式匹配的子图,获得社区间子图匹配结果,包括:利用预设子图匹配算法,在所述超图上对目标模式进行结点可重复的子图匹配,将得到的分配方案存储在预设表中;当所述预设表内的元素数量大于预设阈值时,对于所述预设表中的每个分配方案s进行处理,包括:判断s中被分配到所述网络图中各社区的目标模式的结点数量是否大于该社区中的结点数量;若s中被分配到所述网络图中各社区的目标模式的结点数量小于等于该社区中的结点数量,则根据目标模式的结构,将s中被分配到各社区的目标模式中的结点作为待匹配结点,计算所述待匹配结点在所述目标模式中与被分配给除了本社区之外的其它各社区的结点间的边数,并结合网络图中本社区中结点与除了本社区之外的其它社区的边数进行剪枝,以减少目标模式中各结点对应的候选匹配结点的数量,若剪枝后目标模式中的某个结点对应的候选匹配结点的数量减少到了0,则结束对s的处理;若剪枝后目标模式中的所有结点对应的候选匹配结点的数量均不为0,则根据所找出的目标模式中互相匹配等价的子图,判断当前s是否可以通过匹配等价关系转换成索引值更小的分配方案,若不可以,则将当前s能通过匹配等价关系转换得到的所有分配方案记录在预设文件中;对于s中被分配到相同社区的目标模式中的结点,两两计算目标模式中它们在除本社区之外的其它各社区中的公共一跳邻居数;将s中被分配到相同社区的目标模式...

【专利技术属性】
技术研发人员:王朝坤楼昀恺
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

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

1