基于属性图模型的近邻查询方法与流程

文档序号:14719000发布日期:2018-06-17 00:17阅读:305来源:国知局

本发明涉及属性图中top-k最小直径顶点集的求解方法,主要利用渐进式搜索与最少优先算法从全局角度求解属性图中的前k个具有最小直径的顶点集,属于计算机技术、信息技术、社交网络、数据挖掘交叉技术应用领域。



背景技术:

图是描述现实世界各类复杂系统的一种普适模型,且许多实际应用中的图是大规模的。近些年随着信息技术的发展,现实世界的图通常包含丰富的属性信息,产生了一种新类型的图——属性图。在属性图中,如何根据给定的查询属性集,找到包含这些属性且各顶点彼此邻近的顶点集,成为广泛研究的课题。



技术实现要素:

为了解决属性图中top-k最小直径顶点集的查询问题,本发明提供一种基于属性图模型的近邻查询方法,应用渐进式搜索与最少优先算法,求解属性图中top-k最小直径顶点集。

基于属性图模型的近邻查询方法,该方法包括以下步骤:

步骤1)根据用户输入的信息,构建网络中的top-k近邻查询问题的属性图模型G=(V,E,A),其中V是顶点集,E是边集,A是将一个顶点映射到一组属性的函数;所述属性图模型G在建立后,任意两个顶点之间的最短路都有最少需通过的边数,表示两者的邻近度,具体步骤如下:

步骤11)用户输入包含一组属性的查询属性集、顶点集及每个顶点对应的属性集,给定直径约束及最优解的个数要求,其中,用户输入的查询属性集记为Q={a1,a2,…,am},顶点集记为V,每个顶点到对应属性集的映射函数记为A,直径约束记为D,最优解的个数记k,所述m是查询属性集中属性的个数;所述A:其中Α是属性图G中不同属性的总集合,Α={a1,a2,…,an},n表示总集合Α中属性的个数,表示幂集;

步骤12)将顶点集中所有顶点看作属性图模型G=(V,E,A)中的顶点;

步骤13)将顶点u和顶点v之间的路径看作属性图模型G=(V,E,A)两顶点之间的弧,两顶点之间的距离作为顶点u和顶点v之间弧的权值,所述d(u,v)为属性图模型G=(V,E,A)中顶点u和顶点v最短路的权值,且顶点间的距离满足三角不等式;所述u,v∈V;所述三角不等式是指在三角形中,必然有两边之和大于第三边;

步骤14)用Pu表示顶点u所代表的顶点具有的属性集;当aj∈Pu,顶点u具有属性aj,反之当时,顶点u不具有属性aj,所述aj是指第j个属性,其中1≤j≤n;

步骤15)定义X(aj),表示由所有具有属性a的顶点构成的集合,其中|X(aj)|表示X(aj)中的顶点个数;

步骤16)定义V的子集S,其中若则S覆盖查询属性集Q,S为一个查询覆盖顶点集;若不存在S的子集满足覆盖Q条件的情形,则S被称作最小覆盖;

步骤17)定义顶点集S的直径为该顶点集中所有顶点对之间最短距离的最大值,记为diameter(S)=maxu,v∈S{dist(u,v)},所述dist(u,v)表示属性图模型G=(V,E,A)中顶点u和顶点v之间的最短路径长度,所述diameter(S)表示顶点集S的直径;

步骤2)采用渐进式搜索与最少优先算法,获得社交网络组队问题在属性图模型G=(V,E,A)上的解空间,具体步骤如下:

步骤21)定义查询属性集Q的最少属性al,所述al是属性图模型G=(V,E,A)中最少顶点数包含的属性,其中al∈Q;

步骤22)定义顶点u的d邻域为Nd(u),所述Nd(u)是属性图模型G=(V,E,A)中到u的最短距离不超过d的顶点集合;

步骤23)定义索引距离d,并且初始化d=1,所述索引距离d是引入的一个变量,用来辅助求解最小直径顶点集;

