一种面向大规模幂律分布图的分割方法技术

技术编号:19821974 阅读:29 留言:0更新日期:2018-12-19 14:46
本发明专利技术公开了一种面向大规模幂律分布图的分割方法,具体涉及图数据分割技术领域,其解决了现有的分割算法严重影响分布式图计算方法的效率的不足。该面向大规模幂律分布图的分割方法更加适应社交网络图,针对其具体的图结构特性,能够得到较好的分割结果;分割后的各子图一方面能够满足负载均衡,另一方面能够最小化通信开销,此方法能够应用于多种实际场合,比如进行社交网络分析、社区发现、知识或消息传播。

【技术实现步骤摘要】
一种面向大规模幂律分布图的分割方法
本专利技术涉及图数据分割
,具体涉及一种面向大规模幂律分布图的分割方法。
技术介绍
随着社交网络、交通网络、通信网络等的飞速发展,图结构数据分析的重要性日益突出。同时,图结构数据的规模越来越大,分布式计算成为处理大规模图数据的有效手段。在分布式图计算中,如何对图数据进行分割,以使得各个并行计算节点之间的通信量达到最小且保障各个计算节点的负载均衡,是进行分布式图计算的基础。目前,常用的算法有KL算法、FM算法、谱划分方法等集中式分割算法,Hash算法、BLP算法等分布式分割算法。集中式算法计算复杂度高,难以适用于分布式计算环境;而现有的分布式算法没有考虑图的特点,导致计算节点间的通信量过大。实际上,由社交网络、交通网络、通信网络等构建的图数据,通常都是一种大规模幂律分布图,即图的顶点数和边数庞大、顶点度服从幂律分布。此时,传统的分割算法将严重影响分布式图计算算法的效率。
技术实现思路
本专利技术的目的是针对上述不足,提出了一种通过根据图的结构特性进行合理分割,实现分割后各计算节点的负载均衡,并降低分布式运算的通信开销,提高计算效率的面向大规模幂律分布图的分割方法。本专利技术具体采用如下技术方案:一种面向大规模幂律分布图的分割方法,具体包括以下步骤,输入图G=(V,E),其中,V={v1,v2,…,vn},E={(u,v)|u∈V∧v∈V},V为图的顶点集合,E为图的边集合,D={di|di=|{u|(u,vi)∈E}|}为顶点的度的集合,di为顶点vi的度;步骤一:对图中所有顶点按度数进行排序,使得排序之后顶点的度数满足di≥dj,i<j;步骤二:取Vlarge={vi|di≥λ},其中λ为给定的一个顶点度的阈值,设Vlarge={u1,u2,…,um};步骤三:假设将图分为k个子图{P1,P2,…,Pk},且m≥k,将Vlarge中的顶点ui放入Pj中,其中j=imodk;步骤四:对于每个分区Pj(j=1,2,…,k)中的每一个顶点v,对{u|(u,v)∈E}中的每一个顶点u,如果u尚未放入任何一个分区中,则将u放入分区Pj中;步骤五:使用模拟退火算法对上述分区结果进行调优,具体包括:⑤:设定温度初始值T,温度最小值Tmin,每个T值迭代次数的迭代次数L;⑥:取l=1;⑦:取j=1;⑧:取i=min{a|a∈[0,k]∧i≠j};⑤:对于顶点v∈Pj,计算能量差ΔE=OE(Pnew)-OE(Pold),其中OE(Pold)是指未调整分区前交互边的条数,OE(Pnew)是将顶点v移动到分区Pi(i≠j)后交互边的条数;交互边是指满足((u,v)∈E∧u∈Pi∧v∈Pj∧i≠j)的边;⑥:若ΔE<0,则将v转移到Pi中,否则计算转移概率若p>Random[0,1),则将v转移到Pi中,否则不转移;⑦:取i=i+1,若i=j,则继续取i=i+1;⑧:若i≤k,则转至⑤,否则取j=j+1,若j≤k,则转至④,否则继续进行⑨;⑨:l=l+1,若l≤L,则转至③,否则进行⑩;⑩:取T=αT(0<α<1),若T<Tmin,则输出当前的分区结果,否则进行②;步骤六:取j=1;步骤七:对于每个顶点v∈Pj,对{u|(u,v)∈E}中的每一个顶点u,如果u尚未放入任何一个分区中,则将u放入分区Pj中,若u已在其他分区Pi(i≠j)中,则进行步骤八;步骤八:判断Pj和Pi中的顶点个数,如果两个分区中的顶点个数相差超过δ,则u移动到Pj中,否则u保留在Pi中;步骤九:取j=j+1,若j≤k,则进行步骤七,否则继续步骤十;步骤十:若仍有顶点未划分,则进行步骤六,否则结束。本专利技术具有如下有益效果:本专利技术与现有图分割算法相比,具有以下优势:相较于集中式分割算法,此专利技术能够处理更大规模的图数据。与传统的分布式分割方法相比,该面向大规模幂律分布图的分割方法更加适应社交网络图,针对其具体的图结构特性,能够得到较好的分割结果;分割后的各子图一方面能够满足负载均衡,另一方面能够最小化通信开销,此方法能够应用于多种实际场合,比如进行社交网络分析、社区发现、知识或消息传播。附图说明图1为面向大规模幂律分布图的分割方法的流程图。具体实施方式下面结合附图和具体实施例对本专利技术的具体实施方式做进一步说明:如图1所示,一种面向大规模幂律分布图的分割方法,具体包括以下步骤,输入图G=(V,E),其中,V={v1,v2,…,vn},E={(u,v)|u∈V∧v∈V},V为图的顶点集合,E为图的边集合,D={di|di=|{u|(u,vi)∈E}|}为顶点的度的集合,di为顶点vi的度;步骤一:对图中所有顶点按度数进行排序,使得排序之后顶点的度数满足di≥dj,i<j;步骤二:取Vlarge={vi|di≥λ},其中λ为给定的一个顶点度的阈值,设Vlarge={u1,u2,…,um};步骤三:假设将图分为k个子图{P1,P2,…,Pk},且m≥k,将Vlarge中的顶点ui放入Pj中,其中j=imodk;步骤四:对于每个分区Pj(j=1,2,…,k)中的每一个顶点v,对{u|(u,v)∈E}中的每一个顶点u,如果u尚未放入任何一个分区中,则将u放入分区Pj中;步骤五:使用模拟退火算法对上述分区结果进行调优,具体包括:⑨:设定温度初始值T,温度最小值Tmin,每个T值迭代次数的迭代次数L;⑩:取l=1;取j=1;取i=min{a|a∈[0,k]∧i≠j};⑤:对于顶点v∈Pj,计算能量差ΔE=OE(Pnew)-OE(Pold),其中OE(Pold)是指未调整分区前交互边的条数,OE(Pnew)是将顶点v移动到分区Pi(i≠j)后交互边的条数;交互边是指满足((u,v)∈E∧u∈Pi∧v∈Pj∧i≠j)的边;⑥:若ΔE<0,则将v转移到Pi中,否则计算转移概率若p>Random[0,1),则将v转移到Pi中,否则不转移;⑦:取i=i+1,若i=j,则继续取i=i+1;⑧:若i≤k,则转至⑤,否则取j=j+1,若j≤k,则转至④,否则继续进行⑨;⑨:l=l+1,若l≤L,则转至③,否则进行⑩;⑩:取T=αT(0<α<1),若T<Tmin,则输出当前的分区结果,否则进行②;步骤六:取j=1;步骤七:对于每个顶点v∈Pj,对{u|(u,v)∈E}中的每一个顶点u,如果u尚未放入任何一个分区中,则将u放入分区Pj中,若u已在其他分区Pi(i≠j)中,则进行步骤八;步骤八:判断Pj和Pi中的顶点个数,如果两个分区中的顶点个数相差超过δ,则u移动到Pj中,否则u保留在Pi中;步骤九:取j=j+1,若j≤k,则进行步骤七,否则继续步骤十;步骤十:若仍有顶点未划分,则进行步骤六,否则结束。很多领域中的图都是大规模幂律分布图。以某大学公开的SNAP图数据库中的部分表征社交网络等关系的图数据为例,设定每个图中顶点度数的最大值为dmax,采用该分隔方法阈值λ=0.1×dmax,表1给出了它们的顶点数、边数和顶点集合Vlarge中的顶点数量。表1图名称顶点数量边数量Vlarge中的顶点数量p2p-Gnutella0410876399945p2p-Gnutella2522687547057p2p-Gnutella30366本文档来自技高网...

