CN113010748A - 一种基于亲和聚类的分布式大图划分方法 - Google Patents
一种基于亲和聚类的分布式大图划分方法 Download PDFInfo
- Publication number
- CN113010748A CN113010748A CN202110353726.3A CN202110353726A CN113010748A CN 113010748 A CN113010748 A CN 113010748A CN 202110353726 A CN202110353726 A CN 202110353726A CN 113010748 A CN113010748 A CN 113010748A
- Authority
- CN
- China
- Prior art keywords
- sub
- vertex
- vertexes
- graph
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于亲和聚类的分布式大图划分方法,主要针对无权无向图划分处理,基于Boruvka算法层次亲和平衡图聚类将图初始划分为指定的k个子图,以顶点相似度作为距离度量,迭代合并距离较近的两类顶点,并移去子图中邻点相似度和值最小的顶点以约束规模过大的子图,在没有后续优化的情况下,划分质量也接近于现有的大图划分方法;并且针对大规模子图之间的割边率优化问题,本发明设计了降维的操作,通过将初始划分的结果映射为顶点序列并切分为一定数量的子片,随机选择相邻子图中的两个子片,根据互交换正收益及单点正收益迁移顶点,以此达到优化割边率的目的。
Description
技术领域:
本发明涉及计算机技术领域,具体涉及一种基于亲和聚类的分布式大图划分方法。
背景技术:
从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时的单点收益值;单点收益值根据下式计算获得:
g(vj,πi)=EV(vj,πi)-EV(vj,πlocal) (4)
上式中,EV(vj,πi)表示计算节点πi中的顶点与点vj相连的边数;EV(vj,πlocal)表示计算节点πlccal中的顶点与点vj相连的边数。
进一步,所述步骤6中的单点不平衡迁移具体操作方法如下:
步骤6.1:将顶点序列以计算节点为单位划分为r个子片,每个子片中含有的顶点数量尽量少为原则;
步骤6.2:随机选择两个计算节点中的两个子片,首先计算这两个子片中的顶点迁移到对方计算节点所获得的收益值,按照收益值对它们进行降序排序,选择收益值最大的且大于零的顶点进行迁移,迁移完毕更新此顶点的邻居节点,继续迭代计算,直到无正收益或者在指定的迭代次数下停止运行;
步骤6.3:当某一计算节点达到允许的最大负载时,不再接受其它顶点,按照收益值的排序,从大到小选择此计算节点中迁移到其它计算节点的顶点,如果不存在则重新选择子片。
本发明主要针对无权无向图划分处理,基于Boruvka算法层次亲和平衡图聚类作为初始划分,以顶点相似度作为距离度量,迭代合并距离较近的两类顶点,并移去子图中邻点相似度和值最小的顶点以约束规模过大的子图,在没有后续优化的情况下,划分质量也接近于现有的某些大图划分方法,如Spinner算法、线性权重贪心流算法及平衡标签传播划分算法。并且针对大规模子图之间的割边率优化问题,本发明设计了降维的操作,通过将初始划分的结果映射为顶点序列并切分为一定数量的子片,随机选择相邻子图中的两个子片,根据互交换正收益及单点正收益迁移顶点,以此达到优化割边率的目的。
本发明与已有的分布式图划分方法相比,可以应用在多种分布式框架中,通过亲和聚类将图初始划分为指定的k个子图,然后将初始结果映射为类似希尔伯特曲线的一维顶点序列,通过分块的方式,将原问题转化为多个复杂度较小的优化问题,类似于顶点序列的重排列,而不是目前大多分布式启发式算法直接在原图进行顶点的转移优化使其复杂度较高,本发明的方法对于大图的划分效果更加显著。
以下通过附图和具体实施方式对本发明做进一步阐述。
附图说明:
图1为本发明划分方法的流程图。
具体实施方式:
本实施例针对无权无向图G(V,E)公开了一种基于亲和聚类的分布式大图划分方法,如图1所示,该方法主要包括以下步骤:
步骤1:输入无权无向图数据G。
步骤2:采用基于Boruvka算法的层次亲和平衡划分对输入的图数据进行初始划分,即:采用Boruvka最小生成树算法根据顶点相似度对输入图进行约束条件下的平衡图聚类,将图G划分为顶点数相同的k个子图,令每个子图中的顶点距离小于划分前。
在并行化Boruvka算法执行过程中,对于树与树之间距离的计算通常有三种聚类方法,分别为单链聚类、全链聚类和平均链聚类。对于单链聚类方法容易受到极端值的影响,两个很不相似的组合数据点可能由于其中的某个极端的数据点距离较近而组合在一起;对于全链聚类方法与单链聚类相反,两个相似的组合数据点可能由于其中的极端值距离较远而无法组合在一起;而平均链聚类方法计算量比较大。在Boruvka算法中,是将边的权值作为两点之间距离的度量值,但是本发明研究的网络是无权图,如果将有边相连的两点距离看作1,无连接的两点距离看作∞,这将导致划分结果很不稳定,主要因为与点相连的其它邻点到此点的距离都为1,当选择与此点最近距离的邻点时,会产生随机性,这种随机性导致原本应该在不同子区的两点被划分到一个子区中。针对无权图的两点之间距离度量我们采用共同邻居比来计算,即两个互为邻居的顶点距离度量规则为两个顶点共有的邻居数与这两个顶点邻居数乘积的比值,可用下式表示:
上式中,u和v分别表示两个顶点,w(u,v)表示顶点u和v之间的距离;commonNeihborsuv表示顶点v和u的公共邻居数,两顶点之间的公共邻居数通过计算边的三角形个数来求得;Du和Dv分别表示顶点u和v的度数。
虽然Boruvka算法在每轮迭代中即使含有最少顶点的树规模都会增长一倍,但是最后形成的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:对高维网络进行降维处理,即:将生成的k个子图映射为一维空间的顶点序列,令距离最近的两点靠在一起,以此方式完成一维顶点序列的排列。
通过步骤2产生的结果虽然保证了均衡划分且保持较好的割边数,但是仍然可以通过顶点转移策略来进一步优化割边数。顶点转移策略包括双点交换操作(本发明中称为“互交换”)和单点迁移操作,本实施例主要采用互交换操作优化割边数。互交换是交换两个计算节点中的顶点使割边数减少,现有的顶点转移策略都是以每个计算节点为单位优化割边数,这种以计算节点为单位的优化方案难以并行化,所以存在效率低下的问题。本发明通过映射降维及双点交换两个步骤来实现互交换平衡优化策略。
对于大规模的图数据,如果直接对高维的网络进行优化,计算量将非常的巨大,每次都需要计算所有计算节点之间两顶点互交换的收益值,因此必须对高维网络降维处理。现有的降维解决方案通常只适用于小规模网络训练,而本发明主要针对大规模复杂网络,因此本发明直接采用空间填充曲线方法进行,例如皮亚诺曲线,或莫尔顿曲线,或希尔伯特曲线,优选希尔伯特曲线,此方法能够很好的捕捉邻近空间的节点。
步骤4:为了有效的利用一维顶点序列带来的优势,本发明提出了分片操作理念,将整个序列以计算节点为单位划分为一定数量的子片,通过交换两个子片中的顶点来减少割边数,划分时以每个子片中含有顶点的数量尽量少为原则。
步骤5:采用顶点转移策略优化割边数,即:随机选择相邻计算节点中的两个子片,按照互交换正收益交换顶点,并不断的迭代此过程,直到割边数趋于稳定则停止迭代。
如果互交换两计算节点中的顶点没有正收益,则重新选择子片对,分片操作对于划分计算节点数量少的任务效果更明显,因为计算节点数越少,相对计算节点中的顶点数量的规模就越大,完全可以利用分片的操作提高优化效率。交换相邻两个计算节点中的顶点(互交换),具体方法如下:首先计算两个计算节点中任意两个顶点交换所获得的收益值,按照收益值对顶点对从高到低进行排序,选择收益值最大的且大于零的两个顶点进行交换,交换完毕更新这两个顶点的邻居节点,迭代计算直到两个计算节点中任意两个顶点的互交换收益值小于或等于零。两个顶点交换所获得的收益值用Swap(vi,vj)表示,根据下式计算:
上式中,vi和vj表示两个顶点,E表示图G中的边集;πi和πj表示两个计算节点,g(vi,πj)表示顶点vi从所在计算节点πlccal迁移到另一个计算节点πj时的单点收益值;g(vj,πi)表示顶点vj从所在计算节点πlccal迁移到另一个计算节点πi时的单点收益值;单点收益值根据下式计算获得:
g(vj,πi)=EV(vj,πi)-EV(vj,πlocal) (4)
上式中,EV(vj,πi)表示计算节点πi中的顶点与点vj相连的边数;EV(vj,πlocal)表示计算节点πlccal中的顶点与点vj相连的边数。
步骤6:采用单点不平衡迁移优化割边数,即:在给定的负载不平衡系数下,随机选择相邻计算节点中的两个子片,按照单点正收益迁移顶点,并不断的迭代此过程,直到割边数趋于稳定或者到达指定的迭代次数下停止迭代。
此步骤主要研究在指定负载系数下的最小化割边率,即允许计算节点规模之间存在一定的不平衡,所以可以利用单点迁移来进一步优化割边数,通过单点正收益来迁移顶点。能解决此问题的方法有很多,比如可以通过计算每个顶点的单点收益值进行顶点迁移或者可以通过启发式的一些方法寻找全局或者局部最优解。为了充分利用上述给出的分片操作方式,本发明采用了与互交换平衡优化相类似的操作,具体步骤如下所示:
步骤6.1:将顶点序列以计算节点为单位划分为r个子片,每个子片中含有的顶点数量尽量少为原则;
步骤6.2:随机选择两个计算节点中的两个子片,首先计算这两个子片中的顶点迁移到对方计算节点所获得的收益值,按照收益值对它们进行降序排序,选择收益值最大的且大于零的顶点进行迁移,迁移完毕更新此顶点的邻居节点,继续迭代计算,直到无正收益或者在指定的迭代次数下停止运行;
步骤6.3:当某一计算节点达到允许的最大负载时,不再接受其它顶点,按照收益值的排序,从大到小选择此计算节点中迁移到其它计算节点的顶点,如果不存在则重新选择子片。
步骤7:输出划分结果。
以上实施例仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其他修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围中。
Claims (8)
1.一种基于亲和聚类的分布式大图划分方法,其特征在于:包括以下步骤:
步骤1:输入无权无向图数据G;
步骤2:采用基于Boruvka算法的层次亲和平衡划分对输入的图数据进行初始划分,即:采用Boruvka最小生成树算法根据顶点相似度对输入图进行约束条件下的平衡图聚类,将图G划分为顶点数相同的k个子图,令每个子图中的顶点距离小于划分前;
步骤3:对高维网络进行降维处理,即:将生成的k个子图映射为一维空间的顶点序列,令距离最近的两点靠在一起,以此方式完成一维顶点序列的排列;
步骤4:将每个计算节点中的顶点序列划分为一定数量的子片,划分时以每个子片中含有顶点的数量尽量少为原则;
步骤5:采用顶点转移策略优化割边数,即:随机选择相邻计算节点中的两个子片,按照互交换正收益交换顶点,并不断的迭代此过程,直到割边数趋于稳定则停止迭代;
步骤6:采用单点不平衡迁移优化割边数,即:在给定的负载不平衡系数下,随机选择相邻计算节点中的两个子片,按照单点正收益迁移顶点,并不断的迭代此过程,直到割边数趋于稳定或者到达指定的迭代次数下停止迭代;
步骤7:输出划分结果。
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个顶点数相同的近邻子图中,将顶点数最小的子图采用单链聚类或全链聚类或平均链聚类算法与其他子图进行合并处理;对于超过平均负载的子图,即子图中的顶点数超过|Vψ|,则按照公式(2)计算该子图中所有点的邻点相似度和值,逐个删除邻点相似度和值最小的点并不断的迭代计算,直到减少到与最大邻近子图的规模相等为止,被删除的顶点再通过聚类算法合并到其他子图中。
4.根据权利要求1所述的一种基于亲和聚类的分布式大图划分方法,其特征在于:所述步骤3中的降维处理采用空间填充曲线方法进行。
5.根据权利要求4所述的一种基于亲和聚类的分布式大图划分方法,其特征在于:所述空间填充曲线是指皮亚诺曲线,或莫尔顿曲线,或希尔伯特曲线。
6.根据权利要求1所述的一种基于亲和聚类的分布式大图划分方法,其特征在于:所述步骤5中的顶点转移策略采用互交换操作方式,即交换相邻两个子区中的顶点,具体方法如下:首先计算两个子区中任意两个顶点交换所获得的收益值,按照收益值对顶点对从高到低进行排序,选择收益值最大的且大于零的两个顶点进行交换,交换完毕更新这两个顶点的邻居节点,迭代计算直到两个子区中任意两个顶点的互交换收益值小于或等于零。
7.根据权利要求6所述的一种基于亲和聚类的分布式大图划分方法,其特征在于:所述两个顶点交换所获得的收益值用Swap(vi,vj)表示,根据下式计算:
上式中,vi和vj表示两个顶点,E表示图G中的边集;πi和πj表示两个子区,g(vi,πj)表示顶点vi从所在子区πlccal迁移到另一个子区πj时的单点收益值;g(vj,πi)表示顶点vj从所在子区πlccal迁移到另一个子区πi时的单点收益值;单点收益值根据下式计算获得:
g(vj,πi)=EV(vj,πi)-EV(vj,πlocal) (4)
上式中,EV(vj,πi)表示子区πi中的顶点与点vj相连的边数;EV(vj,πlocal)表示子区πlccal中的顶点与点vj相连的边数。
8.根据权利要求1所述的一种基于亲和聚类的分布式大图划分方法,其特征在于:所述步骤6中的单点不平衡迁移具体操作方法如下:
步骤6.1:将顶点序列以子区为单位划分为r个子片,每个子片中含有的顶点数量尽量少为原则;
步骤6.2:随机选择两个子区中的两个子片,首先计算这两个子片中的顶点迁移到对方子区所获得的收益值,按照收益值对它们进行降序排序,选择收益值最大的且大于零的顶点进行迁移,迁移完毕更新此顶点的邻居节点,继续迭代计算,直到无正收益或者在指定的迭代次数下停止运行;
步骤6.3:当某一子区达到允许的最大负载时,不再接受其它顶点,按照收益值的排序,从大到小选择此子区中迁移到其它子区的顶点,如果不存在则重新选择子片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110353726.3A CN113010748A (zh) | 2021-04-01 | 2021-04-01 | 一种基于亲和聚类的分布式大图划分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110353726.3A CN113010748A (zh) | 2021-04-01 | 2021-04-01 | 一种基于亲和聚类的分布式大图划分方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113010748A true CN113010748A (zh) | 2021-06-22 |
Family
ID=76387632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110353726.3A Pending CN113010748A (zh) | 2021-04-01 | 2021-04-01 | 一种基于亲和聚类的分布式大图划分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010748A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113792170A (zh) * | 2021-11-15 | 2021-12-14 | 支付宝(杭州)信息技术有限公司 | 图数据划分方法、装置和计算机设备 |
-
2021
- 2021-04-01 CN CN202110353726.3A patent/CN113010748A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113792170A (zh) * | 2021-11-15 | 2021-12-14 | 支付宝(杭州)信息技术有限公司 | 图数据划分方法、装置和计算机设备 |
CN113792170B (zh) * | 2021-11-15 | 2022-03-15 | 支付宝(杭州)信息技术有限公司 | 图数据划分方法、装置和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Khorasani et al. | Scalable simd-efficient graph processing on gpus | |
US9547728B2 (en) | Graph traversal operator and extensible framework inside a column store | |
Cheng et al. | Fast algorithms for maximal clique enumeration with limited memory | |
Lieberman et al. | A fast similarity join algorithm using graphics processing units | |
CN110134714B (zh) | 适用于大数据迭代计算的分布式计算框架缓存索引方法 | |
Schlag et al. | Scalable edge partitioning | |
CN107015868B (zh) | 一种通用后缀树的分布式并行构建方法 | |
García-García et al. | Improving distance-join query processing with voronoi-diagram based partitioning in spatialhadoop | |
CN106485766A (zh) | 一种约束Delaunay三角网的并行构建方法 | |
CN112035586A (zh) | 基于可扩展学习索引的空间范围查询方法 | |
CN114420215A (zh) | 基于生成树的大规模生物数据聚类方法及系统 | |
CN113010748A (zh) | 一种基于亲和聚类的分布式大图划分方法 | |
CN112163641B (zh) | 一种基于概率多层次图结构的高维数据可视化方法 | |
Barger et al. | k-means for streaming and distributed big sparse data | |
CN110264467B (zh) | 基于顶点切割的动态幂律图实时重划分方法 | |
Chen et al. | DBSCAN-PSM: an improvement method of DBSCAN algorithm on Spark | |
KR102006283B1 (ko) | 패스트맵을 이용한 데이터셋의 m-트리 적재방법 | |
CN116383247A (zh) | 一种大规模图数据高效查询方法 | |
CN116821579A (zh) | 基于密铺的SpMV并行分块计算方法及系统 | |
Raj et al. | PartEclat: an improved Eclat-based frequent itemset mining algorithm on spark clusters using partition technique | |
Abdolazimi et al. | Connected components of big graphs in fixed mapreduce rounds | |
CN115344607A (zh) | 一种面向图数据的批量流式边点混合切分方法 | |
CN110188098B (zh) | 一种基于双层锚点图投影优化的高维向量数据可视化方法及系统 | |
Hong et al. | Attribute clustering in high dimensional feature spaces | |
CN114490799A (zh) | 单个图的频繁子图挖掘方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210622 |
|
RJ01 | Rejection of invention patent application after publication |