子图同构检测方法、装置、设备及存储介质与流程

文档序号:33515405发布日期:2023-03-22 05:51阅读:49来源:国知局
子图同构检测方法、装置、设备及存储介质与流程

1.本发明涉及子图匹配技术领域,尤其涉及一种子图同构检测方法、装置、设备及存储介质。


背景技术:

2.图数据作为一种通用的数据形式,因为其对复杂结构的优秀表达能力而被广泛的应用于各类场景。其中,子图同构或子图匹配是一个关键并且极具挑战性的图相关任务。给定一张小的检索图和一张大的目标图,子图同构旨在决定检索图是否与目标图的子图同构。现有的技术中,通常将子图同构视为一个组合优化问题,目标是精确的找到目标图中的所有匹配,这使得该问题成为了np完全问题,np完全问题的英文全称是non-deterministic polynomial的问题,即多项式复杂程度的非确定性问题,求解该问题所使用的回溯框架具有指数级别的时间成本。因此,如何有效地降低子图同构检测的计算复杂度,成为一个亟待解决的问题。
3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

4.本发明的主要目的在于提供了一种子图同构检测方法、装置、设备及存储介质,旨在解决如何有效地降低子图同构检测的计算复杂度的技术问题。
5.为实现上述目的,本发明提供了一种子图同构检测方法,所述子图同构检测方法包括以下步骤:获取检索图和目标图;以第一预设条件判断所述检索图为所述目标图的子图时,获取以所述检索图中的各节点为根的检索根子树和以所述目标图中的各节点为根的目标根子树;以第二预设条件判断所述检索根子树为所述目标根子树的子树时,获取所述检索根子树和所述目标根子树之间的二部图;在所述二部图中的所有节点为匹配点时,判定所述检索图和所述目标图之间存在子图同构。
6.可选地,所述以第一预设条件判断所述检索图为所述目标图的子图时,获取以所述检索图中的各节点为根的检索根子树和以所述目标图中的各节点为根的目标根子树的步骤之前,还包括:获取所述检索图中的所有检索节点和所述目标图中的所有目标节点;生成所述检索图中以所述检索节点为根的第一根子树和所述目标图中与所述检索节点对应的目标节点为根的第二根子树;在所述目标节点包含所述检索节点且所述第二根子树包含所述第一根子树时,判定所述检索图为所述目标图的子图。
7.可选地,所述获取所述检索图中的所有检索节点和所述目标图中的所有目标节点的步骤,具体包括:获取所述检索图中的所有初始检索节点和检索无弦环;根据所述初始检索节点和所述检索无弦环确定所述检索图中的所有检索节点;获取所述目标图中的所有初始目标节点和目标无弦环;根据所述初始目标节点和所述目标无弦环确定所述目标图中的所有目标节点。
8.可选地,所述以第二预设条件判断所述检索根子树为所述目标根子树的子树时,获取所述检索根子树和所述目标根子树之间的二部图的步骤之前,还包括:获取所述目标节点中与所述检索节点中的单射检索节点之间存在单射的单射目标节点;获取所述目标图中以所述单射目标节点为根的第三根子树和所述检索图中以所述单射检索节点为根的第四根子树;在所述目标根子树包含所述检索根子树且所述第三根子树包含所述第四根子树时,判定所述检索根子树为所述目标根子树的子树。
9.可选地,所述以第二预设条件判断所述检索根子树为所述目标根子树的子树时,获取所述检索根子树和所述目标根子树之间的二部图的步骤,具体包括:以第二预设条件判断所述检索根子树为所述目标根子树的子树时,将所述检索根子树转换为一阶检索根子树,将所述目标根子树转换为一阶目标根子树;根据所述一阶检索根子树和所述一阶目标根子树确定所述一阶检索根子树和所述一阶目标根子树之间的二部图。
10.可选地,所述根据所述一阶检索根子树和所述一阶目标根子树确定所述一阶检索根子树和所述一阶目标根子树之间的二部图的步骤,具体包括:获取所述一阶检索根子树中与所述一阶目标根子树中的各节点存在单射关系的对应节点;获取所述一阶检索根子树中以所述一阶检索根子树中的各节点为根的第五根子树;获取所述一阶目标根子树中以所述对应节点为根的第六根子树;根据所述第五根子树和所述第六根子树确定所述一阶检索根子树和所述一阶目标根子树之间的二部图。
11.可选地,所述在所述二部图中的所有节点为匹配点时,判定所述检索图和所述目标图之间存在子图同构的步骤之前,还包括:获取所述二部图中检索节点的子集和所述子集对应的子集数量;获取所述二部图中所述子集对应的邻居集数量;在所述邻居集数量大于所述子集数量时,判定所述二部图中的所有节点为匹配点。
12.此外,为实现上述目的,本发明还提供一种子图同构检测装置,所述子图同构检测装置包括:图获取模块,用于获取检索图和目标图;根子树获取模块,用于以第一预设条件判断所述检索图为所述目标图的子图时,
获取以所述检索图中的各节点为根的检索根子树和以所述目标图中的各节点为根的目标根子树;二部图获取模块,用于以第二预设条件判断所述检索根子树为所述目标根子树的子树时,获取所述检索根子树和所述目标根子树之间的二部图;子图同构判定模块,用于在所述二部图中的所有节点为匹配点时,判定所述检索图和所述目标图之间存在子图同构。
13.此外,为实现上述目的,本发明还提出一种子图同构检测设备,所述子图同构检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的子图同构检测程序,所述子图同构检测程序配置为实现如上文所述的子图同构检测方法的步骤。
14.此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有子图同构检测程序,所述子图同构检测程序被处理器执行时实现如上文所述的子图同构检测方法的步骤。
15.本发明通过获取检索图和目标图,以第一预设条件判断检索图为目标图的子图时,获取以检索图中的各节点为根的检索根子树和以目标图中的各节点为根的目标根子树,以第二预设条件判断所述检索根子树为所述目标根子树的子树时,获取所述检索根子树和所述目标根子树之间的二部图,在二部图中的所有节点为匹配点时,判定检索图和目标图之间存在子图同构。本发明通过将子图匹配转换为检测检索根子树与目标根子树是否匹配,然后获取获取检索根子树和目标根子树之间的二部图,在二部图中的所有节点为匹配点时,即二部图存在完美匹配时,判定检索图和目标图之间存在子图同构,相较于现有的通过寻找目标图中的所有匹配判断目标图是否与检索图之间存在子图同构,本发明上述方式能够将指数级别计算复杂度的子图同构问题转化为具有多项式级别复杂度的子树匹配问题,进一步简化为线性复杂度,从而有效地降低子图同构检测的计算复杂度,同时保证了子图同构检测的效果。
附图说明
16.图1是本发明实施例方案涉及的硬件运行环境的子图同构检测设备的结构示意图;图2为本发明子图同构检测方法第一实施例的流程示意图;图3为本发明子图同构检测方法一实施例的检索图和目标图的示意图;图4为本发明子图同构检测方法第二实施例的流程示意图;图5为本发明子图同构检测装置第一实施例的结构框图。
17.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
18.应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
19.参照图1,图1为本发明实施例方案涉及的硬件运行环境的子图同构检测设备结构示意图。
20.如图1所示,该子图同构检测设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器
1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram),也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
21.本领域技术人员可以理解,图1中示出的结构并不构成对子图同构检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
22.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及子图同构检测程序。
23.在图1所示的子图同构检测设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明子图同构检测设备中的处理器1001、存储器1005可以设置在子图同构检测设备中,所述子图同构检测设备通过处理器1001调用存储器1005中存储的子图同构检测程序,并执行本发明实施例提供的子图同构检测方法。
24.基于上述子图同构检测设备,本发明实施例提供了一种子图同构检测方法,参照图2,图2为本发明子图同构检测方法第一实施例的流程示意图。
25.本实施例中,所述子图同构检测方法包括以下步骤:步骤s10:获取检索图和目标图;步骤s20:以第一预设条件判断所述检索图为所述目标图的子图时,获取以所述检索图中的各节点为根的检索根子树和以所述目标图中的各节点为根的目标根子树;需要说明的是,本实施例的执行主体可以是一种具有数据处理、网络通信以及程序运行功能的计算服务设备,例如手机、平板电脑、个人电脑等,或者是一种能够实现上述功能的电子设备或子图同构检测设备。以下以所述子图同构检测设备为例,对本实施例及下述各实施例进行说明。
26.可理解的是,假设g为图,s为子图,如果s中所有节点和节点之间的边都可以映射到g中(结构相同就行),就称之为子图同构。
27.应理解的是,子图同构检测的基本方法是检测目标图和检索图是否满足子图同构的充分必要条件。由于子图同构是np完全问题,目前不可能在多项式时间内进行精确求解。因此为了简化计算量,可以将充要条件的判定退化为检测某一必要条件,如果输入的目标图和检索图能够通过必要条件检测,则说明其有可能子图同构,反之则可以断言两张图不是子图同构。
28.在具体实现中,本实施例中的目标图相较于检索图大,也就是目标图中的节点比检索图中的节点多,第一预设条件可用于判断检索图是否为目标图的子图,即在检索图中的节点集和边集分别是目标图的节点集的子集和边集的子集时,检索图为目标图的子图,在检索图中的节点集和边集不是分别为目标图的节点集的子集和边集的子集时,检索图不是目标图的子图。
29.在本实施例中,在以第一预设条件判断检索图为目标图的子图时,可获取以检索图中的各节点为根的检索根子树和以目标图中的各节点为根的目标根子树,具体检索根子
树的获取方法可以是先获取检索图中的所有节点,再获取与各节点连接的其他节点,将各节点与对应的其他节点连接起来即可构成检索根子树,目标根子树的获取方式也可参数上述检索根子树的获取方式。能够将子图同构问题退化为匹配子图与原图中以节点为根的树,将其转化为多项式复杂度的子树同构和可以线性近似求解的匹配问题,大大降低了计算复杂度。
30.进一步地,为了判断检索图和目标图是否满足第一预设条件,在本实施例中,所述步骤s10之前,还包括:获取所述检索图中的所有检索节点和目标图中的所有目标节点;生成所述检索图中以所述检索节点为根的第一根子树和所述目标图中与所述检索节点对应的目标节点为根的第二根子树;在所述目标节点包含所述检索节点且所述第二根子树包含所述第一根子树时,判定所述检索图为所述目标图的子图。
31.可理解的是,参照图3,图3为本发明子图同构检测方法一实施例的检索图和目标图的示意图。本实施例对检索图和目标图的具体结构不做限制,下面以图3中的检索图和目标图的结构为例进行说明,如图3所示,target表示目标图,query表示检索图,可先获取检索图中的所有检索节点和目标图中的所有目标节点,图3中的检索图中的所有检索节点可包含a、b、c、d、e、f、g、r,目标图中的所有目标节点可包含a’、b’、c’、d’、r’,然后可获取检索图中以检索节点为根的第一根子树,也就是图3中的,检索节点包括a、b、c、d、r,第一根子树包括以a、b、c、d、r为根的树,目标图中与检索节点对应的目标节点为根的第二根子树,也就是图3中的,与检索节点对应的目标节点包括a’、b’、c’、d’、r’,第二根子树包括以a’、b’、c’、d’、r’为根的树。在目标节点包含检索节点且第二根子树所述第一根子树时,判定检索图和目标图满足第一预设条件,图3中的目标节点a、b、c、d、r包含检索节点a’、b’、c’、d’、r’,且第一根子树包含第二根子树,因此,图3中的检索图和目标图满足第一预设条件。
32.应理解的是,具体而言,记一张图为g(v,e),其中v,e分别为节点集和边集,记n(v)为节点v的邻居集,并用a来表示图的邻接矩阵。对于节点v, 记以该节点为根的距离l内的子图为,记为以任意方式通过生成的树:,然后判断是否满足下述第一预设条件:(以公式表示的第一预设条件)如果通过这种方式生成的树满足:那么就可以通过节点之间的根子树匹配关系来作为判断子图同构的工具:对于目标图与检索图,如果,那么存在从节点到节点的单射,使得:符合上述第一预设条件的节点根子树生成方法有许多种,本实施例选择与图神经网络有深刻联系的weisfeiler-lehman(wl)子树生成方式。上述条件是子图同构的一个必要条件,即如果检索图和目标图子图同构,那么其必然满足上述条件。因此如果检索图和目标图不满足上述条件,则必然不满足该条件。
33.本实施例通过获取检索图中的所有检索节点和目标图中的所有目标节点,然后生成检索图中以所述检索节点为根的第一根子树和所述目标图中与检索节点对应的目标节点为根的第二根子树,在目标节点包含检索节点且第二根子树包含第一根子树时,判定检索图和目标图满足第一预设条件。本实施例在目标节点包含检索节点且第二根子树包含第一根子树时,判定检索图和目标图满足第一预设条件,从而能够精确判断检索图是否为目标图的子图,进一步减少子图同构检测的计算量。
34.进一步地,为了精确确定检索节点和目标节点,在本实施例中,所述获取检索图中的所有检索节点和目标图中的所有目标节点的步骤,具体包括:获取所述检索图中的所有初始检索节点和检索无弦环;根据所述初始检索节点和所述检索无弦环确定所述检索图中的所有检索节点;获取所述目标图中的所有初始目标节点和目标无弦环;根据所述初始目标节点和所述目标无弦环确定所述目标图中的所有目标节点。
35.可理解的是,本实施例可获取检索图中的所有初始检索节点和检索无弦环,图3中的a’、b’、c’、d’为所有初始检索节点,r’为检索无弦环,所有初始检索节点和所有检索无弦环共同组成检索节点。还可获取目标图中的所有初始目标节点和目标无弦环,图3中的a、b、c、d为所有初始目标节点,r为目标无弦环,所有初始目标节点和所有目标无弦环共同组成目标节点。
36.本实施例通过根据初始检索节点和检索无弦环确定检索图中的所有检索节点,根据初始目标节点和目标无弦环确定目标图中的所有目标节点,能够选取检索无弦环作为额外环状输入,并将检索无弦环作为超节点加入检索节点中,将目标无弦环作为超节点加入目标节点中,能够在子树匹配的过程中同时进行超节点的匹配。在子树匹配过程中,不同于一般的图神经网络模型,加入了针对环状结构的匹配机制,通过获取图中的无弦环并将其作为超节点加入子树匹配过程进行匹配,弥补图神经网络的缺陷,实现了环状结构的识别与匹配。
37.步骤s30:在所述检索根子树和所述目标根子树满足第二预设条件时,获取所述检索根子树和所述目标根子树之间的二部图,所述第二预设条件用于判断检索根子树是否为目标根子树的子树;可理解的是,设g=(v,e)是一个无向图,如果顶点v可分割为两个互不相交的子集(a,b),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in a,j in b),则称图g为一个二部图。
38.应理解的是,参照图3,本实施例可先将检索根子树和目标根子树分别转换为一阶检索根子树、、、和一阶目标根子树、、、,再确定一阶检索根子树和一阶目标根子树之间的二部图,即图3中的bipartite graph。
39.在具体实现中,本实施例中的第二预设条件可用于判断检索根子树是否为目标根子树的子树,即判断检索根子树中的根节点对应的子树是否是在目标根子树中的与上述根节点对应的根节点的子树中,例如:图3中的检索根子树中的一根节点为b’,以b’为根节点的子树包含a’和c’,在目标根子树中对应的一根节点为b,以b为根节点的子树包含a、c、g、f,对于以c、d、r为根节点的子树也都分别包含以c’、d’、r’为根节点的子树,因此,图3中的检索根子树和目标根子树满足第二预设条件。
40.进一步地,为了判断检索根子树和目标根子树是否满足第二预设条件,在本实施
例中,所述步骤s20之前,还包括:获取所述目标节点中与所述检索节点中的单射检索节点之间存在单射的单射目标节点;获取所述目标图中以所述单射目标节点为根的第三根子树和所述检索图中以所述单射检索节点为根的第四根子树;在所述目标根子树包含所述检索根子树且所述第三根子树包含所述第四根子树时,判定所述检索根子树为所述目标根子树的子树。
41.可理解的是,本实施例可获取目标节点中与检索节点中的单射检索节点之间存在单射的单射目标节点,图3中的单射检索节点可包含a’、b’、c’、d’、r’,与单射检索节点之间存在单射的单射目标节点可包含a、b、c、d、r,目标图中以单射目标节点为根的第三根子树可包括以a、b、c、d、r为根的子树,以a节点为根的子树包含b、c、d、r节点,以b节点为根的子树包含a、c、g、f节点,以c节点为根的子树包含a、b、e节点,以d节点为根的子树包含a节点,以r为根的子树包含a、b、c节点。检索图中以单射检索节点为根的第四根子树可包括以a’、b’、c’、d’、r’为根的子树,以a’节点为根的子树包含b’、c’、d’、r’节点,以b’节点为根的子树包含a’、c’节点,以c’节点为根的子树包含a’、b’节点,以d’节点为根的子树包含a’节点,以r’为根的子树包含a’、b’、c’节点。因此,图3中的目标根子树包含检索根子树且以存在单射关系的目标节点为根的第三根子树包含以检索节点为根的第四根子树,检索根子树和目标根子树满足第二预设条件。
42.具体地,第二预设条件用公式表示为:给定检索节点和目标节点,下列条件等价:1),2)存在定义在这些节点的邻居节点上的单射,使得。
43.本实施例通过在目标根子树包含检索根子树且第三根子树包含第四根子树时,判定检索根子树和目标根子树满足第二预设条件,从而能够精确判断检索根子树是否为目标根子树的子树,进一步减少子图同构检测的计算量。
44.步骤s40:在所述二部图中的所有节点为匹配点时,判定所述检索图和所述目标图之间存在子图同构。
45.可理解的是,在二部图中的所有节点为匹配点时,相当于二部图存在完美匹配,即图3中的perfect matching,n(a)表示节点a的邻居节点,可包括b、c、d、r节点,n(a’)表示节点a’的邻居节点,可包括b’、c’、d’、r’节点,b与b’为1表示以节点b为根的子树包含以节点b’为根的子树,b与c’为0表示以节点b为根的子树不包含以节点c’为根的子树,表格中的其他1和0的关系依次类推。
46.具体而言,可以对第一阶定义一个指示矩阵,其中m为目标图的节点数,n为检索图的节点数,表示当且仅当检索图上第j个节点的根子树子树同构于目标图上第i个节点的根子树,否则对应在矩阵的元素设为0。
47.在具体实现中,在二部图存在完美匹配时,判断检索图和目标图之间存在子图同构,本实施例可通过hall’s marriage定理判断二部图是否存在完美匹配,还可通过其他方式判断,本实施例对此不做具体限制。
48.进一步地,为了判断二部图中的所有节点是否为匹配点,在本实施例中,所述步骤s30之前,还包括:获取所述二部图中检索节点的子集和所述子集对应的子集数量;获取所
述二部图中所述子集对应的邻居集数量;在所述邻居集数量大于所述子集数量时,判定所述二部图中的所有节点为匹配点。
49.可理解的是,本实施例可获取二部图中检索节点的子集和子集对应的子集数量,然后获取二部图中子集对应的邻居集的邻居集数量,邻居集是指与子集中的节点有边相连的节点集,例如:图3中的子集包含b’、c’、d’、r’,与b’对应的邻居集包含a’和c’,与c’对应的邻居集包含a’和b’,与d’对应的邻居集包含a’,与r’对应的邻居集包含a’、b’、c’,可见,邻居集数量大于子集数量,二部图中的所有节点为匹配点。
50.具体地,在二部图上存在一个完美匹配,其中二部图每个部分的节点对应于的邻点,,两点之间连边当且仅当两点的根子树同构当且仅当。
51.应理解的是,在判断二部图是否存在完美匹配时,只需对于二部图中中节点的任意子集,判断该子集在二部图上的邻居的数量是否大于该子集的数量:。如果对所有子集,该判定都成立,那么就存在一个完美匹配。为此,首先采样子集,因为,所以只需采样邻居集,而这相当于对于检索图进行随机丢边,假设其原邻接矩阵为,随机丢边后的邻接矩阵为,通过证明得到了,其中aggregate为一次图神经网络聚合操作,sum或者max表示聚合时是采用累加聚合或采用上采样聚合。为采样后的图的度矩阵,diag(v)表示将向量v转化为以v为对角元素的对角矩阵的操作。只需判断是否有,即可得到在采样下的hall’s marriage定理判定结果,又由于定理要求对所有的,即所有的采样都判定通过,需要采样k次得到不同的,并得到递推结果:本实施例通过获取所述二部图中检索节点的子集和所述子集对应的子集数量,然后获取二部图中子集对应的邻居集数量,在邻居集数量大于所述子集数量时,判定二部图中的所有节点为匹配点。本实施例通过二部图中检索节点的子集数量和邻居集数量判断二部图是否存在完美匹配,能够有效地降低子图同构检测的计算复杂度。
52.本实施例通过获取检索图和目标图,以第一预设条件判断检索图为目标图的子图时,获取以检索图中的各节点为根的检索根子树和以目标图中的各节点为根的目标根子树,以第二预设条件判断所述检索根子树为所述目标根子树的子树时,获取所述检索根子树和所述目标根子树之间的二部图,在二部图中的所有节点为匹配点时,判定检索图和目标图之间存在子图同构。本实施例通过将子图匹配转换为检测检索根子树与目标根子树是否匹配,然后获取获取检索根子树和目标根子树之间的二部图,在二部图中的所有节点为
匹配点时,即二部图存在完美匹配时,判定检索图和目标图之间存在子图同构,相较于现有的通过寻找目标图中的所有匹配判断目标图是否与检索图之间存在子图同构,本实施例上述方式能够将指数级别计算复杂度的子图同构问题转化为具有多项式级别复杂度的子树匹配问题,进一步简化为线性复杂度,从而有效地降低子图同构检测的计算复杂度,同时保证了子图同构检测的效果。
53.参考图4,图4为本发明子图同构检测方法第二实施例的流程示意图。
54.基于上述第一实施例,在本实施例中,所述步骤s30包括:步骤s301:以第二预设条件判断所述检索根子树为所述目标根子树的子树时,将所述检索根子树转换为一阶检索根子树,将所述目标根子树转换为一阶目标根子树;可理解的是,在检索根子树和目标根子树满足第二预设条件时,将检索根子树转换为一阶检索根子树,即图3中的、、、,将目标根子树转换为一阶目标根子树,即图3中的、、、。
55.步骤s302:根据所述一阶检索根子树和所述一阶目标根子树确定所述一阶检索根子树和所述一阶目标根子树之间的二部图。
56.可理解的是,本实施例可根据一阶检索根子树和一阶目标根子树确定一阶检索根子树和一阶目标根子树之间的二部图,也就是确定、、、与、、、之间的二部图。
57.进一步地,为了精确确定一阶检索根子树和一阶目标根子树之间的二部图,在本实施例中,所述步骤s302包括:获取所述一阶检索根子树中与所述一阶目标根子树中的各节点存在单射关系的对应节点;获取所述一阶检索根子树中以所述一阶检索根子树中的各节点为根的第五根子树;获取所述一阶目标根子树中以所述对应节点为根的第六根子树;根据所述第五根子树和所述第六根子树确定所述一阶检索根子树和所述一阶目标根子树之间的二部图。
58.应理解的是,图3中的一阶检索根子树中的节点可包含b’、c’、d’、r’,与上述节点在一阶目标根子数中存在单射关系的对应节点可包含b、c、d、r,然后获取一阶检索根子树中以b’、c’、d’、r’节点为根的第五根子树、、、,获取一阶目标根子树中以b、c、d、r节点为根的第六根子树、、、,然后根据第五根子树和第六根子树确定一阶检索根子树和一阶目标根子树之间的二部图。
59.本实施例通过根据第五根子树和第六根子树共同确定一阶检索根子树和一阶目标根子树之间的二部图,能够精确确定二部图,从而提高后续判断二部图是否存在完美匹配的准确性。
60.本实施例通过以第二预设条件判断所述检索根子树为所述目标根子树的子树时,将检索根子树转换为一阶检索根子树,将目标根子树转换为一阶目标根子树,然后根据一阶检索根子树和一阶目标根子树确定一阶检索根子树和一阶目标根子树之间的二部图。本实施例通过将检索根子树转换为一阶检索根子树,将目标根子树转换为一阶目标根子树,然后根据一阶检索根子树和一阶目标根子树确定一阶检索根子树和一阶目标根子树之间
的二部图,从而使得后续能够根据二部图是否存在完美匹配检测检索图与目标图之间是否子图同构,能够有效地降低子图同构检测的计算复杂度,同时保证了子图同构检测的效果。
61.参照图5,图5为本发明子图同构检测装置第一实施例的结构框图。
62.如图5所示,本发明实施例提出的子图同构检测装置包括:图获取模块10,用于获取检索图和目标图;根子树获取模块20,用于以第一预设条件判断所述检索图为所述目标图的子图时,获取以所述检索图中的各节点为根的检索根子树和以所述目标图中的各节点为根的目标根子树;二部图获取模块30,用于以第二预设条件判断所述检索根子树为所述目标根子树的子树时,获取所述检索根子树和所述目标根子树之间的二部图;子图同构判定模块40,用于在所述二部图中的所有节点为匹配点时,判定所述检索图和所述目标图之间存在子图同构。
63.本实施例通过获取检索图和目标图,以第一预设条件判断检索图为目标图的子图时,获取以检索图中的各节点为根的检索根子树和以目标图中的各节点为根的目标根子树,以第二预设条件判断所述检索根子树为所述目标根子树的子树时,获取所述检索根子树和所述目标根子树之间的二部图,在二部图中的所有节点为匹配点时,判定检索图和目标图之间存在子图同构。本实施例通过将子图匹配转换为检测检索根子树与目标根子树是否匹配,然后获取获取检索根子树和目标根子树之间的二部图,在二部图中的所有节点为匹配点时,即二部图存在完美匹配时,判定检索图和目标图之间存在子图同构,相较于现有的通过寻找目标图中的所有匹配判断目标图是否与检索图之间存在子图同构,本实施例上述方式能够将指数级别计算复杂度的子图同构问题转化为具有多项式级别复杂度的子树匹配问题,进一步简化为线性复杂度,从而有效地降低子图同构检测的计算复杂度,同时保证了子图同构检测的效果。
64.需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
65.另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的子图同构检测方法,此处不再赘述。
66.基于本发明上述子图同构检测装置第一实施例,提出本发明子图同构检测装置的第二实施例。
67.在本实施例中,所述根子树获取模块20,还用于获取所述检索图中的所有检索节点和所述目标图中的所有目标节点;生成所述检索图中以所述检索节点为根的第一根子树和所述目标图中与所述检索节点对应的目标节点为根的第二根子树;在所述目标节点包含所述检索节点且所述第二根子树包含所述第一根子树时,判定所述检索图为所述目标图的子图。
68.进一步地,所述根子树获取模块20,还用于获取所述检索图中的所有初始检索节点和检索无弦环;根据所述初始检索节点和所述检索无弦环确定所述检索图中的所有检索节点;获取所述目标图中的所有初始目标节点和目标无弦环;根据所述初始目标节点和所述目标无弦环确定所述目标图中的所有目标节点。
69.进一步地,所述二部图获取模块30,还用于获取所述目标节点中与所述检索节点中的单射检索节点之间存在单射的单射目标节点;获取所述目标图中以所述单射目标节点为根的第三根子树和所述检索图中以所述单射检索节点为根的第四根子树;在所述目标根子树包含所述检索根子树且所述第三根子树包含所述第四根子树时,判定所述检索根子树为所述目标根子树的子树。
70.进一步地,所述二部图获取模块30,还用于以第二预设条件判断所述检索根子树为所述目标根子树的子树时,将所述检索根子树转换为一阶检索根子树,将所述目标根子树转换为一阶目标根子树;根据所述一阶检索根子树和所述一阶目标根子树确定所述一阶检索根子树和所述一阶目标根子树之间的二部图。
71.进一步地,所述二部图获取模块30,还用于获取所述一阶检索根子树中与所述一阶目标根子树中的各节点存在单射关系的对应节点;获取所述一阶检索根子树中以所述一阶检索根子树中的各节点为根的第五根子树;获取所述一阶目标根子树中以所述对应节点为根的第六根子树;根据所述第五根子树和所述第六根子树确定所述一阶检索根子树和所述一阶目标根子树之间的二部图。
72.进一步地,所述子图同构判定模块40,还用于获取所述二部图中检索节点的子集和所述子集对应的子集数量;获取所述二部图中所述子集对应的邻居集数量;在所述邻居集数量大于所述子集数量时,判定所述二部图中的所有节点为匹配点。
73.本发明子图同构检测装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
74.此外,本发明实施例还提出一种存储介质,所述存储介质上存储有子图同构检测程序,所述子图同构检测程序被处理器执行时实现如上文所述的子图同构检测方法的步骤。
75.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
76.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
77.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
78.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1