步骤24)当解空间中的目标解个数没有达到目标要求k时,逐步放宽索引距离d的大小,再进行顶点集的搜索,直至索引距离不在直径约束范围内;

步骤25)对于最少属性al,计算得到X(al),对于X(al)中的每个顶点v′,求出相应的备选顶点集S′,所述S′是由Nd(v′)中的包含查询属性集Q中除最少属性al之外其他属性的v′与其最近邻居构成的顶点集;

步骤26)计算备选顶点集S′的最小覆盖S″={S″1,S″2,…,S″f,…,S″g},所述S″f表示备选顶点集S′的第f个最小覆盖,其中0≤f≤g;

步骤27)对于S′的每个最小覆盖S″f,若还没有加入到已有解空间中,并且该最小覆盖对应的直径diameter(S″f)不超过直径约束D,则将该最小覆盖保存到解空间Solution中;

步骤28)若解空间中的最小直径顶点集个数没有达到目标要求k,重复步骤24)~步骤27);

步骤29)确定最终解空间Solution,该解空间中包含top-k最小直径顶点集。

本发明利用渐进式搜索与最少优先算法形成高效的top-k近邻查询方法,有如下有益效果:

1)本发明提供一种基于属性图模型的近邻查询方法,其完整的方法过程包括将网络中的top-k近邻查询问题定义成属性图模型,以及采用渐进式搜索与最少优先算法获得解空间。

2)本发明中建模过程中,提供一个或一套较为抽象的图模型,能够将实际问题中的相关求解方法转化为数学化的模型形式。

3)本发明中模型从全局角度求解属性图中的top-k最小直径顶点集,使top-k近邻查询问题最终能够得到k个最优精确解。

4)本发明采用渐进式搜索与最少优先算法,获取目标解后程序可以提前终止,从而有效降低算法时间复杂和空间复杂度。

附图说明

图1为实施例基于属性图模型的近邻查询方法的流程图;

图2为图1中实施例的模型示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

根据附图1,本发明具体实施方式为:

1).将网络中的top-k近邻查询问题定义成属性图模型。

11).输入包含一组属性的查询属性集、顶点集及每个顶点对应的属性集等,构建属性图模型,同时给定直径约束及最优解的个数要求。

其中如图2所示,在属性图模型G=(V,E,A)中,顶点集V={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}。其中,顶点b具有属性{2},顶点u具有属性{1},顶点c具有属性{2},顶点d具有属性{3},顶点g具有属性{3},顶点p具有属性{3},顶点m具有属性{3},顶点w具有属性{1},顶点i具有属性{2,3},顶点v具有属性{1},顶点r具有属性{3},顶点y具有属性{2},其他顶点不具有属性。

其中,查询属性集Q={1,2,3},A={1,2,3}。

设定直径约束D=3,需要求解的最优解个数k=4。

12).将顶点集V={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}中所有顶点看作属性图模型G=(V,E,A)中的顶点。

13).定义V的子集S,其中定义顶点集S的直径为该顶点集中所有顶点对之间最短距离的最大值,记为diameter(S)。

所述属性图模型G在建立后,任意两个顶点之间的最短路都有相应的权值,表示两顶点的邻近度。

2).采用渐进式搜索与最少优先算法,获得社交网络组队问题在属性图模型G=(V,E,A)上的解空间。具体步骤如下:

21).定义查询属性集Q的最少属性al,所述al是属性图模型G=(V,E,A)中最少顶点数包含的属性,其中al∈Q。

22).所示属性图模型中属性总集合A={1,2,3},其中不同属性的个数为3。定义X(a),表示由所有具有属性a的顶点构成的集合,其中|X(a)|表示X(a)中的顶点个数。其中,

对于属性1,X(1)={u,w,v},|X(1)|=3。

对于属性2,X(2)={b,c,i,y},|X(2)|=4。

对于属性3,X(3)={g,d,p,i,m,r},|X(3)|=6。

