一种基于k-core集散结构的社交网络事件流通信方法与流程

文档序号:14527286阅读:1001来源:国知局

本发明属于图计算领域,更具体地,涉及一种基于k-core集散结构的社交网络事件流通信方法。



背景技术:

在过去的十几年里,社交网络应用迅速普及,主流社交网络应用拥有大量的活跃用户。一个在线社交网络系统为用户提供两个基本操作:分享新事件及浏览好友更新的事件流。事件流的更新占据了大型社交网络的主要工作负载。在社交网络系统中,用户相关的数据是以用户为单位的视图方式进行存储的,而用户及其好友的视图通常分布在不同的服务器上,这使得大量社交网络用户以及他们之间错综复杂的联系会在进行事件流通信时产生大量服务器间的通信开销。因此在社交网络系统中如何进行高效的事件流通信是一个有挑战性的难题。现有技术存在无法在改善通信开销的同时减少计算复杂度的技术问题。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于k-core集散结构的社交网络事件流通信方法,由此解决现有技术存在无法在改善通信开销的同时减少计算复杂度的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种基于k-core集散结构的社交网络事件流通信方法,包括:

(1)对于社交图,利用k-core算法得到core值最大的点集;

(2)根据社交图和core值最大的点集,得到点集中每个点的密集子中心结构的密度,将密度最大的密集子中心结构的中心点记为c;

(3)对以c点为中心点的密集子中心结构的边进行调度,得到用户之间的通信策略;

(4)将社交图的c点和已进行调度的边去掉,重复步骤(1)-(3),直至得到社交图中所有用户之间的通信策略。

进一步的,社交图为:g=(v,e),v表示社交网络中的所有用户,在社交图中用点表示,e表示社交图中的用户关系,在社交图中用边表示。

进一步的,步骤(1)包括:

(1-1)获取社交图中的所有点的度,根据顶点的度对所有点排序,删掉度最小的点以及度最小的点所在的边,度最小的点的core值就是它们当前的度;

(1-2)对社交图删去度最小的点后剩下的点重新计算度数,重复步骤(1-1)直到社交图中所有的点都被删掉,得到社交图的core值最大的点集。

进一步的,步骤(2)包括:

对于core值最大的点集中的点,利用pregel并行执行步骤(2-1)-(2-3),得到点集中每个点的密集子中心结构的密度,将密度最大的密集子中心结构的中心点记为c,

(2-1)根据社交图和core值最大的点集,得到core值最大的点集中的点u、点u的邻居点、点u与邻居点相连的边和邻居点之间相连的边构成以点u为中心点的中心结构,进而得到中心结构的初始密度占u与邻居点相连的边和邻居点之间相连的边之和为中心结构的边的条数e,点u和点u的邻居点之和为中心结构的点的个数v;

(2-2)去掉中心结构中度最小的点以及与该点相连的边,得到当前中心结构,重新计算当前中心结构的密度d’;

(2-3)重复步骤(2-2),直到以u为中心点的中心结构中的点被全部去掉,在整个过程中,密度最大的时候对应的中心结构为以u为中心点的最大密集子中心结构。

进一步的,步骤(3)包括:

以c点为中心点的密集子中心结构中除了c点以外的点为其他点,其他点包括点x和点y,对于从点x指向c点的边,赋为push边,push边上的两个用户之间的通信策略为push策略;对于从c点指向点y的边,赋为pull边,pull边上的两个用户之间的通信策略为pull策略;对于从点x指向点y的边或者从点y指向点x的边,即是通过pigggyback结构省略的边,不需要赋予通信策略。

附图说明

图1是本发明实施例提供的一种基于k-core集散结构的社交网络事件流通信方法的流程图;

图2是本发明实施例提供的求core值最大的点u的密集子中心结构的流程图;

图3是本发明实施例提供的对密集子中心结构的边进行调度的示意图;

图4是本发明实施例提供的用k-core算法找出core值最大的点集;

图5(a)是本发明实施例提供的core值最大的点2的密集子中心结构示意图;

图5(b)是本发明实施例提供的core值最大的点3的密集子中心结构示意图;

图5(c)是本发明实施例提供的core值最大的点4的密集子中心结构示意图;

图5(d)是本发明实施例提供的core值最大的点5的密集子中心结构示意图;

图5(e)是本发明实施例提供的core值最大的点6的密集子中心结构示意图;

图6是本发明实施例提供的以点5为中心点的密集子中心结构的边的调度示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图1所示,本发明提供了一种基于k-core集散结构的社交网络事件流通信方法,包括以下步骤:

(1)对于社交图,利用k-core算法得到core值最大的点集;

(2)根据社交图和core值最大的点集,得到点集中每个点的密集子中心结构的密度,将密度最大的密集子中心结构的中心点记为c;

(3)对以c点为中心点的密集子中心结构的边进行调度,得到用户之间的通信策略;

(4)将社交图的c点和已进行调度的边去掉,重复步骤(1)-(3),直至得到社交图中所有用户之间的通信策略。

进一步的,社交图为:g=(v,e),v表示社交网络中的所有用户,在社交图中用点表示,e表示社交图中的用户关系,在社交图中用边表示。

步骤(1)包括:

(1-1)获取社交图中的所有点的度,根据顶点的度对所有点排序,删掉度最小的点以及度最小的点所在的边,度最小的点的core值就是它们当前的度;

(1-2)对社交图删去度最小的点后剩下的点重新计算度数,重复步骤(1-1)直到社交图中所有的点都被删掉,得到社交图的core值最大的点集。

如图2所示,为求core值最大的点u的密集子中心结构的流程图;包括以下步骤:

对于core值最大的点集中的点,利用pregel并行执行步骤(2-1)-(2-3),得到点集中每个点的密集子中心结构的密度,将密度最大的密集子中心结构的中心点记为c,

(2-1)根据社交图和core值最大的点集,得到core值最大的点集中的点u、点u的邻居点、点u与邻居点相连的边和邻居点之间相连的边构成以点u为中心点的中心结构,进而得到中心结构的初始密度占u与邻居点相连的边和邻居点之间相连的边之和为中心结构的边的条数e,点u和点u的邻居点之和为中心结构的点的个数v;

(2-2)去掉中心结构中度最小的点以及与该点相连的边,得到当前中心结构,重新计算当前中心结构的密度d’;

(2-3)重复步骤(2-2),直到以u为中心点的中心结构中的点被全部去掉,在整个过程中,密度最大的时候对应的中心结构为以u为中心点的最大密集子中心结构。

如图3所示,为本发明对密集子中心结构的边进行调度的示意图,包括以下步骤:

以c点为中心点的密集子中心结构中除了c点以外的点为其他点,其他点包括点x和点y,对于从点x指向c点的边,赋为push边,push边上的两个用户之间的通信策略为push策略;对于从c点指向点y的边,赋为pull边,pull边上的两个用户之间的通信策略为pull策略;对于从点x指向点y的边或者从点y指向点x的边,即是通过pigggyback结构省略的边,不需要赋予通信策略。

图4是本发明实施例提供的用k-core算法找出core值最大的点集;图5(a)是本发明实施例提供的core值最大的点2的密集子中心结构示意图;图5(b)是本发明实施例提供的core值最大的点3的密集子中心结构示意图;图5(c)是本发明实施例提供的core值最大的点4的密集子中心结构示意图;图5(d)是本发明实施例提供的core值最大的点5的密集子中心结构示意图;图5(e)是本发明实施例提供的core值最大的点6的密集子中心结构示意图;图6是本发明实施例提供的以点5为中心点的密集子中心结构的边的调度示意图。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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