【技术保护点】
1.一种面向大规模幂律分布图的分割方法,具体包括以下步骤,其特征在于,输入图G=(V,E),其中,V={v1,v2,…,vn},E={(u,v)|u∈V∧v∈V},V为图的顶点集合,E为图的边集合,D={di|di=|{u|(u,vi)∈E}|}为顶点的度的集合,di为顶点vi的度;步骤一:对图中所有顶点按度数进行排序,使得排序之后顶点的度数满足di≥dj,i<j;步骤二:取Vlarge={vi|di≥λ},其中λ为给定的一个顶点度的阈值,设Vlarge={u1,u2,…,um};步骤三:假设将图分为k个子图{P1,P2,…,Pk},且m≥k,将Vlarge中的顶点ui放入Pj中,其中j=i mod k;步骤四:对于每个分区Pj(j=1,2,…,k)中的每一个顶点v,对{u|(u,v)∈E}中的每一个顶点u,如果u尚未放入任何一个分区中,则将u放入分区Pj中;步骤五:使用模拟退火算法对上述分区结果进行调优,具体包括:①:设定温度初始值T,温度最小值Tmin,每个T值迭代次数的迭代次数L;②:取l=1;③:取j=1;④:取i=min{a|a∈[0,k]∧i≠j};⑤:对于顶点v∈Pj,计算能量差ΔE=OE(Pnew)‑OE(Pold),其中OE(Pold)是指未调整分区前交互边的条数,OE(Pnew)是将顶点v移动到分区Pi(i≠j)后交互边的条数;交互边是指满足((u,v)∈E∧u∈Pi∧v∈Pj∧i≠j)的边;⑥:若ΔE<0,则将v转移到Pi中,否则计算转移概率...

