一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于锚定边的K-Core最大化方法及其应用与流程

2022-07-10 15:20:38 来源:中国专利 TAG:

一种基于锚定边的k-core最大化方法及其应用
技术领域
1.本发明属于复杂网络中k-core计算技术领域,具体涉及一种基于锚定边的k-core最大化方法及其应用。


背景技术:

2.一个图的k-core为图中所有顶点的度数都至少为k的最大连通子图。图被广泛的用于网络建模,例如社交网络中,图的顶点表示用户个体,图的边表示用户之间的关系。近年来,在社交网络中,通过模拟用户继续参与或离开一个群体或社区的行为,用户参与模型受到了广泛的研究。网络的k-core对应于用户参与模型的平衡:当且仅当用户至少有k个朋友处于参与状态时,用户才会保持参与状态。相反,参与的朋友少于k个时,用户会离开,并可能形成一系列的影响,导致整个网络中产生大面积的离开状态,这被称为网络崩溃。
3.k-core的顶点数量反映了网络的稳定性,因此k-core被广泛应用于网络用户参与的稳定性研究。为了阻止和预防网络崩溃,一个基本的操作是为网络中锚定边,这同时可以最大化k-core的数量。如何在给定的可锚定的边的数量限制内,通过连接网络中不相连顶点得到k-core的最大数量被称为加边k-core问题。
4.锚定边的k-core问题可以在现实世界的网络中找多很多应用场景,例如社交网络中的好友推荐系统,电信网络中的通话建设问题,p2p网络中的连接建立问题等等。所以加边k-core问题的研究有着重大的经济、社会和军事意义。
5.然而加边k-core问题被证明为np难和apx难问题,为解决这个问题,chitnis和talmon提出了fpt算法,但是有以下不足之处:首先fpt算法在现实世界的网络图中通常不成立,其次这种解决办法的技术无法扩展到处理一般的图。


技术实现要素:

6.本发明的目的在于克服现有技术的不足,提出了一种基于锚定边的k-core最大化方法。由于问题的复杂性,本发明基于锚定边的k-core最大化方法主要包括了一种带有有效剪枝技术的启发式方法,称之为ekc方法。通过有效剪枝后的ekc方法,在给定的可锚定的边的数量限制下,连接图中不相连的顶点,可以对图的k-core数量准确、有效的最大化。所述方法具体步骤包括如下:
7.步骤(1)对输入的图g或经过迭代后锚定了边的网络图(g a)进行基本的剪枝,提取可以作为候选的边的集合所述剪枝操作是指判断所选的边是否存在跟随顶点(follower),如果存在,则添加至候选集合中,否则忽略;
8.步骤(2)计算图g或经过迭代后锚定了边的网络图的聚合层并通过聚合层对步骤(1)中提取的候选的边的集合进行进一步的过滤;
9.步骤(3)对候选集合中的每一条边e,通过聚合层计算e对应的跟随顶点(follower)的集合并通过边e的跟随顶点集合考虑是否对候选集合进行更
新;其中,更新与否的判断条件为候选集合中是否存在边e1=(u1,v1),其中),其中若存在,则从候选集合中将e1删除;ck(g)表示为图g的k-core;
10.步骤(4)在候选的边的集合中选择拥有跟随顶点数量最多的边e
*
,将e
*
添加到结果集合中,并更新候选集合记录候选集合中每条边所对应的跟随顶点的数量,方便重复利用。如果结果集合中的边的数量尚未达到给定的可锚定的边的数量,则重复步骤(1)到步骤(4)的过程。
11.本发明中,所述基于锚定边的k-core最大化方法是利用锚定边数据使网络图中k-core最大化;其中,所述锚定边数据包括:两个顶点的id。
12.本发明中,所述步骤(1)的具体步骤包括:
13.根据是否存在跟随节点获取候选集合当且仅当边e=(u,v),其中u和v都属于(k-1)-core,且u和v中至少有其中一个属于(k-1)-shell时,边e才会存在至少一个跟随顶点;由于不存在跟随顶点的边不会增大图的k-core大小,所以将不存在跟随顶点的边进行剪枝,将存在跟随顶点的边加入到候选集合中;
14.所述跟随顶点为在锚定一条新的边之后,图g中新加入k-core的顶点;将候选集合中边e的跟随顶点的集合记为跟随顶点的数量大小可以反映锚定的边的重要性。
15.本发明中,所述步骤(2)的具体步骤包括:
16.步骤(2.1)计算聚合层首先计算(k-1)-shell中的顶点所在的最大层级数s,将层级l1到层级ls聚合为聚合层
17.步骤(2.2)通过聚合层过滤候选集合将顶点u在高层级的邻居顶点的数量记为d
*
(u);其中,当顶点u所在的层级小于顶点v所在的层级时,如果d
*
(u)=k-1,则边e=(u,v)至少存在一个跟随顶点;当顶点u所在的层级大于顶点v所在的层级时,如果d
*
(v)=k-1,则边e=(u,v)至少存在一个跟随顶点;当顶点u所在的层级等于顶点v所在的层级时,如果d
*
(u)=d
*
(v)=k-1,则边e=(u,v)至少存在一个跟随顶点;除上述情况外,则边e=u,v)不会存在跟随顶点,可以从候选集合中过滤。
18.所述聚合层为图g的(k-1)-core的层级的聚合。具体地,第一层级l1={u|deg(u,c
k-1
(g))<k},其中deg(u,g)表示为顶点u在图g中的度数,c
k-1
(g)表示为图g的(k-1)-core;迭代地,第i层级li={u|deg(u,gi)<k},其中gi表示为(k-1)-core除去前i层级的子图;所述聚合层可表示为其中s表示为(k-1)-shell中的顶点所在层级的最大层级数。
19.本发明中,所述步骤(3)的具体步骤包括:
20.步骤(3.1)通过聚合层计算边e的跟随顶点集合当锚定了一条边e=(u,v),其中顶点u所在的层级比顶点v所在的层级低时,在聚合层中,从顶点u开始,通过激活顶点u在更高层级上的邻居顶点,逐层生成候选的跟随顶点集合;所述顶点u是第一个激活的顶点,只有被激活的顶点,才可以在更高层级激活它的邻居顶点。在激活的过程中,将顶点u在更高层级的邻居顶点的数量和它在其他层级的已被激活的邻居顶点的数量之和作为顶点u的度数上界,如果度数上界小于k,说明它无法成为一个跟随顶点,则会被删除,同时
其邻居顶点的度数上界也会减1。当边e=(u,v)其中一个顶点被删除时,整个计算结束。
21.步骤(3.2)通过跟随顶点集合更新候选集合对于一条在候选集合中的边e=(u,v),它的跟随顶点的集合为对于另外一条边e1=(u1,v1),其中),其中e1的跟随顶点集合则边e1可以在候选集合中被过滤。
22.本发明还提供了一种上述基于锚定边的k-core最大化方法在社交网络中的应用。
23.本发明与现有技术相比的有益效果包括:提出一种通过锚定边的方法最大化k-core方法,并通过有效的过滤和剪枝手段,可以极大的提高计算效率;将通过锚定边使k-core最大化的方法扩展到一般的网络图和真实世界的网络图中,并且本方法的有效性和效率都可以得到保证。
附图说明
24.图1为本发明基于锚定边的k-core最大化方法的流程图。
25.图2为本发明实施例提供的一个k-core模型社区网络的例子。
26.图3为本发明实施例提供的一个剪枝的例子。
27.图4为本发明实施例提供的一个通过聚合层过滤的例子。
28.图5为本发明在真实世界网络图中的运行结果。
具体实施方式
29.结合以下具体实施例和附图,对发明作进一步的详细说明,以便本领域的技术人员更好地理解本发明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
30.本发明公开了一种基于锚定边的k-core最大化方法,该方法主要包括:对输入的图g或经过迭代后锚定了边的网络图(g a)进行基本的剪枝,提取可以作为候选的边的集合计算图g或经过迭代后锚定了边的网络图(g a)的聚合层并通过聚合层对步骤一中提取的候选的边的集合进行进一步的过滤;对候选集合中的每一条边e,通过聚合层计算它对应的跟随顶点(follower)的集合并通过边e的跟随顶点集合考虑是否对该边e进行剪枝;在候选的边的集合中选择拥有跟随顶点数量最多的边e
*
,将e
*
添加到结果集合中,并更新候选集合记录候选集合中每条边所对应的跟随顶点的数量。如果结果集合中的边的数量尚未达到给定的可锚定的边的数量,则重复上述步骤的过程。本方法的优点是计算效率极高且可以扩展到一般的网络图和真实世界的网络图中。
31.本发明还提供了一种上述基于锚定边的k-core最大化方法在社交网络中的应用。
32.具体地,如图1所示,本发明提出的基于锚定边的k-core最大化方法,包括以下步骤:
33.(1)对输入的图g或经过迭代后锚定了边的网络图(g a)进行基本的剪枝,提取可以作为候选的边的集合
34.(2)计算图g或经过迭代后锚定了边的网络图的聚合层并通过聚合层
对(1)中提取的候选的边的集合进行进一步的过滤;
35.(3)对候选集合中的每一条边e,通过聚合层计算e对应的跟随顶点(follower)的集合并通过边e的跟随顶点集合考虑是否对候选集合进行更新;
36.(4)在候选的边的集合中选择拥有跟随顶点数量最多的边e
*
,将e
*
添加到结果集合中,并更新候选集合记录候选集合中每条边所对应的跟随顶点的数量,方便重复利用。如果结果集合中的边的数量尚未达到给定的可锚定的边的数量,则重复(1)到(4)的过程。
37.实施例
38.参见图2,假设图2是一个含有9个用户和他们之间的关系的社交网络g。用户是否参与这个社区的意愿会影响到他在这个社区中邻居(朋友)的数量,根据k-core模型,假设k=3,v4、v6和v7首先离开,他们的离开导致v5和v8的离开,他们的度数下降到1,小于k。为了提高整个社区网络的稳定性,基于锚定边的k-core模型,可以在v6和v7之间锚定一条边,这种方法可以为社交网络g中生成更大的k-core。基于锚定边的k-core最大化方法的目标就是在给定的锚定边的数量的限制下,使得整个图g中的k-core最大。
39.步骤(1)的具体步骤包括:
40.根据是否存在跟随节点获取候选集合当且仅当边e=(u,v),其中u和v都属于(k-1)-core,且u和v中至少有其中一个属于(k-1)-shell,边e才会存在至少一个跟随顶点。而不存在跟随顶点的边,不会增大图的k-core大小,所以将不存在跟随顶点的边进行剪枝,将存在跟随顶点的边加入到候选集合中;
41.如图3所示,假设k=3,则3-corec3(g)={v0,v1,v5,v6},2-shellh2(g)={v2,v3,v7,v8}。只需考虑边e=(u,v),或e=(v,u)作为候选集合中的边。其中u∈h2(g),v∈v(c2(g))=v(c3(g)∪h2(g))。例如边e=(v4,v9)则不会被考虑,也就是被过滤了。
42.步骤(2)的具体步骤包括:
43.步骤(2.1)计算聚合层首先计算(k-1)-shell中的顶点所在的最大层级数s。将层级l1到层级ls聚合为聚合层算法1展示了详细的计算聚合层的过程。
44.算法1计算聚合层算法
[0045][0046]
步骤(2.2)通过聚合层过滤候选集合:将顶点u在高层级的邻居顶点的数量记为d
*
(u)。其中,当顶点u所在的层级小于顶点v所在的层级时,如果d
*
(u)=k-1,则边e=(u,v)至少存在一个跟随顶点;当顶点u所在的层级大于顶点v所在的层级时,如果d
*
(v)=k-1,则边e=(u,v)至少存在一个跟随顶点;当顶点u所在的层级等于顶点v所在的层级时,如果d*(u)=d
*
(v)=k-1,则边e=(u,v)至少存在一个跟随顶点;除上述情况外,则边e=(u,v)不会存在跟随顶点,可以从候选集合中过滤。
[0047]
如图4所示,假设k=3,层级1包含v3和v8,层级2包含v2和v7。d
*
(v2)=2,而d
*
(v7)=1,所以边e1=(v2,v7)不会存在跟随顶点,可以从候选集合中过滤出去。相反,d
*
(v3)=2,d
*
(v8)=2,所以边e2=(v3,v8)至少存在一个跟随顶点,则不会被过滤。
[0048]
本发明中,所述步骤(3)的具体步骤包括:
[0049]
步骤(3.1)通过聚合层计算边e的跟随顶点集合当锚定了一条边e=(u,v),其中顶点u所在的层级比顶点v所在的层级低时,在聚合层中,从顶点u开始,通过激活顶点u在更高层级上的邻居顶点,逐层生成候选的跟随顶点集合。所述顶点u是第一个激活的顶点,只有被激活的顶点,才可以在更高层级激活它的邻居顶点。在激活的过程中,将顶点u在更高层级的邻居顶点的数量和它在其他层级的已被激活的邻居顶点的数量之和作为顶点u的度数上界,如果度数上界小于k,说明它无法称为一个跟随顶点,则会被删除,同时其邻居顶点的度数上界也会减1。当边e=(u,v)其中一个顶点被删除时,整个计算结束。算法2展示了详细的计算跟随顶点集合的过程。
[0050]
算法2计算跟随顶点集合算法
[0051][0052]
步骤(3.2)通过跟随顶点集合更新候选集合对于一条在候选集合中的边e=(u,v),它的跟随顶点的集合为对于另外一条边e1=(u1,v1),其中),其中e1的跟随顶点集合则边e1可以在候选集合中被过滤。
[0053]
如图4所示,边e=(v3,v8)的跟随顶点集合为而边e1=(v2,v7)的跟随顶点集合所以边e1=(v2,v7)不会作为候选的边,而是会被过滤。
[0054]
在候选的边的集合中选择拥有跟随顶点数量最多的边e
*
,将e
*
添加到结果集合中,并更新候选集合记录候选集合中每条边所对应的跟随顶点的数量,方便重复利用。如果结果集合中的边的数量尚未达到给定的可锚定的边的数量,则重复(1)到(4)的过程。
[0055]
当完成一次迭代后,得到最佳的锚定的边e和迭代中候选集合中的每条边的跟随顶点的数量。这些结果是可以重复利用的,因为(k-1)-shell中的一些连通分量可以在锚定一条边后保持相同的拓扑结构。对于那些没有与e发生关联的连通分量s,可以在s中记录下一个候选锚定边的最大跟随顶点的数量,方便下一次迭代。
[0056]
本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保
护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献