完全子图数据的搜索方法、装置、设备及介质与流程

文档序号:25608673发布日期:2021-06-25 14:27阅读:119来源:国知局
完全子图数据的搜索方法、装置、设备及介质与流程

1.本发明涉及图论领域,尤其涉及一种完全子图数据的搜索方法、装置、设备和计算机可读存储介质。


背景技术:

2.复杂网络,通常是指具有高度复杂性的网络,如人际关系网,交通网,通信网等,复杂网络中的完全子图是指复杂网络中满足任意两个节点均存在连接关系的子网。复杂网络中的完全子图具有重要的实际意义,例如在人际关系网中,以人为节点,两两关联的完全子图所代表的就是联系十分密切的好友群;或者在产品零部件关系网中,以零件为节点,任意两个节点的连接构成一个边,节点与边构成一个完全子图。通过完全子图可以有效的对复杂网络进行分群聚类,而完全子图的搜索则是复杂网络分群聚类的基础。
3.目前,常规的完全子图搜索方法每迭代一次需要遍历两次所有节点,导致其搜索的时间复杂度会随着节点数量的增加而迅速提高。


技术实现要素:

4.本发明实施例提供了一种完全子图数据的搜索方法、装置、设备和计算机可读存储介质,能够快速地搜索出完全子图,减少找出复杂网络所有完全子图所需的时间。
5.第一方面,本发明提供一种完全子图数据的搜索方法,该方法包括:获取网络节点中每个节点与相邻节点的连接关系信息,并存储为第一数据表;根据第一数据表确定第i数据表,第i数据表为第一数据表的扩展数据表,第i数据表包括第一k阶节点的连接关系信息,其中,i=2、3、4
……
m,i的初始值为2,k=3、4、5
……
n,k的初始值为3;根据第i数据表与第一预设筛选条件确定第i数据表中的第二k阶节点的连接关系信息,并存储为第i+1数据表;根据第i+1数据表和第一数据表确定第i+2数据表,第i+2数据表包括第一k+1阶节点的连接关系信息;根据第i+2数据表与第二预设筛选条件确定第i+2数据表中的第二k+1阶节点的连接关系信息,并将第二k+1阶节点中前k个节点的连接关系信息存储为第i+3数据表,其中,第二k+1阶节点中前k个节点中任意两个节点相互连接;当第i+3数据表存在时,i=i+4,k=k+1。
6.在第一方面的一些可实现方式中,获取网络节点中每个节点与相邻节点的连接关系信息,并存储为第一数据表,包括:提取网络节点中每个节点与相邻节点,以及每个节点与相邻节点的边权值,构成每个节点与相邻节点的连接关系信息,并存储为第一数据表。
7.在第一方面的一些可实现方式中,当i=2时,根据第一数据表确定第i数据表,包括:对第一数据表进行自连接,确定第i数据表。
8.在第一方面的一些可实现方式中,第一预设筛选条件是将第k个节点与第k-2个节点不相同的第一k阶节点的连接关系信息保留为第二k阶节点的连接关系信息。
9.在第一方面的一些可实现方式中,根据第i+1数据表和第一数据表确定第i+2数据表,包括:对第i+1数据表和第一数据表进行外连接,确定第i+2数据表。
10.在第一方面的一些可实现方式中,第二预设筛选条件是当k-2个第一k+1阶节点中任意两个第一k+1阶节点的前k个节点相同,且前k个节点的顺序相同,且每个第一k+1阶节点的第k+1个节点与前k-2个节点中任意一个节点相同时,将k-2个第一k+1阶节点的连接关系信息保留为第二k+1阶节点的连接关系信息。
11.在第一方面的一些可实现方式中,在根据第i+2数据表与第二预设筛选条件确定第i+2数据表中的第二k+1阶节点的连接关系信息,并将第二k+1阶节点中前k个节点的连接关系信息存储为第i+3数据表之后,该方法还包括:对第i+3数据表中节点相同的k阶节点的连接关系信息进行去重,得到每组k阶节点对应的k阶节点的连接关系信息;根据去重后的第i+3数据表中的k阶节点的连接关系信息确定公共节点;计算去重后的第i+3数据表中的k阶节点的连接关系信息的紧密度;根据去重后的第i+3数据表中的k阶节点的连接关系信息的紧密度分配公共节点。
12.第二方面,本发明提供一种完全子图数据的搜索装置,该装置包括:获取模块,用于获取网络节点中每个节点与相邻节点的连接关系信息,并存储为第一数据表;确定模块,用于根据第一数据表确定第i数据表,第i数据表为第一数据表的扩展数据表,第i数据表包括第一k阶节点的连接关系信息,其中,i=2、3、4
……
m,i的初始值为2,k=3、4、5
……
n,k的初始值为3;确定模块还用于根据第i数据表与第一预设筛选条件确定第i数据表中的第二k阶节点的连接关系信息,并存储为第i+1数据表;确定模块还用于根据第i+1数据表和第一数据表确定第i+2数据表,第i+2数据表包括第一k+1阶节点的连接关系信息;确定模块还用于根据第i+2数据表与第二预设筛选条件确定第i+2数据表中的第二k+1阶节点的连接关系信息,并将第二k+1阶节点中前k个节点的连接关系信息存储为第i+3数据表,其中,第二k+1阶节点中前k个节点中任意两个节点相互连接;处理模块,用于当第i+3数据表存在时,i=i+4,k=k+1。
13.在第二方面的一些可实现方式中,获取模块具体用于:提取网络节点中每个节点与相邻节点,以及每个节点与相邻节点的边权值,构成每个节点与相邻节点的连接关系信息,并存储为第一数据表。
14.在第二方面的一些可实现方式中,确定模块还用于:当i=2时,对第一数据表进行自连接,确定第i数据表。
15.在第二方面的一些可实现方式中,第一预设筛选条件是将第k个节点与第k-2个节点不相同的第一k阶节点的连接关系信息保留为第二k阶节点的连接关系信息。
16.在第二方面的一些可实现方式中,确定模块还用于:对第i+1数据表和第一数据表进行外连接,确定第i+2数据表。
17.在第二方面的一些可实现方式中,第二预设筛选条件是当k-2个第一k+1阶节点中任意两个第一k+1阶节点的前k个节点相同,且前k个节点的顺序相同,且每个第一k+1阶节点的第k+1个节点与前k-2个节点中任意一个节点相同时,将k-2个第一k+1阶节点的连接关系信息保留为第二k+1阶节点的连接关系信息。
18.在第二方面的一些可实现方式中,确定模块还用于:在根据第i+2数据表与第二预设筛选条件确定第i+2数据表中的第二k+1阶节点的连接关系信息,并将第二k+1阶节点中前k个节点的连接关系信息存储为第i+3数据表之后,对第i+3数据表中节点相同的k阶节点的连接关系信息进行去重,得到每组k阶节点对应的k阶节点的连接关系信息;根据去重后
的第i+3数据表中的k阶节点的连接关系信息确定公共节点;计算去重后的第i+3数据表中的k阶节点的连接关系信息的紧密度;根据去重后的第i+3数据表中的k阶节点的连接关系信息的紧密度分配公共节点。
19.第三方面,本发明提供一种完全子图数据的搜索设备,该设备包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时实现第一方面或者第一方面任一些可实现方式中所述的完全子图数据的搜索方法。
20.第四方面,本发明提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现第一方面或者第一方面任一些可实现方式中所述的完全子图数据的搜索方法。
21.本发明涉及图论领域,尤其涉及一种完全子图数据的搜索方法、装置、设备和计算机可读存储介质。通过将网络节点中每个节点与相邻节点的连接关系信息存储至第一数据表,基于第一数据表对存储的节点的连接关系信息进行扩展得到每个节点的连接关系信息,并根据第一预设筛选条件和第二预设筛选条件筛选出符合完全子图条件的节点的连接关系信息,直接得到能够构成完全子图的节点群组,由此可以快速地搜索出完全子图,提高迭代效率,减少找出复杂网络所有完全子图所需的时间。
附图说明
22.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1是本发明实施例提供的一种完全子图数据的搜索方法的流程示意图;
24.图2是本发明实施例提供的一种完全子图数据的搜索装置的结构示意图;
25.图3是本发明实施例提供的一种完全子图数据的搜索设备的结构示意图。
具体实施方式
26.下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
27.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
28.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
29.目前,在对网络进行完全子图的搜索时普遍需要对节点进行遍历,但当节点规模大,网络结构复杂时,对节点进行遍历的时间成本会很高,甚至难以实现。因此节点遍历的方式搜索完全子图不适用于大规模节点网络。
30.针对于此,本发明实施例提供了一种完全子图数据的搜索方法、装置、设备和计算机可读存储介质,能够通过将网络节点中每个节点与相邻节点的连接关系信息存储至数据表,基于数据表对存储的节点的连接关系信息进行扩展得到每个节点的连接关系信息,并根据预设筛选条件筛选出符合完全子图条件的节点的连接关系信息,直接得到能够构成完全子图的节点群组,由此可以快速地搜索出完全子图,减少找出复杂网络所有完全子图所需的时间。
31.下面结合附图对本发明实施例所提供的完全子图数据的搜索方法进行介绍。
32.图1是本发明实施例提供的一种完全子图数据的搜索方法的流程示意图。如图1所示,该完全子图数据的搜索方法100可以包括s110至s160。
33.s110,获取网络节点中每个节点与相邻节点的连接关系信息,并存储为第一数据表。
34.具体地,可以提取网络节点中每个节点与相邻节点,以及每个节点与相邻节点的边权值,构成每个节点与相邻节点的连接关系信息,并存储为第一数据表。其中,网络节点可以来自于复杂网络,数量庞大。而且,第一数据表可以为hive表。
35.作为一个具体的示例,第一数据表可以如表1所示,例如第二行,节点为a,邻居节点为b,边权值1为p
ab
,构成a、b两节点的连接关系信息,可以用a-b表示,其他行同理,更高阶的节点的连接关系信息也可以用x-x-x
……
表示。由于第一数据表中的节点的连接关系信息是2个节点之间的连接关系信息,所以第一数据表存储的节点的连接关系信息可以视为2阶节点的连接关系信息,同理适用于更高阶的节点的连接关系信息。
36.表1
37.节点邻居节点边权值1abp
ab
acp
ac
bdp
bd
cap
ca
………
38.s120,根据第一数据表确定第i数据表。
39.其中,第i数据表为第一数据表的扩展数据表,第i数据表包括第一k阶节点的连接关系信息。此外,i=2、3、4
……
m,i的初始值为2,k=3、4、5
……
n,k的初始值为3。
40.下面以i的初始值为2,k的初始值为3时,进行说明,当i=2,k=3时,可以对第一数据表进行自连接,实现节点的连接关系信息的扩展,确定第2数据表,第2数据表包括第一3阶节点的连接关系信息。
41.作为一个具体的示例,第2数据表可以如表2所示,例如第二行,节点为a,邻居节点为b,扩展节点为d,边权值1为p
ab
,边权值2为p
bd
,构成a、b、d三节点的连接关系信息,可以用a-b-d表示,其他行同理。
42.表2
43.节点邻居节点扩展节点边权值1边权值2abdp
ab
p
bd
acap
ac
p
ca
bdep
bd
p
de
cabp
ca
p
ab
……………
44.s130,根据第i数据表与第一预设筛选条件确定第i数据表中的第二k阶节点的连接关系信息,并存储为第i+1数据表。
45.其中,第一预设筛选条件可以是指将第k个节点与第k-2个节点不相同的第一k阶节点的连接关系信息保留为第二k阶节点的连接关系信息。
46.因为在根据第一数据表确定第i数据表时会产生无效的第一k阶节点的连接关系信息,所以需要根据第一预设筛选条件剔除无效的第一k阶节点的连接关系信息,保留有效的第一k阶节点的连接关系信息为第二k阶节点的连接关系信息,确保第二k阶节点的连接关系信息中每个节点都是唯一的,并存储为第i+1数据表。其中,第k个节点与第k-2个节点相同的第一k阶节点的连接关系信息可以视为无效的第一k阶节点的连接关系信息。也就是说,根据第一预设筛选条件对第i数据表中的所有第一k阶节点的连接关系信息进行筛选,得到第二k阶节点的连接关系信息。
47.作为一个具体的示例,第i数据表中的第一k阶节点的连接关系信息中的4阶节点的连接关系信息a-b-c-b,k=4,或者5阶节点的连接关系信息d-f-g-h-g,k=5,这种连接关系信息属于无效的连接关系信息,若不剔除在之后的扩展中将产生更多的无效的连接关系信息。
48.例如,当i=2,k=3时,可以根据第2数据表与第一预设筛选条件确定第2数据表中的第二3阶节点的连接关系信息,并存储为第3数据表。s140,根据第i+1数据表和第一数据表确定第i+2数据表。
49.具体地,可以对第i+1数据表和第一数据表进行外连接例如左连接,确定第i+2数据表。其中,第i+2数据表包括第一k+1阶节点的连接关系信息,第一k+1阶节点的连接关系信息是基于第i+1数据表的第二k阶节点的连接关系信息与第一数据表存储的节点的连接关系信息扩展而来的。
50.例如,当i=2,k=3时,可以根据第3数据表和第一数据表确定第4数据表,第4数据表包括第一4阶节点的连接关系信息。
51.s150,根据第i+2数据表与第二预设筛选条件确定第i+2数据表中的第二k+1阶节点的连接关系信息,并将第二k+1阶节点中前k个节点的连接关系信息存储为第i+3数据表。
52.其中,第二k+1阶节点中前k个节点中任意两个节点相互连接,存在关系。也就是说,第二k+1阶节点中前k个节点的连接关系信息为符合完全子图条件的节点的连接关系信息,第二k+1阶节点中前k个节点的连接关系信息可以构成完全子图。
53.这里,第二预设筛选条件可以是指当k-2个第一k+1阶节点中任意两个第一k+1阶节点的前k个节点相同,且前k个节点的顺序相同,且每个第一k+1阶节点的第k+1个节点与前k-2个节点中任意一个节点相同时,将k-2个第一k+1阶节点的连接关系信息保留为第二k+1阶节点的连接关系信息。也就是说,根据第二预设筛选条件对第i+2数据表中的所有第一
k+1阶节点的连接关系信息进行筛选,得到第二k+1阶节点的连接关系信息。
54.作为一个具体的示例,当k=5时,第i+2数据表中的第一k+1阶节点的连接关系信息中同时存在3个6阶节点的连接关系信息a-b-f-s-d-f、a-b-f-s-d-b、a-b-f-s-d-a时,将a-b-f-s-d-f、a-b-f-s-d-b、a-b-f-s-d-a保留为第二k+1阶节点的连接关系信息,则认为5阶节点的连接关系信息a-b-f-s-d可构成5阶完全子图。
55.例如,当i=2,k=3时,可以根据第4数据表与第二预设筛选条件确定第4数据表中的第二4阶节点的连接关系信息,并将第二4阶节点中前3个节点的连接关系信息存储为第5数据表。其中,第二4阶节点中前3个节点中任意两个节点相互连接,也就是说,第二4阶节点中前3个节点的连接关系信息可构成3阶完全子图。
56.s160,当第i+3数据表存在时,i=i+4,k=k+1。
57.具体地,当第i+3数据表存在时,以第i+3数据表为基础,令i=i+4,k=k+1,继续重复执行s120-s160,直至得不到更高阶的完全子图,换句话说,当第i+3数据表不存在时,则结束。
58.例如,当i=2,k=3,且第5数据表存在时,可以以第5数据表为基础,令i=6,k=4,s120中的根据第一数据表确定第i数据表就可以是根据第5数据表与第一数据表外连接,确定第6数据表,第6数据表包括第一4阶节点的连接关系信息。也就是说,继续重复执行s120-s160,直至得不到更高阶的完全子图。
59.本发明实施例的完全子图数据的搜索方法,通过将网络节点中每个节点与相邻节点的连接关系信息存储至第一数据表,基于第一数据表对存储的节点的连接关系信息进行扩展得到每个节点的连接关系信息,并根据第一预设筛选条件和第二预设筛选条件筛选出符合完全子图条件的节点的连接关系信息,直接得到能够构成完全子图的节点群组,由此可以快速地搜索出完全子图,提高迭代效率,减少找出复杂网络所有完全子图所需的时间。
60.在一些实施例中,在根据第i+2数据表与第二预设筛选条件确定第i+2数据表中的第二k+1阶节点的连接关系信息,并将第二k+1阶节点中前k个节点的连接关系信息存储为第i+3数据表之后,可以对第i+3数据表中节点相同的k阶节点的连接关系信息进行去重,得到每组k阶节点对应的唯一的k阶节点的连接关系信息。
61.作为一个具体的示例,因为同样的节点由于顺序的不同会组成不同的连接关系信息,但其构成的完全子图是一样。若保留这些重复的连接关系信息,会在之后的迭代过程中增加很多不必要的计算量,所以需要对这些重复的连接关系信息进行去重,每组节点保留唯一的连接关系信息。例如,k=3时,第i+3数据表中的k阶节点的连接关系信息中的3阶节点的连接关系信息a-b-c、b-c-a、c-a-b,这三个3阶节点的连接关系信息中节点完全相同,可以只保留a、b、c节点的3阶节点的连接关系信息a-b-c。
62.此外,还可以根据去重后的第i+3数据表中的k阶节点的连接关系信息确定公共节点,计算去重后的第i+3数据表中的k阶节点的连接关系信息的紧密度,根据去重后的第i+3数据表中的k阶节点的连接关系信息的紧密度分配公共节点。
63.作为一个具体的示例,去重后的第i+3数据表中的k阶节点的连接关系信息中可以出现同一节点属于多个连接关系信息的情况,此时,需要重新分配公共节点。重新分配公共节点需要计算去重后的第i+3数据表中的每个k阶节点的连接关系信息的紧密度y,换句话说,是计算每个完全子图的紧密度y,计算公式可以包括(1)、(2)、(3),具体如下:
[0064][0065][0066][0067]
其中,p
j
为去重后的每个第i+3数据表中的k阶节点的连接关系信息中各个节点间的边权值,n为去重后的每个第i+3数据表中的k阶节点的连接关系信息的节点个数,为去重后的每个第i+3数据表中的k阶节点的连接关系信息的边权值的平均值,σ为去重后的每个第i+3数据表中的k阶节点的连接关系信息的边权值的标准差,α为加权系数,可以用来根据实际应用场景调整平均值和标准差的倾向度。
[0068]
换句话说,p
i
可以是去重后的每个完全子图中各个节点间的边权值,n为去重后的每个完全子图的节点个数,为去重后的每个完全子图的边权值的平均值,σ为去重后的每个完全子图的边权值的标准差。
[0069]
紧密度y综合考虑了各个节点间边权值的平均值和标准差,平均值越大标准差越小的完全子图越紧密。当σ≠0时,可以通过紧密度y优先将公共节点分配给紧密度更高的完全子图,而当σ=0时则可通过将公共节点分配给平均值更高的完全子图。
[0070]
下面结合一个具体的实施例对完全子图数据的搜索流程进行详细描述,其中,该实施例的目的是根据某省识别出的居住地一致的1145万用户家庭关系对,识别出居住在一起的家庭群组。由于居住在一起是一种强关系,只有家庭群组中任意成员间均具有该关系,才能认为该家庭群组的成员是都居住在一起。所以可以将该问题看为是从1145万用户关系对中搜索出符合完全子图条件的用户节点群组,具体实现过程如下:
[0071]
步骤1、以任意两个用户为节点和邻居节点,用户间存在真实家庭关系的概率为边权值,提取所有的用户关系对存储到hive表中,构成第一用户家庭关系表。
[0072]
步骤2、将第一用户家庭关系表通过自连接,扩展为第二用户家庭关系表,第二用户家庭关系表包括3人家庭关系链。
[0073]
步骤3、对第二用户家庭关系表中的3人家庭关系链进行筛选,剔除具有重复家庭关系的3人家庭关系链,即无效的3人家庭关系链,保留有效的3人家庭关系链,存储为第三用户家庭关系表,确保第三用户家庭关系表中的3人家庭关系链中每个用户都是唯一的。
[0074]
步骤4、对第三用户家庭关系表通过与第一用户家庭关系表进行外连接,扩展为第四用户家庭关系表,第四用户家庭关系表包括4人家庭关系链。
[0075]
步骤5、对第四用户家庭关系表中的4人家庭关系链进行筛选,筛选出第4个用户与第1个用户相同的4人家庭关系链,确保4人家庭关系链符合完全子图的条件即其中任意两个用户均具有家庭关系,取前3个用户的3人家庭关系链作为3人家庭群组,并储存为第五用户家庭关系表。
[0076]
步骤6、对第五用户家庭关系表中的3人家庭群组进行去重,相同3人家庭群组只保留一个3人家庭关系链,并且根据用户间构成真实家庭关系的概率计算家庭群组的紧密度,
将公共用户分配到紧密度更高的家庭群组。
[0077]
步骤7、重复关系链扩展,筛选,去重过程,对家庭群组进行迭代,直到搜索不出新的家庭群组。
[0078]
可以理解,本发明实施例的完全子图数据的搜索方法除了可应用于家庭群组的识别,还可应用于好友群组,工作伙伴群组等各成员间两两存在相应联系的群组的识别,可有效减少群组搜索识别的时间,提高效率。
[0079]
图2是本发明实施例提供的一种完全子图数据的搜索装置的结构示意图,如图2所示,该完全子图数据的搜索装置200可以包括:获取模块210、确定模块220、处理模块230。
[0080]
其中,获取模块210用于获取网络节点中每个节点与相邻节点的连接关系信息,并存储为第一数据表。确定模块220用于根据第一数据表确定第i数据表,第i数据表为第一数据表的扩展数据表,第i数据表包括第一k阶节点的连接关系信息,其中,i=2、3、4
……
m,i的初始值为2,k=3、4、5
……
n,k的初始值为3。确定模块220还用于根据第i数据表与第一预设筛选条件确定第i数据表中的第二k阶节点的连接关系信息,并存储为第i+1数据表。确定模块220还用于根据第i+1数据表和第一数据表确定第i+2数据表,第i+2数据表包括第一k+1阶节点的连接关系信息。确定模块220还用于根据第i+2数据表与第二预设筛选条件确定第i+2数据表中的第二k+1阶节点的连接关系信息,并将第二k+1阶节点中前k个节点的连接关系信息存储为第i+3数据表,其中,第二k+1阶节点中前k个节点中任意两个节点相互连接。处理模块230用于当第i+3数据表存在时,i=i+4,k=k+1。
[0081]
在一些实施例中,获取模块210具体用于提取网络节点中每个节点与相邻节点,以及每个节点与相邻节点的边权值,构成每个节点与相邻节点的连接关系信息,并存储为第一数据表。
[0082]
在一些实施例中,确定模块220还用于当i=2时,对第一数据表进行自连接,确定第i数据表。
[0083]
在一些实施例中,第一预设筛选条件是将第k个节点与第k-2个节点不相同的第一k阶节点的连接关系信息保留为第二k阶节点的连接关系信息。
[0084]
在一些实施例中,确定模块220还用于对第i+1数据表和第一数据表进行外连接,确定第i+2数据表。
[0085]
在一些实施例中,第二预设筛选条件是当k-2个第一k+1阶节点中任意两个第一k+1阶节点的前k个节点相同,且前k个节点的顺序相同,且每个第一k+1阶节点的第k+1个节点与前k-2个节点中任意一个节点相同时,将k-2个第一k+1阶节点的连接关系信息保留为第二k+1阶节点的连接关系信息。
[0086]
在一些实施例中,确定模块220还用于在根据第i+2数据表与第二预设筛选条件确定第i+2数据表中的第二k+1阶节点的连接关系信息,并将第二k+1阶节点中前k个节点的连接关系信息存储为第i+3数据表之后,对第i+3数据表中节点相同的k阶节点的连接关系信息进行去重,得到每组k阶节点对应的k阶节点的连接关系信息。根据去重后的第i+3数据表中的k阶节点的连接关系信息确定公共节点。计算去重后的第i+3数据表中的k阶节点的连接关系信息的紧密度。根据去重后的第i+3数据表中的k阶节点的连接关系信息的紧密度分配公共节点。
[0087]
本发明实施例的完全子图数据的搜索装置,通过将网络节点中每个节点与相邻节
点的连接关系信息存储至第一数据表,基于第一数据表对存储的节点的连接关系信息进行扩展得到每个节点的连接关系信息,并根据第一预设筛选条件和第二预设筛选条件筛选出符合完全子图条件的节点的连接关系信息,直接得到能够构成完全子图的节点群组,由此可以快速地搜索出完全子图,提高迭代效率,减少找出复杂网络所有完全子图所需的时间。
[0088]
可以理解的是,本发明实施例的完全子图数据的搜索装置200,可以对应于本发明实施例图1中的完全子图数据的搜索方法的执行主体,完全子图数据的搜索装置200的各个模块/单元的操作和/或功能的具体细节可以参见上述本发明实施例图1的完全子图数据的搜索方法中的相应部分的描述,为了简洁,在此不再赘述。
[0089]
图3是本发明实施例提供的一种完全子图数据的搜索设备的硬件结构示意图。
[0090]
如图3所示,本实施例中的完全子图数据的搜索设备300包括输入设备301、输入接口302、中央处理器303、存储器304、输出接口305、以及输出设备306。其中,输入接口302、中央处理器303、存储器304、以及输出接口305通过总线310相互连接,输入设备301和输出设备306分别通过输入接口302和输出接口305与总线310连接,进而与完全子图数据的搜索设备300的其他组件连接。
[0091]
具体地,输入设备301接收来自外部的输入信息,并通过输入接口302将输入信息传送到中央处理器303;中央处理器303基于存储器304中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器304中,然后通过输出接口305将输出信息传送到输出设备306;输出设备306将输出信息输出到完全子图数据的搜索设备300的外部供用户使用。
[0092]
也就是说,图3所示的完全子图数据的搜索设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合图1所示实例描述的完全子图数据的搜索方法。
[0093]
在一个实施例中,图3所示的完全子图数据的搜索设备300包括:存储器304,用于存储程序;处理器303,用于运行存储器中存储的程序,以执行图1所示实施例提供的完全子图数据的搜索方法。
[0094]
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现图1所示实施例提供的完全子图数据的搜索方法。
[0095]
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,做出各种改变、修改和添加,或者改变步骤之间的顺序。
[0096]
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(application specific integrated circuit,asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存
储器设备、只读存储器(read-only memory,rom)、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(radio frequency,rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
[0097]
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
[0098]
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1