【技术特征摘要】
1.一种面向大规模幂律分布图的分割方法,具体包括以下步骤,其特征在于,输入图G=(V,E),其中,V={v1,v2,…,vn},E={(u,v)|u∈V∧v∈V},V为图的顶点集合,E为图的边集合,D={di|di=|{u|(u,vi)∈E}|}为顶点的度的集合,di为顶点vi的度;步骤一:对图中所有顶点按度数进行排序,使得排序之后顶点的度数满足di≥dj,i<j;步骤二:取Vlarge={vi|di≥λ},其中λ为给定的一个顶点度的阈值,设Vlarge={u1,u2,…,um};步骤三:假设将图分为k个子图{P1,P2,…,Pk},且m≥k,将Vlarge中的顶点ui放入Pj中,其中j=imodk;步骤四:对于每个分区Pj(j=1,2,…,k)中的每一个顶点v,对{u|(u,v)∈E}中的每一个顶点u,如果u尚未放入任何一个分区中,则将u放入分区Pj中;步骤五:使用模拟退火算法对上述分区结果进行调优,具体包括:①:设定温度初始值T,温度最小值Tmin,每个T值迭代次数的迭代次数L;②:取l=1;③:取j=1;④:取i=min{a|a∈[0,k]∧i≠j};⑤:对于顶点v∈Pj,计算能量差ΔE=...

【专利技术属性】
技术研发人员:崔焕庆牛健魏永山张峰徐强荣炫宇
申请(专利权)人:山东科技大学
类型:发明
国别省市:山东,37

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

1