一种基于亲和聚类的分布式大图划分方法技术

技术编号:28978920 阅读:31 留言:0更新日期:2021-06-23 09:25
本发明专利技术涉及一种基于亲和聚类的分布式大图划分方法,主要针对无权无向图划分处理,基于Boruvka算法层次亲和平衡图聚类将图初始划分为指定的k个子图,以顶点相似度作为距离度量,迭代合并距离较近的两类顶点,并移去子图中邻点相似度和值最小的顶点以约束规模过大的子图,在没有后续优化的情况下,划分质量也接近于现有的大图划分方法;并且针对大规模子图之间的割边率优化问题,本发明专利技术设计了降维的操作,通过将初始划分的结果映射为顶点序列并切分为一定数量的子片,随机选择相邻子图中的两个子片,根据互交换正收益及单点正收益迁移顶点,以此达到优化割边率的目的。

【技术实现步骤摘要】
一种基于亲和聚类的分布式大图划分方法
:本专利技术涉及计算机
,具体涉及一种基于亲和聚类的分布式大图划分方法。
技术介绍
:从20世纪90年代初期至今,国内外研究者不断对图划分及其相关问题进行深入研究,提出了许多性能较好的图划分算法。目前图划分研究主要分为离线划分、流式划分以及动态重划分。但是,这些算法通常是集中式算法,这样便于维护复杂的启发式规则,保证相对较好的划分效果,但其扩展性显然受到单计算机节点处理能力的限制,且面对大规模的图划分,不管是离线算法还是流式算法,由于单计算节点内存容量的限制,必然会降低计算性能。由于分布式系统的协同高效性且分布式资源获取变得越来越方便,研究者们逐渐从单计算节点的图划分工作转为并行图划分的研究。最典型的是多层次算法Metis及其并行版本ParMetis,该算法包括三个执行步骤:粗化、初始划分和细化:1)粗化阶段;通过将输入图的某些节点聚合成一个节点来逐步构建一系列的缩并图,每次生成的缩并图作为下一级缩并过程的输入,最终得到一个规模足够小的图,其节点数与边数都较少;2)初始划分阶段;在粗化过程最终生成的图上,选择现有的某种图划分算法计算k路划分,由于该图规模较小,此过程较快;3)细化阶段;将划分后的缩并图沿着缩并阶段的逆过程,逐步还原到原始输入图,由于基于粗化图的划分结果不一定是原始图的最佳划分,所以将粗化图逆向映射回原图过程中的每一级还原的同时,利用KL/FM等启发式算法对割边率进行局部优化,直至最终得到原始图的一个划分。该算法广泛应用在各类图的划分,对于百万规模以内的图,通常具有较好的实际效果,与之类似的算法还包括Chaco和Scotch。许多研究者针对Metis的三个主要步骤分别进行了改进:如在Metis粗化阶段采用标签传播算法对大图进行压缩,这样将具有社区结构的顶点归为一类,在提高划分效率的基础上且提高了划分质量;还有将进化算法应用在初始划分及细化阶段,提高划分质量,类似的方法还有MITS算法。还有一些研究关于元启发式的并行图划分方法,Ugander等人使用基于社区挖掘领域的标签传播算法来解决大图划分问题,称为BLP算法,通过顶点转移再定位,转移那些增益较大的节点。它将一个最大凹优化问题转化为线性规划问题,既保证了分区平衡,又保证了边的局部性。但线性规划的时间复杂度高,每次迭代都需要解线性规划问题。Claudio等人提出了Spinner算法,也是基于标签传播模型的方法,在分布式环境下对大规模图数据进行平衡划分,类似的还有PuLP算法。但是在标签传播算法中,当周围相同ID的标签数量相等时,此时顶点ID的选择具有随机性,因此这些算法会导致划分结果的不稳定。有研究者设计了PSA-MIR算法,通过并行化模拟退火及Tabu搜索的混合策略对图进行划分,但是对于大图而言,由于搜索空间很大,此方法需要大量的迭代次数,即使在并行环境下,划分效率也不是很理想。鉴于已有的分布式图划分方法对大图划分效率并不理想,为了提升大图划分效率,有效解决大规模图的划分问题,本专利技术针对无权无向图,通过分布式处理,提出一种基于亲和聚类的分布式大图划分方法,本案由此而生。
技术实现思路
:本专利技术针对无权无向图,采用分布式处理,提出一种基于亲和聚类的分布式大图划分方法,其采用的技术方案为:一种基于亲和聚类的分布式大图划分方法,包括以下步骤:步骤1:输入无权无向图数据G;步骤2:采用基于Boruvka算法的层次亲和平衡划分对输入的图数据进行初始划分,即:采用Boruvka最小生成树算法根据顶点相似度对输入图进行约束条件下的平衡图聚类,将图G划分为顶点数相同的k个子图,令每个子图中的顶点距离小于划分前;步骤3:对高维网络进行降维处理,即:将生成的k个子图映射为一维空间的顶点序列,令距离最近的两点靠在一起,以此方式完成一维顶点序列的排列;步骤4:将每个计算节点中的顶点序列划分为一定数量的子片,划分时以每个子片中含有顶点的数量尽量少为原则;步骤5:采用顶点转移策略优化割边数,即:随机选择相邻计算节点中的两个子片,按照互交换正收益交换顶点,并不断的迭代此过程,直到割边数趋于稳定则停止迭代;步骤6:采用单点不平衡迁移优化割边数,即:在给定的负载不平衡系数下,随机选择相邻计算节点中的两个子片,按照单点正收益迁移顶点,并不断的迭代此过程,直到割边数趋于稳定或者到达指定的迭代次数下停止迭代;步骤7:输出划分结果。进一步,所述步骤2中两个顶点之间的距离计算根据下式进行:上式中,u和v分别表示两个顶点,w(u,v)表示顶点u和v之间的距离;commonNeihborsuv表示顶点v和u的公共邻居数,两顶点之间的公共邻居数通过计算边的三角形个数来求得;Du和Dv分别表示顶点u和v的度数。进一步,所述步骤2中将图G划分为k个子图时,需采用约束条件平衡子图规模,令k个子图之间规模相等,具体方法如下:将划分的k个子图称为近邻子图,用符号ψ表示,顶点的数量用|Vψ|表示,任意选择ψ中某一顶点v,在子图ψ中存在与其互为邻居的顶点u,这两点的距离最近,当近邻子图的规模达到平均负载时,即满足|Vψ|=n/k,称之为最大近邻子图,用符号ψmax表示,n表示图G的顶点数;对于近邻子图ψ中的某一顶点v∈Vψ,近邻子图中v的邻点v1∈Vψ,…,vn∈Vψ与顶点v的距离分别表示为w(v,v1),……,w(v,vn),则此点v在ψ中的邻点相似度和值为totalv',即totalv'=w(v,v1)…+w(v,vn),邻点相似度和值公式如下:对于划分后的k个顶点数相同的近邻子图中,将顶点数最小的子图采用单链聚类或全链聚类或平均链聚类算法与其他子图进行合并处理;对于超过平均负载的子图,即子图中的顶点数超过|Vψ|,则按照公式(2)计算该子图中所有点的邻点相似度和值,逐个删除邻点相似度和值最小的点并不断的迭代计算,直到减少到与最大邻近子图的规模相等为止,被删除的顶点再通过聚类算法合并到其他子图中。进一步,所述步骤3中的降维处理采用空间填充曲线方法进行。进一步,所述空间填充曲线是指皮亚诺曲线,或莫尔顿曲线,或希尔伯特曲线。进一步,所述步骤5中的顶点转移策略采用互交换操作方式,即交换相邻两个计算节点中的顶点,具体方法如下:首先计算两个计算节点中任意两个顶点交换所获得的收益值,按照收益值对顶点对从高到低进行排序,选择收益值最大的且大于零的两个顶点进行交换,交换完毕更新这两个顶点的邻居节点,迭代计算直到两个计算节点中任意两个顶点的互交换收益值小于或等于零。进一步,所述两个顶点交换所获得的收益值用Swap(vi,vj)表示,根据下式计算:上式中,vi和vj表示两个顶点,E表示图G中的边集;πi和πj表示两个计算节点,g(vi,πj)表示顶点vi从所在计算节点πlccal迁移到另一个计算节点πj时的单点收益值;g(vj,πi)表示顶点vj从所在计算节点πlccal迁移到另一个计算节点πi时的单点收益本文档来自技高网
...

