当前位置: 首页 > 专利查询>中山大学专利>正文

一种图数据集的流式图划分方法技术

技术编号:38466336 阅读:9 留言:0更新日期:2023-08-11 14:43
本发明专利技术公开一种图数据集的流式图划分方法,包括以下步骤:S1:获取外部数据,所述外部数据形成大规模的图数据;S2:计算所述图数据中顶点的度,按照顶点的度的大小对顶点进行排序后,将顶点按照排序后的顺序输入至流式图划分算法;S3:利用流式图划分算法对输入的顶点进行划分,将顶点划分至目标区间。本发明专利技术对图流的顶点输入顺序进行改进,在保证流式图划分算法的运行速度前提下对其划分质量进行提升,另外还利用之前的分区结果信息对后续迭代进行改进。行改进。行改进。

【技术实现步骤摘要】
一种图数据集的流式图划分方法


[0001]本专利技术涉及图计算
,更具体地,涉及一种图数据集的流式图划分方法。

技术介绍

[0002]在图计算领域中,如何利用有限的计算资源对大规模的图数据进行计算是当今大数据时代背景下的一个重要问题。不断产生的用户行为及网络内容带来了大规模的海量的图数据集,使得单台计算机难以完成计算任务。对于此类问题的典型解决方案是将输入的图数据划分为多个分区,并分配到多台机器上进行计算,以此提高计算效率。因此,如何更好的对图进行划分是分布式图计算中的一个关键问题。
[0003]目前,最为前沿的图划分算法为流式图划分算法及其迭代式版本流式重划分算法。在流式算法中,图数据以顶点流或边流的形式输入算法,算法对其进行线性的扫描,仅利用其局部信息立即执行分配,并不再进行更改。因此,该类算法能取得极快的处理速度并使用相对于图本身大小而言较小的内存。同时,流式算法也存在一些不足。首先,由于其仅利用图的局部信息,并不关注图的整体结构,使其划分质量相较目前最优的离线划分算法(如METIS)仍有一定差距。其次,目前关于流式图划分算法的研究中通常使用随机顺序或BFS/DFS顺序,这些顺序会对算法的划分质量产生显著影响。
[0004]现有技术公开了一种基于并发改进的大规模图数据流式划分方法及系统,包括:工作节点登记同步;代理服务器发送顶点信息;工作节点返回梯度信息;代理服务器发送最优分区信息;工作节点保存分区结果。该方案通过一次发送多个顶点及其相关信息的方法,解决了现有流式图划分方法一次网络时延处理一个顶点的问题,减少网络时延对系统的影响,提高了图划分效率。但是该方案未对流式重划分算法的划分质量有所改进。

技术实现思路