显然,包含属性1的顶点总数最少,所以此时属性1是最少属性。

22).定义顶点u的d邻域为Nd(u),所述Nd(u)是属性图模型G=(V,E,A)中到u的最短距离不超过d的顶点集合,如Nl(u)={a,b,c,g,u}。

23).定义索引距离d,来辅助筛选直径符合条件的顶点集,其中初始化d=1。

24).当解空间中的目标解个数没有达到目标要求k=4时,逐步放宽索引距离d的大小,即每次加1,然后再进行顶点集的搜索,直至索引距离d不在直径约束范围D=3内。

25).对于最少属性1,计算得到X(1)={u,v,w}。对于X(1)中的每个顶点v′,求出相应的备选顶点集S′,所述S′是由Nd(v′)中的包含查询属性集Q中除最少属性1之外其他属性的v′与其最近邻居构成的顶点集。计算备选顶点集S′的最小覆盖S″={S″1,S″2,…,S″f,…,S″g},所述S″f表示备选顶点集S′的第f个最小覆盖,其中0≤f≤g。对于S′的每个最小覆盖S″f,若它还没有加入到已有解空间中,并且该最小覆盖对应的直径diameter(S″f)不超过直径约束D=3,则将该最小覆盖保存到解空间Solution中。

26).当d=1时,计算得到:

对于顶点u,Nd(u)=Nl(u)={a,b,c,g},得到相应的备选顶点集S′u={u,b,c,g},该备选顶点集的最小覆盖有2个,其中S″1={u,b,g},S″2={u,c,g}。两个最小覆盖均还未包含在解空间Solution中,且两者的最小覆盖对应的直径均为2,不超过直径约束D=3,所以将S″1,S″2加入解空间Solution。即此时Solution={S″1,S″2}={{u,b,g},{u,c,g}}。此时解空间中的目标解个数为2,未达到k=4,继续判断下一个顶点v。

对于顶点v,Nd(v)=Nl(v)={r,x,t,x},不能得到候选覆盖集。此时解空间中的目标解个数仍为2,未达到k=4,继续判断下一个顶点w。

对于顶点w,Nd(w)=Nl(w)={h,m,i,l,j},得到相应的备选顶点集S′w={w,i},该备选顶点集的最小覆盖有1个,其中S″3={w,i}。该最小覆盖均还未包含在解空间Solution中,且该最小覆盖对应的直径大小为1,不超过直径约束D=3,所以将S″3加入解空间Solution。即此时Solution={S″1,S″2,S″3}={{u,b,g},{u,c,g},{w,j}}。此时解空间中的目标解个数为3,未达到k=4,放宽索引距离d,进行加1,即d=2。

26).当d=2时,计算得到:

对于顶点u,Nd(u)=N2(u)={a,b,c,g,e,d},得到相应的备选顶点集S′u={u,b,c,g},该备选顶点集的最小覆盖有2个,其中S″4={u,b,g},S″5={u,c,g}。这两个最小覆盖已经包含在解空间Solution中,所以舍去该轮的解。此时解空间中的目标解个数为3,未达到k=4,继续判断下一个顶点v。

对于顶点v,Nd(v)=N2(v)={r,x,t,x,y},得到相应的备选顶点集S′u={v,r,y},该备选顶点集的最小覆盖有1个,其中S″6={v,r,y}。该最小覆盖均还未包含在解空间Solution中,且该最小覆盖对应的直径大小为3,不超过直径约束D=3,所以将S″6加入解空间Solution。即此时Solution={S″1,S″2,S″3,S″6}={{u,b,g},{u,c,g},{w,i},{v,r,y}}。此时解空间中的目标解个数为4,已达到设定的目标解个数k=4,不再需要判断下一个顶点w,查找完毕并退出搜索。

27).确定最终解空间Solution={S1,S2,S3,S6}={{u,b,g},{u,c,g},{w,i},{v,r,y}},该解空间中包含top-4最小直径顶点集。

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1