【技术保护点】
1.一种基于亲和聚类的分布式大图划分方法,其特征在于:包括以下步骤:/n步骤1:输入无权无向图数据G;/n步骤2:采用基于Boruvka算法的层次亲和平衡划分对输入的图数据进行初始划分,即:采用Boruvka最小生成树算法根据顶点相似度对输入图进行约束条件下的平衡图聚类,将图G划分为顶点数相同的k个子图,令每个子图中的顶点距离小于划分前;/n步骤3:对高维网络进行降维处理,即:将生成的k个子图映射为一维空间的顶点序列,令距离最近的两点靠在一起,以此方式完成一维顶点序列的排列;/n步骤4:将每个计算节点中的顶点序列划分为一定数量的子片,划分时以每个子片中含有顶点的数量尽量少为原则;/n步骤5:采用顶点转移策略优化割边数,即:随机选择相邻计算节点中的两个子片,按照互交换正收益交换顶点,并不断的迭代此过程,直到割边数趋于稳定则停止迭代;/n步骤6:采用单点不平衡迁移优化割边数,即:在给定的负载不平衡系数下,随机选择相邻计算节点中的两个子片,按照单点正收益迁移顶点,并不断的迭代此过程,直到割边数趋于稳定或者到达指定的迭代次数下停止迭代;/n步骤7:输出划分结果。/n