[0005]本专利技术提供一种图数据集的流式图划分方法,保证流式图划分算法的运行速度前提下对其划分质量进行提升。
[0006]为解决上述技术问题,本专利技术的技术方案如下:
[0007]一种图数据集的流式图划分方法,包括以下步骤:
[0008]Sl:获取外部数据,所述外部数据形成大规模的图数据;
[0009]S2:计算所述图数据中顶点的度,按照顶点的度的大小对顶点进行排序后,将顶点按照排序后的顺序输入至流式图划分算法;
[0010]S3:利用流式图划分算法对输入的顶点进行划分,将顶点划分至目标区间。
[0011]上述方案中仅使用顶点的度进行排序,无需利用现有的分区信息,并在多次迭代中保持不变。该静态顺序可使用在仅进行一次迭代的流式图划分算法。
[0012]优选地,所述外部数据为用户行为及网络内容,其中,所述外部数据形成大规模的图数据中,图的顶点为用户,边为用户之间的行为。
[0013]优选地,步骤S2中所述按照顶点的度的大小对顶点进行排序,具体为:
[0014]按照顶点的度的大小对顶点进行降序排序。
[0015]优选地,步骤S3中利用流式图划分算法对输入的顶点进行划分,将顶点划分至目标区间,具体为:
[0016]S3.1:当前输入的顶点为v,计算顶点v的相邻顶点N(v),设定分区数k;
[0017]S3.2:寻找顶点v在第i个分区P
i
的所有相邻顶点,即P
i
∩N(v),i=1,2,...,k;
[0018]S3.3:根据分区P
i
的当前负载计算惩罚项;
[0019]S3.4:根据步骤S3.2的分区P
i
含有的顶点v的相邻顶点数和步骤S3.3的惩罚项,计算分区P
i
的得分;
[0020]S3.4:按照步骤S3.2至S3.4,计算所有k个分区的得分,以得分最大的分区作为划分的结果,将顶点v划分至得分最大的分区;
[0021]S3.5:对输入的每一个顶点,按照步骤S3.1至S3.4,划分至得分最大的分区。
[0022]优选地,步骤S3.3中根据分区P
i
的当前负载计算惩罚项,具体为:
[0023][0024]式中,w(i)为惩罚项,|P
i
|为分区P
i
中当前含有的顶点数,C为分区P
i
所能承载的最大顶点数。
[0025]优选地,步骤S3.4中计算所有k个分区的得分,以得分最大的分区作为划分的结果,将顶点v划分至得分最大的分区,具体为:
[0026]g(v,P
i
)=|P
i
∩N(v)|w(i)
[0027]式中,g(v,P
i
)为顶点v在分区P
i
的得分。
[0028]优选地,步骤S3后,还包括以下步骤:
[0029]S4:根据步骤S3的划分结果,对每个顶点计算如下的a
u
值:
[0030][0031]式中,|N(u)∩V
i
|表示分区V
i
含有的顶点u的相邻顶点数,|N(u)∩V
P(u)
|表示顶点u所在的分区含有的顶点u的相邻顶点数;
[0032]S5:根据每个顶点的a
u
值进行增序排序,作为下次迭代顶点输入的图流顺序;
[0033]S6:使用步骤S3的流式划分算法进行顶点划分,得到当前迭代的划分结果和分区信息;
[0034]S7:以新的分区信息对a
u
值进行重新计算并对顶点重新排序,作为下次迭代的图流顺序;
[0035]S8:重复步骤S4至步骤S7,直到达到预先设定的迭代次数,得到最后的划分结果。
[0036]步骤S3后,得到分区结果,在给定已有的分区情况下,对每个顶点根据其相邻顶点在当前分区和其他分区的分布情况计算一个值,根据该值对所有顶点进行排序,以此作为下次迭代时顶点的图流输入顺序。该顺序在每次迭代前均根据上次迭代的结果重新进行计算。本专利技术所采用的方案,可充分利用已有的分区结果信息,并以图流输入顺序的方式融入到下一次迭代中,从而对流式重划分算法的划分质量带来显著的提升。
[0037]本专利技术还提供一种图数据集的流式图划分系统,所述系统应用上述所述的图数据集的流式图划分方法,所述系统包括:
[0038]数据获取模块,所述数据获取模块用于获取外部数据,所述外部数据形成大规模的图数据;
[0039]第一排序模块,所述排序模块用于计算所述图数据中顶点的度,按照顶点的度的大小对顶点进行排序后,将顶点按照排序后的顺序输入至流式图划分算法;
[0040]第一划分模块,所述第一划分模块利用流式图划分算法对输入的顶点进行划分,将顶点划分至目标区间。
[0041]优选地,所述系统还包括:
[0042]计算模块,所述计算模块根据所述第一划分模块的划分结果,对每个顶点计算如下的a
u
值:
[0043][0044]式中,|N(u)∩V
i
|表示分区V
i
含有本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图数据集的流式图划分方法,其特征在于,包括以下步骤:S1:获取外部数据,所述外部数据形成大规模的图数据;S2:计算所述图数据中顶点的度,按照顶点的度的大小对顶点进行排序后,将顶点按照排序后的顺序输入至流式图划分算法;S3:利用流式图划分算法对输入的顶点进行划分,将顶点划分至目标区间。2.根据权利要求1所述的图数据集的流式图划分方法,其特征在于,所述外部数据为用户行为及网络内容,其中,所述外部数据形成大规模的图数据中,图的顶点为用户,边为用户之间的行为。3.根据权利要求1所述的图数据集的流式图划分方法,其特征在于,步骤S2中所述按照顶点的度的大小对顶点进行排序,具体为:按照顶点的度的大小对顶点进行降序排序。4.根据权利要求3所述的图数据集的流式图划分方法,其特征在于,步骤S3中利用流式图划分算法对输入的顶点进行划分,将顶点划分至目标区间,具体为:S3.1:当前输入的顶点为v,计算顶点v的相邻顶点N(v),设定分区数k;S3.2:寻找顶点v在第i个分区P
i
的所有相邻顶点,即P
i
∩N(v),i=1,2,...,k;S3.3:根据分区P
i
的当前负载计算惩罚项;S3.4:根据步骤S3.2的分区P
i
含有的顶点v的相邻顶点数和步骤S3.3的惩罚项,计算分区P
i
的得分;S3.4:按照步骤S3.2至S3.4,计算所有k个分区的得分,以得分最大的分区作为划分的结果,将顶点v划分至得分最大的分区;S3.5:对输入的每一个顶点,按照步骤S3.1至S3.4,划分至得分最大的分区。5.根据权利要求4所述的图数据集的流式图划分方法,其特征在于,步骤S3.3中根据分区P
i
的当前负载计算惩罚项,具体为:式中,w(i)为惩罚项,|P
i
|为分区P
i
中当前含有的顶点数,c为分区P
i
所能承载的最大顶点数。6.根据权利要求5所述的图数据集的流式图划分方法,其特征在于,步骤S3.4中计算所有k个分区的得分,以得分最大的分区作为划分的结果,将顶点v划分至得分最大的分区,具体为:g(v,P
i
)=|P
i
∩N(v0|w(i)式中,g(v,P
i
)为顶点v在分区P
i
的得分。7.根据权利要求1至6任一项所述的图数据集的流式图划分方法,其特征在于,步骤S3后,还包括以下步骤:S4:根据步骤...

【专利技术属性】
技术研发人员:姚正安施章灿
申请(专利权)人:中山大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1