CN114357251B - 一种基于分治进化算法的大型图数据库查询方法 - Google Patents
一种基于分治进化算法的大型图数据库查询方法 Download PDFInfo
- Publication number
- CN114357251B CN114357251B CN202111511009.5A CN202111511009A CN114357251B CN 114357251 B CN114357251 B CN 114357251B CN 202111511009 A CN202111511009 A CN 202111511009A CN 114357251 B CN114357251 B CN 114357251B
- Authority
- CN
- China
- Prior art keywords
- sub
- graph
- query
- nodes
- solution
- 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
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 83
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000002245 particle Substances 0.000 claims abstract description 41
- 238000013507 mapping Methods 0.000 claims abstract description 32
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 22
- 238000005457 optimization Methods 0.000 claims description 15
- 238000000691 measurement method Methods 0.000 claims description 6
- 230000000295 complement effect Effects 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 239000012458 free base Substances 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000002585 base Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000005295 random walk Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于分治进化算法的大型图数据库查询方法,该方法包括以下步骤:1)随机初始化整个粒子种群中的每个粒子;2)找出种群中最优粒子;3)将查询图分解为互斥的子查询图,使用重叠分解策略将每个子查询图的范围向外延伸;4)对每个子查询图进行映射;5)对每个子查询图的映射后得到的子解进行补全,计算补全后子解的适应度;6)更新种群中的最优粒子,如果当前找到的子解的适应度比最优粒子要好,则将最优粒子设置为当前解;7)若所有子图都以完成优化,则进入步骤8),否则转到步骤4),优化对下一个子图;8)为每个子图之间的重叠节点构建若干个竞争节点;9)结束迭代,如果达到终止条件,则结束,否则回到步骤4)。
Description
技术领域
本发明涉及大型图数据库查询和进化算法两大领域,主要涉及一种基于分治进化算法的大型图数据库查询方法。
技术背景
图数据库作为一种对复杂的图数据查询和建模的重要工具。它随着社交网络、语义网、生物网络等众多应用的出现,得到了广泛的应用。特别是近十年来电子商务逐渐迈向成熟,电商们想发掘用户潜在喜好的商品,就必须分析用户在网站上的购买记录进行分析,因此图数据库再次得到了大量使用。与此同时,一张图所包含的数据也变得越来越多。
图数据库查询是子图同构问题的一种实际应用案例。子图同构问题是将一张图与给定图的进行匹配,找出两个图之间的相似关系(J.R.Ullmann,“An algorithm forsubgraph isomorphism,”J.ACM,vol.23,no.1,pp.31–42,1976.)。现如今,子图同构问题越来越受到人们的关注,因为在很多情况下,需要确定一个图子结构是否包含在整个结构中。子图同构检测问题是一个NP完全问题。子图同构的概念被广泛应用于不同领域,如分子结构分析(P.J.Hansen and P.C.Jurs,“Chemical applications of graph theory.PartI.Fundamentals and topological indices,”J.Chem.Educ.,vol.65,no.7,pp.574–580,1988.)、三维对象识别(Y.Gao,M.Wang,D.Tao,R.Ji,and Q.Dai,“3-D object retrievaland recognition with hypergraph analysis,”IEEE Trans.Image Process.,vol.21,no.9,pp.4290–4303,Sep.2012.)。目前用来解决子图同构问题的算法,大致有以下几种:(1)精确算法。(2)启发式算法(3)元启发算法。精确算法的基本思想是将子图同构问题表示为整数线性规划问题(Le Bodic,Pierre,et al."Symbol detection using regionadjacency graphs and integer linear programming."2009 10th InternationalConference on Document Analysis and Recognition.IEEE,2009.)。虽然算法可以确保找到全局最优解,但随着问题的规模增大,算法的时间消耗会急剧增加。启发式算法的基本思想是利用与问题相关的信息来搜索接近最优的解。它的时间消耗在三种算法中是最小的,但是一旦当图的数据集变得越来越复杂,启发式算法找到的近似解和全局最优解的差别非常大,性能远远不如另外两个算法(Aparo,Antonino,et al."Fast subgraphmatching strategies based on pattern-only heuristics."InterdisciplinarySciences:Computational Life Sciences 11.1(2019):21-32.)。元启发式算法是一类受自然现象启发的算法,例如粒子群算法(PSO)、蚁群算法(ACO)、遗传算法(GA)等。它同时具有精确算法和启发式算法的优势,执行时间要比精确算法短,同时具有比启发式方法更强的优化能力(X.L.Chang,X.M.Mi,and J.K.Muppala,“Performance evaluation ofartificial intelligence algorithms for virtual network embedding,”Eng.Appl.Artif.Intel.,vol.26,no.10,pp.2540–2550,2013.)。由于大多数元启发式方法都是对所有决策变量进行整体优化然而,所以现有的元启发式方法容易陷入指数级增长的复杂性。为了克服这个缺点,将分治法与元启发算法结合。分治法可以有效的帮助元启发算法降低其复杂性。
进化计算是元启发算法中的一类。它是一种具有高鲁棒性的全局优化方法,具有自组织、自适应、自学习的特性。进化算法能够不受问题性质的限制,有效地处理传统优化算法难以解决的复杂问题(例如NP难问题)。在进化算法的基础上,引入分治法,减少在复杂图数据问题下,进化算法的复杂性。因此分治进化算法十分适合于大型图数据库的查询。
发明内容
本发明的目的是提出一个有效的算法来解决大型图数据库的查询问题,将分治进化算法运用到大型图数据库查询中。
本发明至少通过如下技术方案之一实现。
一种基于分治进化算法的大型图数据库查询方法,该方法包括以下步骤:
(1)读取用户输入需要查询的图数据;
(2)初始化整个粒子种群中的每个粒子;
(3)计算种群中每个粒子的适应度,找出种群中最优粒子;
(4)将查询图分解为若干互斥的子查询图,使用重叠分解策略将每个子查询图的范围向外延伸,使不同的子查询图重叠;
(5)对子查询图依次进行优化,最后对每个子查询图优化的结果进行中整合以获取全局最优解;
(6)找出全局最优解,全局最优解既是最匹配的数据图,并输出最终的查询结果。
进一步地,步骤(5)包括以下步骤:
(5-1)对每个子查询图进行映射,以获取该子查询图对应的子解。
(5-2)使用全局最优解对每个子查询图的映射后得到的子解进行补全,计算经过补全后子解的适应度;
(5-3)更新种群中的最优粒子,如果当前找到的子解的适应度比最优粒子要好,则将最优粒子设置为当前解;
(5-4)利用竞争策略,为每个子图之间的重叠节点构建出若干个竞争节点,以消除重叠节点带来的问题。
进一步地,所述适应度根据以下方程计算:
其中Lq代表的是查询图中所有的边,l属于其中的一个边,ΓL(l)代表的是边l映射到数据图中的路径,而符号|.|代表的是路径的长度,lWV(l)代表的是路径的权值,并以优化权值为目标。
进一步地,采用多级k-way分区方法对将查询图Q分解为具有相似规模的k个互斥的子查询图。
进一步地,所述重叠分解策略具体为:找到连接到该子图的节点,如果节点个数超过的重叠节点的最大数量max_OL,则利用CS度量方法对节点进行度量,然后对度量结果进行排序,挑选出最高的max_OL个节点作为重叠节点,CS度量方法为:
L={lmn∈Lv|m∈N`v}
其中CS(Q`v,n)表示最终的CS度量值,Q`v表示经过划分后的子查询图,n为度量节点,L表示子查询图Q`v与度量节点n向量的边集合,|L|表示集合中元素的数量,lwv(l)表示边集合L中边l的权值,Lv表示查询图Q中的边集合,lmn表示子查询图中与度量节点相连的一条边,N`v表示子查询图Q`v中点的集合。
进一步地,使用SPSO算法或UEPSO、RWPSO、CB-GA算法将经过重叠分解后的子查询图与原数据图进行映射。
进一步地,补全子解包括以下步骤:
首先,令gbest’=gbest,gbest表示此次迭代之前的全局最优粒子,gbest’则表示此次迭代之后的全局最优粒子;在gbest’中删除原子图中的所有节点以及这些节点连接的边;
然后设置ms=ms∪gbest’;
最后,子解ms为经过补全后的解。
进一步地,在每次优化之前,将所有子图的迭代顺序打乱。
进一步地,所述竞争策略为:构建竞争节点,利用竞争节点优化全局最优粒子。
进一步地,竞争策略包括以下步骤:
S1、从全局最优粒子gbest中删除关键节点的映射;
S2、利用CS度量方法计算关键节点与不同子图之间的连接性,选择与关键节点连接性最强的子图,删除其他子图上的该关键节点,进行这些操作之后就会产生一个新的解,将这个解与全局最优解gbest进行比较,如果新的解的适应度要比全局最优解好,则用这个解来替换全局最优解gbest。
与现有的技术相比,本发明的有益效果为:
本发明的搜索能力强,具有自组织、自适应、自学习高鲁棒性的特性。它能够不受问题性质的限制,有效地处理传统优化算法难以解决的复杂问题。但是当数据集变得越来越大的时候,进化算法容易陷入指数***的问题,因此,本发明将分治法引入到进化算法中,大大的减小的算法运行时间,同时最终解的质量也得到了很好的保证。
附图说明
图1本实施例基于分治进化算法的大型图数据库查询方法的基本结构图;
图2实施例关键节点流程图;
图3实施例基于分治进化算法的大型图数据库查询方法流程图。
具体实施方式
本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
在科学或商业上有很多方面都会涉及到图数据库。比如社交网络、语义网络等。特别是近十年来,电子商务逐渐迈向成熟,电商们想发掘用户潜在喜好的商品,就必须分析用户在网站上的购买记录进行分析,这项技术就会涉及到图数据库。图数据库查询问题就是给定一个查询图Q和一个数据图G,需要在数据图G中检索出一个子图。这个子图在边和节点两方面都与查询图Q大致匹配。随着社交网络变得越来越复杂,一张图所包含的节点和边也越来越多,数据集也变得越来越大越来越复杂。不少传统的算法都容易陷入性能下降、复杂度剧增的瓶颈。
图数据库的查询主要包括两个无向图:一个图数据库中存储的数据图Gs=(Ns,Ls)以及一个用户给定的查询图Gq=(Nq,Lq)。其中数据图Gs由节点集合Ns和边集合Ls组成。在查询图中,Nq代表节点集合,而Lq代表边的集合。对于每个数据图或者查询图中的节点n∈Ns或者n∈Nq,节点都有对应的权值nws(n),nwq(n)。这些节点的权值代表着这个节点所包含的数据量。对于每条边l∈Ls或者l∈Lq,也有一个权值lws(l)或者lwq(l)。它一般代表着两个节点之间的相关性。在解决图数据库查询问题时,本发明将查询图中全部节点和边都按照一定的约束规则映射到数据图中,这个经过映射之后得到的图所包含的点和边越少,那么查询到的无关数据就越少。通过进化算法不断优化该映射图。最终经过不断迭代优化得到的映射图就是最终的查询结果。查询图的映射主要包含两个步骤:节点的映射ΓN=Nq→Ns和边的映射ΓL=Lq→Ls。这两种结构的映射都包含了部分约束。
(1)节点映射约束:
在节点的映射过程中,每个查询图中的节点都需要映射到数据图中的节点上。也就是对于每个属于查询图中的节点,都满足
与此同时,查询图中每个节点都有它独特的映射节点。换句话说,对于查询图中的两个不同节点,他们是不可以映射到数据图中的同一个节点上,必须满足以下公式:
式中,n1、n2表示数据图中的第一节点、第二节点,ΓN(n1)、ΓN(n2)表示查询图的第一节点、第二节点。
节点映射还有一个约束,那就是数据图中节点的权值是一定要大于或者等于查询图中节点的权值的,因为数据图中的节点只有比查询图中的节点包含更多的数据,查询图的节点才能够映射到该数据图节点上。也就是
其中nwq(n)表示数据图中节点的权值。而nwq(ΓN(n))则表示查询图节点的权值。
(2)边映射约束:
在边的映射中,查询图中的一条边可以映射到数据图中的一条由若干边组成路径上。
其中,Ps代表的是数据图中的一条无环的基本路径。而路径Ps的权值pw(Ps)定义为整条路径包含的所有边中,权值最小的那条边的权值。
只有数据图中路径Ps的权值大于等于查询图中某条边时,查询图中的边才可以映射到数据图中的该条路径上。
where P=ΓL(l)
式中lwq(l)表示数据图中某条边的权值,pw(P)则表示查询图中构成基础链路P的最小权重,ΓL(l)代表数据图中的一条无环基本链路。
图数据库查询的目的就是在数据图中找到一个子图,该子图的结构与查询图大致相似。该子图就是查询图映射到数据图之后的映射结果,即需要寻找出查询图到数据图之间的最优映射。如果映射图所包含的节点和边的数量越少,则查询的得到的结果,包含的无关数据就越少。为了优化这个映射。将目标函数定义为:
其中,符号|.|代表的是路径的长度。ΓL(l)代表查询图中的边l映射到数据图中的路径。而lWq(l)则代表该路径的权值。
实施例1
如图1、图2、图3所示,本实施例的一种基于分治进化算法的大型图数据库查询方法,该方法包括以下步骤:
(1)随机初始化整个粒子群中的每个粒子,由于算法可以整合不同的元启发算法,所以可以根据不同的元启发算法来设计初始化策略。
(2)计算种群中每个粒子的适应度。将gbest设置为种群中最好的粒子。粒子适应度的计算根据以下方程计算:
其中Lq代表的是查询图中所有的边,l属于其中的一个边。ΓL(l)代表的是边l映射到数据图中的路径。而符号|.|代表的是路径的长度。lWV(l)代表的是路径的权值。算法的目标就是优化这个值。
(3)使用互斥分解策略,将查询图分解为若干个互斥的子查询图。
分治法是将一个问题划分为若干规模相似的子问题,然后解决每个子问题获得子解,最后整合子解,得到全局解。
(4)利用重叠分解策略,将子查询图由互斥变为重叠状态。
将查询图划分完后,如果只对每个子查询图进行映射,那么两个子查询图之间的连接就会被忽略掉,则会影响到全局解的质量。为了解决此问题,将每个子图的范围进行扩大。扩大范围的包括查找关键节点,延长每个子查询图的范围,使其覆盖到关键节点。
每个子查询图的关键节点按照如下方法查找:
首先找到连接到该子图的节点,如果节点个数超过的重叠节点的最大数量max_OL,那么利用CS度量方法对节点进行度量,然后对度量结果进行排序,挑选出最高的max_OL个节点作为重叠节点。CS度量方法为:
L={lmn∈Lv|m∈N`v}
其中CS(Q`v,n)表示最终的CS度量值,Q`v表示经过划分后的子查询图,n为度量节点,L表示子查询图Q`v与度量节点n向量的边集合,|L|表示集合中元素的数量,lwv(l)表示边集合L中边l的权值,Lv表示查询图Q中的边集合,lmn表示子查询图中与度量节点相连的一条边,N`v表示子查询图Q`v中点的集合。
(5)在每次迭代之前,将子图的迭代顺序打乱。
如果在每次迭代中,子图优化的顺序一直不变。那么这对于后面的子图来说是不公平的。,如果按照顺序固定的迭代,那么排在前面的会对后续的子图迭代产生较大的影响,不同子图的地位会不同。其次,随机的迭代顺序可以为重叠节点探索更多不同的映射结果组合,有助于找到更好的解。这种机制主要有两个好处。首先,如果按照顺序固定的迭代,那么排在前面的会对后续的子图迭代产生较大的影响,不同子图的地位会不同。其次,随机的迭代顺序可以为重叠节点探索更多不同的映射结果组合,有助于找到更好的解。
(6)使用SPSO算法或其他元启发算法将经过分解后的子查询图与数据图进行映射。
(7)利用全局最优粒子gbest对每个子查询图图的映射后得到的子解ms进行补全。
补全子解得过程如下:
首先,令gbest’=gbest,在gbest’中删除原子图中的所有节点以及这些节点连接的边,然后设置ms=ms∪gbest’。最后,解ms就是经过补全后的解。
(8)根据(2)中的公式计算经过步骤(7)补全后解的适应度。
(9)更新种群中的最优粒子gbest。如果当前找到的解的适应度比当前种群的最优粒子gbest要好,则将最优粒子gbest设置为当前解。
(10)结束对该子图的优化。若所有子图都以完成优化,则进入步骤(11),否则转到步骤(6),对下一个子图进行优化。
(11)采用竞争策略来消除子图中的重叠节点。
由于上述是将查询图划分为若干重叠的子图,这样会导致一个查询图的节点会映射到多个数据图的节点上,因此需要消除这些重叠的部分。采用竞争策略解决这个问题,竞争策略就是为每个重叠节点构建出若干个竞争节点,然后继续使用CS度量方法来衡量这些节点的连接性。竞争策略不仅可以消除重叠节点的影响,而且可以提高全局最优解的质量。因为在经过了重叠分解之后,关键节点会同时存在于多个子图之中。在对子图映射时,不同子图都会对该关键节点进行映射。为了消除这个矛盾,首先利用CS度量方法来计算关键节点与不同子图之间的连接性。然后选择与它连接性最强的子图,删除其他子图上的该关键节点。进行这些操作之后就会产生一个新的解,然后将这个解与全局最优解gbest进行比较,如果它的适应度要比全局最优解好,那么就用这个解来替换全局最优解gbest。当所有的关键节点完成了与全局最优解的对比之后,竞争策略就结束了。
(12)结束这一轮的迭代。如果达到终止条件,则结束,否则回到步骤(5)。
现有的大多数图划分策略都只能将查询图划分为一些很简单的结构。而且划分后子图的规模是不可控制的。这样的话会存在一些缺点。如果划分后的图过大,那么解决子图和解决原图并没有什么区别。如果将子查询图划分的太小了,那么子图之间会有很多的依赖关系,这样会使得分治法受到限制。
实施例2
在一种实施例中,采用多级k-way分区方法,将查询图Q划分为具有相似规模的k个互斥的子查询图,并且每个子图之间的切边很小。
本实施例根据给定的子图数目sub_num,将查询图划分为sub_num个规模相似的互斥子图,子图数目sub_num的值应该平衡子图的规模和子图之间的依赖关系,子图的数量较大意味着每个子图的规模会很小,每个子图之间的依赖会增加,基于以上分析,根据以下公式计算sub_num:
其中Gq表示查询图,sizeof(Gq)表示查询图中节点的数量,ρ是用来描述sub_num的趋势,在重叠分解中,设置为10,而在互斥分解中,将它设置为15,s是一个用户自定义的参数,用于测试不同sub_num对算法的影响。
经过对查询图的互斥分解之后。查询图被划分为sub_num个规模相似且互斥的子查询图。如果仅仅对这些互斥的子查询图进行逐个优化的话。那么这些子查询图之间相互的连接性就会被忽略。从而影响整个算法的最终结果。而且当子查询图在单独的进行映射优化时。一个子查询图的映射可能会受到其他子查询图的干扰影响。此外,一些虚拟节点可以强连接到不同的子查询图上,将这些虚拟节点仅划分为一个子查询图上可能是不合理的。为了解决,避免互斥分解会影响到全局解的质量的问题,提出了重叠分解策略,重叠分解策略首先会为每个子图检测出一些关键节点,然后将每个子图扩大到包含这些关键节点。在经过互斥分解之后,延长每个子查询图的范围,使其相互重叠。通过重叠节点,子查询图之间的优化不是独立进行的,因此减少了来自其他子查询图的干扰。
实施例3
在又一实施例中,通过以下规则来检测每个子图的关键节点:
首先,只有与某个子图相连的节点才有能作为这个子图的候选关键节点。然后,如果该子图有很多的候选关键节点,那么只能选出其中的一部分作为关键节点。因此,需要通过某种方法来选出这些节点。一个子图中不同的连接节点不同的连接强度。为了检测不同节点的连接强度,通过CS度量方法选出关键节点。
CS度量方法不仅考虑了节点的连接数,而且考虑的连接权重。节点的连接数越多,权重越大,那么这个节点的连接强度就越大。经过CS度量方法的计算之后,需要对每个节点的CS度量值进行排序,然后选取出排名前max_OL个节点,将这些节点设置为关键节点。然后将每个子图的范围进行扩张,以覆盖到这些关键节点。完成对查询图的重叠分解。
作为一种优先的实施例,将max_OL设置为3。
经过重叠分解后的子图,关键节点会存在于多个子查询图中,这些关键节点经过映射后,可能会映射到不同的查询图节点中,但是事实上每个子查询图的节点只能映射到一个查询图的节点上,所以在整合子解得时候就会出现矛盾。为了解决在子图整合中的这个矛盾,提出重叠节点的竞争策略,为关键节点构建出一些竞争节点,然后使用CS度量标准比较这些节点,最后选取表现更好的点。
竞争策略的具体实施如下:
在经过之前所有子图的迭代优化之后,可以得到一个粗糙的全局最优解gbest。但是由于关键节点的因素,这个全局最优解gbest是不合理的,需要对它进行处理,具体包括:
首先需要获取一个关键节点q映射到数据图中节点的集合candidate(q)。需要从该集合中选出一个节点,关键节点最终只会映射到该节点上。然后还要获取与这个关键节点直接相连的子查询图的集合connect(q)。
继续使用CS度量方法,来度量这个关键节点在每个子查询图中的连接强度,并且选择具有最强连接的子查询图。这个具有最强连接的子查询图就可以用来构建关键节点q的竞争节点。
竞争节点的构建包括两个步骤:
首先,需要从全局最优解gbest中删除关键节点q的映射;
将关键节点q映射到上一步中从集合candidate(q)选出的节点,构建出一个竞争解。根据适应度函数公式(1)计算该竞争解的适应度,然后将该竞争解与全局最优解gbest的适应度进行比较,如果这个解的适应度要比gbest好,那么就使用这个解来替换gbest。该过程会一直持续,直到所有的关键节点会被用于比较。
使用竞争策略不仅可以消除之前查询图重叠分解带来的矛盾,而且可以充分的利用这些重叠的关键节点的信息,在该种竞争策略下,k个关键节点可以构建出k个竞争节点出来,利用这k个竞争节点来优化gbest解,提高算法的最终结果的质量。
由于发明的算法可以整合不同的元启发算法。通过测试不同的元启发算法,来验证算法的通用性。将本方法与以下四种元启发算法相结合进行实验,以验证算法的通用性(1)一种新型的基于集合的粒子群优化算法(SPSO);(2)基于统一增强粒子群优化算法(UEPSO);(3)基于随机游走的粒子群优化算法(RWPSO)(4)基于节点排序方法的遗传算法(CB-GA)。
为了证实本发明适用于大型图数据集。作为一种优先的实施例,所使用的查询图数据集包含有两类:一类包含80个节点,另一类包含有100个节点。然后,基于上述四种算法,构建了重叠分解检验。将以上四种算法分别在查询图分解阶段,分别使用互斥分解和重叠分解。将以上所有的算法独立的运行30次,最后对各个算法的结果进行对比。最终结果显示,发明的算法对比一开始的四种元启发算法,最终结果有了10%左右的提升,而且的算法在加入了重叠分解以及竞争策略之后,对最终的结果也有了5%的提升,这证明了发明的方法是有效的。
本发明将分治进化算法运用到图数据库查询中,主要涉及进化算法与图数据库查询两大领域。发明的方法运用分治法将整个图查询的过程分为三个部分。首先,将一个查询图分解为若干重叠的子查询图,然后对分解后的每个子图的映射,利用映射后的子图来不停的优化全局最优解,通过竞争策略,消除重叠节点带来的影响以及增强全局最优解。最后算法整合每个子解,获取最终的全局最优解。以分别包含了80个和100个节点的两类查询图作为例子,证明了发明的方法是十分有效的。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Claims (7)
1.一种基于分治进化算法的大型图数据库查询方法,其特征在于,该方法包括以下步骤:
(1)读取用户输入需要查询的图数据;
(2)初始化整个粒子种群中的每个粒子;
(3)计算种群中每个粒子的适应度,找出种群中最优粒子;
(4)将查询图分解为若干互斥的子查询图,使用重叠分解策略将每个子查询图的范围向外延伸,使不同的子查询图重叠;
(5)对子查询图依次进行优化,最后对每个子查询图优化的结果进行整合以获取全局最优解;
(6)找出全局最优解,全局最优解为最匹配的数据图,并输出最终的查询结果;
步骤(5)包括以下步骤:
(5-1)对每个子查询图进行映射,以获取该子查询图对应的子解;
(5-2)使用全局最优解对每个子查询图的映射后得到的子解进行补全,计算经过补全后子解的适应度;
(5-3)更新种群中的最优粒子,如果当前找到的子解的适应度比最优粒子要好,则将最优粒子设置为当前解;
(5-4)利用竞争策略,为每个子查询图之间的重叠节点构建出若干个竞争节点;
所述适应度根据以下方程计算:
其中Lq代表的是查询图中所有的边,l属于其中的一个边,ΓL(l)代表的是边l映射到数据图中的路径,而符号|.|代表的是路径的长度,lWV(l)代表的是路径的权值,并以优化权值为目标;
所述重叠分解策略具体为:找到连接到该子查询图的节点,如果节点个数超过的重叠节点的最大数量max_OL,则利用CS度量方法对节点进行度量,然后对度量结果进行排序,挑选出最高的max_OL个节点作为重叠节点,CS度量方法为:
L={lmn∈Lv|m∈Nv `}
其中CS(Q`v,n)表示最终的CS度量值,Q`v表示经过划分后的子查询图,n为度量节点,L表示子查询图Q`v与度量节点n向量的边集合,|L|表示集合中元素的数量,lwv(l)表示边集合L中边l的权值,Lv表示查询图Q中的边集合,lmn表示子查询图中与度量节点相连的一条边,N`v表示子查询图Q`v中点的集合。
2.基于权利要求1所述的一种基于分治进化算法的大型图数据库查询方法,其特征在于,采用多级k-way分区方法对查询图Q分解为具有相似规模的k个互斥的子查询图。
3.基于权利要求1所述的一种基于分治进化算法的大型图数据库查询方法,其特征在于,使用SPSO算法、UEPSO、RWPSO或CB-GA算法将经过重叠分解后的子查询图与原数据图进行映射。
4.基于权利要求1所述的一种基于分治进化算法的大型图数据库查询方法,其特征在于,补全子解包括以下步骤:
首先,令gbest’=gbest,gbest表示此次迭代之前的全局最优粒子,gbest’则表示此次迭代之后的全局最优粒子;在gbest’中删除原子查询图中的所有节点以及这些节点连接的边;
然后设置ms=ms∪gbest’;
最后,子解ms为经过补全后的解。
5.基于权利要求1所述的一种基于分治进化算法的大型图数据库查询方法,其特征在于,在每次优化之前,将所有子查询图的迭代顺序打乱。
6.基于权利要求1所述的一种基于分治进化算法的大型图数据库查询方法,其特征在于,所述竞争策略为:构建竞争节点,利用竞争节点优化全局最优粒子。
7.基于权利要求2~6任一项所述的一种基于分治进化算法的大型图数据库查询方法,其特征在于,竞争策略包括以下步骤:
S1、从全局最优粒子gbest中删除关键节点的映射;
S2、利用CS度量方法计算关键节点与不同子查询图之间的连接性,选择与关键节点连接性最强的子查询图,删除其他子查询图上的该关键节点,进行这些操作之后就会产生一个新的解,将这个解与全局最优解gbest进行比较,如果新的解的适应度要比全局最优解好,则用这个解来替换全局最优解gbest。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111511009.5A CN114357251B (zh) | 2021-12-10 | 2021-12-10 | 一种基于分治进化算法的大型图数据库查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111511009.5A CN114357251B (zh) | 2021-12-10 | 2021-12-10 | 一种基于分治进化算法的大型图数据库查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114357251A CN114357251A (zh) | 2022-04-15 |
CN114357251B true CN114357251B (zh) | 2024-05-14 |
Family
ID=81100197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111511009.5A Active CN114357251B (zh) | 2021-12-10 | 2021-12-10 | 一种基于分治进化算法的大型图数据库查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114357251B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740246A (zh) * | 2014-12-08 | 2016-07-06 | 北京邮电大学 | 基于图数据的集合关键字查询方法 |
CN107463702A (zh) * | 2017-08-16 | 2017-12-12 | 中科院成都信息技术股份有限公司 | 一种基于进化算法的数据库多连接查询优化方法 |
CN109522104A (zh) * | 2018-10-15 | 2019-03-26 | 华南理工大学 | 利用差分进化算法优化Iaas两目标任务调度的方法 |
CN111723897A (zh) * | 2020-05-13 | 2020-09-29 | 广东工业大学 | 一种基于粒子群算法的多模态特征选择方法 |
-
2021
- 2021-12-10 CN CN202111511009.5A patent/CN114357251B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740246A (zh) * | 2014-12-08 | 2016-07-06 | 北京邮电大学 | 基于图数据的集合关键字查询方法 |
CN107463702A (zh) * | 2017-08-16 | 2017-12-12 | 中科院成都信息技术股份有限公司 | 一种基于进化算法的数据库多连接查询优化方法 |
CN109522104A (zh) * | 2018-10-15 | 2019-03-26 | 华南理工大学 | 利用差分进化算法优化Iaas两目标任务调度的方法 |
CN111723897A (zh) * | 2020-05-13 | 2020-09-29 | 广东工业大学 | 一种基于粒子群算法的多模态特征选择方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114357251A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fu et al. | Fast approximate nearest neighbor search with the navigating spreading-out graph | |
Soliman et al. | Supporting ranking queries on uncertain and incomplete data | |
Andrade et al. | G-dbscan: A gpu accelerated algorithm for density-based clustering | |
Lu et al. | VHP: approximate nearest neighbor search via virtual hypersphere partitioning | |
Fan et al. | Querying big graphs within bounded resources | |
Almalawi et al. | $ k $ NNVWC: An Efficient $ k $-Nearest Neighbors Approach Based on Various-Widths Clustering | |
CN109656798B (zh) | 基于顶点重排序的超级计算机大数据处理能力测试方法 | |
CN104992078B (zh) | 一种基于语义密度的蛋白质网络复合物识别方法 | |
CN111666468A (zh) | 一种基于团簇属性在社交网络中搜索个性化影响力社区的方法 | |
Lei et al. | Detecting protein complexes from DPINs by density based clustering with Pigeon-Inspired Optimization Algorithm | |
Kassiano et al. | Mining uncertain graphs: An overview | |
Jo et al. | A progressive kd tree for approximate k-nearest neighbors | |
CN112434031A (zh) | 一种基于信息熵的不确定高效用模式挖掘方法 | |
Zhao et al. | Effective and efficient dense subgraph query in large-scale social Internet of Things | |
Chehreghani | Efficient computation of pairwise minimax distance measures | |
Chen et al. | Approximation algorithms for 1-Wasserstein distance between persistence diagrams | |
Ryu et al. | An Effective Clustering Method over CF $^+ $+ Tree Using Multiple Range Queries | |
CN114357251B (zh) | 一种基于分治进化算法的大型图数据库查询方法 | |
Hamdi et al. | A pattern growth-based approach for mining spatiotemporal co-occurrence patterns | |
CN110706743A (zh) | 一种平衡采样与图检索的蛋白质互作网络模体检测方法 | |
Sikandar et al. | Combining sequence entropy and subgraph topology for complex prediction in protein protein interaction (PPI) network | |
CN115277124A (zh) | 基于***溯源图搜索匹配攻击模式的在线***及服务器 | |
Glantz et al. | Tree-based coarsening and partitioning of complex networks | |
Rachkovskij | Fast similarity search for graphs by edit distance | |
Yingfan et al. | Revisiting $ k $-Nearest Neighbor Graph Construction on High-Dimensional Data: Experiments and Analyses |
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 |