【技术特征摘要】
1.一种基于亲和聚类的分布式大图划分方法,其特征在于:包括以下步骤:
步骤1:输入无权无向图数据G;
步骤2:采用基于Boruvka算法的层次亲和平衡划分对输入的图数据进行初始划分,即:采用Boruvka最小生成树算法根据顶点相似度对输入图进行约束条件下的平衡图聚类,将图G划分为顶点数相同的k个子图,令每个子图中的顶点距离小于划分前;
步骤3:对高维网络进行降维处理,即:将生成的k个子图映射为一维空间的顶点序列,令距离最近的两点靠在一起,以此方式完成一维顶点序列的排列;
步骤4:将每个计算节点中的顶点序列划分为一定数量的子片,划分时以每个子片中含有顶点的数量尽量少为原则;
步骤5:采用顶点转移策略优化割边数,即:随机选择相邻计算节点中的两个子片,按照互交换正收益交换顶点,并不断的迭代此过程,直到割边数趋于稳定则停止迭代;
步骤6:采用单点不平衡迁移优化割边数,即:在给定的负载不平衡系数下,随机选择相邻计算节点中的两个子片,按照单点正收益迁移顶点,并不断的迭代此过程,直到割边数趋于稳定或者到达指定的迭代次数下停止迭代;
步骤7:输出划分结果。


2.根据权利要求1所述的一种基于亲和聚类的分布式大图划分方法,其特征在于:所述步骤2中两个顶点之间的距离计算根据下式进行:



上式中,u和v分别表示两个顶点,w(u,v)表示顶点u和v之间的距离;commonNeihborsuv表示顶点v和u的公共邻居数,两顶点之间的公共邻居数通过计算边的三角形个数来求得;Du和Dv分别表示顶点u和v的度数。


3.根据权利要求2所述的一种基于亲和聚类的分布式大图划分方法,其特征在于:所述步骤2中将图G划分为k个子图时,需采用约束条件平衡子图规模,令k个子图之间规模相等,具体方法如下:
将划分的k个子图称为近邻子图,用符号ψ表示,顶点的数量用|Vψ|表示,任意选择ψ中某一顶点v,在子图ψ中存在与其互为邻居的顶点u,这两点的距离最近,当近邻子图的规模达到平均负载时,即满足|Vψ|=n/k,称之为最大近邻子图,用符号ψmax表示,n表示图G的顶点数;
对于近邻子图ψ中的某一顶点v∈Vψ,近邻子图中v的邻点v1∈Vψ,…,vn∈Vψ与顶点v的距离分别表示为w(v,v1),……,w(v,vn),则此点v在ψ中的邻点相似度和值为total′v,即total′v=w(v,v1)…+w(v,vn),邻点相似度和值公式如下:



对于划分后的k个顶点数相同的近邻子图中,将顶点数最小的子图采用单链聚类或全链聚类或平均链聚类算法与其他子图进行合并处理;对于超过平均负载...

【专利技术属性】
技术研发人员:李琪李虎雄英昌甜
申请(专利权)人:绍兴文理学院
类型:发明
国别省市:浙江;33

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

1