CN105138601A - 一种支持模糊约束关系的图模式匹配方法 - Google Patents
一种支持模糊约束关系的图模式匹配方法 Download PDFInfo
- Publication number
- CN105138601A CN105138601A CN201510477815.3A CN201510477815A CN105138601A CN 105138601 A CN105138601 A CN 105138601A CN 201510477815 A CN201510477815 A CN 201510477815A CN 105138601 A CN105138601 A CN 105138601A
- Authority
- CN
- China
- Prior art keywords
- node
- graph
- merge
- target data
- coupling
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
- G06F16/532—Query formulation, e.g. graphical querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种支持模糊约束关系的图模式匹配方法,涉及图信息查询技术领域,用于解决现有技术无法在满足所有精确约束的基础上,支持对模糊约束关系的匹配的问题。所述方法包括:通过输入层,获取用户输入的查询图Q和存储的目标数据图G,所述查询图中既包含精确约束关系又包含模糊约束关系;通过精确匹配层,在所述目标数据图中,针对用户输入的查询图中的精确约束关系进行精确地图匹配,并在所述目标数据图中构建带有合并节点的引导图;通过模糊搜索层,在所述引导图中,找出并输出在满足所有精确约束基础上对模糊约束匹配质量最好的K个匹配图。本发明适用于在大规模目标数据图中,进行支持模糊约束关系与精确约束关系的混合查询。
Description
技术领域
本发明涉及图信息查询技术领域,尤其涉及一种支持模糊约束关系的图模式匹配方法。
背景技术
近些年,随着互联网技术的发展,越来越多的社会网络相继出现,比如以Facebook、Twitter、新浪微博等为代表的大型在线社交网络网站,通过手机通信、电子邮件等形成的人际关系网络等。目前,这些网络展现出了如下特征:1、网络规模不断扩大,如何把用户看作定点,他们之间的关系看作边,那么所构建的网络逐步成海量信息网络。2、用户属性与关系类型繁多,不同的社会网络通常有不同的用户属性与关系类型。如何从这种海量的网络中提取有价值的信息是目前许多研究的热点。除此之外,一些其他领域所需处理的图信息也表现出相同的特征,比如软件剽窃检测中的软件调用关系图、数据流图,生物信息图PPI(Protein-ProteinInteraction,蛋白质相互作用)网络及知识网络等。
图模式匹配是一种图信息查询方法,已经广泛用于各种图数据库的查询中。一般而言,用户需要通过从实际应用中抽象出来的一组对图数据中节点关系与属性的约束,来对目标图信息进行查询,获取由若干节点与边(节点间关系)组成的目标图的子图,使得该数据子图完全满足用户给定的约束,该子图即为匹配结果图,又称匹配图。这种约束通常表达为一个查询图,其中包含带有标签属性的节点及其关系。
目前的图模式匹配方法中,首先按照目标数据图类型来分,可以分为针对若干不连通的小规模图组成的图数据库的图模式匹配方法,以及针对一个大规模连通图的图模式匹配方法,两者各为互补。此外,按照约束要求的类型,可以分为精确图模式匹配方法和近似匹配方法。精确图模式匹配方法要求所匹配得到的结果图必须严格满足所有给定的约束,其中包括所有的点与边的映射关系,例如子图同构。而近似匹配方法试图降低对约束满足的程度来提升效率,其中又包含两种,一种是通过一个用户给定的参数Φ,来控制约束满足的程度的相似匹配方法,比如允许结果图中有最多Φ个边或点与查询图中不匹配。另一种近似匹配方法首先定义一个目标约束函数,来衡量查询图与目标子图的相似性,试图找出一个能使得目标约束函数最大的子图作为结果匹配图。这两类近似匹配方法较精确匹配更为高效,但是会损失匹配精度,并且无法提前预知哪些查询图中的信息会无法得到匹配或错误匹配(错误匹配点)。最后,按照约束类型来分,可以分为两种,一种是连接查询图方法,即查询图为一个连通的子图,例如图同构匹配、图模拟匹配等,而另一种是独立点查询图方法,即只有带有约束属性的节点,没有任何连接约束信息,所查询出来的结果匹配图需要满足所有节点约束,并保证匹配图是连通即可,可以看做是只带有模糊约束的匹配方法。
尽管如此,现存的图模式匹配方法不能满足如下实际分析需求:随着网络规模的增加与网络信息的异构性,用户很难构建应用所需精确的查询图。通常只能给出一部分精确约束的连接关系与模糊约束关系(只要求节点的连通),例如在社会网络中寻找两个有特殊属性的团体,来完成一个创业项目或者营销策略,团体中成员的连接约束关系与属性是通过应用背景可知的,但是对于团队之间是如何连接的,并没有精确约束,但是要求他们以代价最小的方式连通。如果依赖用户手工处理模糊约束,穷举所有可能的连接关系,然后再利用现存的方法来进行查询,需要极大的工作量,时空开销极大。此外,如果直接利用现存的独立点查询图方法,又无法保证满足给定的其他精确约束。所以,现有的技术方法无法在满足所有精确约束的基础上,支持对模糊约束关系的匹配。
发明内容
本发明提供一种支持模糊约束关系的图模式匹配方法,能够在大规模目标数据图中支持模糊约束关系与精确约束关系的混合查询,得到同时满足两种约束要求的结果匹配图。
本发明提供的支持模糊约束关系的图模式匹配方法,包括:
通过输入层,获取用户输入的查询图Q和存储的目标数据图G,所述查询图中既包含精确约束关系又包含模糊约束关系;
通过精确匹配层,在所述目标数据图中,针对用户输入的查询图中的精确约束关系进行精确地图匹配,并在所述目标数据图中构建带有合并节点的引导图;
通过模糊搜索层,在所述引导图中,找出并输出在满足所有精确约束基础上对模糊约束匹配质量最好的K个匹配图。
本发明提供的支持模糊约束关系的图模式匹配方法,支持模糊约束关系与精确约束的混合查询,能够在大规模目标数据图中,针对既含有图同构的精确约束关系又含有模糊约束关系的查询请求进行处理,得到满足同时两种约束要求的结果匹配图,扩展了图模式匹配的实用范围;能够降低使用人员构造查询图的成本,更灵活的对查询约束进行建模,无需获取全部的精确约束关系,使得在无法构造所有精确约束关系的情况下,也可以查询到匹配质量良好的结果子图。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1本发明实施例提供的支持模糊约束关系的图模式匹配方法的总体层次结构图;
图2为查询图的输入格式的示意图;
图3为实际实施案例的合作关系网络图片段;
图4为以实际应用为背景所提出的待查询关系约束示意图;
图5为通过图3转换得到的目标数据图;
图6为通过图4转换得到的带有模糊关系约束的查询图及其输入形式的示意图;
图7为经过精确匹配层,输出的带合并节点的引导图;
图8为经过模糊搜索层,输出的还原合并节点后的最佳匹配图;
图9为通过图8转换到实际应用的查询结果图;
图10为通过图5构建的高速索引数据(当λ=0,H=2)的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种支持模糊约束关系的图模式匹配方法,该方法的总体步骤框架如图1所示,主要包括输入层、精确匹配层、模糊搜索层三部分。输入层包括用户输入器和目标数据图导入器,精确匹配层包括图同构器和图仿真器,而模糊搜索层包括单源搜索器和高速单源搜索器。
所述支持模糊约束关系的图模式匹配方法具体包括如下步骤:
S11、通过输入层,获取用户输入的查询图Q和存储的目标数据图G,所述查询图中既包含精确约束关系又包含模糊约束关系。
该查询图Q与目标数据图G均为带标签的无向图,查询图是无权图,而目标数据图是有权图,即节点之间的边上存在不同的权重信息。该标签信息面向具体应用,代表节点的属性。
本发明所处理的查询图Q包含若干个独立的约束模块图(假设为P个,Q={q1,q2,…,qi,…,qp}),每个约束模块qi(V,E,L)为一个带有节点标签的连通的无向无权图,其中定义面向应用的精确约束,其中包括节点集合V,节点间连接约束关系E,标签集合L;对于每个节点v∈V,包含节点序号v.Id,节点标签属性集合子图之间为模糊约束关系,所以一共有C(P,2)组合数个模糊约束关系。
查询图的输入格式如图2所示,其中第一行定义约束模块总数P,每个约束模块有两部分组成,第一部分为节点属性集合定义区,第二部分是节点连接约束关系定义区,每个部分结束都由“#”分隔。
本发明所处理的目标数据图G(V,E,L)为一个带有节点标签的无向有权图。其中包括节点集合V,节点间连接关系E和标签集合L;每个连接关系带有一个权重信息e.weight(e∈E);每个节点信息包括节点序号v.Id,节点标签属性集合
本发明所述用户输入器的功能在于从硬件存储器中读入按照本发明所规定的查询图输入格式定义的查询图,或者通过图形界面输入查询图;目标数据图导入器负责从硬件存储器中读入目标数据图与预处理所产生的数据索引。
S12、通过精确匹配层,在所述目标数据图中,针对用户输入的查询图中的精确约束关系进行精确地图匹配,并在所述目标数据图中构建带有合并节点的引导图。
本发明通过精确匹配层提供了两种可选方法:图同构器和图仿真器,用于保证精确约束得以高效地匹配,并生成带合并节点的引导图。图同构器和图仿真器首先通过不同方法,针对每个查询图中的约束模块,分别在目标数据图中,找出能够与精确约束匹配的候选子图;再依照这些候选子图,按照相同的方法生成带有合并节点的引导图。
同构器通过现存的图同构(graphisomorphism)匹配方法,例如VF2,Ullmann,QuickSI等,对查询图中每个约束模块qi分别进行图同构匹配,即可直接找出目标数据图G中,所有的匹配精确约束的候选子图,定义为集合IMi,这些候选子图同构于至少一个约束模块。
图仿真器通过现有的图仿真方法(graphsimulation),对查询图中每个约束模块qi分别进行图仿真匹配,得到目标数据图中的所有图仿真候选子图,定义为SMi。
通过图仿真器所产生的图仿真候选子图中一定包含所有的图同构候选子图,但是反之不然。因此图仿真候选子图中可能包含非同构子图。图同构器时间开销与目标数据图和查询图规模成指数关系,而图仿真器只需要O(n^2)的时间开销,n为目标数据图中的总节点数。
图同构器采用索引技术,例如频繁子图索引,可以提升对小规模图组成的图数据库的匹配速度,但是由于空间开销大,依然无法对大规模图产生有效索引。所以图仿真器适用于大规模网络图上的匹配查询,而图同构器适用于若干不连通的小规模图组成的图数据库匹配查询。
在获取所有的候选子图集合后,生成的引导图将每个候选子图合并为一个带标识的合并节点,并设置标识为该候选子图匹配的约束模块的序号。如果存在候选子图是彼此重合的,那么将合并所有重合候选子图到同一个合并节点中,设置标识为所有对应的约束模块序号的并集。生成引导图的具体操作的伪代码如下:
输入:1、查询图Q={q1,q2,…,qi,…,qp}.2、目标数据图G(V,E,L).3、通过图同构器或图仿真器得到的候选子图集合SM={SM1,SM2,…,SMi,…,SMp}或IM=={IM1,IM2,…,IMi,…,IMp}。
初始化一个候选子图集合IM:SM;
对于每个FMi∈FM做循环(1):
对于每个子图fm∈FMi做循环(2):
创建一个合并节点的指针mn=null;
(1)如果任取一个节点v∈fm,都有v∈G,那么:
在G中,初始化并新增一个特殊的合并节点,并由mn指向,该节点拥有标识集合B={i};
把fm作为mn的内部图进行存储(mn.fm);
否则:
对于每一个节点v∈fm且做循环(3):
获取G中已存在的合并节点mn’,满足v∈mn’.fm;
(2)如果mn=null,那么:
增加标识i到mn’.B中;
合并fm的其他节点与边到mn’.fm中;
否则
增加mn.B到mn’.B;
合并mn.fm到mn’.fm中;
把mn的连接边合并到mn’上,设置权重为最小边值;
删除合并节点mn;
结束条件判断(2)
令mn指针指向mn’;
结束循环(3);
结束条件判断(1)
从G中删除fm中所有节点与边集合;
如果fm中有节点与fm的外部点(其他不在fm中的节点)存在连接边,那么创建mn与该外部点的连接关系(创建外部边),并设置边权重为fm中节点与该外部点所有连接边权重的最小值;
结束循环(2);
如果fm中存在中枢节点,那么设置mn为中枢节点(此操作仅限于取用高速单源搜索器时);
结束循环(1);
返回修改后的G作为带有合并节点的引导图Gm。
S13、通过模糊搜索层,在所述引导图中,找出并输出在满足所有精确约束基础上对模糊约束匹配质量最好的K个匹配图。
本发明在给定目标数据图G与查询图Q后,所输出的匹配图M需要满足如下要求:
1、M是G的一个连通子图;
2、对于每一个查询图中的约束模块qi,M中都存在一个子图mi,满足mi同构(isomorphism)于qi(mi∝isoqi)的精确约束,其中i为约束模块序号;
3、在这些子图中,任取一对mi与mj且i≠j,mi.V∩mj.
模糊约束的匹配通过mi与mj直接相连或通过其他节点所组成的路径间接相连。匹配图M按照模糊约束的匹配质量予以衡量,给定一个匹配图M,匹配质量衡量函数定义如下:Quality(M)=∑p(i,j)∈Mlength(p(i,j)),其中p(i,j)为mi与mj之间的最短连接路径,length(p(i,j))为该路径长度,即路径中所有边上的权重合。质量函数值越小说明该匹配图与查询图的匹配效果越好,因为关系越密切,权重合越小。本发明支持在无需找出所有满足要求的匹配图的情况下,找出与查询图匹配最好的K个匹配图,并按照质量函数值从小到大排序。
本发明把通过精确层输出的带有合并节点的引导图作为输入传递给模糊搜索层的两个搜索器,进行模糊匹配搜索。这两个搜索器是单源搜索器和高速单源搜索器。两者之间的区别是后者利用了一种新型的高速索引方法,能够缩短搜索的时间开销,但是需要以牺牲质量为代价,所以他们适用于不同场合。搜索器的目的在于对查询图中约束模块之间的模糊约束关系进行匹配搜索,进而找出质量最好的K个匹配图。
这两个搜索器的核心算法在于创建一个约束模块个数的优先队列组,并从每个合并节点作为源点,依次传播标识信息,一个优先队列负责传播一种标识,直到找到一个拥有所有种类的标识信息的节点。通过该节点作为根节点,就可以通过遍历的路径找到一棵树。对于每个约束模块,树中至少包括一个合并节点,其拥有该约束模块的标识,并且他的内部图能够匹配该约束模块的所有约束条件(精确同构匹配)。此外,如果结果树种存在一个合并节点匹配多个约束模块(即作为多个标识的源节点),那么其内部图中,至少存在两个不重合的子图,能够分别精确同构匹配于对应的约束模块。最后,按照结果树中的合并节点的标识,即可还原对应的内部图信息,组成最终匹配图,而还原的内部图中满足精确约束要求的候选图之间所连接的路径信息是对约束模块间模糊约束的匹配。
单源搜索器的具体操作的伪代码如下:
输入:1、查询图Q={q1,q2,…,qi,…,qp},共p个约束模块;2、带合并节点的引导图Gm,3、待寻找的匹配图个数K。
定义:1、MN为Gm中所有合并节点的集合;2、node.parent(i)为该node节点在第i个队列中,遍历路径上的父节点;3、node.source(i)为该node节点在第i个队列中的源节点;4、node.sharedLabels是一个标识集合,其中包含所有来源于同一合并节点的标识;5、优先队列中的元素为(node,distance),即(节点信息,距离其源节点的距离);6、一个合并节点为合法的,当且仅当,他的内部图中存在至少一组不重合的子图分别满足其标识对应的约束模块的所有约束条件(同构匹配)。
初始化一个堆
初始化一个含有p个优先队列的集合queues={queue1,…queuep};
对于每个合并节点mn∈MN做循环(1):
对于每个标识b∈mn.B做循环(2):
增加mn到queueb中,并设置初始距离为0,即入队列元素为(mn,0),并设置mn.parent(b)=mn,mn.source(b)=mn;
结束循环(2);
如果mn.B中包含多个标识,那么设置mn.sharedLabels=mn.B;
设置
结束循环(1);
当存在至少一个queue中节点不为空时,做循环(3):
依次遍历queues中不为空的所有队列queuei(1):
得到头元素(v,v.distance)并使其移出队列;
如果那么v.B=v.B∪i;(传播标识)
如果(v.B中元素的个数等于p)且(或者v的所有源节点都是合法的)那么(1):
从v开始依据路径信息(每个路径上节点的parent信息)生成一棵结果树tree;
对于v的每个标识的源合并节点,穷举能匹配该标识所对应的约束模块的子图进行还原,并利用外边连接信息还原其内部连接路径;
计算该结果数树的代价tree.cost=原结果树中所有边权重合+还原内部图所引入的内部连接路径的权重合Δcost;
把结果树tree加入到TreeHeap中;
如果TreeHeap中的结果树数量大于K,那么继续遍历过程直到每个队列达到Δcost的距离,排序所有产生的结果树,返回前K个;(终止条件)
结束判断(1)
如果v是中枢节点,那么通过高速索引生成结果树,如不为空,则把其还原版本加入到TreeHeap中;(高速单源搜索器步骤)
遍历v的边表元素(u,weight),其中u为其边表中邻接节点,weight是其边权重(2);
如果那么(2):
1、当时,设置u.source(i)=v.source(i),u.parent=v,并把(u,weight+v.distance)加入到queuei中等待后续遍历,如果v.source(i)之前过传播其他标识给u,把所有来源于该合并节点的标识一并加入u.sharedLabels中;
2、当满足如下2个条件(u∈queuei)且(weight+v.distance<u.distance)时,更新u.source(i)=v.source(i),u.parent=v,并更新队列queuei中u的距离为weight+v.distance;如果i∈u.sharedLabels且v.source(i)之前没有传播其他标识给u,那么从u.sharedLabels中,删除i与其来源相同的其他标识。如果v.source(i)之前传播过其他标识给u,把所有来源于该合并节点的标识一并加入u.sharedLabels中;如果引导图Gm是由图仿真器得到的,那么当(u∈queuei)且(weight+v.distance≥u.distance)时,调用验证步骤check(u.source(i),v.source(i)),当返回true时,更新队列queuei中u的距离为weight+v.distance,同理更新u.sharedLabels。
否则:
如果满足i∈u.B且i∈u.sharedLabels且v.source(i)之前没有传播其他标识给u,那么更新u.sharedLabels,设置u.source(i)=v.source(i),u.parent=v,从u.B中删除i,并把(u,weight+v.distance)重新加入queuei中;
如果引导图Gm是由图仿真器得到的,当满足i∈u.B且(或者v.source(i)之前有传播其他标识给u)时,调用验证步骤check(u.source(i),v.source(i)),当返回true时,那么更新u.sharedLabels,设置u.source(i)=v.source(i),u.parent=v,从u.B中删除i,并把(u,weight+v.distance)重新加入queuei中。
结束判断(2);
结束遍历(2);
结束遍历(1);
结束循环(3)
当引导图通过图仿真器得到时,为了保证得到的匹配图中满足图同构的约束,需要在节点被舍弃(停止标识传播给邻接节点)时,通过验证步骤check(u.source(i),v.source(i))进一步判断。u.source(i),v.source(i)中是否包含同构于约束模块i的子图。具体验证步骤如下:通过图同构算法验证合并节点v.source(i)中(内部图)是否包含同构于约束模块i的子图,如果不包含,返回false,否则如果包含,继续判断u.source(i)中(内部图)是否包含同构于约束模块i的子图,如果不包含,返回true,否则,如果包含,需要对比两者同构子图到节点u的最短距离,如果v.source(i)中的同构子图与u的最短路径距离更短,那么返回true,否则返回false。
当在搜索器中判断一个合并节点是否合法时,如果在精确匹配层通过图仿真器得到的引导图,需要在此处调用图同构算法进行验证,否则直接在内部图中判断是否匹配子图相交即可。
本发明所述的高速单源搜索器与上述单源搜索器的步骤区别在于:1、高速单源搜索器需要提前对目标数据图做预处理,生成高速搜索索引;2、在单源搜索器的上述步骤中,加入高速搜索步骤,具体见单源搜索器操作伪代码中的高速搜索步骤。创建高速索引的具体步骤的伪代码如下:
输入:1、目标数据图G,2、中枢节点数量H,3、中枢节点间距离阈限θ;
计算G图中每个节点的度(degree)与介数(betweenness),存储于数据表中,每行元素为<node,degree,betweenness>;
对每个节点按照归一化的中枢性从大到小进行排序,中枢性的计算方法为:HubValue=(degree+λ*betweenness),其中λ为用户给定的参数;
选取前H个节点,作为中枢节点集合;
计算中枢节点两两之间最短路径长度(边权重合)length与路径信息;
针对每个中枢节点v,构建高速索引,格式为<key,value>,其中key为从该中枢节点可达的其他中枢节点u,value是一个数组,每个元素为v、u节点之间最短路径长度和路径本身所组成的数据结构;
只保留路径长度length(v,u)<θ的高速索引,存储高速索引到存储器中。
本发明实施例还提供一种贪婪算法,能够通过高速索引生成结果树,其具体步骤如下:
假设当前节点为n;
(1)如果n是合并节点,那么遍历其内部图中每个中枢节点v做如下操作,否则v=n做如下操作:从高速索引中,读取v的高速索引内容,获取所有的从v可达的中枢节点,存入数组Hubs中;
(2)对于每个标识构建一个节点集合Ab,其中每个节点满足u∈Hubs且b∈u.B,如果结束算法并返回
(3)遍历每个集合Ab,在每个集合Ab中选出到v最短路径最短的节点ub。当Ab中没有新候选节点时,返回
(4)获取每个ub在b队列中的源合并节点,并判断条件:如果存在两个选中的中枢节点ui,uj,他们的源合并节点是重合的,判断该合并节点的内部图中是否存在不相交的子图分别同构匹配于标识所对应的约束模块,如果不存在,依次尝试从Ai与Aj中删除ui,uj,并选择次优节点,直到上述条件满足,最后删除ui,uj中到该合并节点路径较长的节点;
(5)利用高速索引中的路径,把选中的中枢节点、相应的合并节点与节点n连接成结果树。
本发明的单源搜索器搜索得到的结果匹配图与目标数据图中存在的最佳结果匹配图之间的质量关系如下:
假设给定目标数据图G与带模糊约束的查询图Q={q1,q2,…,qi,…,qp}.共p个约束模块,通过单源搜索器得到的最优结果匹配图M的质量为QM;在G中实际存在的最优匹配图R的质量为QR;那么根据单源搜索器的操作步骤,质量约束等式QM/QR≤p一定成立。
而对于高速单源搜索器得到的最优结果匹配图M的质量QM,满足质量约束等式QM/QR≤(θ(p-1)+εp)/(ε+1),其中ε为M图中从所有原合并节点到中枢节点距离长度的最大值,p为查询图中约束模块总个数,θ为中枢节点间距离阈限。
当用户设置θ为0时,高速单源搜索器就退化成了单源搜索器,结果匹配质量与单源搜索器一致。通过调节参数θ,高速单源搜索器能够更好的平衡输出质量与执行效率。两种单源搜索器适用于不同场合。
本发明实施例提供的支持模糊约束关系的图模式匹配方法,支持模糊约束关系与精确约束的混合查询,能够在大规模目标数据图中,针对既含有图同构的精确约束关系又含有模糊约束关系的查询请求进行处理,得到满足同时两种约束要求的结果匹配图,扩展了图模式匹配的实用范围;能够降低使用人员构造查询图的成本,更灵活的对查询约束进行建模,无需获取全部的精确约束关系,使得在无法构造所有精确约束关系的情况下,也可以查询到匹配质量良好的结果子图。
下面通过对某网络公司软件开发人员历史合作网络中的实际查询需求的处理,说明本专利所述方法的具体实施。
该公司首先收集开发人员的合作历史数据,并构建了合作关系网络图,其中的一个典型片段如图3所示,其中节点代表人员,属性标注于节点下方((a)PRG:程序员,(b)DB:数据工程师,(c)TS:测试工程师,(d)PM:项目经理)。节点间的连接代表两个节点共同直接合作参与过项目,边权重值代表合作密切程度,权重值越大越疏远。
为了叙述的简洁,在该实例中,假设边权重均为1。利用图3,该公司试图为一个新软件开发项目组件最适合的团队。团队要求由3个独立小组,共5位人员组成,小组具体要求如下:(1)组1包含两位程序员,且他们共同参与过项目;(2)组2包含一位程序员与一名数据工程师,且他们共同参与过项目;(3)组3包括一名测试人员;(4)三个组间存在成员间直接或间接的历史合作关系,且合作越密切越好。
利用本专利能够更好的从合作关系网络图中查询出满足上述需求的候选团队。首先对团队的要求进行建模,表达成如图4所示的约束关系,其中由三个约束模块所组成,每个约束模块刻画了对小组成员关系的约束。分别对合作关系网络图(图3)与约束关系(图4)建模成目标数据图与带模糊约束的查询图,分别如图5、图6所示。图5中{}内为节点的属性值,图6(右)展示了查询图的输入格式。
在读取目标数据图后,对其进行预处理,构建高速索引,假设在高速单源搜索器中设置的参数为λ=0,H=2,那么按照节点度排序后,可知拥有最高度的节点为6、1、2,取前两个构建高速索引,在目标数据图中,获取它们之间的最小路径(1,5,6),权重为2,构建的高速索引如图10所示。
查询的具体操作过程如下:
首先通过输入层读入图5、图6的信息(如果采用高速单源搜索器,还需读入图10的索引信息)。把目标数据图G与查询图Q传递给精确匹配层的图同构器或图仿真器(按照用户的选择),经过图同构器的具体操作步骤,分别对Q中每个子约束模块进行匹配和合并,生成引导图,如图7所示。图7中,包括了三个合并节点(m1,m2,m3),其中m1的内部图同构匹配于(通过图同构器)或仿真匹配于(通过图仿真器)约束模块q1和q2,同理,m2匹配于q1和q2,m3匹配于q3。并且m3为中枢节点因为其内部图中,包括了节点6。
下一步,精确匹配层把得到的引导图传递给模糊搜索层。模糊搜索层采用单源搜索器或高速单源搜索器对引导图中合并节点的关系进行的挖掘搜索,最终找到的最佳结果树经还原合并节点后,如图8所示(假设K=1)。在该图中,节点6,9匹配q1,节点7,8匹配q2,节点10匹配q3,该匹配的质量值为4,为最佳匹配图。
最终的组件团队的最佳候选图如图9所示。
与现有的图模式匹配方法相比,本方法提出的匹配方法能够有效地在满足精确约束关系的基础上,抵抗对目标图中所存在的噪声数据,有效挖掘满足模糊约束的路径连接信息。在目标数据图中存在噪声数据时,通过现存的精确匹配方法可能无法找出合理的匹配结果,而通过现存的近似匹配方法又无法保证已获得的精确约束得到匹配。
与现有的图模式匹配方法相比,本方法同时利用了搜索方法(搜索器)与索引查询(高速索引)方法,能够有效地平衡查询结果质量与执行效率。
本发明实施例提供的支持模糊约束关系的图模式匹配方法,可以适用于在大规模目标数据图中,进行支持模糊约束关系与精确约束关系的混合查询,但不仅限于此。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (17)
1.一种支持模糊约束关系的图模式匹配方法,其特征在于,包括:
通过输入层,获取用户输入的查询图Q和存储的目标数据图G,所述查询图中既包含精确约束关系又包含模糊约束关系;
通过精确匹配层,在所述目标数据图中,针对用户输入的查询图中的精确约束关系进行精确地图匹配,并在所述目标数据图中构建带有合并节点的引导图;
通过模糊搜索层,在所述引导图中,找出并输出在满足所有精确约束基础上对模糊约束匹配质量最好的K个匹配图。
2.根据权利要求1所述的方法,其特征在于,所述查询图Q中包含P个独立的约束模块q1,q2,…,qi,…,qp;
每个约束模块qi(V,E,L)是一个连通的无向无权图,其中包括节点集合V,节点间连接约束关系E,标签集合L;
对于每个节点v∈V,包含节点序号v.Id,节点标签属性集合
子图之间为模糊约束关系,共有C(P,2)组合数个模糊约束关系。
3.根据权利要求1所述的方法,其特征在于,所述目标数据图G(V,E,L)为无向图,其中包括节点集合V,节点间连接关系E和标签集合L;
每个连接关系e∈E带有权重信息;
每个节点信息包括节点序号v.Id,节点标签属性集合
4.根据权利要求2所述的方法,其特征在于,输出的匹配图M满足如下要求:
M是G的一个连通子图;
对于每一个查询图中的约束模块qi,M中都存在一个子图mi,满足mi同构于qi的精确约束,其中i为约束模块序号;
在这些子图中,任取一对mi与mj且i≠j,mi.V∩mj.
5.根据权利要求4所述的方法,其特征在于,所述匹配图M,其匹配质量衡量函数为Quality(M)=Σp(i,j)∈Mlength(p(i,j)),其中p(i,j)为mi与mj之间的连接路径,length(p(i,j))为该路径长度,即路径中所有边上的权重合。
6.根据权利要求1所述的方法,其特征在于,所述精确匹配层包含两个可选用的匹配器:图同构器与图仿真器,所述在所述目标数据图中,针对用户输入的查询图中的精确约束关系进行精确地图匹配,并在所述目标数据图中构建带有合并节点的引导图包括:
针对每个查询图中的约束模块,分别在所述目标数据图中,获取能够与精确约束匹配的候选子图;
依照所述候选子图,生成带有合并节点的引导图。
7.根据权利要求6所述的方法,其特征在于,所生成的引导图将每个候选子图合并为一个带标识的合并节点,并设置标识为该候选子图匹配的约束模块的序号;如果存在候选子图是彼此重合的,那么将合并所有重合候选子图到同一个合并节点中,设置标识为所有对应的约束模块序号的并集;被合并的原图部分即为该合并节点的内部图。
8.根据权利要求6所述的方法,其特征在于,所述图同构器是通过图同构匹配的方法获得,所述图仿真器是通过图仿真的方法获得。
9.根据权利要求1所述的方法,其特征在于,所述模糊搜索层包括两个可选用的搜索器:单源搜索器和高速单源搜索器。
10.根据权利要求9所述的方法,其特征在于,所述单源搜索器搜索的核心操作方法为:
步骤1、创建一个约束模块个数的优先队列组queues={queue1,…,queuep};
步骤2、遍历每个合并节点,按照合并节点的标识,分别加入以标识为序号的队列中;
步骤3、依次遍历每个优先队列,获取其每个头节点,访问该节点,并按照其边表继续向后继节点传播标识信息;
步骤4、重复步骤3,直到找到一个满足匹配要求的节点u;
步骤5、通过节点u作为根节点,通过遍历的路径找到一棵树;
步骤6、按照结果树中的合并节点的标识,还原对应的内部图,组成最终匹配图;
步骤7、重复步骤3至步骤5,直到找出满足质量要求的前K个匹配图。
11.根据权利要求10所述的方法,其特征在于,在所述步骤3中,访问优先队列中的头节点,其向后继节点传播标识,即把后继节点加入队列中或更新队列中该节点信息,所需满足的条件为:
假设优先队列为queuei,当前节点是v,后继节点为u;
且u∈queuei且(weight+v.distance<u.distance);
i∈u.B且i∈u.sharedLabels且v.source(i)之前没有传播其他标识给u且u有至少2个标识来源于u.source(i).
如果引导图是由图仿真器创建的,那么在不满足上述条件时,还需通过调用验证步骤进一步判断。
12.根据权利要求10所述的方法,其特征在于,在所述步骤4中,满足匹配要求的根节点u,对其具体要求是:在满足下列条件(1)的基础上,满足条件(2)和条件(3)中的其中一个;
条件(1):节点u拥有所有种类的标识信息,共p个,p为约束模块数;
条件(2):节点u所有标识都来源于不同的合并节点;
条件(3):对于节点u的任意两个标识(i,j),如果他们来源于同一个合并节点,那么该合并节点的内部图中,一定存在两个不相交的子图且分别同构于qi与qj。
13.根据权利要求9所述的方法,其特征在于,在单源搜索器的基础之上,还包括:离线预处理生成高速索引,具体步骤如下:
步骤1、用户给定获取中枢节点个数的参数H,中枢节点间距离阈限;
步骤2、计算G图中每个节点的度(degree)与介数(betweenness);
步骤3、对每个节点按照归一化的中枢性从大到小进行排序,取前H个;
步骤4、计算中枢节点两两之间最短路径长度(边权重合)length与路径信息;
步骤5、针对每个中枢节点v,构建高速索引,格式为<key,value>,其中key为从该中枢节点可达的其他中枢节点u,value是一个数组,每个元素为v、u节点之间最短路径长度和路径本身所组成的数据结构;
步骤6、只保留路径长度length(v,u)<θ的高速索引,存储高速索引到存储器中。
14.根据权利要求13所述的方法,其特征在于:所述步骤2中节点中枢性的衡量函数为:HubValue=(degree+λ*betweenness),其中λ为用户给定的参数。
15.根据权利要求9所述的方法,其特征在于,在单源搜索器的基础之上,还包括:通过高速索引判断并生成结果树,具体步骤为:
步骤1、如果n是合并节点,那么遍历其内部图中每个中枢节点v做如下操作,否则v=n做如下操作:从高速索引中,读取v的高速索引内容,获取所有的从v可达的中枢节点,存入数组Hubs中;
步骤2、对于每个标识构建一个节点集合Ab,其中每个节点满足u∈Hubs且b∈u.B;如果结束算法并返回;
步骤3、遍历每个集合Ab,在每个集合Ab中选出到v最短路径最短的节点ub;当Ab中没有新候选节点时,返回;
步骤4、获取每个ub在b队列中的源合并节点,并判断条件:如果存在两个选中的中枢节点ui,uj,他们的源合并节点是重合的,判断该合并节点的内部图中是否存在不相交的子图分别同构匹配于标识所对应的约束模块,如果不存在,依次尝试从Ai与Aj中删除ui,uj,并选择次优节点,直到上述条件满足,最后删除ui,uj中到该合并节点路径较长的节点;
步骤5、利用高速索引中的路径,把选中的中枢节点、相应的合并节点与节点n连接成结果树,返回结果树。
16.根据权利要求9所述的方法,其特征在于,通过单源搜索器得到的最优结果匹配图与目标数据图中存在的最佳结果匹配图之间的质量之比永小于或等于查询图中约束模块的个数。
17.根据权利要求9所述的方法,其特征在于,通过高速单源搜索器得到的最优结果匹配图与目标数据图中存在的最佳结果匹配图之间的质量之比永小于等于(θ(p-1)+εp)/(ε+1),其中,ε为匹配图中从所有原合并节点到中枢节点距离长度的最大值,p为查询图中约束模块总个数,θ为中枢节点间距离阈限;
当θ设置为0时,高速单源搜索器退化成了单源搜索器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510477815.3A CN105138601B (zh) | 2015-08-06 | 2015-08-06 | 一种支持模糊约束关系的图模式匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510477815.3A CN105138601B (zh) | 2015-08-06 | 2015-08-06 | 一种支持模糊约束关系的图模式匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105138601A true CN105138601A (zh) | 2015-12-09 |
CN105138601B CN105138601B (zh) | 2019-03-26 |
Family
ID=54723949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510477815.3A Active CN105138601B (zh) | 2015-08-06 | 2015-08-06 | 一种支持模糊约束关系的图模式匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138601B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105955883A (zh) * | 2016-04-27 | 2016-09-21 | 中国科学院软件研究所 | 一种高性能单机多核并行模型检测方法 |
CN107274071A (zh) * | 2017-05-24 | 2017-10-20 | 华为技术有限公司 | 组建团队的方法及装置 |
CN107885797A (zh) * | 2017-10-27 | 2018-04-06 | 中国科学院信息工程研究所 | 一种基于结构相关性的多模式图匹配方法 |
CN110333857A (zh) * | 2019-07-12 | 2019-10-15 | 辽宁工程技术大学 | 一种基于约束规划的自定义指令自动识别方法 |
CN111597275A (zh) * | 2019-02-21 | 2020-08-28 | 阿里巴巴集团控股有限公司 | 同构子图或拓扑图的处理方法及装置 |
CN111651641A (zh) * | 2020-05-29 | 2020-09-11 | 全球能源互联网研究院有限公司 | 一种图查询方法、装置及存储介质 |
CN112182058A (zh) * | 2020-08-17 | 2021-01-05 | 北京来也网络科技有限公司 | 结合rpa和ai的内容获取方法、装置、计算机设备及介质 |
CN112559807A (zh) * | 2020-12-03 | 2021-03-26 | 浙江邦盛科技有限公司 | 一种基于多源点并行探索的图模式匹配方法 |
US20210248443A1 (en) * | 2020-02-06 | 2021-08-12 | International Business Machines Corporation | Fuzzy Cyber Detection Pattern Matching |
CN116610896A (zh) * | 2023-07-07 | 2023-08-18 | 浙江大学高端装备研究院 | 一种基于子图同构的制造服务供需匹配方法 |
CN116704148A (zh) * | 2023-08-09 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 地图中道路纵向层次数据处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693310A (zh) * | 2012-05-28 | 2012-09-26 | 无锡成电科大科技发展有限公司 | 一种基于关系数据库的资源描述框架查询方法和系统 |
CN102799624A (zh) * | 2012-06-19 | 2012-11-28 | 北京大学 | 基于Datalog的分布式环境下大图数据查询方法 |
CN104699698A (zh) * | 2013-12-05 | 2015-06-10 | 深圳先进技术研究院 | 基于海量数据的图查询处理方法 |
-
2015
- 2015-08-06 CN CN201510477815.3A patent/CN105138601B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693310A (zh) * | 2012-05-28 | 2012-09-26 | 无锡成电科大科技发展有限公司 | 一种基于关系数据库的资源描述框架查询方法和系统 |
CN102799624A (zh) * | 2012-06-19 | 2012-11-28 | 北京大学 | 基于Datalog的分布式环境下大图数据查询方法 |
CN104699698A (zh) * | 2013-12-05 | 2015-06-10 | 深圳先进技术研究院 | 基于海量数据的图查询处理方法 |
Non-Patent Citations (5)
Title |
---|
ARIJIT KHAN等: "Neighborhood Based Fast Graph Search in Large Networks", 《ACM》 * |
LORENZO LIVI等: "The graph matching problem", 《PATTERN ANALYSIS AND APPLICATIONS》 * |
于静等: "大规模图数据匹配技术综述", 《计算机研究与发展》 * |
吴烨等: "一种权重约束模式匹配查询方法", 《第31届中国数据库学术会议论文集》 * |
李智杰等: "一种基于空间句法的图核类非精确图匹配方法", 《第二届全国图象图形联合学术会议论文集》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105955883B (zh) * | 2016-04-27 | 2018-08-03 | 中国科学院软件研究所 | 一种高性能单机多核并行模型检测方法 |
CN105955883A (zh) * | 2016-04-27 | 2016-09-21 | 中国科学院软件研究所 | 一种高性能单机多核并行模型检测方法 |
CN107274071A (zh) * | 2017-05-24 | 2017-10-20 | 华为技术有限公司 | 组建团队的方法及装置 |
CN107885797A (zh) * | 2017-10-27 | 2018-04-06 | 中国科学院信息工程研究所 | 一种基于结构相关性的多模式图匹配方法 |
CN111597275A (zh) * | 2019-02-21 | 2020-08-28 | 阿里巴巴集团控股有限公司 | 同构子图或拓扑图的处理方法及装置 |
CN111597275B (zh) * | 2019-02-21 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 同构子图或拓扑图的处理方法及装置 |
CN110333857A (zh) * | 2019-07-12 | 2019-10-15 | 辽宁工程技术大学 | 一种基于约束规划的自定义指令自动识别方法 |
CN110333857B (zh) * | 2019-07-12 | 2023-03-14 | 辽宁工程技术大学 | 一种基于约束规划的自定义指令自动识别方法 |
US11544527B2 (en) * | 2020-02-06 | 2023-01-03 | International Business Machines Corporation | Fuzzy cyber detection pattern matching |
US20210248443A1 (en) * | 2020-02-06 | 2021-08-12 | International Business Machines Corporation | Fuzzy Cyber Detection Pattern Matching |
CN111651641B (zh) * | 2020-05-29 | 2023-08-29 | 全球能源互联网研究院有限公司 | 一种图查询方法、装置及存储介质 |
CN111651641A (zh) * | 2020-05-29 | 2020-09-11 | 全球能源互联网研究院有限公司 | 一种图查询方法、装置及存储介质 |
CN112182058A (zh) * | 2020-08-17 | 2021-01-05 | 北京来也网络科技有限公司 | 结合rpa和ai的内容获取方法、装置、计算机设备及介质 |
CN112182058B (zh) * | 2020-08-17 | 2024-04-09 | 北京来也网络科技有限公司 | 结合rpa和ai的内容获取方法、装置、计算机设备及介质 |
CN112559807B (zh) * | 2020-12-03 | 2022-06-21 | 浙江邦盛科技股份有限公司 | 一种基于多源点并行探索的图模式匹配方法 |
CN112559807A (zh) * | 2020-12-03 | 2021-03-26 | 浙江邦盛科技有限公司 | 一种基于多源点并行探索的图模式匹配方法 |
CN116610896A (zh) * | 2023-07-07 | 2023-08-18 | 浙江大学高端装备研究院 | 一种基于子图同构的制造服务供需匹配方法 |
CN116610896B (zh) * | 2023-07-07 | 2023-10-27 | 浙江大学高端装备研究院 | 一种基于子图同构的制造服务供需匹配方法 |
CN116704148A (zh) * | 2023-08-09 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 地图中道路纵向层次数据处理方法及装置 |
CN116704148B (zh) * | 2023-08-09 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 地图中道路纵向层次数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105138601B (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105138601A (zh) | 一种支持模糊约束关系的图模式匹配方法 | |
Fan | Graph pattern matching revised for social network analysis | |
US8566787B2 (en) | System and method for improving modularity of large legacy software systems | |
CN101617292B (zh) | 面向生成器图的编程和执行 | |
Abel et al. | The systems integration problem | |
CN103020302B (zh) | 基于复杂网络的学术核心作者挖掘及相关信息抽取方法和系统 | |
CN110337642A (zh) | 通过使用测试用例来执行测试的方法和装置 | |
CN113609210B (zh) | 基于人工智能的大数据可视化处理方法及可视化服务系统 | |
Reger et al. | Induction in saturation-based proof search | |
US20070250331A1 (en) | Method for composition of stream processing plans | |
Pan et al. | Clustering of designers based on building information modeling event logs | |
CN110554868B (zh) | 一种软件复用代码检测方法及系统 | |
CN108280562B (zh) | 一种规范电力企业数据资源的方法 | |
CN107203468A (zh) | 一种基于ast的软件版本演化对比分析方法 | |
CN103336791A (zh) | 基于Hadoop的粗糙集快速属性约简方法 | |
Norta et al. | A cloud hub for brokering business processes as a service: a" rendezvous" platform that supports semi-automated background checked partner discovery for cross-enterprise collaboration | |
Shrestha et al. | SLNET: A redistributable corpus of 3rd-party Simulink models | |
Bhargava et al. | On embedded languages for model management | |
Zhao et al. | Automated design of metaheuristic algorithms: A survey | |
Van Oirschot et al. | Using trace clustering for configurable process discovery explained by event log data | |
CN111737529B (zh) | 一种多源异构数据采集方法 | |
Huang et al. | Type theory based semantic verification for service composition in cloud computing environments | |
Malekan et al. | A systematic approach for business service consolidation in virtual organizations | |
Labreche et al. | A general approach for of schema matching problem: case of databases | |
Jaber et al. | Synthesis of distributed agreement-based systems with efficiently-decidable verification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |